CN109190367A - 利用沙箱运行应用程序安装包的方法及装置 - Google Patents

利用沙箱运行应用程序安装包的方法及装置 Download PDF

Info

Publication number
CN109190367A
CN109190367A CN201810927614.2A CN201810927614A CN109190367A CN 109190367 A CN109190367 A CN 109190367A CN 201810927614 A CN201810927614 A CN 201810927614A CN 109190367 A CN109190367 A CN 109190367A
Authority
CN
China
Prior art keywords
installation kit
file
application program
digit
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810927614.2A
Other languages
English (en)
Other versions
CN109190367B (zh
Inventor
王春雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810927614.2A priority Critical patent/CN109190367B/zh
Publication of CN109190367A publication Critical patent/CN109190367A/zh
Application granted granted Critical
Publication of CN109190367B publication Critical patent/CN109190367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及信息技术领域,尤其涉及利用沙箱运行应用程序安装包的方法及装置,应用于处理位数为第一处理位数的沙箱中,方法包括:获取目标应用程序安装包对应的第一so文件,其中,目标应用程序安装包的处理位数为第二处理位数,第一so文件的处理位数为第一处理位数,第二处理位数高于第一处理位数;将第一so文件保存到私有目录中,形成so目录,并将so目录增加到运行目录中;当沙箱运行至so目录时,根据第一so文件以与第一处理位数对应的运行方式运行目标应用程序安装包,以对与目标应用程序安装包对应的应用程序进行安装。本发明实现了在低处理位数的沙箱中安装与高处理位数的应用程序安装包对应的应用程序的技术效果。

Description

利用沙箱运行应用程序安装包的方法及装置
技术领域
本发明涉及信息技术领域,尤其涉及利用沙箱运行应用程序安装包的方法及装置。
背景技术
沙箱是一种按照安全策略限制程序行为的执行环境,在该环境下允许运行浏览器或应用程序,在运行浏览器或应用程序之后,所产生的变化可以随后删除,沙箱是一个独立的虚拟环境,可以用来测试不受信任的应用程序或上网行为。
对于安卓系统而言,从安卓5.0系统开始支持64位指令集,其具有更高的运行效率。在64位的沙箱中可以以兼容的形式运行纯32位的应用程序安装包,然而,由于so指令集不同,在32位的沙箱中无法运行纯64位的应用程序安装包,会出现闪退的情况,从而导致无法安装与纯64位的应用程序安装包对应的应用程序。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的利用沙箱运行应用程序安装包的方法及装置。
依据本发明的第一个方面,本发明提供一种利用沙箱运行应用程序安装包的方法,应用于处理位数为第一处理位数的沙箱中,所述方法包括:
获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
优选的,在所述获取目标应用程序安装包对应的第一so文件之前,所述方法还包括:
获取应用程序安装包;
判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则执行步骤:获取目标应用程序安装包对应的第一so文件。
优选的,所述判断所述应用程序安装包是否为所述目标应用程序安装包,包括:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
优选的,所述获取目标应用程序安装包对应的第一so文件,包括:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,所述获取目标应用程序安装包对应的第一so文件,包括:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,所述第一处理位数为32位,所述第二处理位数为64位。
依据本发明的第二个方面,本发明还提供一种利用沙箱运行应用程序安装包的装置,应用于处理位数为第一处理位数的沙箱中,所述装置包括:
第一获取模块,用于获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
保存模块,用于将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
运行模块,用于当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
优选的,所述装置还包括:
第二获取模块,用于获取应用程序安装包;
判断模块,用于判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则跳转到所述所述第一获取模块执行步骤:获取目标应用程序安装包对应的第一so文件。
优选的,所述判断模块,具体用于:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
优选的,所述第一获取模块,具体用于:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,所述第一获取模块,具体用于:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,所述第一处理位数为32位,所述第二处理位数为64位。
依据本发明的第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述第一个方面中的方法步骤。
依据本发明的第四个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述第一个方面中的方法步骤。
根据本发明的利用沙箱运行应用程序安装包的方法及装置,在处理位数为第一处理位数的沙箱中,通过获取目标应用程序安装包对应的第一so文件,其中,目标应用程序安装包的处理位数为第二处理位数,第一so文件的处理位数为第一处理位数,第二处理位数高于第一处理位数,并将第一so文件保存到私有目录中,形成so目录,并将so目录增加到运行目录中,当沙箱运行至so目录时,根据第一so文件以与第一处理位数对应的运行方式运行目标应用程序安装包,以对与目标应用程序安装包对应的应用程序进行安装,从而,解决了现有技术在低处理位数的沙箱中运行高处理位数的应用程序安装包出现闪退的问题,实现了在低处理位数的沙箱中安装与高处理位数的应用程序安装包对应的应用程序的技术效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明实施例中利用沙箱运行应用程序安装包的方法的流程图;
图2示出了本发明实施例中利用沙箱运行应用程序安装包的装置的结构图;
图3示出了本发明实施例中计算机设备的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种利用沙箱运行应用程序安装包的方法,该方法应用于安卓系统中,进一步,该方法应用于处理位数为第一处理位数的沙箱中,具有第一处理位数的沙箱为该方法的执行主体。沙箱是一种按照安全策略限制程序行为的执行环境,在该环境下允许运行浏览器或应用程序,在运行浏览器或应用程序之后,所产生的变化可以随后删除,沙箱是一个独立的虚拟环境,可以用来测试不受信任的应用程序或上网行为。进一步,第一处理位数的沙箱是指沙箱的处理能力为一次最多处理第一处理位数的数据,而第一处理位数的沙箱能够运行纯第一处理位数的应用程序安装包,从而完成对应用程序的安装,例如,当第一处理位数为32位时,32位沙箱能够运行纯32位的应用程序安装包。
下文将会把具有第一处理位数的沙箱简称为沙箱,因此下文在提及沙箱时,该沙箱具体指的是具有第一处理位数的沙箱。如图1所示,本发明实施例的利用沙箱运行应用程序安装包的方法包括:
步骤101:获取目标应用程序安装包对应的第一so文件,其中,目标应用程序安装包的处理位数为第二处理位数,第一so文件的处理位数为第一处理位数,第二处理位数高于所述第一处理位数。
步骤102:将第一so文件保存到私有目录中,形成so目录,并将so目录增加到运行目录中。
步骤103:当沙箱运行至so目录时,根据第一so文件以与第一处理位数对应的运行方式运行目标应用程序安装包,以对与目标应用程序安装包对应的应用程序进行安装。
在步骤101之前,所述方法还包括:
获取应用程序安装包;
判断应用程序安装包是否为目标应用程序安装包;
若应用程序安装包为目标应用程序安装包,则执行步骤101。
具体来讲,沙箱首先获取应用程序安装包。接着,当沙箱需要运行应用程序安装包,以对与该应用程序安装包对应的应用程序进行安装时,沙箱判断应用程序安装包是否为目标应用程序安装包,即,沙箱判断应用程序安装包的处理位数是否为第二处理位数,第二处理位数为高于第一处理位数的处理位数,例如,若第一处理位数为32位,则第二处理位数可以为64位。需要说明的是,在本发明实施例中,目标应用程序安装包是指处理位数为纯第二处理位数的应用程序安装包,例如,若第二处理位数为64位,则目标应用程序安装包是指纯64位应用程序安装包。
进一步来讲,对于如何判断应用程序安装包的处理位数是否为纯第二处理位数,本发明实施例提供以下具体实现方式:判断应用程序安装包是否仅包含第二so文件,第二so文件的处理位数为第二处理位数。
具体来讲,so文件由so指令集组成,第一处理位数的so文件包含的so指令集具有第一处理位数,第二处理位数的so文件包含的so指令集具有第二处理位数。在本发明实施例中,将具有第一处理位数的so文件简称为第一so文件,同时,将具有第二处理位数的so文件简称为第二so文件。若应用程序安装包仅包含第二so文件,则表明应用程序安装包的处理位数为纯第二处理位数,若应用程序安装包仅包含第一so文件,则表明应用程序安装包的处理位数为纯第一处理位数,若应用程序安装包既包含第一so文件又包含第二so文件,则表明应用程序安装包的处理位数为第一处理位数和第二处理位数混合位数。
例如,当第一处理位数为32位且第二处理位数为64位时,第一so文件为32位so文件,第二so文件为64位so文件,若应用程序安装包仅包含第二so文件,则表明应用程序安装包的处理位数为纯64位,若应用程序安装包仅包含第一so文件,则表明应用程序安装包的处理位数为纯32位,若应用程序安装包既包含第一so文件又包含第二so文件,则表明应用程序安装包的处理位数为64位和32位混合位数。
对于如何查询应用程序安装包的so文件类型,本发明实施例提供以下代码实现方式:
通过运行上述代码能够获取到primaryCpuAbi和secondaryPrimaryAbi中的内容,若primaryCpuAbi为64位,secondaryPrimaryAbi为无,则表明应用程序安装包仅包含64位的第二so文件,即表明应用程序安装包的处理位数为纯64位;若primaryCpuAbi为32位,secondaryPrimaryAbi为无,则表明应用程序安装包仅包含32位的第一so文件,即表明应用程序安装包的处理位数为纯32位;若primaryCpuAbi为64位,secondaryPrimaryAbi为32位,或,primaryCpuAbi为32位,secondaryPrimaryAbi为64位,则表明应用程序安装包不仅包含64位的第二so文件还包含32位的第一so文件,即表明应用程序安装包的处理位数为64位和32位混合位数。
进一步,若应用程序安装包的处理位数为纯第二处理位数,即表明应用程序安装包为目标应用程序安装包,则获取与目标应用程序安装包对应的第一so文件。
对于如何获取第一so文件,本发明实施例提供以下具体实现方式:
在第一种实现方式中,可以在本地查找是否存在第一so文件,若本地存在第一so文件,则从本地获取第一so文件;若本地不存在第一so文件,则联网查找第一so文件,并将联网查找到的第一so文件下载到本地。在该实现方式中,优先在本地查找第一so文件,若本地存在第一so文件则直接利用本地的第一so文件执行后续流程,从而提高了应用程序安装包的运行效率。
在第二种实现方式中,可以直接联网查找第一so文件,并将联网查找到的第一so文件下载到本地。在该实现方式中,通过联网查找第一so文件,并利用网络中的第一so文件执行后续流程,从而能够保证获得的第一so文件为最新的,并且,对于第一处理位数的沙箱而言,由于本地往往并不存在高于其位数的应用程序安装包的第一so文件,例如,32位的沙箱本地往往并不存在64位应用程序安装包的32位so文件,因此,直接联网查找第一so文件而不优先在本地进行查找,能够提高对第一so文件的查找效率。
进一步,在本发明实施例中,为了收集so文件,还可以利用爬虫监控应用程序商店(如GooglePlay)中的Top应用程序,当Top应用程序有更新时,第一时间获取更新的应用程序安装包到本地,并自动解压按照处理架构归类so文件,从而在本地形成包含so文件的数据库,在该数据库中包含有应用程序安装包的不同处理位数的so文件,以便执行上述第一种实现方式在本地中查找到第一so文件。
进一步,在步骤102中,当获取到第一so文件之后,将第一so文件保存到私有目录中,形成so目录。其中,so目录为包含so文件的私有目录,私有目录的路径地址可以为data/data/pkg/files/lib32。
进一步,当沙箱的进程启动时,将so目标添加到运行目录中,对于如何将so目录增加到运行目录中,本发明实施例提供以下实现方式:通过反射改变nativeLibraryDirectories将so目录动态增加到运行目录中,即,增加一个pathList尾节点,其代码实现如下:
Class.forName("dalvik.system.BaseDexClassLoader"),"pathList");
pathList.getClass().getDeclaredField("nativeLibraryDirectories");
即,在原nativeLibraryDirectories=[/data/app-lib/pkg,/vendor/lib,/system/lib]]]最后新增一个:
nativeLibraryDirectories=[/data/app-lib/pkg,/vendor/lib,/system/lib,/data/data/selftPkg/files/pkg-lib32]]]
从而通过上述过程实现了在所有节点都找不到第一处理位数的so文件时最后寻址到该so目录。
进一步,在步骤103中,当沙箱运行至运行目录中的so目录时,根据第一so文件以与第一处理位数对应的运行方式运行应用程序安装包,以对该应用程序安装包所对应的应用程序进行安装,即,沙箱会从nativeLibraryDirectories最后一个节点找到第一so文件,并进行运行。
需要说明的是,对应同一应用程序而言,其对应的不同处理位数的应用程序安装包区别仅在于so文件的处理位数不同,而对于上层JAVA生成的dex文件以及资源是一致的。例如,32位的应用程序安装包和64位应用程序安装包区别仅在于so文件的处理位数不同,对于上层JAVA生成的dex文件以及资源是一致的,因此,对于64位应用程序安装包而言,在获得与其对应的32位so文件之后,利用其本身包含的dex文件以及资源即可实现以32位运行方式对应用程序安装包的运行。
而在本发明实施例中,对于如何根据第一so文件以与第一处理位数对应的运行方式运行应用程序安装包属于现有技术,本领域技术人员可以采用现有技术中的任一方法实现上述过程,本发明实施例不作限定。
另外,在本发明实施例中,若应用程序安装包的处理位数不是纯第二处理位数,且应用程序安装包的处理位数为第一处理位数和第二处理位数混合位数,则表明应用程序安装包中本身已包含第一so文件,从而沙箱可以直接运行该应用程序安装包。
另外,在本发明实施例中,在步骤103中,若应用程序安装包的处理位数不是纯第二处理位数,且应用程序安装包的处理位数为纯第一处理位数,则表明应用程序安装包中本身已包含第一so文件,从而沙箱可以直接运行该应用程序安装包。
为了便于技术方案的理解,下面将以第一处理位数位32位,第二处理位数位64位为例,对本发明实施例的利用沙箱运行应用程序安装包的方法进行完整的说明:
首先,在32位沙箱中获取一应用程序安装包。接着,判断该应用程序安装包是否为纯64位应用程序安装包,若该应用程序安装包为纯64位应用程序安装包,则获取与该应用程序安装包对应的32位so文件,优选的,可以联网查找与该应用程序安装包对应的32位so文件,在查找到该32位so文件之后,下载该32位so文件,并将该32位so文件保存到私有目录中,形成so目录,以及将so目录增加至运行目录中,当沙箱运行至so目录时,根据该32位so文件以32位运行方式运行该应用程序安装包。在判断该应用程序安装包是否为纯64位应用程序安装包之后,若该应用程序安装包为纯32位应用程序安装包,或32位和64位混合应用程序安装包,则32位沙箱可以直接对其进行运行。
需要说明的是,在沙箱中运行的应用程序安装包也可以为应用程序安装包的分身,应用程序安装包的分身具有与应用程序安装包相同的数据,通过在沙箱中运行应用程序安装包的分身能够实现对应用程序安装包的测试。
基于同一发明构思,本发明实施例还提供一种利用沙箱运行应用程序安装包的装置,如图2所示,所述装置包括:
第一获取模块201,用于获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
保存模块202,用于将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
运行模块203,用于当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
优选的,所述装置还包括:
第二获取模块,用于获取应用程序安装包;
判断模块,用于判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则跳转到所述所述第一获取模块执行步骤:获取目标应用程序安装包对应的第一so文件。
优选的,所述判断模块,具体用于:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
优选的,第一获取模块201,具体用于:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,第一获取模块201,具体用于:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
优选的,所述保存模块,具体用于:
通过反射改变nativeLibraryDirectories将所述so目录动态增加到所述运行目录中。
优选的,所述第一处理位数为32位,所述第二处理位数为64位。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例所述的方法步骤。
基于同一发明构思,本发明实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器301和处理器302。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器302是计算机设备的控制中心,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行各种功能和处理数据。可选的,处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器302可以具有前述实施例中任一方法步骤所对应的功能。
总之,根据本发明的利用沙箱运行应用程序安装包的方法及装置,在处理位数为第一处理位数的沙箱中,通过获取目标应用程序安装包对应的第一so文件,其中,目标应用程序安装包的处理位数为第二处理位数,第一so文件的处理位数为第一处理位数,第二处理位数高于第一处理位数,并将第一so文件保存到私有目录中,形成so目录,并将so目录增加到运行目录中,当沙箱运行至so目录时,根据第一so文件以与第一处理位数对应的运行方式运行目标应用程序安装包,以对与目标应用程序安装包对应的应用程序进行安装,从而,解决了现有技术在低处理位数的沙箱中运行高处理位数的应用程序安装包出现闪退的问题,实现了在低处理位数的沙箱中安装与高处理位数的应用程序安装包对应的应用程序的技术效果。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
A1、一种利用沙箱运行应用程序安装包的方法,其特征在于,应用于处理位数为第一处理位数的沙箱中,所述方法包括:
获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
A2、根据A1所述的方法,其特征在于,在所述获取目标应用程序安装包对应的第一so文件之前,所述方法还包括:
获取应用程序安装包;
判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则执行步骤:获取目标应用程序安装包对应的第一so文件。
A3、根据A2所述的方法,其特征在于,所述判断所述应用程序安装包是否为所述目标应用程序安装包,包括:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
A4、根据A1所述的方法,其特征在于,所述获取目标应用程序安装包对应的第一so文件,包括:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
A5、根据A1所述的方法,其特征在于,所述获取目标应用程序安装包对应的第一so文件,包括:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
A6、如权利要求A1所述的方法,其特征在于,所述第一处理位数为32位,所述第二处理位数为64位。
B7、一种利用沙箱运行应用程序安装包的装置,其特征在于,应用于处理位数为第一处理位数的沙箱中,所述装置包括:
第一获取模块,用于获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
保存模块,用于将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
保存模块,用于当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
B8、如权利要求B7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取应用程序安装包;
判断模块,用于判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则跳转到所述所述第一获取模块执行步骤:获取目标应用程序安装包对应的第一so文件。
B9、如权利要求B8所述的装置,其特征在于,所述判断模块,具体用于:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
B10、如权利要求B7所述的装置,其特征在于,所述第一获取模块,具体用于:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
B11、如权利要求B7所述的装置,其特征在于,所述第一获取模块,具体用于:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
B12、如权利要求B7所述的装置,其特征在于,所述第一处理位数为32位,所述第二处理位数为64位。
C13、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求A1-A6中任一权利要求所述的方法步骤。
D14、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求A1-A6中任一权利要求所述的方法步骤。

Claims (10)

1.一种利用沙箱运行应用程序安装包的方法,其特征在于,应用于处理位数为第一处理位数的沙箱中,所述方法包括:
获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
2.如权利要求1所述的方法,其特征在于,在所述获取目标应用程序安装包对应的第一so文件之前,所述方法还包括:
获取应用程序安装包;
判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则执行步骤:获取目标应用程序安装包对应的第一so文件。
3.如权利要求2所述的方法,其特征在于,所述判断所述应用程序安装包是否为所述目标应用程序安装包,包括:
判断所述应用程序安装包是否仅包含第二so文件,所述第二so文件的处理位数为所述第二处理位数。
4.如权利要求1所述的方法,其特征在于,所述获取目标应用程序安装包对应的第一so文件,包括:
在本地查找是否存在所述第一so文件;
若本地存在所述第一so文件,则从本地获取所述第一so文件;
若本地不存在所述第一so文件,则联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
5.如权利要求1所述的方法,其特征在于,所述获取目标应用程序安装包对应的第一so文件,包括:
联网查找所述第一so文件,并将联网查找到的所述第一so文件下载到本地。
6.如权利要求1所述的方法,其特征在于,所述第一处理位数为32位,所述第二处理位数为64位。
7.一种利用沙箱运行应用程序安装包的装置,其特征在于,应用于处理位数为第一处理位数的沙箱中,所述装置包括:
第一获取模块,用于获取目标应用程序安装包对应的第一so文件,其中,所述目标应用程序安装包的处理位数为第二处理位数,所述第一so文件的处理位数为所述第一处理位数,所述第二处理位数高于所述第一处理位数;
保存模块,用于将所述第一so文件保存到私有目录中,形成so目录,并将所述so目录增加到运行目录中;
保存模块,用于当所述沙箱运行至所述so目录时,根据所述第一so文件以与所述第一处理位数对应的运行方式运行所述目标应用程序安装包,以对与所述目标应用程序安装包对应的应用程序进行安装。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取应用程序安装包;
判断模块,用于判断所述应用程序安装包是否为所述目标应用程序安装包;
其中,若所述应用程序安装包为所述目标应用程序安装包,则跳转到所述所述第一获取模块执行步骤:获取目标应用程序安装包对应的第一so文件。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一权利要求所述的方法步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一权利要求所述的方法步骤。
CN201810927614.2A 2018-08-15 2018-08-15 利用沙箱运行应用程序安装包的方法及装置 Active CN109190367B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810927614.2A CN109190367B (zh) 2018-08-15 2018-08-15 利用沙箱运行应用程序安装包的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810927614.2A CN109190367B (zh) 2018-08-15 2018-08-15 利用沙箱运行应用程序安装包的方法及装置

Publications (2)

Publication Number Publication Date
CN109190367A true CN109190367A (zh) 2019-01-11
CN109190367B CN109190367B (zh) 2023-02-17

Family

ID=64935954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810927614.2A Active CN109190367B (zh) 2018-08-15 2018-08-15 利用沙箱运行应用程序安装包的方法及装置

Country Status (1)

Country Link
CN (1) CN109190367B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399295A (zh) * 2019-06-28 2019-11-01 奇安信科技集团股份有限公司 一种基于原始文件名的应用程序测试方法及装置
CN111460453A (zh) * 2019-01-22 2020-07-28 百度在线网络技术(北京)有限公司 机器学习训练方法、控制器、装置、服务器、终端和介质
CN113342401A (zh) * 2021-07-13 2021-09-03 中国工商银行股份有限公司 应用程序安装包的生成方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140351889A1 (en) * 2011-12-28 2014-11-27 Beijing Qihoo Technology Company Limited Sandbox technology based webpage browsing method and device
CN104317740A (zh) * 2014-11-13 2015-01-28 北京奇虎科技有限公司 基于沙箱技术的缓存目录/文件的清理方法和装置
CN106776143A (zh) * 2016-12-27 2017-05-31 北京奇虎科技有限公司 一种针对终端应用程序的镜像备份的方法及终端设备
CN106845270A (zh) * 2017-01-17 2017-06-13 北京奇虎科技有限公司 一种无痕浏览方法及装置
CN107509187A (zh) * 2017-08-31 2017-12-22 维沃移动通信有限公司 一种应用程序的安装方法、移动终端及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140351889A1 (en) * 2011-12-28 2014-11-27 Beijing Qihoo Technology Company Limited Sandbox technology based webpage browsing method and device
CN104317740A (zh) * 2014-11-13 2015-01-28 北京奇虎科技有限公司 基于沙箱技术的缓存目录/文件的清理方法和装置
CN106776143A (zh) * 2016-12-27 2017-05-31 北京奇虎科技有限公司 一种针对终端应用程序的镜像备份的方法及终端设备
CN106845270A (zh) * 2017-01-17 2017-06-13 北京奇虎科技有限公司 一种无痕浏览方法及装置
CN107509187A (zh) * 2017-08-31 2017-12-22 维沃移动通信有限公司 一种应用程序的安装方法、移动终端及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
6X: "《Android在64位处理器上强制使用32位so库》", 《6XYUN.CN/ARTICLE/24》, 13 November 2017 (2017-11-13), pages 1 - 2 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460453A (zh) * 2019-01-22 2020-07-28 百度在线网络技术(北京)有限公司 机器学习训练方法、控制器、装置、服务器、终端和介质
CN111460453B (zh) * 2019-01-22 2023-12-12 百度在线网络技术(北京)有限公司 机器学习训练方法、控制器、装置、服务器、终端和介质
CN110399295A (zh) * 2019-06-28 2019-11-01 奇安信科技集团股份有限公司 一种基于原始文件名的应用程序测试方法及装置
CN113342401A (zh) * 2021-07-13 2021-09-03 中国工商银行股份有限公司 应用程序安装包的生成方法、装置、设备及介质

Also Published As

Publication number Publication date
CN109190367B (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
Oakes et al. {SOCK}: Rapid task provisioning with {Serverless-Optimized} containers
CN104866341B (zh) 一种组件升级方法、装置及终端
KR102077360B1 (ko) 애플리케이션에 대한 중간 언어 코드로부터 네이티브 코드를 생성하는 기법
EP3336690B1 (en) Extensible data transformation authoring and validation system
CN107506221A (zh) 应用程序升级方法、装置及设备
CN106294372A (zh) 应用程序页面快速访问方法及应用其的移动终端
CN108228818A (zh) 网页资源加载方法及装置、电子设备、以及存储介质
CN105556545A (zh) 用于众包领域特定情报的设备、系统和方法
CN103324498A (zh) 用于引导裸机计算设备的方法和设备
CN102822797A (zh) 虚拟应用扩展点
US20150310517A1 (en) Method and system for tracking marketing channel of application
CN108475223A (zh) 在硬件管理的堆栈架构中受调用者保护的堆栈返回地址
CN109190367A (zh) 利用沙箱运行应用程序安装包的方法及装置
CN105407130A (zh) 一种移动端插件系统及移动端插件处理方法
JP6951442B2 (ja) シブリング・コール処理のためのコンピュータ・プログラム製品、コンピュータ・システムおよびコンピュータによって実施される方法
CN102799444B (zh) 跨平台打包程序的方法及装置
CN109144619A (zh) 图标字体信息处理方法、装置及系统
CN110515647A (zh) 一种静态资源管理方法、装置、设备和存储介质
CN107797820A (zh) 用于生成补丁的方法和装置
CN107463422A (zh) 代码部署方法及装置、电子设备
CN106055375A (zh) 应用程序安装方法及装置
CN108654090A (zh) 操作系统与游戏应用交互的方法及装置
CN110244951B (zh) 应用发布方法及装置
CN109976744B (zh) 一种可视化编程方法、系统及终端设备
CN106598662A (zh) 基于android的应用加载方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant