CN114969720A - 安卓应用的安装方法、装置、存储介质及计算机设备 - Google Patents

安卓应用的安装方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN114969720A
CN114969720A CN202210609551.2A CN202210609551A CN114969720A CN 114969720 A CN114969720 A CN 114969720A CN 202210609551 A CN202210609551 A CN 202210609551A CN 114969720 A CN114969720 A CN 114969720A
Authority
CN
China
Prior art keywords
installation
installation package
application
android
package
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.)
Pending
Application number
CN202210609551.2A
Other languages
English (en)
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.)
Seuic Technologies Co Ltd
Original Assignee
Seuic Technologies 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 Seuic Technologies Co Ltd filed Critical Seuic Technologies Co Ltd
Priority to CN202210609551.2A priority Critical patent/CN114969720A/zh
Publication of CN114969720A publication Critical patent/CN114969720A/zh
Pending legal-status Critical Current

Links

Images

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

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

Abstract

本申请提供的安卓应用的安装方法、装置、存储介质及计算机设备,在使用安卓系统的移动设备中安装第三方应用时,可以先获取指定应用的安装包,并对该安装包进行系统签名,以使该安装包具备系统权限,接着本申请可以将签名后的安装包拷贝到预先配置的系统分区,由于该系统分区被配置为供安卓系统进行读写操作,因此,安卓系统可以读取并安装系统分区中的安装包,并且,在安装包具备系统权限的前提下,安卓系统还可以根据用户输入的第一修改指令修改该安装包的卸载权限,以使该安装包不被卸载,从而保证第三方应用的稳定运行,并有效降低设备管理员的管控难度。

Description

安卓应用的安装方法、装置、存储介质及计算机设备
技术领域
本申请涉及数据处理技术领域,尤其涉及一种安卓应用的安装方法、装置、存储介质及计算机设备。
背景技术
安卓系统是一种基于Linux操作系统的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑。并且,安卓系统具有良好的开发性,用户可以从应用商店或者其他途径下载和安装安卓应用,安卓应用通常以APK(Android applicationpackage)文件的方式提供。安装安卓应用时,安卓系统可以启动应用程序管理服务,该应用程序管理服务负责扫描系统分区,找到其中的应用程序文件,即以APK为后缀的文件,然后对这些文件进行解析,得到应用程序的相关信息,完成应用程序的安装过程。
目前,由于安卓系统本身对于从应用商店或者其他途径下载和安装的安卓应用,即第三方应用,无法做到恢复出厂设置后第三方应用依旧存在、用户不能卸载等功能,这就使得企业中的设备管理员在通过第三方应用对移动设备进行管控时,无法保证第三方应用的稳定运行,从而提升管控难度。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中企业中的设备管理员在通过第三方应用对移动设备进行管控时,无法保证第三方应用的稳定运行,从而提升管控难度的技术缺陷。
本申请提供了一种安卓应用的安装方法,所述方法包括:
获取指定应用的安装包,所述指定应用为第三方应用;
对所述安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中,所述系统分区被配置为供安卓系统进行读写操作,并在所述安卓系统恢复出厂设置时不被清除;
在所述系统分区中对所述安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对所述安装包的卸载权限进行修改,以使所述安装包不被卸载。
可选地,所述方法还包括:
根据用户输入的第二修改指令对所述安装包的接收广播权限进行修改,以使安装完成后得到的指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
可选地,所述对所述安装包的接收广播权限进行修改,包括:
在与所述安装包对应的包设置数据中添加第一标志字段,其中,所述第一标志字段表示允许所述指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
可选地,所述对所述安装包进行系统签名,包括:
获取安卓签名工具;
使用所述安卓签名工具对所述安装包进行系统签名,以使所述安装包具备系统权限。
可选地,所述在所述系统分区中对所述安装包执行安装操作,包括:
调用安卓应用安装服务;
在所述系统分区中,通过所述安卓应用安装服务对所述安装包执行安装操作。
可选地,所述对所述安装包的卸载权限进行修改,包括:
在与所述安装包对应的包设置数据中添加第二标志字段,所述第二标志字段表示所述安装包不可被卸载。
可选地,所述方法还包括:
在恢复出厂设置并进行初始化时,挂载所述系统分区;
为所述系统分区配置SElinux权限,以供所述安卓系统对所述系统分区进行读写操作;
当在所述系统分区中检测到所述指定应用的安装包时,重新对所述安装包执行安装操作。
本申请还提供了一种安卓应用的安装装置,包括:
安装包获取模块,用于获取指定应用的安装包,所述指定应用为第三方应用;
安装包拷贝模块,用对所述安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中,所述系统分区被配置为供安卓系统进行读写操作,并在所述安卓系统恢复出厂设置时不被清除;
应用安装模块,用在所述系统分区中对所述安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对所述安装包的卸载权限进行修改,以使所述安装包不被卸载。
本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述安卓应用的安装方法的步骤。
本申请还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述安卓应用的安装方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的安卓应用的安装方法、装置、存储介质及计算机设备,在使用安卓系统的移动设备中安装第三方应用时,可以先获取指定应用的安装包,并对该安装包进行系统签名,以使该安装包具备系统权限,接着本申请可以将签名后的安装包拷贝到预先配置的系统分区,由于该系统分区被配置为供安卓系统进行读写操作,因此,安卓系统可以读取并安装系统分区中的安装包,并且,在安装包具备系统权限的前提下,安卓系统还可以根据用户输入的第一修改指令修改该安装包的卸载权限,以使该安装包不可以被用户卸载,且在安卓系统恢复出厂设置时,也不可以被卸载,另外,由于系统分区还被配置为在安卓系统恢复出厂设置时不被清除,使得安卓系统在恢复出厂设置后,系统分区以及系统分区中存储的安装包都能够得以保留,从而保证第三方应用的稳定运行,并有效降低设备管理员的管控难度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种安卓应用的安装方法的流程示意图;
图2为本申请实施例提供的定制独立分区的过程示意图;
图3为本申请实施例提供的一种安卓应用的安装装置的结构示意图;
图4为本申请实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,由于安卓系统本身对于从应用商店或者其他途径下载和安装的安卓应用,即第三方应用,无法做到恢复出厂设置后第三方应用依旧存在、用户不能卸载等功能,这就使得企业中的设备管理员在通过第三方应用对移动设备进行管控时,无法保证第三方应用的稳定运行,从而提升管控难度。
基于此,本申请提出如下方案,具体参见下文:
在一个实施例中,如图1所示,图1为本申请实施例提供的一种安卓应用的安装方法的流程示意图,本申请提供了一种安卓应用的安装方法,所述方法可以包括:
S110:获取指定应用的安装包。
本步骤中,在使用安卓系统的移动设备中安装指定应用时,可以先获取该指定应用的安装包,接着将该安装包存放至指定位置进行安装,安装完成后即可在移动设备的主桌面上显示该指定应用。
其中,本申请的指定应用指的是第三方应用,而第三方应用在安装时一般使用APK文件作为安装包,APK(Android application package)是安卓系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个安卓应用的代码想要在使用安卓系统的移动设备上运行,必须先进行编译,然后被打包成为一个被安卓系统所能识别的文件才可以被运行,而这种能被安卓系统识别并运行的文件格式便是“APK”。一个APK文件内可以包含被编译的代码文件(.dex文件),文件资源(resources),原生资源文件(assets),证书(certificates),和清单文件(manifest file)。
S120:对安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中。
本步骤中,通过S110获取指定应用的安装包后,本申请可以对该安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中。
可以理解的是,所有的安卓应用都要求开发人员用一个证书进行数字签名,安卓系统不会安装没有进行签名的应用程序。在开发过程中,由于应用程序是以Debug模式进行编译的,开发人员可以将应用程序的安装包在模拟器上安装并运行,模拟器可以用默认的密钥和证书来对安装包进行签名,而在以发布模式编译时,安装包便无法通过模拟器进行自动签名,这时候就需要对安装包进行系统签名,使指定应用具有系统权限,例如可以支持静默安装和卸载APK文件等。
目前,常用的系统签名方式可以包括在ubuntu环境下进行编译、手动签名和在AndroidStudio环境下进行配置这三种方式,其中,实现最简单的是在AndroidStudo环境下进行配置,该方式的签名实现与正常的APK签名相同,唯一不同的就是签名文件是通过安卓系统生成的。
当安装包进行系统签名后,不仅可以对应用程序进行升级操作,还可以对应用程序进行模块化部署,进一步地,本申请对安装包进行系统签名后,可以使指定应用具有系统权限,从而使得指定应用在安装过程中,可以进行更多的权限设置。
另外,当本申请对安装包进行系统签名后,可以将签名后的安装包拷贝到预先配置的系统分区中,该系统分区被配置为供安卓系统进行读写操作,并在安卓系统恢复出厂设置时不被清除,这样系统分区以及系统分区中存放的安装包便可以在安卓系统重置时得以保留,从而避免系统分区被清除后,其中存放的数据也一并被清除的风险。
需要说明的是,使用安卓系统的移动设备像Windows分盘一样,移动设备上也有几个重要分区,用来组织和存储特定的数据。一般地,移动设备可以包括以下标准内部分区:/boot、/system、/recovery、/data、/cache、/misc,另外还有SD卡分区:/sdcard、/sd-ext。其中,/system、/recovery、/data作为最常用的分区,/system分区只读不可写,主要存放Android框架及其相关的配置,包括系统预装app。擦除这个分区后系统仍可启动,可以通过进入recovery模式或者bootloader安装新ROM的形式恢复;/recovery分区主要是备份区域,一旦其他分区被损坏,可以通过引导进入此分区机型恢复;/data也叫用户数据区,对开发者来说这也是最重要的分区之一,主要包含用户安装的应用、短信、设置等数据,如果擦除此区域,相当于重置系统,即恢复出厂默认设置。
而本申请中的系统分区则是在上述系统分区的基础上新增的独立分区。示意性地,如图2所示,图2为本申请实施例提供的定制独立分区的过程示意图;由图2可知,本申请所使用的系统分区指的是定制独立分区,该定制独立分区是在常用的系统分区的基础上新增的分区,且该定制独立分区被配置为供安卓系统进行读写操作,并在安卓系统恢复出厂设置时不被清除。
S130:在系统分区中对安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对安装包的卸载权限进行修改,以使安装包不被卸载。
本步骤中,通过S120将签名后的安装包拷贝指系统分区后,便可以在系统分区中对安装包执行安装操作,并且在执行过程中,还可以根据用户输入的第一修改指令对安装包的卸载权限进行修改,以使安装包不被用户所卸载,当然,在安卓系统恢复出厂设置时,该安装包也不会被卸载。
可以理解的是,安卓系统的权限一般分为四类,包括普通权限(normalpermission)、敏感权限(dangerous permission)、签名权限(signature permission)和系统签名权限(signatureOrSystem permission)。其中,普通权限也叫正常权限,即使拥有了该类权限,用户的隐私数据被泄露篡改的风险也很小;例如,设置时区的权限就是正常权限。敏感权限也叫危险权限,一旦某个应用获取了该类权限,用户的隐私数据就面临被泄露篡改的风险。签名权限只对拥有相同签名的应用开放。系统签名权限不光要求签名相同,还要求是同类的系统级应用,一般手机厂商开发的预制应用,才会用到该类权限。
当然,安卓系统还有两个特殊的敏感权限,需要在设置应用中授权。一个是SYSTEM_ALERT_WINDOW,设置悬浮窗,该权限可以通过发送intent actionSettings.ACTION_MANAGE_OVERLAY_PERMISSION来请求权限,并通过接口Settings.canDrawOverlays()来检测权限;另一个是WRITE_SETTINGS修改系统设置,该权限可以通过发送intent action Settings.ACTION_MANAGE_WRITE_SETTINGS来请求权限,并通过接口Settings.System.canWrite()来检测权限。
当本申请中的安装包具备系统权限后,可以根据用户输入的第一修改指令来修改系统设置,从而对安装包的卸载权限进行修改,以使安装包不被卸载。
需要说明的是,安卓系统默认第三方应用在安装后可以被用户卸载,并且在系统恢复出厂设置时,也可以被卸载,而当本申请的安装包进行系统签名并具有系统权限后,为了使得安装后的指定应用无法被卸载,用户可以输入第一修改指令,以对安装包的卸载权限进行修改,使得安装包不被卸载。
上述实施例中,在使用安卓系统的移动设备中安装第三方应用时,可以先获取指定应用的安装包,并对该安装包进行系统签名,以使该安装包具备系统权限,接着本申请可以将签名后的安装包拷贝到预先配置的系统分区,由于该系统分区被配置为供安卓系统进行读写操作,因此,安卓系统可以读取并安装系统分区中的安装包,并且,在安装包具备系统权限的前提下,安卓系统还可以根据用户输入的第一修改指令修改该安装包的卸载权限,以使该安装包不可以被用户卸载,且在安卓系统恢复出厂设置时,也不可以被卸载,另外,由于系统分区还被配置为在安卓系统恢复出厂设置时不被清除,使得安卓系统在恢复出厂设置后,系统分区以及系统分区中存储的安装包都能够得以保留,从而保证第三方应用的稳定运行,并有效降低设备管理员的管控难度。
在一个实施例中,所述方法还可以包括:
S140:根据用户输入的第二修改指令对所述安装包的接收广播权限进行修改,以使安装完成后得到的指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
本实施例中,由于安卓系统被配置为:用户安装的应用程序没有首次运行便无法接收系统开机广播,由此导致安装后并未运行的应用程序无法在系统开机后第一时间进行相关操作,如在后台运行等。
基于此,本申请在安装指定应用的安装包时,可以根据用户输入的第二修改指令来对安装包的接收广播权限进行修改,以使安装完成后的指定应用在未进行首次运行的情况下也能够接收到安卓系统发送的系统开机广播。
例如,本申请可以在设置应用时授权,通过WRITE_SETTINGS修改系统设置,通过发送intent action Settings.ACTION_MANAGE_WRITE_SETTINGS来请求权限,并通过接口Settings.System.canWrite()来来检测权限,从而使得安装完成后的指定应用具备未进行首次运行的情况下接收安卓系统发送的系统开机广播的权限。
需要说明的是,本申请在修改安装包的接收广播权限之前,开发人员已经安装包中的AndroidManifest.xml文件里添加了授予应用程序访问系统开机广播的权限,并在AndroidManifest.xml文件里注册了广播接收器。但由于当前的安装包不具备系统权限,无法声明应用程序在未进行首次运行的情况下也能够接收安卓系统发送的系统开机广播,而当本申请的安装包进行系统签名并具有系统权限后,便可以在安装时修改接收广播权限,使得安装完成后得到的指定应用在未进行首次运行的情况下也能够接收安卓系统发送的系统开机广播。
在一个实施例中,S140中对所述安装包的接收广播权限进行修改,可以包括:
在与所述安装包对应的包设置数据中添加第一标志字段,其中,所述第一标志字段表示允许所述指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
本实施例中,在对安装包的接收广播权限进行修改时,可以在安装包的包设置数据中添加第一标志字段,以便系统在处理系统开机广播时,可以读取指定应用中的第一标志字段所表示的含义,从而执行相关操作。
例如,本申请可以在PackageSetting中添加pkgSeuicFlags字段作为第一标志字段,并设置pkgSeuicFlags为allow_receive_without_first_run标志,在安卓系统处理系统开机广播的过程中,如果读取到pkgSeuicFlags中包含allow_receive_without_first_run标志,则安卓系统不对其进行拦截,从而使得指定应用在没有首次运行的情况下就能够接受系统开机广播。
需要说明的是,本申请在PackageSetting中添加pkgSeuicFlags字段作为第一标志字段之前,安卓系统需要定制framwork,以便在IntentResolver.java中判断pkgSeuicFlags是否包含allow_receive_without_first_run标志,如果包含,则允许接收系统开机广播。
在一个实施例中,S120中对所述安装包进行系统签名,可以包括:
S121:获取安卓签名工具。
S122:使用所述安卓签名工具对所述安装包进行系统签名,以使所述安装包具备系统权限。
本实施例中,在对安装包进行系统签名时,常用的系统签名方式可以包括在ubuntu环境下进行编译、手动签名和在AndroidStudio环境下进行配置这三种方式,本申请可以选择任意一种进行签名,当然,也可以选择其他签名方式,具体在此不做限制。
举例来说,本申请可以使用手动签名的方式对安装包进行系统签名,手动系统签名与安卓系统的APK重签名不同,重签名是之前APK已经签名完成,在实际使用时,需要更改签名文件,例如一些特殊的算法处理对于系统的包名和签名都有绑定操作,如更换则无法使用。而手动签名则是对通过AndroidStudio的build生成的无签名的APK文件进行手动系统签名的操作。
具体地,本申请手动签名之前,可以下载安卓签名工具,如下载SignApk.jar包,如果本地有安卓系统的源码,可以直接在本地的build\tools\signapk目录下查找到该jar包。当拿到系统定制厂商提供的security文件后,可以在security文件中找到media.pk8和platform.x509.pem两个文件,接着将SignApk.jar包、media.pk8和platform.x509.pem文件一起复制到包含需要签名的APK文件夹中,然后执行相关生成语句,生成的new.apk文件就是系统签名后APK文件。
在一个实施例中,S130中在所述系统分区中对所述安装包执行安装操作,可以包括:
S131:调用安卓应用安装服务。
S132:在所述系统分区中,通过所述安卓应用安装服务对所述安装包执行安装操作。
本实施例中,在对指定应用的安装包进行安装时,可以通过多种方式进行安装。例如,通过adb命令安装,adb命令可以包括adb push/install;用户下载的APK文件,可以通过系统安装器packageinstaller进行安装,packageinstaller是系统内置的应用程序,用于安装和卸载应用程序;另外还可以在系统开机时安装系统应用,以及电脑或手机上的应用商店自动安装,具体在此不做限制。
在一种具体的实现方式中,本申请可以通过系统安装器packageinstaller进行安装,该packageinstaller作为安卓应用安装服务,安卓系统可以调用该安卓应用安装服务来对系统分区中的安装包执行安装操作,以便在移动终端的主桌面上显示安装后的指定应用。
在一个实施例中,S130中对所述安装包的卸载权限进行修改,可以包括:
在与所述安装包对应的包设置数据中添加第二标志字段,所述第二标志字段表示所述安装包不可被卸载。
本实施例中,在对安装包的卸载权限进行修改时,可以在安装包的包设置数据中添加第二标志字段,以便用户在卸载指定应用时,系统可以在应用信息相关页面读取该第二标志字段,并判断是否执行卸载操作,或系统在恢复出厂设置时,读取该第二标志字段,并判断是否执行卸载操作。
例如,本申请可以在PackageSetting中添加pkgSeuicFlags字段,通过指定方式安装,设置pkgSeuicFlags为disable_uninstall标志,在应用信息相关页面,如果读取pkgSeuicFlags包含disable_uninstall标志,则移除卸载选项,同时在PackageInstallerService中uninstall函数也可以进行判断,如果读取pkgSeuicFlags包含disable_uninstall标志,则不执行卸载。
需要说明的是,本申请在PackageSetting中添加pkgSeuicFlags字段之前,安卓系统需要在Settings中定制卸载选项,并针对指定应用的pkgSeuicFlags字段来判断是否显示卸载选项,如果pkgSeuicFlags字段包含disable_uninstall标志,则去掉卸载选项,同时在PackageInstallerService中uninstall函数也可以用同样方法进行判断。
在一个实施例中,所述方法还可以包括:
S150:在恢复出厂设置并进行初始化时,挂载所述系统分区。
S151:为所述系统分区配置SElinux权限,以供所述安卓系统对所述系统分区进行读写操作。
S152:当在所述系统分区中检测到所述指定应用的安装包时,重新对所述安装包执行安装操作。
本实施例中,在指定应用安装过程中,对指定应用的安装包进行系统签名,并在拷贝到系统分区后,对安装包的卸载权限和/或接收广播权限进行修改后,最终安装完成后的指定应用,可以不被用户所卸载,也可以在系统恢复出厂设置时不被卸载,还可以在未进行首次运行的情况下接收安卓系统发送的系统开机广播。另外,本申请中的系统分区也被配置为安卓系统在恢复出厂设置时不被清除,因此,当安卓系统恢复出厂设置并进行初始化时,可以将未被清除的系统分区进行挂载,并重新为该系统分区配置SElinux权限,以供安卓系统对该系统分区进行读写操作。
由于系统分区未被清除,且指定应用也被配置为不可卸载,因此,挂载系统分区并为其分配SElinux权限后,安卓系统即可读取该系统分区中存放的安装包,当检测到指定应用对应的安装包时,可以对该安装包重新执行安装操作,从而使得指定应用能够在系统初始化之后,重新显示于桌面。
可以理解的是,Linux中除根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除此关联关系的过程称之为“卸载”。而本申请中的SElinux权限,则指的是安全增强型Linux(Security-Enhanced Linux)权限,它是一个linux内核模块,也是linux的一个安全子系统;SElinux权限的主要作用是最大限度地减少系统中服务进程可访问的资源(最小权限原则)。
下面对本申请实施例提供的安卓应用的安装装置进行描述,下文描述的安卓应用的安装装置与上文描述的安卓应用的安装方法可相互对应参照。
在一个实施例中,如图3所示,图3为本申请实施例提供的一种安卓应用的安装装置的结构示意图;本申请还提供了一种安卓应用的安装装置,可以包括安装包获取模块210、安装包拷贝模块220、应用安装模块230,具体包括如下:
安装包获取模块210,用于获取指定应用的安装包,所述指定应用为第三方应用。
安装包拷贝模块220,用对所述安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中,所述系统分区被配置为供安卓系统进行读写操作,并在所述安卓系统恢复出厂设置时不被清除。
应用安装模块230,用在所述系统分区中对所述安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对所述安装包的卸载权限进行修改,以使所述安装包不被卸载。
上述实施例中,在使用安卓系统的移动设备中安装第三方应用时,可以先获取指定应用的安装包,并对该安装包进行系统签名,以使该安装包具备系统权限,接着本申请可以将签名后的安装包拷贝到预先配置的系统分区,由于该系统分区被配置为供安卓系统进行读写操作,因此,安卓系统可以读取并安装系统分区中的安装包,并且,在安装包具备系统权限的前提下,安卓系统还可以根据用户输入的第一修改指令修改该安装包的卸载权限,以使该安装包不可以被用户卸载,且在安卓系统恢复出厂设置时,也不可以被卸载,另外,由于系统分区还被配置为在安卓系统恢复出厂设置时不被清除,使得安卓系统在恢复出厂设置后,系统分区以及系统分区中存储的安装包都能够得以保留,从而保证第三方应用的稳定运行,并有效降低设备管理员的管控难度。
在一个实施例中,所述装置还可以包括:
广播权限修改模块,用于根据用户输入的第二修改指令对所述安装包的接收广播权限进行修改,以使安装完成后得到的指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
在一个实施例中,所述广播权限修改模块,可以包括:
第一添加模块,用于在与所述安装包对应的包设置数据中添加第一标志字段,其中,所述第一标志字段表示允许所述指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
在一个实施例中,所述安装包拷贝模块220,可以包括:
工具获取模块,用于获取安卓签名工具。
签名模块,用于使用所述安卓签名工具对所述安装包进行系统签名,以使所述安装包具备系统权限。
在一个实施例中,所述应用安装模块230,可以包括:
服务调用模块,用于调用安卓应用安装服务。
第一安装模块,用于在所述系统分区中,通过所述安卓应用安装服务对所述安装包执行安装操作。
在一个实施例中,所述应用安装模块230,可以包括:
第二添加模块,用于在与所述安装包对应的包设置数据中添加第二标志字段,所述第二标志字段表示所述安装包不可被卸载。
在一个实施例中,所述装置还可以包括:
分区挂载模块,用于在恢复出厂设置并进行初始化时,挂载所述系统分区。
权限配置模块,用于为所述系统分区配置SElinux权限,以供所述安卓系统对所述系统分区进行读写操作。
第二安装模块,用于当在所述系统分区中检测到所述指定应用的安装包时,重新对所述安装包执行安装操作。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述安卓应用的安装方法的步骤。
在一个实施例中,本申请还提供了一种计算机设备,包括:一个或多个处理器,以及存储器。
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述安卓应用的安装方法的步骤。
示意性地,如图4所示,图4为本申请实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图4,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的安卓应用的安装方法。
计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(I/O)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种安卓应用的安装方法,其特征在于,所述方法包括:
获取指定应用的安装包,所述指定应用为第三方应用;
对所述安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中,所述系统分区被配置为供安卓系统进行读写操作,并在所述安卓系统恢复出厂设置时不被清除;
在所述系统分区中对所述安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对所述安装包的卸载权限进行修改,以使所述安装包不被卸载。
2.根据权利要求1所述的安卓应用的安装方法,其特征在于,所述方法还包括:
根据用户输入的第二修改指令对所述安装包的接收广播权限进行修改,以使安装完成后得到的指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
3.根据权利要求2所述的安卓应用的安装方法,其特征在于,所述对所述安装包的接收广播权限进行修改,包括:
在与所述安装包对应的包设置数据中添加第一标志字段,其中,所述第一标志字段表示允许所述指定应用在未进行首次运行的情况下接收所述安卓系统发送的系统开机广播。
4.根据权利要求1所述的安卓应用的安装方法,其特征在于,所述对所述安装包进行系统签名,包括:
获取安卓签名工具;
使用所述安卓签名工具对所述安装包进行系统签名,以使所述安装包具备系统权限。
5.根据权利要求1所述的安卓应用的安装方法,其特征在于,所述在所述系统分区中对所述安装包执行安装操作,包括:
调用安卓应用安装服务;
在所述系统分区中,通过所述安卓应用安装服务对所述安装包执行安装操作。
6.根据权利要求1所述的安卓应用的安装方法,其特征在于,所述对所述安装包的卸载权限进行修改,包括:
在与所述安装包对应的包设置数据中添加第二标志字段,所述第二标志字段表示所述安装包不可被卸载。
7.根据权利要求1-6中任一项所述的安卓应用的安装方法,其特征在于,所述方法还包括:
在恢复出厂设置并进行初始化时,挂载所述系统分区;
为所述系统分区配置SElinux权限,以供所述安卓系统对所述系统分区进行读写操作;
当在所述系统分区中检测到所述指定应用的安装包时,重新对所述安装包执行安装操作。
8.一种安卓应用的安装装置,其特征在于,包括:
安装包获取模块,用于获取指定应用的安装包,所述指定应用为第三方应用;
安装包拷贝模块,用对所述安装包进行系统签名,并将签名后的安装包拷贝到预先配置的系统分区中,所述系统分区被配置为供安卓系统进行读写操作,并在所述安卓系统恢复出厂设置时不被清除;
应用安装模块,用在所述系统分区中对所述安装包执行安装操作,并在执行过程中,根据用户输入的第一修改指令对所述安装包的卸载权限进行修改,以使所述安装包不被卸载。
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述安卓应用的安装方法的步骤。
10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至7中任一项所述安卓应用的安装方法的步骤。
CN202210609551.2A 2022-05-31 2022-05-31 安卓应用的安装方法、装置、存储介质及计算机设备 Pending CN114969720A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210609551.2A CN114969720A (zh) 2022-05-31 2022-05-31 安卓应用的安装方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210609551.2A CN114969720A (zh) 2022-05-31 2022-05-31 安卓应用的安装方法、装置、存储介质及计算机设备

Publications (1)

Publication Number Publication Date
CN114969720A true CN114969720A (zh) 2022-08-30

Family

ID=82957209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210609551.2A Pending CN114969720A (zh) 2022-05-31 2022-05-31 安卓应用的安装方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN114969720A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117077090A (zh) * 2023-10-16 2023-11-17 武汉星纪魅族科技有限公司 应用签名方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117077090A (zh) * 2023-10-16 2023-11-17 武汉星纪魅族科技有限公司 应用签名方法、装置、设备及存储介质
CN117077090B (zh) * 2023-10-16 2024-01-23 武汉星纪魅族科技有限公司 应用签名方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US20230297364A1 (en) System And Method For Upgrading Kernels In Cloud Computing Environments
US11106446B2 (en) Preinstalled application management method for mobile terminal and mobile terminal
EP2549380B1 (en) Information processing device, virtual machine generation method, and application software distribution system
US20090307781A1 (en) Program execution control method, its device, and execution control program for same
US8904518B2 (en) Information processing device, information processing method, and program distribution system
JP4647300B2 (ja) 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム
US6754828B1 (en) Algorithm for non-volatile memory updates
KR101280048B1 (ko) 운영체계들과 다른 소프트웨어의 인스톨을 제한하는 해킹방지 방법
KR101453225B1 (ko) 애플리케이션 배포 시스템, 애플리케이션 배포 방법, 단말 및 프로그램
MXPA05003943A (es) Parchado eficiente.
WO2009083785A1 (en) System, method, apparatus, mobile terminal and computer program product for providing secure mixed-language components to a system dynamically
US20060161898A1 (en) Method and system for project library dependency management
US7444624B2 (en) Method for the secure interpretation of programs in electronic devices
CN111052117B (zh) 在没有多元化创作的情况下安全地定义操作系统组成
CN114969720A (zh) 安卓应用的安装方法、装置、存储介质及计算机设备
CN113867768A (zh) 操作系统处理方法、装置、电子设备及存储介质
US11922158B2 (en) Unified local patch repository
CN111158771B (zh) 处理方法、装置及计算机设备
CN106775608B (zh) 独立系统进程的实现方法和装置
KR20040029089A (ko) 네트워크 환경에서 사용하기 위한 디바이스
KR20070060448A (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
CN110990874A (zh) 一种用于Android文件的安全防护方法和系统
CN112579113A (zh) 应用程序的升级方法、装置、存储介质及终端
US20230153093A1 (en) Systems and methods for managing workspaces in a heterogeneous workspace environment
CN114168169A (zh) 一种微码更新方法、装置、设备及存储介质

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