Android用户分区的快速加密方法、装置和终端设备的制造方法_2

文档序号:8299367阅读:来源:国知局
方法,或者功耗管理方法应用的计算节点的逻辑结构。该计算节点可以是终端设备,该终端设备具体可以为一智能手机。如图1所示,该终端设备的硬件层包括中央处理器(Center Processing Unit,CPU)、图形处理器(Graphic Processing Unit,GPU)等,当然还可以包括存储器、输入/输出设备、内存、内存控制器、网络接口等,输入设备可包括键盘、鼠标、触摸屏等,输出设备可包括显示设备如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT、)全息成像(Holographic)、投影(Projector)等。在硬件层之上可运行有操作系统(如Android、Firefox OS等)以及一些应用程序。
[0028]图1是以Android系统为例,介绍终端设备的软件系统架构,其中,核心库是操作系统的核心部分,包括外观管理器、媒体框架、关系数据库、2G图形引擎库、Web浏览器引擎,内核库和虚拟机(例如Dalvik Virtual Machine)等,其中,本发明实施例所描述的应用场景的识别和功耗控制策略的确定可以是在虚拟机处(例如Dalvik Virtual Machine)进行实施的,即虚拟机通过编译分析终端设备上正在运行的应用程序,获取所述应用程序的特征数据;根据所述应用程序的特征数据,从场景特征数据集中确定与所述应用程序的特征数据对应的应用场景信息,所述场景特征数据集包括多种应用场景信息与多种应用程序的特征数据的对应关系,其中所述与所述应用程序的特征数据对应的应用场景信息用于表示所述终端设备当前被使用的应用场景,根据所述应用场景信息,从控制策略集中确定与所述应用场景信息对应的功耗控制策略,所述控制策略集包括所述多种应用场景信息与多种功耗控制策略的对应关系,并根据所述与所述应用场景信息对应的功耗控制策略生成对应的功耗控制指令,将功耗控制指令传递给内核(即图1中的Linux内核),由内核对终端设备的相应硬件(例如CPU、GPU或显示设备等)实施功耗控制。
[0029]除此之外,该终端设备还包括驱动层、框架层和应用层。驱动层可包括CPU驱动、GPU驱动、显示控制器驱动等。框架层可包括浏览器引擎、排版引擎、文件解析器等;应用层可包括主界面(home)、媒体播放器(Media Player)、浏览器(Browser)等多种应用程序。
[0030]图2是本发明实施例Android用户分区的快速加密方法流程图。图2的方法由加密装置执行。本发明实施例的方法,可应用于如图1所示的终端设备中。如图2所示,该方法可包括:
[0031]201,创建安卓终端设备的用户分区的加密层。
[0032]应理解,由于Android系统采用Linux的架构,因此,Android终端设备的用户分区,在Android终端设备中往往体现为块设备。
[0033]I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。在Linux操作系统中,块设备只支持以块为单位的访问方式,如磁盘等。
[0034]202,根据该安卓终端设备的内核中的文件系统为该用户分区建立以块Block为单元的数据分布位图。
[0035]其中,该数据分布位图用于表示该用户分区中Block的使用状态。
[0036]具体地,在加密层创建完毕后,可按照该Android终端设备的内存缓冲区的大小,从根据该Android终端设备的内核中的ext4文件系统循环读取该用户分区的Block的使用状态,为该用户分区建立以Block为单元的数据分布位图。
[0037]203,根据该数据分布位图读取该用户分区中已使用的块的原始数据。
[0038]204,对该块的原始数据进行加密。
[0039]205,将该块加密后的数据写回该用户分区中,覆盖该块的原始数据。
[0040]本发明实施例中,利用Android终端设备的文件系统记录的已使用的数据块的信息对Android终端设备的用户分区进行加密,避免在用户数据加密时也对无效数据进行加密,从而达到了缩短分区加密时间的效果。
[0041]可选地,步骤202具体实现为:分配并初始化该用户分区的位图,其中,该用户分区的位图中的位图数组与该用户分区的Block—一对应,一个该位图数组用于表示一个Block的使用状态匹配;根据该Android终端设备的内核中的ext4文件系统中的超级块(Superblock)信息,获取该用户分区中每个对应的Block的使用信息;将该用户分区中每个对应的Block的使用信息记录到该用户分区的位图对应的位图数组中。通过Superblock信息,Android终端设备可以准确获取用户分区中Block的使用信息,从而可以针对已使用的Block进行数据加密,提高加密效率。
[0042]下面,将结合具体的实施例,对本发明实施例的方法做进一步的描述。
[0043]图3是本发明实施例Android终端设备对Android用户分区进行加密的具体流程图。
[0044]301,创建用户分区的加密层。
[0045]与现有技术类似,首先,Android终端设备创建用户分区的加密层。
[0046]302,获取用户分区的数据布局。
[0047]具体地,Android终端设备可通过访问内核中的ext4文件系统来获取块设备上的数据分布,从而构建一个针对用户分区的Block的快速加密位图。
[0048]在创建快速加密位图时,可按内存缓冲区的大小循环写入用户分区的Block使用信息。循环的次数可等于分区大小/缓冲区大小。如果计算的值不是整数,则取比该值大的最小整数作为循环的次数。
[0049]获取用户分区的数据布局创建快速加密位图的具体过程,可参考图4的方法。
[0050]303,读取一个未加密的块的原始数据。
[0051]在生成快速加密位图后,Android终端设备可根据快速加密位图,读取存储着有效数据的未加密块,获取该块的原始数据。
[0052]304,通过加密层将数据加密。
[0053]Android终端设备通过加密层加密的方法可参考现有技术,本发明实施例在此不再赘述。
[0054]305,将加密数据写回用户分区,覆盖原始数据。
[0055]306,判断是否还有未加密的使用数据。
[0056]Android终端设备将加密数据写回用户分区后,可根据快速加密位图,判断是否还有未加密的使用数据。如果是,则执行步骤303 ;否则,加密结束。
[0057]图4是本发明实施例快速加密位图、超级块与块的关系示意图。如图4所示,用户分区(块设备)中包含N+1个块,在核心库的Ext4文件系统中有着对应的N+1个超级块,快速加密位图中则包含N+1个位图数组,每一个位图数组用于表示一个数据块的使用状态。
[0058]图5是本发明实施例创建快速加密图的具体流程图。下面,将结合图4,描述快速加密图的创建流程。
[0059]501,分配一个与用户分区上块个数匹配的初始化位图。
[0060]Android终端设备可分配一个初始化位图,该位图的位数等于用户分区上块(Block)的个数。以图4为例,可为图4的用户分区(块设备)分配一个N+1位的位图,并初始化。
[0061]502,查询内核的ext4文件系统的超级块,根据超级块获取对应的块的使用信息。
[0062]以图4为例,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1