一种应用管理方法及装置与流程

文档序号:14571720发布日期:2018-06-01 22:34阅读:144来源:国知局
一种应用管理方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种应用管理方法及装置。



背景技术:

在基于Android系统的计算机设备上,应用可以分为两类:系统应用和第三方应用,系统应用的权限高于第三方应用的权限。第三方应用可卸载,在卸载第三方应用过程中,会将该第三方应用的安装包(Android package,apk)删掉。系统应用一般在系统目录(system目录)下,由于系统目录为只读,因此无法执行删除和修改,即无法卸载系统应用。

为了满足用户对系统应用进行卸载的需求,一种现有技术的做法是:将系统应用放到可卸载应用的目录下,并对该目录下的系统应用赋予特殊的权限,以便允许卸载该系统应用。但是,这种做法将会导致系统的安全性上出现漏洞。

可见,目前业界亟需一种能够保证系统安全性的系统应用卸载方法。



技术实现要素:

本申请实施例提供一种应用管理方法及装置,用以实现在保证系统安全性的情况下对系统应用进行卸载。

第一方面,提供一种应用管理方法,包括:

接收用于请求卸载系统应用的指令后,删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中;

当扫描系统目录时,若当前扫描到的目录在所述第一列表中,或所述当前扫描到的目录下的系统应用安装包所对应的系统应用包名在所述第二列表中,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装。

可选地,所述当扫描系统目录时,若当前扫描到的目录在所述第一列表中,或所述当前扫描到的目录下的系统应用安装包所对应的系统应用包名在所述第二列表中,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装,包括:

当扫描应用目录时,判断当前扫描到的目录是否在所述第一列表中,若是,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装,否则执行:

对所述当前扫描到的目录下的系统应用安装包进行轻量级解析,得到所述系统应用安装包对应的系统应用包名,并判断所述得到的系统应用包名是否在所述第二列表中,若是,则放弃基于所述当前扫描到的应用目录下的系统应用安装包进行系统应用的安装。

可选地,所述删除所述系统应用的数据,包括:

从数据目录下删除所述系统应用的数据;

从存储卡公共文件目录下删除所述系统应用相关的公共数据。

可选地,所述删除所述系统应用的相关信息,包括:

从已安装系统应用列表中,删除所述系统应用的相关信息;

从已安装应用程序基本信息数据结构中,删除所述系统应用的基本信息。

可选地,所述接收用于请求卸载系统应用的指令后,还包括:

判断所述指令所请求卸载的系统应用是否允许被卸载;

所述删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录的路径信息存储到第一列表中,将所述系统应用的包名存储到第二列表中,包括:

若所请求卸载的系统应用允许被卸载,则删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录的路径信息存储到第一列表中,将所述系统应用的包名存储到第二列表中。

第二方面,提供一种应用管理装置,包括:

应用卸载模块,用于接收用于请求卸载系统应用的指令后,删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中;

启动处理模块,用于当扫描系统目录时,若当前扫描到的目录在所述第一列表中,或所述当前扫描到的目录下的系统应用安装包所对应的系统应用包名在所述第二列表中,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装。

可选地,所述启动处理模块具体用于:

当扫描应用目录时,判断当前扫描到的目录是否在所述第一列表中,若是,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装,否则执行:

对所述当前扫描到的目录下的系统应用安装包进行轻量级解析,得到所述系统应用安装包对应的系统应用包名,并判断所述得到的系统应用包名是否在所述第二列表中,若是,则放弃基于所述当前扫描到的应用目录下的系统应用安装包进行系统应用的安装。

可选地,所述应用卸载模块具体用于:

从数据目录下删除所述系统应用的数据;

从存储卡公共文件目录下删除所述系统应用相关的公共数据。

可选地,所述应用卸载模块具体用于:

从已安装系统应用列表中,删除所述系统应用的相关信息;

从已安装应用程序基本信息数据结构中,删除所述系统应用的基本信息。

第三方面,提供一种计算机设备,包括:一个或多个处理器;以及一个或多个存储器,所述存储器上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述计算机设备执行上述第一方面中任一项所述的方法。

第四方面,提供一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得计算机设备执行上述第一方面中任一项所述的方法。

第五方面,提供一种计算机程序产品,用于存储计算机程序,该计算机程序用于执行上述第一方面中任一项所述的方法。

本申请的上述实施例中,在接收用于请求卸载系统应用的指令后,删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中,从而卸载系统应用的数据和应用相关信息,并针对已删除的系统应用进行记录。当扫描系统目录时,若当前扫描到的目录在所述第一列表中,或所述当前扫描的目录下的系统应用安装包所对应的系统应用包名在所述第二列表中,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装,从而在启动时避免对已删除的系统应用进行重新安装。一方面,上述实施例中,在卸载系统应用的过程中删除了系统应用的相关数据和信息,保证了该系统应用在卸载后处于不可查询的状态,另一方面,在系统目录扫描过程中对已被卸载的系统应用不再进行重新安装,因此,虽然被卸载的系统应用的安装包并未删除,其权限也没有改变,但该安装包无法再触发系统应用的重新安装过程,进而实现了在保证系统安全性的情况下对系统应用进行卸载。

附图说明

图1为本申请实施例提供的一种系统应用卸载流程示意图;

图2为本申请另一实施例提供的系统应用卸载流程示意图;

图3为本申请实施例提供的开机启动流程示意图;

图4为本申请另一实施例提供的开机启动流程示意图;

图5为本申请实施例提供的应用管理装置的结构示意图;

图6为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

本申请实施例可应用于基于Android系统计算机设备,该计算机设备可以是任何具有数据处理能力的设备,比如可以是终端,具体可以包括:智能手机、平板电脑、笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、智能穿戴设备或车载终端、智能电视等类似设备。

本申请实施例中,在系统应用卸载过程中,接收用于请求卸载系统应用的指令后,删除该系统应用的数据以及该系统应用的相关信息,并将该系统应用的安装包所在的目录信息存储到第一列表中,将该系统应用的包名存储到第二列表中。在系统目录扫描过程中,若当前扫描到的目录在上述第一列表中,或当前扫描到的目录下的系统应用安装包所对应的系统应用包名在上述第二列表中,则放弃基于当前扫描到的目录下的系统应用安装包进行系统应用的安装。采用本申请可以实现在保证系统安全性的情况下对系统应用进行卸载。

下面结合附图对本申请实施例进行详细描述。

参见图1,为本申请实施例提供的一种系统应用卸载流程示意图。该流程可由应用卸载装置实现。该装置可以是计算机设备,或者是计算机设备中的装置。

如图所示,该流程可以包括:

S101:接收用于请求卸载系统应用的指令。

该步骤中,用户可以通过系统提供的应用程序管理界面,选择需要卸载的系统应用程序,以生成请求卸载系统应用程序的指令。当然,本申请实施例也允许采用其他方式由用户提交用于请求卸载系统应用的指令。

可选地,用户通过应用程序管理界面选择需要卸载的应用程序时,可以选择系统应用也可以选择第三方应用,此种情况下,本申请实施例中,当接收到用于请求卸载应用的指令后,可以首先判断该指令所请求卸载的是系统应用还是第三方应用。以Android系统为例,一种判断方法可以是:判断请求卸载的应用的安装包(apk)所在的目录是否在系统目录(System目录)下。若是,则判定所请求卸载的应用为系统应用,若请求卸载的应用的安装包所在的目录为数据目录(data目录),则判定所请求卸载的应用为第三方应用。

如果判定所请求卸载的应用为系统应用,则可按照以下提供的应用卸载流程进行处理,若判定所请求卸载的应用为第三方应用,则可按照现有技术的方式进行处理。以Android系统为例,按照现有技术卸载第三方应用的过程可以包括:将data目录下该第三方应用的数据以及apk文件删除。

可选地,若判定所请求卸载的应用为系统应用,则还可以判断该系统应用是否允许卸载。如果允许,则按照以下提供的应用卸载流程进行处理,否则结束本次卸载流程。其中,可以由厂家自行决定是所有系统应用都支持卸载还是部分系统应用支持卸载。具体地,可以采用白名单方式,将允许卸载的系统应用包含在该白名单中。

S102:删除所述系统应用的数据。

该步骤中,可从数据目录(比如data目录)下删除所述系统应用的数据,以及从存储卡公共文件目录下删除所述系统应用相关的公共数据。其中,数据目录下通常存储有应用程序的数据(该数据对于用户来说通常不可见),存储卡公共文件目录下通常存储有公共文件,比如相机拍摄的图片等(该部分数据对于用户来说通常可见)。

以Android系统为例,一个应用(包括系统应用和第三方应用)主要有三部分相关数据:

-data/data下的应用数据库信息,该目录下主要保存应用的一些数据,这些数据对于用户来说不可见;

-sdcard/目录下的公开文件,主要保存如相机拍的照片之类的用户可见数据。

-apk文件,对于系统应用来说,其apk文件存在于system目录下,对于第三方应用来说,其apk文件存在于data目录下。apk文件是应用程序本体,包含了程序代码。

在S102中,可删除data/data下属于该系统应用的数据,以及sdcard/目录下该系统应用相关的公共文件。

S103:删除所述系统应用的相关信息。

其中,所述系统应用的相关信息,可以包括该系统应用的基本信息,比如权限、签名等。

该步骤中,可从已安装系统应用列表中删除所述系统应用的相关信息,以及从已安装应用程序基本信息数据结构中删除所述系统应用的基本信息。

以Android系统为例,系统中有关应用程序的信息存储在mPackages列表和mSettings数据结构中。其中,mPackages列表用于记录已安装的系统应用的相关信息,比如系统应用的包名,mSettings数据结构用于保存系统应用的基本信息,比如权限、签名等。S103中,可将所请求卸载的系统应用的包名从mPackages列表中删除,将该系统应用的基本信息从mSettings数据结构中删除。

S104:将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中。

其中,第一列表也称目录黑名单,用于记录被卸载的系统应用所在的目录。第二列表也称包名黑名单,用于记录被卸载的系统应用的包名。所述第一列表(目录黑名单)和第二列表(包名黑名单)在开机启动时使用(具体可参见本申请实施例图3所示的流程)。

可选地,上述流程中,在S102之前,可以首先判断所请求卸载的系统应用是否更新,若有更新,则可以首先卸载该更新,然后转入S102执行系统应用卸载过程,若无更新,则可以直接转入S102执行系统应用卸载过程。

可选地,上述流程所示的步骤时序仅为一种示例,本申请实施例并不仅限于上述流程所示的执行顺序。比如,S102、S103和S104的先后顺序可以调整,也可以同时进行。

为了更清楚地理解本申请的上述实施例,下面以Android系统为例,结合图2进行详细描述。

参见图2,为本申请另一实施例提供的系统应用卸载流程示意图。本流程以请求卸载包名为com.android.gallery3d的系统应用(即图库应用)为例描述,该应用的apk名为gallery3d.apk,该apk所在目录为system/app/Gallery3D/,该应用的应用数据位于data/data/com.android.gallery3d,公开数据位于/sdcard/Android/app/com.android.gallery3d。

如图所示,该流程可包括:

S201:接收应用卸载指令,该应用卸载指令请求卸载包名为com.android.gallery3d的应用。

S202:判断所请求卸载的应用程序是否是系统应用程序,若是,则转入S203,否则转入S211。

该步骤中,由于包名为com.android.gallery3d的应用的apk所在的目录为系统目录(system/app/Gallery3D/),因此判定该应用为系统应用。

S203:判断所请求卸载的系统应用是否有更新,若有,则转入S204,否则转入S205。

S204:卸载位于data目录下的该系统应用的系统更新内容。

S205:判断请求卸载的系统应用是否允许卸载,若允许,则转入S206,否则结束本流程。

本例子中,以包名为com.android.gallery3d的系统应用允许被卸载为例描述。

S206:通过系统服务获取所请求卸载的系统应用的相关信息,所述相关信息具体可包括:

该系统应用的apk所在的目录:system/app/Gallery3D/;

该系统应用的包名;com.android.gallery3d。

将上述相关信息按照特定的方式存储到uninstalled_system.xml文件中。该文件可以按如下格式存储数据:

<package name="com.testapk3.main"/>

<folder name="system/app/Gallery3D/"/>

本申请实施例中,针对每一个卸载的系统应用可以对应生成类似上面两条数据,其中,package标签(即<package name="com.testapk3.main"/>)对应的是包名,folder标签(即<folder name="system/app/Gallery3D/"/>)对应的是目录名。uninstalled_system.xml文件中所有卸载的系统应用的folder标签可以构成第一列表,或者可根据该文件中的所有卸载的系统应用的folder标签生成第一列表(即目录黑名单)。uninstalled_system.xml文件中所有卸载的系统应用的package标签可以构成第二列表(即包名黑名单),或者可根据该文件中的所有卸载的系统应用的package标签生成第二列表(即包名黑名单)。

S207:清理data/data/com.android.gallery3d目录,将该目录下的数据删除。

S208:清理公开目录数据,即,清理/sdcard/Android/app/com.android.gallery3d,删除该目录下的文件并删除该目录。

S209:遍历mPackages列表和mSettings数据结构,将mPackages列表和mSettings数据结构中包名为com.android.gallery3d的项删除。

S210:发送卸载成功信息,更新系统状态。

S211:执行第三方应用卸载流程。

上述图1或图2所示的系统应用卸载流程中,对系统应用apk本身未做任何处理,而是将apk相关的信息(比如包括该系统应用的数据和该系统应用的基本信息)从系统中彻底删除了,在此之后,在不重新开机启动的情况下,系统目录下已被卸载的系统应用将不会再运行。

当重新开机启动时,将扫描整个系统目录,为了在扫描系统目录时,不再对已被卸载的系统应用重新安装,本申请实施例提供了以下开机启动流程,如图3所示。

参见图3,为本申请实施例提供的开机启动流程,该流程可包括:

S301:扫描系统目录。

S302:判断当前扫描到的系统目录是否在上述第一列表(即目录黑名单)中,或当前扫描的目录下系统应用安装包所对应的系统应用包名是否在上述第二列表(即包名黑名单)中,若是,则转入S303,否则转入S304。

S303:放弃基于当前扫描到的应用目录下的系统应用安装包进行系统应用的安装,并转入S305。

S304:基于当前扫描到的目录下的系统应用安装包安装相应的系统应用,并转入S305。

S305:若系统目录扫描完成,则结束本流程,否则转入S301继续进行系统目录扫描。

可选地,上述流程的S302中,可以先判断当前扫描到的系统目录是否在上述第一列表(目录黑名单)中,若是,则放弃基于当前扫描到的目录下的系统应用安装包进行系统应用的安装,否则可以对当前扫描到的目录下的系统应用安装包进行轻量级解析,得到系统应用安装包对应的系统应用包名,并判断该包名是否在上述第二列表(包名黑名单)中,若是,则放弃基于当前扫描到的目录下的系统应用安装包进行系统应用的安装。

为了更清楚地理解本申请的上述实施例,下面以Android系统为例,基于图3的场景,结合图4进行详细描述。

S401:开机启动后,读取uninstalled_system.xml文件,根据uninstalled_system.xml文件中的folder标签生成目录黑名单,根据uninstalled_system.xml文件中的package标签生成包名黑名单。

本例子中,目录黑名单中包括图库应用所在的目录:system/app/Gallery3D/,包名黑名单中包括该图库应用的包名:com.testapk3.main。

S402:扫描system/app目录,该目录为系统应用所在的目录。

S403:判断当前扫描到的目录是否在目录黑名单中,若不在,则转入S404,否则转入S407。

本例子中,由于图库应用的apk没有被删除,其所在的目录为system/app/Gallery3D,在目录黑名单中,因此转入S407。

S404:对当前扫描到的目录中的应用apk进行轻量级解析,得到相应应用的一些基本信息,如应用包名、签名等信息。

S405:判断解析得到的应用包名是否在包名黑名单中,若不在,则转入S406,否则转入S407。

其中,若判定解析得到的应用的包名在包名黑名单中,则说明该应用的目录发生了变化,但该应用之前已被限制,因此不再执行针对该应用的安装流程。

S406:根据当前扫描到的目录下的应用apk安装相应的应用。

S407:若system/app目录扫描完成,则结束本流程,否则返回S402继续扫描该目录。

本申请实施例中,在接收用于请求卸载系统应用的指令后,可以删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中,从而卸载系统应用的数据和应用相关信息,并针对已卸载的系统应用进行记录。当扫描系统目录时,若当前扫描到的目录在第一列表中,或当前扫描的目录下系统应用安装包所对应的系统应用包名在第二列表中,则放弃基于该当前扫描到的目录下的系统应用安装包进行系统应用的安装,从而在启动时避免对已卸载的系统应用进行重新安装。虽然系统应用的安装包并未删除,且其权限没有改变,但在开机启动对系统目录扫描时,对被记录为已卸载的系统应用放弃对其进行重新安装,因此实现了在保证系统安全性的情况下对系统应用进行卸载。

可以理解的是,本申请实施例为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元(器、器件)及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。

本申请实施例可以根据上述方法示例对执行上述方法的装置进行功能单元(器、器件)的划分,例如,可以对应各个功能划分各个功能单元(器、器件),也可以将两个或两个以上的功能集成在一个处理单元(器、器件)中。上述集成的单元(器、器件)既可以采用硬件的形式实现,也可以采用软件功能单元(器、器件)的形式实现。需要说明的是,本申请实施例中对单元(器、器件)的划分是示意性的,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元(器、器件)的情况下,图5示出了本申请实施例提供的一种应用管理装置的结构示意图。参阅图5所示,应该管理装置500包括:应用卸载模块501、启动处理模块502。

应用卸载模块501用于接收用于请求卸载系统应用的指令后,删除所述系统应用的数据以及所述系统应用的相关信息,并将所述系统应用的安装包所在的目录信息存储到第一列表中,将所述系统应用的包名存储到第二列表中。启动处理模块502用于当扫描系统目录时,若当前扫描到的目录在所述第一列表中,或所述当前扫描到的目录下的系统应用安装包所对应的系统应用包名在所述第二列表中,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装。

可选地,启动处理模块502具体用于:当扫描应用目录时,判断当前扫描到的目录是否在所述第一列表中,若是,则放弃基于所述当前扫描到的目录下的系统应用安装包进行系统应用的安装,否则执行:对所述当前扫描到的目录下的系统应用安装包进行轻量级解析,得到所述系统应用安装包对应的系统应用包名,并判断所述得到的系统应用包名是否在所述第二列表中,若是,则放弃基于所述当前扫描到的应用目录下的系统应用安装包进行系统应用的安装。

可选地,应用卸载模块501具体用于:从数据目录下删除所述系统应用的数据,从存储卡公共文件目录下删除所述系统应用相关的公共数据。

可选地,应用卸载模块501具体用于:从已安装系统应用列表中,删除所述系统应用的相关信息,从已安装应用程序基本信息数据结构中,删除所述系统应用的基本信息。

图6示出了本申请实施例提供的计算机设备600的结构示意图,即示出了应用管理装置500的另一结构示意图。参阅图6所示,计算机设备600包括处理器601、网络接口602。其中,处理器601也可以为控制器。所述处理器601被配置为支持应用管理装置500执行图1至图4中涉及的功能。网络接口602被配置为应该管理装置500收发消息的功能。计算机设备600还可以包括存储器603,存储器603用于与处理器601耦合,其保存该设备必要的程序指令和数据。其中,处理器601、网络接口602和存储器603相连,该存储器603用于存储指令,该处理器601用于执行该存储器603存储的指令,以控制网络接口602收发消息,完成上述方法中应用管理装置500执行相应功能的步骤。

本申请实施例中,应用管理装置500以及计算机设备600所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。

需要说明的是,本申请实施例上述涉及的处理器可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。其中,所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。

本申请实施例还提供一种计算机存储介质,用于存储一些指令,这些指令被执行时,可以完成前述应用管理装置所涉及的任意一种方法。

本申请实施例还提供一种计算机程序产品,用于存储计算机程序,该计算机程序用于执行上述方法实施例中涉及的应用管理方法。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1