用户为中心的Android系统数据清除方法及系统的制作方法

文档序号:6542253阅读:165来源:国知局
用户为中心的Android系统数据清除方法及系统的制作方法
【专利摘要】本发明提供一种以用户为中心的Android系统数据清除方法及系统,其方法包括:步骤1,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面;步骤2,根据所述步骤1匹配的对象头信息判断并相应操作所述待处理对象;步骤3,调用文件系统的写操作函数,根据所述步骤2存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写;步骤4,检查所述待处理对象的目标块内是否有存在其它文件的有效页面,并进行相应处理;步骤5,触发文件系统的垃圾回收机制,根据块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。本发明能回收对象文件的存储空间,提高存储空间利用率。
【专利说明】用户为中心的Android系统数据清除方法及系统
【技术领域】
[0001]本发明涉及Android智能【技术领域】,尤其涉及一种用户为中心的Android系统数据清除方法及系统。
【背景技术】
[0002]随着新一代Android智能平台的广泛应用,有越来越多的用户信息和数据存储在Android智能终端的Flash闪存上,比如通讯录、短信、图片、备忘录等数据,其中包含的敏感性信息、重要数据,用户通常会使用普通的删除操作将其删除防止数据泄露。但是普通的删除操作并没有将数据从存储介质上删除,只是文件系统修改对象页面的标识为空闲状态或删除文件的索引,不把被删除文件呈现给操作系统和用户;普通的格式化也不会影响到存储介质上的数据,仅仅是为操作系统创建一个空的文件索引,让操作系统认为存储介质上没有文件。这种情况下,是可以通过逻辑方法或物理方法将已删除数据恢复的,并不能保证用户数据不被泄露。闪存写操作的最小单位是页,但擦除操作以块作为最小单位,所以存储介质物理上的释放要等到一个块中所有页全部变成空闲状态,文件系统才能进行垃圾回收将该块擦除。
[0003]Android采用NAND闪存做为内核存储器,YAFFS2是专为NAND闪存设计的日志型文件系统,具有一些不同于其他文件系统的特性。目前闪存数据逻辑销毁技术主要有零覆写技术,块删除技术,和加密技术,但是在搜索待删除页时都没有结合文件系统的数据结构和存储机制来考虑时间性能。

【发明内容】

[0004]为解决上述不足,本发明提供一种以用户为中心的Android系统数据清除方法及系统。
[0005]本发明的以用户为中心的Android系统数据清除方法,其包括:
[0006]步骤1,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面;
[0007]步骤2,根据所述步骤I匹配的对象头信息判断所述待处理对象:
[0008]若所述待处理对象的类型为文件夹,则根据Parent_0bjectid倒序扫描处该文件夹下包含的所有数据页面,该所有数据页面是与所述步骤I中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress[η]内;
[0009]若所述待处理对象的类型为普通文件,则寻找与所述步骤I中对象头页面具有相同Objectid的页面,该Objectid是用于标识页面所属的对象文件的唯一 ID号;获取所述页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adreSS[n]内;
[0010]步骤3,调用文件系统的写操作函数,根据所述步骤2存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写;[0011]步骤4,检查经步骤3处理后的所述待处理对象的目标块内是否有存在其它文件的有效页面:
[0012]若存在有效页面,则将该有效页面转储到其他未满的块上;
[0013]若不存在有效页面,则直接执行步骤5 ;
[0014]步骤5,触发文件系统的垃圾回收机制,根据存储的块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。
[0015]本发明的以用户为中心的Android系统数据清除系统,其包括:
[0016]输入匹配模块,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面;
[0017]第一处理模块,根据所述输入匹配模块匹配的对象头信息判断所述待处理对象:
[0018]若所述待处理对象的类型为文件夹,则根据Parent_Objectid倒序扫描处该文件夹下包含的所有数据页面,该所有数据页面是与所述第一处理模块中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block [m]和 adress [η]内;
[0019]若所述待处理对象的类型为普通文件,则寻找与所述第一处理模块中对象头页面具有相同Objectid的页面,该Objectid是用于标识页面所属的对象文件的唯一 ID号;获取所述页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adreSS[n]内;
[0020]覆写模块,调用文件系统的写操作函数,根据所述第一处理模块存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写;
[0021]第二处理模块,检查经所述覆写模块处理后的所述待处理对象的目标块内是否有存在其它文件的有效页面:
[0022]若存在有效页面,则将该有效页面转储到其他未满的块上;
[0023]若不存在有效页面,则直接执行回收模块;
[0024]回收模块,触发文件系统的垃圾回收机制,根据存储的块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。
[0025]本发明的有益效果在于:
[0026]本发明能回收对象文件的存储空间,提高存储空间利用率。
【专利附图】

【附图说明】
[0027]图1为本发明的以用户为中心的Android系统数据清除方法及系统中对数据页面的操作示意图;
[0028]图2为本发明的以用户为中心的Android系统数据清除方法流程图;
[0029]图3为本发明的以用户为中心的Android系统数据清除方法及系统中文件夹与普通文件的关系示意图;
[0030]图4为本发明的以用户为中心的Android系统数据清除系统示意图。
【具体实施方式】
[0031]图2为本发明的以用户为中心的Android系统数据清除方法流程图。如图2所示,本发明的以用户为中心的Android系统数据清除方法,其包括:[0032]步骤1,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面;
[0033]步骤2,根据所述步骤I匹配的对象头信息判断所述待处理对象:
[0034]若所述待处理对象的类型为文件夹,则根据Parent_Objectid倒序扫描处该文件夹下包含的所有数据页面,该所有数据页面是与所述步骤I中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress[η]内;
[0035]若所述待处理对象的类型为普通文件,则寻找与所述步骤I中对象头页面具有相同Objectid的页面,该Ob jectid用于标识页面所属的对象文件的唯一 ID号;获取该页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress [η]内;
[0036]步骤3,调用文件系统的写操作函数,根据所述步骤2存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写;
[0037]步骤4,检查经所述步骤3覆写后的所述待处理对象的目标块内是否有存在其它文件的有效页面:
[0038]若存在有效页面,则将该有效页面转储到其他未满的块上;
[0039]若不存在有效页面,则直接执行步骤5 ;
[0040]步骤5,触发文件系统的垃圾回收机制,根据块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。
[0041 ] 图4为本发明的以用户为中心的Android系统数据清除系统示意图。如图4所示,本发明的以用户为中心的Android系统数据清除系统,其包括:
[0042]输入匹配模块101,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面;
[0043]第一处理模块102,根据所述输入匹配模块101匹配的对象头信息判断所述待处
理对象:
[0044]若所述待处理对象的类型为文件夹,则根据Parent_Objectid倒序扫描处该文件夹下包含的所有数据页面,该所有数据页面是与所述输入匹配模块101中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block [m]和 adress [η]内;
[0045]若所述待处理对象的类型为普通文件,则寻找与所述输入匹配模块101中对象头页面具有相同Objectid的页面,该Objectid用于标识页面所属的对象文件的唯一 ID号;获取该页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adreSS[n]内;
[0046]覆写模块103,调用文件系统的写操作函数,根据所述第一处理模块102存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写;
[0047]第二处理模块104,检查经所述覆写模块103处理后的所述待处理对象的目标块内是否有存在其它文件的有效页面:
[0048]若存在有效页面,则将该有效页面转储到其他未满的块上;
[0049]若不存在有效页面,则直接执行回收模块105 ;
[0050]回收模块105,触发文件系统的垃圾回收机制,根据块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。[0051]本发明提供了一种针对Android智能平台广泛采用的YAFFS2文件系统,从用户角度出发,清除NAND闪存数据的方法,以保护用户敏感信息和重要数据不被泄露。不同于普通的删除操作,本方法结合YAFFS2文件系统的数据结构和数据存取方法,采用倒序扫描算法来搜索用户想要删除的文件,然后调用文件系统的写操作和块擦除操作,将数据从闪存上清除,不能通过逻辑方法进行恢复。可以清除的文件不仅包括简单的二进制流文件,还包括结构化比较强的JPEG文件和pdf文件等,能够保证各种类型的用户数据的安全性。
[0052]以用户为中心的Android数据清除方法,主要包括用户接口、待删除页搜索、数据清除、空间回收四个过程。第一步,用户输入要删除文件的信息,文件名、文件类型。第二步,搜索待删除页。具体搜索方法为:采用倒序扫描算法,从最大块序号开始,根据用户输入的文件名先扫描对象头页面。由于NAND闪存异地更新的特性,经过修改操作的文件会有不同历史版本存在于闪存上,所以搜索到的文件头页面可能为一个或多个。根据对象头页面中的ObjectID搜索到文件的所有数据页面。
[0053]NAND闪存的位操作只能从I变为0,第三步则是对搜索到的数据页面执行全零覆写。执行全零覆写之后,如果要删除的数据页面所在的块中存储了其他文件的有效页面,则需要将有效页转储到其它块,再对目标块执行块擦除操作,如图1所示。在执行擦除操作之后,触发文件系统的垃圾回收机制,将目标块回收,插入空闲块链表中,等待再次做为存储空间利用并分配一个新的块序号。
[0054]Android系统中不仅存储着大量的用户数据,还包括系统本身、应用程序运行产生的数据等,要通过扫描整个NAND闪存的方法搜索到待删除页,时间开销比较大。
[0055]本实施方式是以采用NAND闪存作为存储介质,加载YAFFS2文件系统的Android智能手机为例,提供一种以用户为中心的用户数据清除方法,并能回收对象文件的存储空间,提闻存储空间利用率。
[0056]在YAFFS2文件系统中有两种不同页面:数据页面(Data chunk)与对象头页面(Object header),数据页面用来存储对象的数据内容,对象头页面则用于存储对象的类型、文件大小、对象名、对象的创建、修改时间等。对象头对应的数据结构y a f f s _ObjectHeader包括成员有(仅列举出用于解释本发明的成员):
[0057]Yaffs_0bjectType type; //说明对象的类型(文件、目录等)
[0058]int parentObjectid; //父目录的 ID 号
[0059]YCHAR name [YAFFS_MAX_NAME_lenth+l] ; //对象名
[0060]可根据对象头中的type字段判断当前所要处理的对象为普通文件还是文件夹。如图3所示,图3为文件夹与其子文件之间的关系。
[0061]待删除页搜索是从具有最大块序号的数据块开始依次扫描,对每一个块从该块最后一个页面开始遍历至第一个页面,具体扫描算法步骤如下:
[0062](I)扫描 BlockN;
[0063](2)扫描当前块中pageM ;如果PageM是当前block中第一个页面,则转到(4);
[0064](3) M=M-1,转到(2);
[0065](4)如果当前block块是当前块中最小块,则扫描结束;
[0066](5) N=N-1,转到(I)。
[0067]用户输入文件名,倒序扫描与该文件名匹配的所有对象头页面,若根据对象头信息判断待处理对象为普通文件,则寻找与对象头页面具有相同Objectid的页面并获取它们的块序号和Chunkid,其中Objectid用于标识页面所属的对象文件的唯一 ID号。NAND闪存阵列分为一系列的区块,每个块包含32或64或128个页,每一个页均包含2048kb的数据区和64kb的空闲区。初始化int型数组block[m]和adress[n]分别用来存放获取到的块序号和页面的物理地址。若对象类型为文件夹,倒序扫描寻找所有Parent_Objectid与第一步中对象头页面的ID号相同的页面,同样获取它们的块序号和页面物理地址,分别存放到数组block[m]和adress [η],此时遍历所得页面为当前待处理文件夹下的所有文件。YAFFS2文件系统在存储数据时严格按照顺序分配块序号,每当新分配一个块时,块序号加1,该块内所有页面共享这一块序号。所以采用以上倒序遍历方法,相当于是完全按照页面的分配时间倒序遍历的,因此节约扫描时间。
[0068]调用文件系统的写操作函数,根据前面存储的块序号和页面物理地址将目标页面进行全零覆写。因为YAFFS2的擦除操作以块为最小单位执行,所以在进行擦除操作之前,应先检查该块内是否有属于其它文件的有效页面。若有,则把这些页面转储到闪存其他未满的块上。然后就可以触发文件系统的垃圾回收机制,根据块序号将目标块回收,插入到空闲块链表中,作为可分配的存储空间等待再利用。
[0069]惟以上所述者,仅为本发明的较佳实施例而已,举凡熟悉此项技艺的专业人士。在了解本发明的技术手段之后,自然能依据实际的需要,在本发明的教导下加以变化。因此凡依本发明申请专利范围所作的同等变化与修饰,都应仍属本发明专利涵盖的范围内。
【权利要求】
1.一种以用户为中心的Android系统数据清除方法,其特征在于,包括: 步骤1,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面; 步骤2,根据所述步骤I匹配的对象头信息判断所述待处理对象: 若所述待处理对象的类型为文件夹,则根据Parent_Objectid倒序扫描该文件夹下包含的所有数据页面,该所有数据页面是与所述步骤I中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress[η]内; 若所述待处理对象的类型为普通文件,则寻找与所述步骤I中对象头页面具有相同Objectid的页面,该Objectid是用于标识页面所属的对象文件的唯一 ID号;获取所述页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress [η]内; 步骤3,调用文件系统的写操作函数,根据所述步骤2存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写; 步骤4,检查所述待处理对象的目标块内是否有存在其它文件的有效页面: 若存在有效页面,则将该有效页面转储到其他未满的块上; 若不存在有效页面,则直接执行步骤5 ; 步骤5,触发文件系统的垃圾回收机制,根据存储的块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。
2.一种以用户为中心的Android系统数据清除系统,其特征在于,包括: 输入匹配模块,用户输入待处理对象的文件信息,倒序扫描与该文件信息匹配的所有对象头页面; 第一处理模块,根据所述输入匹配模块匹配的对象头信息判断所述待处理对象: 若所述待处理对象的类型为文件夹,则根据Parent_Objectid倒序扫描处该文件夹下包含的所有数据页面,该所有数据页面是与所述步骤I中对象头页面的ID号相同的页面;获取所述所有数据页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress[η]内; 若所述待处理对象的类型为普通文件,则寻找与所述步骤I中对象头页面具有相同Objectid的页面,该Objectid是用于标识页面所属的对象文件的唯一 ID号;获取所述页面的块序号和页面物理地址,并将其分别存放到数组block[m]和adress [η]内; 覆写模块,调用文件系统的写操作函数,根据所述第一处理模块存储的块序号和页面物理地址将所述待处理对象的目标页面进行全零覆写; 第二处理模块,检查所述待处理对象的目标块内是否有存在其它文件的有效页面: 若存在有效页面,则将该有效页面转储到其他未满的块上; 若不存在有效页面,则直接执行回收模块; 回收模块,触发文件系统的垃圾回收机制,根据存储的块序号将目标块回收,并将该目标块插入到空闲块链表中,作为可分配的存储空间等待再利用。
【文档编号】G06F17/30GK103853850SQ201410123655
【公开日】2014年6月11日 申请日期:2014年3月28日 优先权日:2014年3月28日
【发明者】何泾沙, 黄娜, 张玉强, 赵斌, 刘公政, 万雪姣 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1