Android设备的开机方法、装置、设备及存储介质与流程

摘要: 本技术涉及android设备,尤其涉及一种android设备的开机方法、装置、设备及存储介质。背景技术:1、android设备运行过程中,如果出现断电异常、存储...
Android设备的开机方法、装置、设备及存储介质与流程

本技术涉及android设备,尤其涉及一种android设备的开机方法、装置、设备及存储介质。

背景技术:

1、android设备运行过程中,如果出现断电异常、存储读写出错、系统进程崩溃等场景,极易造成/data/system/packages.xml、packages.list、prebundled-packages.list三类核心包管理配置文件损坏。除此之外,同类异常工况还会造成/data/misc_de/0/apexdata/com.android.permission/runtime-permissions.xml文件损坏,该文件为android apex架构下系统运行时权限管理的核心xml配置文件。上述文件发生故障时,均会表现为出现二进制乱码、xml标签断裂、非法不可打印字符、文件空值或文件大小异常,最终设备开机卡在logo进入界面,无法正常进入系统桌面。

2、目前公开的开机故障恢复方法,存在如下局限:

3、1.覆盖场景单一:大多聚焦于底层镜像损坏或整块分区故障场景,仅少数专利针对/data/system/packages.xml单一包管理xml文件的损坏修复提出了方案。但是,这种校验和修复单一文件的方式,仍然存在无法完全解决故障;

4、2.校验逻辑粗放:缺乏针对不同格式、不同平台文件的差异化精准校验,难以识别纯文本文件字段异常、rk专属文件格式错误等隐性故障。

5、因此,有必要开发一种android设备的开机方法,能够有效防止android设备开机方法卡死的问题。

6、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种android设备的开机方法、装置、设备及存储介质,旨在解决现有的android设备开机方法中校验文件覆盖不全面、校验效率不高以及校验逻辑缺乏差异化导致设备开机卡死的技术问题。

2、为实现上述目的,本技术提出一种android设备的开机方法,所述的方法包括:

3、响应于设备开机后所述设备上的android操作系统运行到预设阶段,获取多类预设文件;

4、通过多级和差异化校验方法检查所述多类预设文件是否损坏;

5、在检查到预设文件损坏的情况下,删除损坏的所述预设文件;

6、在全部预设文件检查完成后重启所述设备,重新生成已删除的预设文件,使得所述设备成功进入操作系统桌面。

7、在一实施例中,所述获取多类预设文件的步骤包括:

8、在所述android操作系统运行到early-init阶段且包管理服务尚未启动的情况下,获取/data/system/packages.xml文件和/data/system/packages.list文件;

9、在所述设备为瑞芯微rk平台的情况下,还获取/data/system/prebundled-packages.list文件;

10、在所述android操作系统为android apex架构的情况下,还获取/data/misc_de/0/apexdata/com.android.permission/runtime-permissions.xml文件。

11、在一实施例中,所述通过多级和差异化校验方法检查多类预设文件是否损坏的步骤包括:

12、对每类预设文件进行一级校验;

13、在所述每类预设文件通过一级校验的情况下,对所述每类预设文件进行差异化二级校验检查所述多类预设文件是否损坏。

14、在一实施例中,所述对每类预设文件进行一级校验的步骤包括:

15、对所述每类预设文件,判断所述每类预设文件是否为空且所述每类预设文件的文件大小是否小于预设的数值;

16、如果所述每类预设文件为空或者所述每类预设文件的文件大小小于所述预设的数值,则判定所述每类预设文件损坏,未通过所述一级校验。

17、在一实施例中,所述对所述每类预设文件进行差异化二级校验的步骤包括:

18、检查所述/data/system/packages.xml文件是否包含预设的标签和文件内是否存在乱码,如果不包含预设的标签或者存在乱码,则判定所述/data/system/packages.xml文件损坏;

19、检查所述/data/system/packages.list文件是否包括多个预设的固定字段,如果未包括所述固定字段,则判定所述/data/system/packages.list文件损坏;

20、检查所述/data/system/prebundled-packages.list文件是否符合预设格式,如果不符合所述预设格式,则判定所述/data/system/prebundled-packages.list文件损坏;

21、检查所述/data/misc_de/0/apexdata/com.android.permission/runtime-permissions.xml文件是否包含预设的文件元素和文件内是否存在乱码,如果未包含所述文件元素或存在乱码,则判定所述/data/misc_de/0/apexdata/com.android.permission/runtime-permissions.xml文件损坏。

22、在一实施例中,所述删除损坏的所述预设文件的步骤还包括:

23、在检查到预设文件损坏的情况下,采用同步磁盘缓存数据的方法,将内存中暂存的损坏文件删除指令和文件系统变更记录强制持久化写入设备物理存储。

24、此外,为实现上述目的,本技术还提出一种android设备的开机装置,所述开机装置包括:

25、预设文件获取模块,用于响应于设备开机后所述设备上的android操作系统运行到预设阶段,获取多类预设文件;

26、预设文件检查模块,用于通过多级和差异化校验方法检查所述多类预设文件是否损坏;

27、预设文件删除模块,用于在检查到预设文件损坏的情况下,删除损坏的所述预设文件;

28、设备重启和文件生成模块,用于在全部预设文件检查完成后重启所述设备,重新生成已删除的预设文件,使得所述设备成功进入操作系统桌面。

29、此外,为实现上述目的,本技术还提出一种android设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的开机方法的步骤。

30、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的开机方法的步骤。

31、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的开机方法的步骤。

32、本技术提出的一个或多个技术方案,至少具有以下技术效果:

33、本技术在设备开机后,当android系统运行到预设的阶段,采用多级和差异化校验方法检查多类预设文件是否损坏,当检查到某类预设文件损坏,删除损坏的预设文件。各类预设文件全部检查完之后则重启设备,对删除的文件自动生成该类预设文件。这样,android设备重开机后能成功加载各类预设文件,使得所述android设备开机后成功进入操作系统桌面,防止开机卡死现象。本实施例检查多类预设文件是否损坏,相较于现有技术仅校验packages.xml文件,检查覆盖范围广,同时,对多类预设文件采用多级和差异化校验方法进行检查,使得检查效率和检查准确性提高,能够将损坏的预设文件识别出并重新生成完好的预设文件,从而能够有效防止android设备开机卡死现象。