文件保护方法及电子设备技术

技术编号:36001528 阅读:10 留言:0更新日期:2022-12-17 23:19
本申请适用于终端技术领域,提供了一种文件保护方法及电子设备,文件保护方法包括:应用程序框架层基于有权限访问的第一待保护文件的文件路径,获取第一待保护文件的文件描述符,并向内核层发送该文件描述符;内核层基于该文件描述符,为第一待保护文件设置文件保护标记;应用程序框架层向内核层发送无权限访问的第二待保护文件的文件路径;内核层接收到文件访问请求,并将文件访问请求指示的目标文件从磁盘添加至内存时,若确定目标文件与第二待保护文件相匹配,则为目标文件设置文件保护标记;内核层在执行内存回收操作时,不回收设置有文件保护标记的文件占用的内存空间资源,从而能够提高所有待保护文件的被访问速度。而能够提高所有待保护文件的被访问速度。而能够提高所有待保护文件的被访问速度。

【技术实现步骤摘要】
文件保护方法及电子设备


[0001]本申请涉及终端
,尤其涉及一种文件保护方法及电子设备。

技术介绍

[0002]文件保护是指将磁盘中的一些关键文件缓存至内存后,对这些关键文件进行保护,使这些关键文件能够被长期存储在内存中不被换出,这样,进程每次可以直接从内存中访问这些关键文件,从而达到快速访问关键文件的目的,提高进程对用户操作的响应速度。
[0003]传统的文件保护方式是通过操作系统的应用程序框架层打开关键文件,从而获取到关键文件的文件描述符,并将关键文件的文件描述符传递给内核层,使内核层基于关键文件的文件描述符对关键文件进行文件保护。然而,该文件保护方式应用于Linux操作系统时,受限于Linux操作系统的文件权限管控,应用程序框架层无法打开某些需要保护的应用文件,从而无法获取到这些应用文件的文件描述符,导致内核层无法实现对这些应用文件的文件保护。

技术实现思路

[0004]本申请实施例提供一种文件保护方法及电子设备,通过将待保护文件划分为应用程序框架层有权限访问的第一待保护文件和无权限访问的第二待保护文件,对不同类型的待保护文件在内核层中采用不同的文件保护方式对其进行保护,从而实现了对应用程序框架层有权限访问和无权限访问的所有待保护文件的文件保护,提高了所有待保护文件的被访问速度。
[0005]第一方面,本申请实施例提供一种文件保护方法,包括:应用程序框架层基于第一待保护文件的文件路径,获取所述第一待保护文件的文件描述符,并向内核层发送所述文件描述符;所述第一待保护文件为所述应用程序框架层有权限访问的待保护文件;所述内核层基于所述文件描述符,为所述第一待保护文件设置文件保护标记;所述应用程序框架层向所述内核层发送第二待保护文件的文件路径;所述第二待保护文件为所述应用程序框架层无权限访问的待保护文件;所述内核层接收到文件访问请求,并将所述文件访问请求指示的目标文件从磁盘添加至内存时,若基于所述目标文件的文件路径与所述第二待保护文件的文件路径,确定所述目标文件与所述第二待保护文件相匹配,则为所述目标文件设置文件保护标记;所述内核层在执行内存回收操作时,不回收设置有所述文件保护标记的文件占用的内存空间资源。
[0006]可选的,第一待保护文件可以是预设文件配置列表中记录的,应用程序框架层有权限访问的待保护文件。应用程序框架层有权限访问的待保护文件指,预设文件配置列表中记录的,应用程序框架层能够通过open()函数打开,并获取到文件描述符的待保护文件。
[0007]可选的,第二待保护文件可以是预设文件配置列表中记录的,应用程序框架层无权限访问的待保护文件。应用程序框架层无权限访问的待保护文件指,预设文件配置列表中记录的,应用程序框架层无法通过open()函数打开的待保护文件。
[0008]其中,预设文件配置列表用于记录预设的待保护文件的信息。待保护文件指需要被长时间缓存在内存中不被换出(即占用的内存空间资源不被回收)的文件。
[0009]待保护文件的类型例如可以包括系统文件或应用文件等。
[0010]示例性的,当待保护文件的类型为系统文件时,预设文件配置列表中记录的待保护文件的信息可以为待保护文件的文件路径。该文件路径指在操作系统全局下的文件路径。例如,预设文件配置列表中记录的某个系统文件的文件路径可以为</file>/system/xxxx</file>。
[0011]当待保护文件的类型为应用文件时,预设文件配置列表中记录的待保护文件的信息可以为待保护文件的应用程序安装包(android application package,APK)的包名。应用程序框架层可以通过应用文件的APK的包名查询到该包名下的所有应用文件。例如,假设预设文件配置列表中记录的某个应用文件的APK 的包名为</packagename>xxxx</packagename>,则应用程序框架层基于该包名,可以从磁盘中查询到该包名下的所有应用文件,包括/data/data目录下的应用文件、/data/user/0目录下的应用文件及/data/app目录下的应用文件等。
[0012]基于此,文件保护服务可以读取预设文件配置列表中记录的各个待保护文件的信息;针对预设文件配置列表中记录的任意一个待保护文件,在待保护文件的信息为文件路径的情况下,文件保护服务可以调用open()函数打开待保护文件的文件路径;在待保护文件的信息为APK的包名的情况下,文件保护服务可以基于待保护文件的APK的包名,从磁盘中查询该包名下的所有文件路径,并调用open()函数分别打开该包名下的各个文件路径。
[0013]需要说明的是,在文件保护服务有权限访问某个待保护文件的情况下,文件保护服务调用open()函数打开该待保护文件的文件路径后,open()函数会返回该待保护文件的文件描述符。在文件保护服务无权限访问某个待保护文件的情况下,文件保护服务调用open()函数打开该待保护文件的文件路径后,open()函数会返回错误提示,例如返回“error”。
[0014]基于此,文件保护服务在调用open()函数打开待保护文件的文件路径后,若open()函数返回待保护文件的文件描述符,则文件保护服务确定该待保护文件为第一待保护文件,并向内核层发送该第一待保护文件的文件描述符。若open()函数返回错误提示,则文件保护服务确定该待保护文件为第二待保护文件,并向内核层发送第二待保护文件的文件路径。
[0015]可选的,内核层接收到应用程序层发送的第二待保护文件的文件路径后,可以将第二待保护文件的文件路径记录在预设的无权限文件列表中。
[0016]在具体应用中,文件访问请求可以来自于任意一个进程。示例性的,文件访问请求中可以携带有待访问的目标文件的地址空间。内核层通过目标文件的地址空间可以查询到目标文件对应的第二索引节点结构体,进而可以查询到目标文件的文件路径。
[0017]根据本实施例提供的文件保护方法,通过将待保护文件划分为应用程序框架层有权限访问的第一待保护文件和应用程序框架层无权限访问的第二待保护文件;对于第一待
保护文件,由应用程序框架层基于第一待保护文件的文件路径,获取第一待保护文件的文件描述符,并向内核层发送所述文件描述符,使得内核层可以基于第一待保护文件的文件描述符为第一待保护文件设置文件保护标记;对应第二待保护文件,应用程序框架层可以直接向内核层发送第二待保护文件的文件路径,由内核层基于第二待保护文件的文件路径,为与第二待保护文件相匹配的目标文件设置文件保护标记;由于内核层在执行内存回收操作时,不回收设置有文件保护标记的文件占用的内存空间资源,因此,不仅可以实现对应用程序框架层有权限访问的第一待保护文件的保护,而且可以实现对应用程序框架层无权限访问的第二待保护文件的保护,从而提高了所有待保护文件的被访问速。
[0018]在第一方面的一种可选的实现方式中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件保护方法,其特征在于,包括:应用程序框架层基于第一待保护文件的文件路径,获取所述第一待保护文件的文件描述符,并向内核层发送所述文件描述符;所述第一待保护文件为所述应用程序框架层有权限访问的待保护文件;所述内核层基于所述文件描述符,为所述第一待保护文件设置文件保护标记;所述应用程序框架层向所述内核层发送第二待保护文件的文件路径;所述第二待保护文件为所述应用程序框架层无权限访问的待保护文件;所述内核层接收到文件访问请求,并将所述文件访问请求指示的目标文件从磁盘添加至内存时,若基于所述目标文件的文件路径与所述第二待保护文件的文件路径,确定所述目标文件与所述第二待保护文件相匹配,则为所述目标文件设置文件保护标记;所述内核层在执行内存回收操作时,不回收设置有所述文件保护标记的文件占用的内存空间资源。2.根据权利要求1所述的文件保护方法,其特征在于,所述应用程序框架层基于第一待保护文件的文件路径,获取所述第一待保护文件的文件描述符,包括:所述应用程序框架层将所述第一待保护文件的文件路径作为open()函数的输入参数,调用所述open()函数,得到所述第一待保护文件的文件描述符。3.根据权利要求1所述的文件保护方法,其特征在于,所述内核层基于所述文件描述符,为所述第一待保护文件设置文件保护标记,包括:所述内核层基于所述文件描述符,从内核空间中查询所述第一待保护文件对应的第一索引节点结构体,并将所述第一索引节点结构体中预设的保护标志位的值置为第一预设值;所述第一预设值用于指示对应的文件为预设的待保护文件。4.根据权利要求1所述的文件保护方法,其特征在于,所述内核层接收到文件访问请求,并将所述文件访问请求指示的目标文件从磁盘添加至内存时,若基于所述目标文件的文件路径与所述第二待保护文件的文件路径,确定所述目标文件与所述第二待保护文件相匹配,则为所述目标文件设置文件保护标记,包括:所述内核层接收到文件访问请求时,基于所述文件访问请求中携带的目标文件的地址空间,从所述地址空间中查询所述目标文件对应的第二索引节点结构体;所述内核层基于所述第二索引节点结构体,获取所述目标文件的文件路径;所述内核层若基于所述目标文件的文件路径,确定所述内存中未缓存所述目标文件,则将所述目标文件从磁盘添加至所述内存;所述内核层在将所述目标文件从所述磁盘添加至所述内存的过程中,若确定所述目标文件与所述第二待保护文件相匹配,则将所述第二索引节点结构体中预设的保护标志位的值置为第一预设值;所述第一预设值用于指示对应的文件为预设的待保护文件。5.根据权利要求1

4任一项所述的文件保护方法,其特征在于,所述内核层在执行内存回收操作时,不回收设置有所述文件...

【专利技术属性】
技术研发人员:董世琨
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1