公开/公告号CN112182652A
专利类型发明专利
公开/公告日2021-01-05
原文格式PDF
申请/专利权人 广州朗国电子科技有限公司;
申请/专利号CN202011031313.5
申请日2020-09-27
分类号G06F21/62(20130101);G06F21/78(20130101);
代理机构44456 广州市专注鱼专利代理有限公司;
代理人凌霄汉
地址 510000 广东省广州市天河区高新技术开发区高普路136号四层自编02区A、B单元
入库时间 2023-06-19 09:26:02
技术领域
本发明涉及终端设备数据写入保护技术领域,尤其涉及一种保护数据分区不被写满方法、装置、存储介质及终端设备。
背景技术
Android原生系统的data分区空间写满后会引发系统的各种不可预料的异常,如包括死机、卡顿等各种问题;目前有一些方案是通过上层应用来获取data分区的大小,当大小小于某个指定的阈值时,应用层就不往data分区写入数据;这种方式存在一定的不足,就是无法保证系统往data分区写入数据。
在现有技术中,应用无法拦截系统的方式往data分区写数据;导致当data分区被写满会引发各种系统基于不稳定。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种保护数据分区不被写满方法、装置、存储介质及终端设备,实现防止data分区被填满空间导致系统的不稳定问题。
为了解决上述技术问题,本发明实施例提供了一种保护数据分区不被写满方法,所述方法包括:
在终端设备上电启动运行Android系统时,所述Android系统启动对应的应用程序;
基于所述对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,获得对应的文件系统所在的Data分区的当前存储空间大小;
基于当前存储空间大小对外提供访问对应Data分区的访问接口,所述访问接口为读写访问接口或只读不写访问接口。
可选的,所述应用程序为可以通过对应的文件系统来间接操作对应的Data分区。
可选的,所述文件系统包括fuse文件系统和SDCardFS文件系统。
可选的,所述对应的应用程序为根据对应的文件系统所调用的应用程序,并且在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置。
可选的,所述在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置,包括:
在所述文件系统为fuse文件系统时,在所述应用程序内通过文件system/core/sdcard/fuse.cpp中的函数handle_write进行限制阈值设置;
在所述文件系统为SDCardFS文件系统时,在所述应用程序内通过linaro/fs/sdcardfs/main.c进行限制阈值设置。
可选的,所述基于当前存储空间大小对外提供访问对应Data分区的访问接口,包括:
将所述当前存储空间大小与限制阈值进行比较,并根据比较结果对外提供访问对应Data分区的访问接口。
可选的,所述根据比较结果对外提供访问对应Data分区的访问接口,包括:
在所述比较结果为当前存储空间大小大于限制阈值时,对外提供访问对应Data分区的访问接口为读写访问接口;
在所述比较结果为当前存储空间大小等于限制阈值时,对外提供访问对应Data分区的访问接口为只读不写访问接口。
另外,本发明实施例还提供了一种保护数据分区不被写满装置,所述装置包括:
启动模块:用于在终端设备上电启动运行Android系统时,所述Android系统启动对应的应用程序;
监控模块:用于基于所述对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,获得对应的文件系统所在的Data分区的当前存储空间大小;
对外提供模块:用于基于当前存储空间大小对外提供访问对应Data分区的访问接口,所述访问接口为读写访问接口或只读不写访问接口。
另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述中任意一项所述的保护数据分区不被写满方法。
另外,本发明实施例还提供了一种终端设备,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于:执行上述中任意一项所述的保护数据分区不被写满方法。
在本发明实施例中,通过对应用程序实现对对应的文件系统所在的Data分区进行存储空间大小监控处理,并且根据当前存储空间大小对外提供访问对应Data分区的访问接口,该访问接口为读写访问接口或只读不写访问接口;即可实现在Data分区的存储空间等于预设限制阈值时,Data分区提供的对外接口为只读不写访问接口,无论是应用层或者系统层都无法往该Data分区内写入数据;即可实现拦截系统的方式往该Data分区内写入数据,保护系统的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的保护数据分区不被写满方法的流程示意图;
图2是本发明实施例中的保护数据分区不被写满装置的结构组成示意图;
图3是本发明实施例中的终端设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例
请参阅图1,图1是本发明实施例中的保护数据分区不被写满方法的流程示意图。
如图1所示,一种保护数据分区不被写满方法,所述方法包括:
S11:在终端设备上电启动运行Android系统时,所述Android系统启动对应的应用程序;
在本发明具体实施过程中,所述应用程序为可以通过对应的文件系统来间接操作对应的Data分区。
进一步的,所述文件系统包括fuse文件系统和SDCardFS文件系统。
进一步的,所述对应的应用程序为根据对应的文件系统所调用的应用程序,并且在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置。
进一步的,所述在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置,包括:在所述文件系统为fuse文件系统时,在所述应用程序内通过文件system/core/sdcard/fuse.cpp中的函数handle_write进行限制阈值设置;在所述文件系统为SDCardFS文件系统时,在所述应用程序内通过linaro/fs/sdcardfs/main.c进行限制阈值设置。
具体的,该应用程序为可以通过调用系统的接口,并通过对应的文件系统等来间接的操作Data分区的存储介质;该应用程序可以为安装程序、音乐软件、视频播放软件等;
并且该文件系统包括fuse文件系统、SDCardFS文件系统等;在Android系统中的文件系统一般为fuse文件系统和SDCardFS文件系统;fuse文件系统主要是应用于android O之前的系统,而android O之后官方支持SDCardFS文件系统。
该对应的应用程序为根据对应的文件系统所调用的应用程序,并且在应用程序内进行对应的文件系统的Data分区进行限制阈值设置。
即对于fuse文件系统,在该应用程序内通过在文件system/core/sdcard/fuse.cpp中的函数handle_write设置限制阈值来限制写入文件控制;上层应用和系统都是通过handle_write来向data分区写入数据的。Data分区的空间小于或者等于某个限制阈值,通过handle_write是无法写入数据到data分区的。对于SDCardFS文件系统,通过在linaro/fs/sdcardfs/main.c来修改;由于原生系统的代码中设置的剩余空间的阈值为0,为了保证data分区不被写满则需要把这个阈值设置为限制阈值;通过上述设置之后,后续在data分区小于或者等于这个限制阈值之后,应用程序及系统均无法将数据写入data分区。
S12:基于所述对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,获得对应的文件系统所在的Data分区的当前存储空间大小;
在本发明具体实施过程中,通过该对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,从而获得对应的文件系统所在的Data分区的当前存储空间大小;具体是通过对应的应用程序内设置的监控函数对Data分区进行存储空间大小监控处理。
S13:基于当前存储空间大小对外提供访问对应Data分区的访问接口,所述访问接口为读写访问接口或只读不写访问接口。
在本发明具体实施过程中,所述基于当前存储空间大小对外提供访问对应Data分区的访问接口,包括:将所述当前存储空间大小与限制阈值进行比较,并根据比较结果对外提供访问对应Data分区的访问接口。
进一步的,所述根据比较结果对外提供访问对应Data分区的访问接口,包括:在所述比较结果为当前存储空间大小大于限制阈值时,对外提供访问对应Data分区的访问接口为读写访问接口;在所述比较结果为当前存储空间大小等于限制阈值时,对外提供访问对应Data分区的访问接口为只读不写访问接口。
具体的,将当前存储空间大小与限制阈值进行比较,并根据比较结果对外提供访问对应Data分区的访问接口;当比较结果为当前存储空间大小大于限制阈值时,对外提供访问对应Data分区的访问接口为读写访问接口;当比较结果为当前存储空间大小等于限制阈值时,对外提供访问对应Data分区的访问接口为只读不写访问接口。
文件系统部分提供对外访问Data存储介质的接口,通过该接口来控制文件的读写,一旦写的文件超过指定的阈值大小,就对写操作做保护,防止Data分区被写满(可以读,读不会改变分区的大小);Data存储介质:指的就是Data分区存储数据的地方(分区存储是android系统自带的功能,data分区也是android的一个默认分区,不需要进行分区。存储到data分区也是android系统自身处理的,不需要做特殊处理)。
在本发明实施例中,通过对应用程序实现对对应的文件系统所在的Data分区进行存储空间大小监控处理,并且根据当前存储空间大小对外提供访问对应Data分区的访问接口,该访问接口为读写访问接口或只读不写访问接口;即可实现在Data分区的存储空间等于预设限制阈值时,Data分区提供的对外接口为只读不写访问接口,无论是应用层或者系统层都无法往该Data分区内写入数据;即可实现拦截系统的方式往该Data分区内写入数据,保护系统的稳定性。
实施例
请参阅图2,图2是本发明实施例中的保护数据分区不被写满装置的结构组成示意图。
如图2所示,一种保护数据分区不被写满装置,所述装置包括:
启动模块21:用于在终端设备上电启动运行Android系统时,所述Android系统启动对应的应用程序;
在本发明具体实施过程中,所述应用程序为可以通过对应的文件系统来间接操作对应的Data分区。
进一步的,所述文件系统包括fuse文件系统和SDCardFS文件系统。
进一步的,所述对应的应用程序为根据对应的文件系统所调用的应用程序,并且在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置。
进一步的,所述在所述应用程序内进行对应的文件系统的Data分区进行限制阈值设置,包括:在所述文件系统为fuse文件系统时,在所述应用程序内通过文件system/core/sdcard/fuse.cpp中的函数handle_write进行限制阈值设置;在所述文件系统为SDCardFS文件系统时,在所述应用程序内通过linaro/fs/sdcardfs/main.c进行限制阈值设置。
具体的,该应用程序为可以通过调用系统的接口,并通过对应的文件系统等来间接的操作Data分区的存储介质;该应用程序可以为安装程序、音乐软件、视频播放软件等;
并且该文件系统包括fuse文件系统、SDCardFS文件系统等;在Android系统中的文件系统一般为fuse文件系统和SDCardFS文件系统;fuse文件系统主要是应用于android O之前的系统,而android O之后官方支持SDCardFS文件系统。
该对应的应用程序为根据对应的文件系统所调用的应用程序,并且在应用程序内进行对应的文件系统的Data分区进行限制阈值设置。
即对于fuse文件系统,在该应用程序内通过在文件system/core/sdcard/fuse.cpp中的函数handle_write设置限制阈值来限制写入文件控制;上层应用和系统都是通过handle_write来向data分区写入数据的。Data分区的空间小于或者等于某个限制阈值,通过handle_write是无法写入数据到data分区的。对于SDCardFS文件系统,通过在linaro/fs/sdcardfs/main.c来修改;由于原生系统的代码中设置的剩余空间的阈值为0,为了保证data分区不被写满则需要把这个阈值设置为限制阈值;通过上述设置之后,后续在data分区小于或者等于这个限制阈值之后,应用程序及系统均无法将数据写入data分区。
监控模块22:用于基于所述对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,获得对应的文件系统所在的Data分区的当前存储空间大小;
在本发明具体实施过程中,通过该对应的应用程序对对应的文件系统所在的Data分区进行存储空间大小监控处理,从而获得对应的文件系统所在的Data分区的当前存储空间大小;具体是通过对应的应用程序内设置的监控函数对Data分区进行存储空间大小监控处理。
对外提供模块23:用于基于当前存储空间大小对外提供访问对应Data分区的访问接口,所述访问接口为读写访问接口或只读不写访问接口。
在本发明具体实施过程中,所述基于当前存储空间大小对外提供访问对应Data分区的访问接口,包括:将所述当前存储空间大小与限制阈值进行比较,并根据比较结果对外提供访问对应Data分区的访问接口。
进一步的,所述根据比较结果对外提供访问对应Data分区的访问接口,包括:在所述比较结果为当前存储空间大小大于限制阈值时,对外提供访问对应Data分区的访问接口为读写访问接口;在所述比较结果为当前存储空间大小等于限制阈值时,对外提供访问对应Data分区的访问接口为只读不写访问接口。
具体的,将当前存储空间大小与限制阈值进行比较,并根据比较结果对外提供访问对应Data分区的访问接口;当比较结果为当前存储空间大小大于限制阈值时,对外提供访问对应Data分区的访问接口为读写访问接口;当比较结果为当前存储空间大小等于限制阈值时,对外提供访问对应Data分区的访问接口为只读不写访问接口。
文件系统部分提供对外访问Data存储介质的接口,通过该接口来控制文件的读写,一旦写的文件超过指定的阈值大小,就对写操作做保护,防止Data分区被写满(可以读,读不会改变分区的大小);Data存储介质:指的就是Data分区存储数据的地方(分区存储是android系统自带的功能,data分区也是android的一个默认分区,不需要进行分区。存储到data分区也是android系统自身处理的,不需要做特殊处理)。
在本发明实施例中,通过对应用程序实现对对应的文件系统所在的Data分区进行存储空间大小监控处理,并且根据当前存储空间大小对外提供访问对应Data分区的访问接口,该访问接口为读写访问接口或只读不写访问接口;即可实现在Data分区的存储空间等于预设限制阈值时,Data分区提供的对外接口为只读不写访问接口,无论是应用层或者系统层都无法往该Data分区内写入数据;即可实现拦截系统的方式往该Data分区内写入数据,保护系统的稳定性。
本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一个实施例的保护数据分区不被写满方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的保护数据分区不被写满方法。
此外,图3是本发明实施例中的终端设备的结构组成示意图。
本发明实施例还提供了一种终端设备,如图3所示。所述终端设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
作为一个实施例,所述终端设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中对的保护数据分区不被写满方法。
在本发明实施例中,通过对应用程序实现对对应的文件系统所在的Data分区进行存储空间大小监控处理,并且根据当前存储空间大小对外提供访问对应Data分区的访问接口,该访问接口为读写访问接口或只读不写访问接口;即可实现在Data分区的存储空间等于预设限制阈值时,Data分区提供的对外接口为只读不写访问接口,无论是应用层或者系统层都无法往该Data分区内写入数据;即可实现拦截系统的方式往该Data分区内写入数据,保护系统的稳定性。
另外,以上对本发明实施例所提供的保护数据分区不被写满方法、装置、存储介质及终端设备进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
机译: 程序操作设备,写处理结果的通知/保护设备,写处理结果的通知/保护方法和存储介质
机译: 保护终端设备的方法和装置终端设备程序和存储介质
机译: 根据转移的保护数据,第一和第二装置保护数据以及胶片分类系统进行数据解码的方法,以确定主要数据是部分或全部不被解码,以及保护等级的范围