安卓系统应用分区文件保护方法及终端与流程

文档序号:12363292阅读:475来源:国知局
安卓系统应用分区文件保护方法及终端与流程

本发明涉及通信技术,尤其涉及一种安卓系统应用分区文件保护方法及终端。



背景技术:

安卓操作系统是以Linux为基础的开源操作系统,可以应用于手机、电视、机顶盒等终端中。在基于安卓操作系统的终端中包括一个应用分区,该应用分区用于存储终端厂家所预装的系统应用程序、定制软件等。应用分区一般都设置为只读分区,用以保证终端厂商预装的软件不被修改。但是部分用户可以通过获取系统的Root权限,即超级管理员权限来对应用分区的内容进行删除、替换等操作,导致终端厂商的利益被损害。

现有技术中,安卓操作系统内部会通过设置尽量多的门槛来尽量避免用户获取Root权限,进而避免基于安卓操作系统的终端的应用分区中的所保存的内容不被修改。

但是,由于安卓操作系统为开源操作系统,部分用户可以通过分析源代码得到获取Root权限的方法,因此,现有技术并不能完全避免用户获取Root权限,无法保证终端的应用分区中的文件不被修改。



技术实现要素:

本发明提供一种安卓系统应用分区文件保护方法及终端,用于解决现有技术中无法保证终端的应用分区中的文件不被修改的问题。

本发明第一方面提供一种安卓系统应用分区文件保护方法,包括:

获取终端的应用分区中的第一文件,其中,所述第一文件为所述终端的应用分区中的任一文件,所述终端为基于安卓操作系统的终端,所述终端的应用分区为安卓操作系统中的系统System分区;

对所述第一文件进行校验处理,获取所述第一文件对应的校验结果;

判断所述第一文件对应的校验结果是否与所述终端中预存的原始应用分区文件校验结果不一致,若是,则对所述终端的应用分区进行文件恢复处理;其中,所述原始应用分区文件校验结果为生成所述终端的软件系统时,对写入所述终端的应用分区中的文件进行校验处理所获得的。

本发明第二方面提供一种终端,包括:

获取模块,用于获取终端的应用分区中的第一文件,其中,所述第一文件为所述终端的应用分区中的任一文件,所述终端为基于安卓操作系统的终端,所述终端的应用分区为安卓操作系统中的系统System分区;

第一处理模块,用于对所述第一文件进行校验处理,获取所述第一文件对应的校验结果;第二处理模块,用于判断所述第一文件对应的校验结果是否与所述终端中预存的原始应用分区文件校验结果不一致,若是,则对所述终端的应用分区进行文件恢复处理;其中,所述原始应用分区文件校验结果为生成所述终端的软件系统时,对写入所述终端的应用分区中的文件进行校验处理所获得的。

本发明所提供的安卓系统应用分区文件保护方法及终端,终端在生成软件系统时首先使用特定的校验算法对需要写入应用分区的文件进行校验处理,获取并保存校验结果作为标准校验结果。后续当终端开机启动时,终端使用同样的校验算法对应用分区中的文件进行校验处理,并判断本次的校验结果与标准校验结果是否一致,如果不一致,则说明应用分区中的文件被修改,终端会据此结果对应用分区的文件进行恢复,从而保证应用分区中的文件不被修改。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的安卓系统应用分区文件保护方法实施例一的流程示意图;

图2为本发明提供的安卓系统应用分区文件保护方法实施例二的流程示意图;

图3为原始应用分区文件校验结果的示例图;

图4为本发明提供的安卓系统应用分区文件保护方法实施例三的流程示意图;

图5为本发明提供的安卓系统应用分区文件保护方法实施例四的流程示意图;

图6为本发明提供的安卓系统应用分区文件保护方法的完整流程示意图;

图7为本发明提供的终端实施例一的模块结构图;

图8为本发明提供的终端实施例二的模块结构图;

图9为本发明提供的终端实施例三的模块结构图;

图10为本发明提供的终端实施例四的模块结构图;

图11为本发明提供的终端实施例五的模块结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明所提供的方法一般在终端开机启动过程中执行,在终端启动过程中,一旦确定出应用分区文件被修改,则可以及时对应用分区进行恢复。

图1为本发明提供的安卓系统应用分区文件保护方法实施例一的流程示意图,该方法的执行主体为基于安卓操作系统的终端,例如手机、电视、机顶盒等。如图1所示,该方法包括:

S101、获取终端的应用分区中的第一文件,其中,该第一文件为终端的应用分区中的任一文件。

其中,终端的应用分区为安卓操作系统中的系统(System)分区。

在安卓操作系统中,包括System分区、数据(Data)分区、缓存(Catch)分区以及SD卡分区等,不同的分区所需要的操作权限不同,System分区的权限要求最严格,只有具有Root权限才可以来操作该分区,而其他分区的权限限制相对宽松。因此,System分区一般会用来存储终端厂商所预装的系统应用程序、定制软件等,即存储上述第一文件,以尽量避免用户对预装和定制软件进行改动。

本步骤中,首先读取System分区中的文件,以用于后续的校验及判断处理。

S102、对第一文件进行校验处理,获取第一文件对应的校验结果。

具体地,对第一文件进行校验处理时,可以使用安全哈希校验算法(Secure Hash Algorithm,简称SHA1)、循环冗余校验(Cyclic Redundancy Check,简称CRC)校验方法等。对第一文件按照特定的校验算法进行校验处理之后,会得到校验结果。例如,如果使用SHA1算法对第一文件进行校验处理之后,会得到一个SHA1值。

S103、判断第一文件对应的校验结果是否与终端中预存的原始应用分区文件校验结果不一致,若是,则对终端的应用分区进行文件恢复处理。其中,原始应用分区文件校验结果为生成终端的软件系统时,对写入终端的应用分区中的文件进行校验处理所获得的。

当获取到第一文件的校验结果之后,终端会将该校验结果与原始应用分区文件校验结果进行比较。其中,原始应用分区文件校验结果是在生成终端的软件系统时生成的。具体地,在终端的软件系统编译完成之后就会生成需要写入应用分区的多个文件,在将这些文件写入应用分区之前,终端首先会使用特定的校验算法对这些文件进行校验处理,每个文件都会生成一个校验码,终端将这些校验码都记入同一个文件中,从而形成原始应用分区文件校验结果。

由于原始应用分区文件校验结果是在生成软件系统时对写入应用分区的文件进行校验而生成的,因此,原始应用分区文件校验结果是原始应用分区的文件校验结果,因此,可以将原始应用分区文件校验结果作为基准来判断应用分区的文件是否被修改。

需要说明的是,终端在生成原始应用分区文件校验结果时所使用的校验算法与对第一文件进行校验的校验算法应保持一致,以保证未被修改的文件验证的正确性。

在终端对校验结果进行比较时,如果应用分区中的某个文件没有被修改过,那么无论进行多少次校验,其校验结果都应该是一致的,而如果应用分区中的某个文件被修改或删除了,则本次校验的结果就会与原始应用分区文件校验结果不同,即可以通过两次校验来确定出应用分区中的文件是否被修改。

本实施例中,终端在生成软件系统时首先使用特定的校验算法对需要写入应用分区的文件进行校验处理,获取并保存校验结果作为标准校验结果。后续当终端开机启动时,终端使用同样的校验算法对应用分区中的文件进行校验处理,并判断本次的校验结果与标准校验结果是否一致,如果不一致,则说明应用分区中的文件被修改,终端会据此结果对应用分区的文件进行恢复,从而保证应用分区中的文件不被修改。

在上述实施例的基础上,本实施例涉及生成原始应用分区文件校验结果的过程,即,图2为本发明提供的安卓系统应用分区文件保护方法实施例二的流程示意图,如图2所示,在上述步骤S101之前,还包括:

S201、对写入终端的应用分区中的文件进行校验处理,获取校验结果。

如前所述,原始应用分区文件校验结果是在生成终端的软件系统时生成的,因此,本实施例所涉及的操作都在生成终端的软件系统时进行。

具体地,在终端的软件系统编译完成之后就会生成需要写入应用分区的多个文件,在将这些文件写入应用分区之前,终端会对这些文件使用特定的校验算法逐一进行校验处理,进而,针对每个文件终端都会获取到一个校验结果。

S202、根据终端的应用分区中的文件的路径信息、文件名称以及校验结果,生成原始应用分区文件校验结果。

原始应用分区文件校验结果中记录了终端的应用分区中所有文件的路径信息、文件名称,以及每个文件对应的校验结果,每个文件的路径信息、文件名称以及校验结果在原始应用分区文件校验结果中对应一条记录。因此,原始应用分区文件校验结果可以看作是文件路径和文件名称与校验结果的映射关系表。图3为原始应用分区文件校验结果的示例图,如图3所示,终端的应用分区中的每个文件都对应一条记录,这条记录中包括文件路径信息以及文件名称,并包括其所对应的校验结果,图3所示的校验结果是通过SHA1校验算法所获得的校验结果,但本发明并不以此为限。

S203、对原始应用分区文件校验结果对应的文件进行加密处理。

当根据上述步骤得到原始应用分区文件校验结果后,终端会形成该结果对应的文件,并对该文件进行加密处理。由于原始应用分区文件校验结果是后续进行应用分区是否被修改的判断中的重要依据,因此,终端对原始应用分区文件校验结果对应的文件进行加密处理,能够防止原始应用分区文件校验结果对应的文件被手动修改,保证后续的判断结果的准确和有效性。

可选地,终端可以使用RSA2048+SHA256算法对原始应用分区文件校验结果对应的文件进行加密,该加密算法对应一个特定的加密密钥,终端会将该加密密钥进行保存,以用于后续的解密过程中。

本实施例中,终端在生成软件系统时对写入应用分区的文件进行校验处理,从而形成标识文件目录和名称与校验结果映射关系的原始应用分区文件校验结果,由于该原始应用分区文件校验结果中记录了文件目录和名称与校验结果的映射关系,因此,能够使得后续可以根据这些映射关系来判断应用分区中的文件是否被修改,从而保证判断结果的准确性。

另外,终端还对原始应用分区文件校验结果所对应的文件进行加密,从而保证该文件不被手动修改,进一步保证后续的判断结果的准确和有效性。

在上述实施例的基础上,本实施例涉及对应用分区文件校验结果对应的文件进行解密处理的具体过程,即,图4为本发明提供的安卓系统应用分区文件保护方法实施例三的流程示意图,如图4所示,在上述步骤S101之前,还包括:

S301、对应用分区文件校验结果对应的文件进行解密处理。

如前所述,在终端生成软件系统时,会对原始应用分区文件校验结果对应的文件进行加密处理,终端会将本次加密的加密密钥保存在终端系统中。

本步骤中,终端会基于该加密密钥对原始应用分区文件校验结果对应的文件进行解密处理。

以上述RSA2048+SHA256算法为例,终端在解密过程中,首先获取该算法对应的加密密钥,再使用该加密密钥对原始应用分区文件校验结果对应的文件进行解密处理。

S302、若解密处理的结果为解密成功,则获取终端的应用分区中的第一文件,若解密处理的结果为解密失败,则对终端的应用分区进行文件恢复处理。

如果原始应用分区文件校验结果对应的文件被修改过,则使用加密密钥进行解密时就会解密失败,因此,当解密失败,终端就会对应用分区进行文件恢复处理。

本实施例中,在对第一文件进行校验处理之前首先对原始应用分区文件校验结果对应的文件进行解密处理,如果解密失败,则可以确定原始应用分区文件校验结果对应的文件被修改,进而可以确定应用分区中的文件可能被修改,此时,终端不再继续对应用分区的文件进行校验处理,而是直接对应用分区进行文件恢复处理,这样的处理不仅能够保证应用分区得到恢复,同时,又避免了继续进行后续处理,因此节省了处理时间,提高了处理效率。

在上述实施例的基础上,本实施例涉及判断应用分区的文件,即第一文件校验结果的具体地方法,即,上述步骤S103具体为:

判断原始应用分区文件校验结果中是否存在第一文件对应的路径、文件名称以及第一文件对应的校验结果,若否,则确定第一文件对应的校验结果与终端中预存的原始应用分区文件校验结果不一致。

如前所述,原始应用分区文件校验结果中记录了文件路径和文件名称与校验结果之间的映射关系,本实施例在判断原始应用分区文件校验结果中是否存在第一文件对应的路径、文件名称以及第一文件对应的校验结果时,可以分为两步进行判断,首先,针对第一文件,在原始应用分区文件校验结果中进行查找,查找与第一文件的路径和文件名称完全一致的路径和文件名称,如果查找不到,则可以确定第一文件的校验结果与原始应用分区文件校验结果不一致,不再需要进行后续判断;如果能够查找到,则继续判断第一文件的校验结果与原始应用分区文件校验结果中所查找到的文件名称对应的校验结果是否一致,如果不一致,则确定第一文件的校验结果与原始应用分区文件校验结果不一致。此处需要说明的是,和第一文件的校验结果进行比较的校验结果,必须是原始应用分区文件校验结果中查找到的文件名称对应的校验结果,即同一条记录中的校验结果,而不能是其他校验结果。以下举例进行说明。

一示例中,假设:

第一文件A的路径和文件名称为:/system/priv-app/MediaProvider.apk

第一文件A的校验结果为:8a 1b e4 0e 07 1a 63 19 e2 ae e1 20 d0 e6 02 06 c5 74 55 99

原始应用分区文件校验结果如图3所示。

具体判断时,首先在原始应用分区文件校验结果中查找第一文件A的路径和文件名称,根据图3可知,图3的第一条记录中的路径与文件名称与第一文件A完全一致,因此,查找成功。进而,对图3的第一条记录中的校验结果和第一文件A的校验结果进行比对,显然,图3第一条记录中的校验结果和第一文件A的校验结果不一致,因此,可以确定第一A的校验结果与原始应用分区文件校验结果不一致,需要对应用分区进行恢复处理。

另一示例中,假设:

第一文件A的路径和文件名称为:/system/priv-app/SettingsProvider.apk

第一文件A的校验结果为:f4 40 55 d2 52 9d 1d b9 a6 60 28 66 2c e6 8e c9 b6 f9 50 25

原始应用分区文件校验结果如图3所示。

具体判断时,首先在原始应用分区文件校验结果中查找第一文件A的路径和文件名称,根据图3可知,图3的第三条记录中的路径与文件名称与第一文件A完全一致,因此,查找成功。进而,对图3的第三条记录中的校验结果和第一文件A的校验结果进行比对,经过比对,可以确定图3第三条记录中的校验结果和第一文件A的校验结果一致,因此,可以确定第一A的校验结果与原始应用分区文件校验结果一致,不需要进行后续的应用分区的恢复处理。

又一示例中,假设:

第一文件A的路径和文件名称为:/system/priv-app/Contacts.apk

第一文件A的校验结果为:43 0d c2 44 08 51 b2 cf 18 aa 5d 45 3e 00 3c 9f9e d6 58 ba

原始应用分区文件校验结果如图3所示。

具体判断时,首先在原始应用分区文件校验结果中查找第一文件A的路径和文件名称,根据图3可知,图3的第二条记录中的路径与文件名称与第一文件A完全一致,因此,查找成功。进而,对图3的第二条记录中的校验结果和第一文件A的校验结果进行比对,经过比对,可以确定图3第三条记录中的校验结果和第一文件A的校验结果不一致,因此,可以确定第一A的校验结果与原始应用分区文件校验结果不一致。虽然第一文件A的校验结果与图3中第五条记录中的校验结果一致,但是,由于第五条记录中的路径和文件名称与第一文件A并不符合,因此,并不能改变第一A的校验结果与原始应用分区文件校验结果不一致的结论。

本实施例中,通过将第一文件的路径、文件名称和校验结果与原始应用分区文件校验结果进行统一比对,能够保证判断结果的准确性。

在上述实施例的基础上,本实施例涉及判断应用分区的文件校验结果的另一种方法,具体为:

判断终端的应用分区中的文件数量是否与原始应用分区文件校验结果对应的文件中所记录的文件数量一致,若否,则对终端的应用分区进行文件恢复处理。

当某些用户利用Root权限修改应用分区时,可能会对应用分区的文件进行修改或删除,或者在应用分区中新增新的文件,在进行这些操作时,应用分区的文件数量相比于原始状态可能会发生变化,因此,本实施例中,通过“数量”这个参数来判断应用分区是否被修改。具体地,终端会首先统计引用分区中的文件数量,统计的方法可以参照现有技术,进而,终端获取原始应用分区文件校验结果对应的文件中所记录的文件数量,当获取到这两个数量之后,终端对这两个数量进行比较,如果应用分区没有被更改过,则这两个数量应该保持一致,反之,就可以确定应用分区被修改,此时,就可以直接对应用分区进行文件恢复处理。

相比于对应用分区的文件进行校验处理以及对校验结果进行判断,本实施例中这种比较数量的方式更加简单易行,可以作为校验处理及判断之前的初步筛选,如果数量不一致,则无疑可以确定应用分区被修改,如果数量一致,则继续根据校验结果进行更精确的判断,从而提升处理的速度和效率。

可选地,本实施例的操作过程可以在上述步骤S102之前执行,具体可以在解密原始应用分区文件校验结果对应的文件之前或之后执行。

在前述各实施例的基础上,本实施例涉及对终端的应用分区进行文件恢复处理的具体方法,即,图5为本发明提供的安卓系统应用分区文件保护方法实施例四的流程示意图,如图5所示,对终端的应用分区进行文件恢复处理的具体方法为:

S401、删除终端的应用分区中的文件。

S402、将终端中预存的备份应用分区文件添加到终端的应用分区中,其中,该备份应用分区文件为生成终端的软件系统时,对终端的应用分区中的文件进行备份所获得的。

具体地,终端在生成软件系统时,在向应用分区写入文件时,会将这些写入的文件统一进行备份,形成备份应用分区文件,这些备份应用分区文件对所有用户不可见,即使拥有Root权限的用户也无法对这些备份应用分区文件进行修改,因此,在进行应用分区恢复时,使用备份应用分区文件能够保证所恢复的应用分区的文件是原始应用分区的文件。

图6为本发明提供的安卓系统应用分区文件保护方法的完整流程示意图,如图6所示,该方法的完整过程为:

S501、对写入终端的应用分区中的文件进行校验处理,获取校验结果。

S502、根据终端的应用分区中的文件的路径信息、文件名称以及校验结果,生成原始应用分区文件校验结果。

S503、对原始应用分区文件校验结果对应的文件进行加密处理。

上述三个步骤在生成终端的软件系统时进行。

S504、对应用分区文件校验结果对应的文件进行解密处理。

S505、判断解密处理的结果是否为解密失败,若是,则执行S5010,否则执行S506。

S506、判断终端的应用分区中的文件数量是否与原始应用分区文件校验结果对应的文件中所记录的文件数量一致,若否,则执行S5010,否则执行S507。

其中,上述S506也可以在S504之前执行。

S507、获取终端的应用分区中的第一文件。

S508、对第一文件进行校验处理,获取第一文件对应的校验结果。

S509、判断所述第一文件对应的校验结果是否与所述终端中预存的原始应用分区文件校验结果不一致,若是,则执行S5010。

S5010、对终端的应用分区进行文件恢复处理。

上述各步骤的具体执行方法可以参照前述实施例,此处不再赘述。

图7为本发明提供的终端实施例一的模块结构图,如图7所示,该终端包括:

获取模块701,用于获取终端的应用分区中的第一文件,其中,该第一文件为终端的应用分区中的任一文件。

第一处理模块702,用于对第一文件进行校验处理,获取第一文件对应的校验结果。

第二处理模块703,用于判断第一文件对应的校验结果是否与终端中预存的原始应用分区文件校验结果不一致,若是,则对终端的应用分区进行文件恢复处理;其中,原始应用分区文件校验结果为生成终端的软件系统时,对写入终端的应用分区中的文件进行校验处理所获得的。

图8为本发明提供的终端实施例二的模块结构图,如图8所示,在图7的基础上,该终端还包括:

第三处理模块704,用于对写入终端的应用分区中的文件进行校验处理,获取校验结果。

生成模块705,用于根据终端的应用分区中的文件的路径信息、文件名称以及校验结果,生成原始应用分区文件校验结果。

第四处理模块706,用于对原始应用分区文件校验结果对应的文件进行加密处理。

图9为本发明提供的终端实施例三的模块结构图,如图9所示,在图8的基础上,该终端还包括:

第五处理模块707,用于对原始应用分区文件校验结果对应的文件进行解密处理。

第六处理模块708,用于在解密处理的结果为解密成功时,获取终端的应用分区中的第一文件,以及,在解密处理的结果为解密失败时,对终端的应用分区进行文件恢复处理。

另一实施例中,第二处理模块703具体用于:

判断原始应用分区文件校验结果中是否存在第一文件对应的路径、文件名称以及第一文件对应的校验结果,若否,则确定第一文件对应的校验结果与终端中预存的原始应用分区文件校验结果不一致。

图10为本发明提供的终端实施例四的模块结构图,如图10所示,在图9的基础上,该终端还包括:

第七处理模块709,用于判断终端的应用分区中的文件数量是否与原始应用分区文件校验结果对应的文件中所记录的文件数量一致,若否,则对终端的应用分区进行文件恢复处理。

图11为本发明提供的终端实施例五的模块结构图,如图11所示,第二处理模块703包括:

删除单元7031,用于删除终端的应用分区中的文件。

添加单元7032,用于将终端中预存的备份应用分区文件添加到终端的应用分区中,其中,备份应用分区文件为生成终端的软件系统时,对终端的应用分区中的文件进行备份所获得的。

另一实施例中,第一处理模块702具体用于:

使用安全哈希校验算法对第一文件进行校验处理,获取第一文件对应的校验结果。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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