CN116089135A - 功能控制方法、装置、设备及存储介质 - Google Patents

功能控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116089135A
CN116089135A CN202210841404.8A CN202210841404A CN116089135A CN 116089135 A CN116089135 A CN 116089135A CN 202210841404 A CN202210841404 A CN 202210841404A CN 116089135 A CN116089135 A CN 116089135A
Authority
CN
China
Prior art keywords
space
operating system
version
state information
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210841404.8A
Other languages
English (en)
Inventor
余亮
刘景波
陈二磊
李晨箐
张贤林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210841404.8A priority Critical patent/CN116089135A/zh
Publication of CN116089135A publication Critical patent/CN116089135A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供的功能控制方法、装置、设备及存储介质,涉及终端技术领域。其中,该方法包括:获取电子设备中操作系统的系统版本,根据该系统版本控制第一功能的状态,即,在系统版本为测试版本时,控制第一功能使能,而在系统版本为正式版本时,控制第一功能关闭;其中,第一功能使能使得在操作系统故障重启时电子设备具备转储系统状态信息的能力,第一功能关闭使得在操作系统故障重启时电子设备不具备转储系统状态信息的能力。这样,电子设备在测试版本时,允许收集并转储系统崩溃重启时的系统状态信息,在正式版本时,禁止转储系统崩溃重启时的系统状态信息,能够有效的避免用户信息泄露的风险,提高了数据安全性。

Description

功能控制方法、装置、设备及存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种功能控制方法、装置、设备及存储介质。
背景技术
在电子设备的系统测试过程中,可能会出现异常事件或发生意外情况,例如,设备死机重启,这时可以收集系统状态信息,并将收集的系统状态信息存储至系统内的专用分区中,以便后续分析电子设备的系统崩溃原因。
但是,上述方式存在数据安全的问题。
发明内容
本申请实施例提供一种功能控制方法、装置、设备及存储介质,涉及终端技术领域,用于解决系统测试过程中可能存在的数据安全问题。
第一方面,本申请实施例提供一种功能控制方法,包括:
获取电子设备中操作系统的系统版本;
在所述系统版本为测试版本时,控制第一功能使能;
在所述系统版本为正式版本时,控制所述第一功能关闭;
其中,所述第一功能使能使得在所述操作系统故障重启时所述电子设备具备转储系统状态信息的能力,所述第一功能关闭使得在所述操作系统故障重启时所述电子设备不具备转储系统状态信息的能力。
在本实施例中,电子设备可以基于系统版本,动态控制第一功能(信息转储功能)的使能和关闭,在系统版本为测试版本时,允许收集并转储系统崩溃重启时的系统状态信息,而在电子设备的系统版本为正式版本时,禁止转储系统崩溃重启时的系统状态信息,能够有效的避免用户信息泄露的风险,提高了数据安全性。
一种可能的实现方式中,在所述系统版本为测试版本时,控制第一功能使能之后,所述方法还包括:在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记,所述第一标记用于标记所述第一空间在所述第一数据分区中的偏移信息;将所述第一标记记录至所述操作系统的第二数据分区。这样,电子设备在满足第一条件时会预留第一数据分区的空间,并生成空间预留的第一标记,其为后续转储信息的成功转储提供了实现条件。
一种可能的实现方式中,所述在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记,包括:在满足所述第一条件时,查询所述操作系统的内存空间大小;基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间;在所述第一空间预留成功时,基于所述第一空间的偏移位置,生成所述第一标记。在本实现方式中,第一空间的大小与内存空间相关,实现了对第一空间的动态预留,为后续成功转储系统状态信息奠定了基础。
一种可能的实现方式中,所述基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间,包括:将所述第一数据分区的空间大小扩展至所述操作系统的物理存储空间大小;通过安全回缩方式在所述第一数据分区的尾部预留所述第一空间;其中,所述第一空间的大小与所述内存空间大小正相关。这种可能实现中,首先将第一数据分区扩展至最大,再通过安全回缩(resize-s)方式进行空间预留的方案,可以保证第一数据分区有足够大小的空间被预留出来,为后续成功转储系统状态信息提供了前提条件。
一种可能的实现方式中,所述第一条件包括如下任意一种:所述电子设备首次开机、接收到恢复出厂设置指示。这样,在第一功能使能和操作系统的版本为测试版本的条件下,若电子设备首次开机或接收到恢复出厂设置指示,则可以预留第一数据分区中的空间,既能在操作系统故障重启时有足够的空间存储转储的系统状态信息,也避免了未满足第一条件时的空间浪费问题,为实现空间的合理利用奠定了基础。
一种可能的实现方式中,所述方法还包括:在满足第二条件时,回收所述第一空间,并清除所述第一标记;所述第二条件包括第一功能使能、所述第一数据分区存在所述第一空间和所述操作系统的版本升级为正式版本。在该种可能实现方式中,在操作系统的版本升级为正式版本后,若第一功能使能、第一数据分区存在第一空间,这时为了避免操作系统在故障重启时将系统状态信息进行转储,可以回收第一数据分区中的第一空间,并清除第一标记,以避免电子设备在系统故障时将系统状态信息转储至其他位置造成的用户数据不安全问题。
一种可能的实现方式中,所述方法还包括:在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间;将所述第一空间中的所述系统状态信息转储至目标文件。在实际实现时,bootloader可以将收集到的系统fulldump信息转储至第一数据分区的第一空间中,然后再利用本地服务层(native层)的转储服务将第一空间中fulldump信息转储至目标文件,添加完整转储的时间戳信息,这样可避免由于转储的系统状态信息不完整造成的无法解析问题。
一种可能的实现方式中在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间,包括:在所述操作系统故障重启时,获取所述操作系统的系统状态信息;基于所述第一标记,确定所述第一空间在所述第一数据分区中的偏移信息;基于所述偏移信息,将所述系统状态信息存储至所述第一空间的位置。在本实施例中,若操作系统故障重启,则可以通过第一标记确定出第一空间在第一数据分区中的位置信息,然后再把获取到的系统状态信息存储至该第一空间,实现了系统状态信息的收集和存储过程,为后续系统故障分析奠定了基础。
一种可能的实现方式中,所述将所述第一空间中的所述系统状态信息转储至目标文件,包括:在所述操作系统正常重启,且满足第三条件时,将所述第一空间内的所述系统状态信息转储至目标文件;其中,所述第三条件包括所述系统状态信息的大小小于或等于所述第一空间的大小、所述操作系统内的剩余空间与内存空间的大小满足预设关系和所述第一功能使能。在本实施例中,在操作系统正常重启、系统状态信息的大小小于或等于第一空间的大小,且操作系统存在足够的剩余空间时,再将第一空间中的系统状态信息转储至文件,可以有效避免由于空间不足造成转储失败的问题,提高了系统状态信息转储的成功率,从而提高了用户体验。
第二方面,本申请实施例提供一种功能控制装置,该功能控制装置可以是电子设备,也可以是电子设备内的芯片或者芯片系统。该功能控制装置可以包括获取单元和处理单元。当功能控制装置是电子设备时,获取单元和处理单元可以共同实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当功能控制装置是电子设备时,该获取单元和处理单元可以通过处理器实现。该功能控制装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该获取单元和处理单元执行该存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。当该功能控制装置是电子设备内的芯片或者芯片系统时,该获取单元和处理单元可以通过处理器实现。该获取单元和处理单元执行存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的一种方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该电子设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
示例性的,获取单元,用于获取电子设备中操作系统的系统版本;
处理单元,用于在所述系统版本为测试版本时,控制第一功能使能,以及在所述系统版本为正式版本时,控制所述第一功能关闭;其中,所述第一功能使能使得在所述操作系统故障重启时所述电子设备具备转储系统状态信息的能力,所述第一功能关闭使得在所述操作系统故障重启时所述电子设备不具备转储系统状态信息的能力。
在一种可能的实现中,所述处理单元,还用于在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记,所述第一标记用于标记所述第一空间在所述第一数据分区中的偏移信息;将所述第一标记记录至所述操作系统的第二数据分区。
在一种可能的实现中,在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记的过程中,所述处理单元,具体用于在满足所述第一条件时,查询所述操作系统的内存空间大小;基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间;在所述第一空间预留成功时,基于所述第一空间的偏移位置,生成所述第一标记。
在一种可能的实现中,在基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间的过程中,所述处理单元,具体用于将所述第一数据分区的空间大小扩展至所述操作系统的物理存储空间大小;通过安全回缩方式在所述第一数据分区的尾部预留所述第一空间;其中,所述第一空间的大小与所述内存空间大小正相关。
在一种可能的实现中,所述第一条件包括如下任意一种:所述电子设备首次开机、接收到恢复出厂设置指示。
在一种可能的实现中,所述处理单元,还用于在满足第二条件时,回收所述第一空间,并清除所述第一标记;所述第二条件包括第一功能使能、所述第一数据分区存在所述第一空间和所述操作系统的版本升级为正式版本。
在一种可能的实现中,所述处理单元,还用于在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间;将所述第一空间中的所述系统状态信息转储至目标文件。
在一种可能的实现中,在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间的过程中,所述处理单元,具体用于在所述操作系统故障重启时,获取所述操作系统的系统状态信息;基于所述第一标记,确定所述第一空间在所述第一数据分区中的偏移信息;基于所述偏移信息,将所述系统状态信息存储至所述第一空间的位置。
在一种可能的实现中,在将所述第一空间中的所述系统状态信息转储至目标文件的过程中,所述处理单元,具体用于在所述操作系统正常重启,且满足第三条件时,将所述第一空间内的所述系统状态信息转储至目标文件;其中,所述第三条件包括所述系统状态信息的大小小于或等于所述第一空间的大小、所述操作系统内的剩余空间与内存空间的大小满足预设关系和所述第一功能使能。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,存储器用于存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的功能控制方法。
第五方面,本申请实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的功能控制方法。
第六方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的功能控制方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1是用于处理完整转储信息的一种方案示意图;
图2是用于处理系统状态信息的另一种方案示意图;
图3是本申请实施例提供的用于处理完整转储信息的方案示意图;
图4是完整转储信息转储过程中的需求示意图;
图5是本实施例提供技术方案的逻辑视图;
图6是本申请提供的实施例中数据的流向示意图;
图7是本申请实施例使用的电子设备的结构示意图;
图8是本申请实施例提供的功能控制方法实施例一的流程示意图;
图9是本申请实施例提供的功能控制方法实施例二的流程示意图;
图10是本申请实施例中第一数据分区和第二数据分区的分布示意图;
图11是引导加载服务转储系统状态信息的流程示意图;
图12是转储时引导加载服务的界面状态示意图;
图13是转储系统状态信息转储至文件的流程示意图;
图14是本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、dump文件:又叫内存转储文件或者叫内存快照文件,是一个进程或系统在某一给定时间内的快照。比如,在进程崩溃或者进程有其他问题时,甚至任何时候,可以通过工具将系统或某进程的内存备份出来供调试分析用。dump文件中包含了程序运行的模块信息、线程信息、堆栈调用信息、异常信息等数据。
2、fulldump信息,即完整转储信息,在本实施例中,也称为系统状态信息,其包含了某个进程完整的地址空间数据,以及许多用于调试的信息。fulldump信息是用户态dump文件中的一种,用户态dump文件为操作系统下dump文件的一类。
3、Bootloader:引导加载服务,引导加载程序。在嵌入式操作系统中,Bootloader在操作系统内核运行之前运行,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
4、ramdump:内存转储;ramdump机制,是指某个时刻系统或者子系统发生崩溃等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。
5、Hiview:是一个跨平台的终端设备维护检测的服务集。
6、卷管理进程:vold进程,是volume Daemon,即Volume守护进程,用来管理系统中存储类的热拔插事件。一方面,vold进程用于管理和控制Android平台外部存储设备,包括安全数码(secure digital,SD)卡的插拨、挂载、卸载、格式化等;另一方面,vold进程用于接收来自内核的外部设备消息。
7、init进程:初始化进程,其是系统操作中不可缺少的程序之一,是一个由内核启动的用户级进程。
8、Native层:本地服务层,本地框架层,其主要用于提供常见的一些本地服务和一些链接库等。
9、其他术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在电子设备的测试或使用过程中,可能会出现异常事件或意外情况,例如,设备死机重启,这时需要收集fulldump信息(即,完整转储信息,系统状态信息),通过分析fulldump信息,以确认电子设备的系统或应用崩溃的原因,为解决故障、优化系统性能和稳定性提供依据。
在实际应用中,针对死机重启问题的定位,需要分析fulldump信息进行问题定位,这需要设备支持fulldump信息的自动转储和提单回传功能。但是,当前的fulldump信息的处理方式存在如下问题:1、不支持不同厂家、不同芯片;2、不支持空间的动态预留,例如,默认预留12GB,测试用户可使用的空间减少;3、不支持转储后系统的自动重启,需要测试用户手动长按键重启;4、不支持压缩转储。
可选的,下述介绍几种可能使用的完整转储信息的处理方案。
示例性的,图1是用于处理完整转储信息的一种方案示意图。如图1所示,操作系统中预先划分了独立分区,这样在操作系统出现异常,例如,系统panic时,引导加载服务(bootloader)可以将操作系统的完整转储(fulldump)信息写入该独立分区,然后操作系统重启时,可以利用转储服务从独立分区中读取该完整转储信息,并转储至SD卡或内存卡中的文件中。
在这种方案中,划分的独立分区是操作系统内的固定分区,但是电子设备在系统测试阶段与正式使用阶段对完整转储信息收集的需求不同,因而,利用该固定分区内存储数据时,可能存在数据兼容以及空间浪费的问题。
示例性的,图2是用于处理系统状态信息的另一种方案示意图。如图2所示,在本方案中,首先通过初始化进程(init进程)在数据分区中创建占位文件,并记录占位文件对应块列表的地址,这样在操作系统出现pinic时,引导加载服务(bootloader)可以基于占位文件对应的块列表的地址,将获取到的完整转储信息顺序转储至该占位文件对应的块中。
在这种方案中,直接将数据转储至文件,只需要对完整转储信息转储一次,占用空间小,但是这种方案可能会存在占位文件的地址不连续,导致转储性能下降、代码复杂度增加的问题,而且这种方案容易受垃圾回收、文件加密的影响。
具体的,一方面,若bootloader转储阶段使用不加密写入,占位文件的数据需要使用不加密方式读取,而且,该方案对全盘加密不可用,在完整转储信息(元数据)和数据加密场景,需要将占位文件存放至不加密目录,所以,在直接对完整转储信息加密或者对占位文件进行加密后,文件数据在解析时容易出现问题;另一方面,bootloader和上层(例如,native层)需要维护占位文件的块地址列表(block addr list),以及空间回收时可能需要修改块地址(block addr),这时需要在bootloader转储阶段处理输入和输出合并,因而,存在占位文件的块地址可能不连续的问题,导致bootloader转储阶段的转储性能下降(即,转储时间变长,转储速度变慢)、代码复杂度增加。
由上述分析可知,上述系统崩溃时的处理方案中未区分操作系统的版本,即,操作系统为测试版本和正式版本时的处理过程相同,若操作系统故障重启,均会转储收集到的系统状态信息,这样,对于已经发布的正式版本,可能存在用户信息泄露的风险,导致数据安全问题。
有鉴于此,本申请实施例提出了一种方案,通过获取电子设备中操作系统的系统版本,根据该系统版本控制第一功能的状态,即,在系统版本为测试版本时,控制第一功能使能,而在系统版本为正式版本时,控制第一功能关闭;其中,第一功能使能使得在操作系统故障重启时电子设备具备转储系统状态信息的能力,第一功能关闭使得在操作系统故障重启时电子设备不具备转储系统状态信息的能力。这样,若电子设备的系统版本为测试版本,则允许收集并转储系统崩溃重启时的系统状态信息,而在电子设备的系统版本为正式版本时,禁止转储系统崩溃重启时的系统状态信息,能够有效的避免用户信息泄露的风险,提高了数据安全性。
在介绍本申请实施例的技术方案之前,首先介绍一下电子设备在系统故障重启时的具体处理方案。
图3是本申请实施例提供的用于处理完整转储信息的方案示意图。如图3所示,在本实施例中,通过初始化进程(init进程)首先扩展数据分区的空间,再在数据分区的尾部预留一部分连续的空间,这样在操作系统出现pinic时,bootloader可以将操作系统的完整转储信息顺序转储至该预留空间,并在操作系统正常重启后,转储服务将预留空间中的完整转储信息转储至文件。
在本方案中,完整转储信息转储两次,即,首先利用bootloader将完整转储信息转储至预留分区,再利用转储服务将其转储至文件,但由于本方案中数据块连续,转储速度快、开机时间长。可以理解的是,本申请实施例的功能控制方法应用于电子设备,但不依赖于电子设备的硬件性能,对电子设备的硬件性能无较大要求。
可选的,图4是完整转储信息转储过程中的需求示意图。如图4所示,在本实施例中,完整转储信息的转储涉及到如下需求:
1、支持完整转储信息的自动转储,即,bootloader fulldump转储功能;
2、数据分区根据内存大小动态预留空间;
其中,内存大小可以是双倍速率(double data rate,DDR)同步动态随机存储器的大小。
3、数据分区中预留空间的回收;
4、系统崩溃后,完整转储信息被转储至预留空间;
5、压缩转储,即,首先将数据分区扩展至物理存储空间大小,再在数据分区预留空间;
6、转储完,支持系统自动重启或用户手动重启;
7、重启后,将完整转储信息转储至文件;
8、操作系统的空间不足时,不转储至文件;
9、测试应用发出重启问题后,会自动打包完整转储信息对应的文件,并删除。
其中,测试应用是电子设备上安装的用于反馈版本问题的重要工具。
响应于上述需求,本申请实施例提供的方案依赖如下实现:1、依赖于芯片的ramdump机制;2、熔丝版本解析;3、依赖数据分区的空间,这是因为完整转储信息占用的空间较大,只支持一条转储记录。
示例性的,图5是本实施例提供技术方案的逻辑视图。如图5所示,本实施例的技术方案涉及Bootloader层、native层和应用层。因而,本申请实施例的方案实现逻辑如下:
1、完整转储开关使能;
在引导加载服务层,引导加载服务(bootloader)可以使能内存转储(ramdump)分区中的完整转储开关。
2、空间预留和预留标记更新;
在本地服务层(native层),init进程通过vold在设备首次开机或恢复出厂设置时,可以在数据分区中预留空间,并在内存转储分区中更新预留标记。
3、系统崩溃时,压缩转储;
在系统出现崩溃时,bootloader可将收集的操作系统的完整转储信息压缩转储至数据分区内预留的空间中,并在系统正常重启时,将预留空间中的完整转储信息转储至文件。
4、提单回传和完整转储信息的压缩;
在测试用户通过测试应用提出重启问题单后,hiview基于该重启问题单,从转储文件获取行完整转储信息,并对完整转储信息压缩后,会回传至测试应用。
5、空间回收;
init进程通过vold在设备的操作系统升级为正式版本后,可以回收数据分区内的预留空间,实现了数据分区中空间的动态预留与回收,解决了空间占用的问题。
可选的,图6是本申请提供的实施例中数据的流向示意图。如图6所示,测试应用具有提单功能,即提交问题单的功能;hiview可以基于提交的问题单抓取完整转储信息(fulldump)。转储服务用于将完整转储信息转储成完整转储文件,并控制内存转储分区的读写。
可选的,如图6所示,该示意图中还可以包括卷管理(vold)进程和恢复出厂设置(factory_reset)进程。其中,卷管理(vold)进程用于调整空间预留,主要实现分区回收、分区预留和内存数据分区的读写。恢复出厂设置(factory_reset)进程用于实现格式化,并在格式化时分区预留。
可选的,vold进程实现分区回收、分区预留,需要通过静态库的第一接口实现对内存转储分区和数据分区中预留空间的控制。其中,第一接口可以是libresize_data.a,为提供分区预留和分区回收的接口。
vold进程实现内存转储分区读写、factory_reset进程实现格式化时分区预留需要通过静态库的第二接口实现对内存转储分区和数据分区中预留空间的控制。其中,第二接口可以是librerainbow_fulldump.a,为提供内存转储分区读写和格式化预留的接口。
可选的,如图6所示,该示意图中还可以包括bootloader,其用于提供使能fulldump和转储完整转储信息。具体的,bootloader通过使用内存转储分区使能fulldump;bootloader通过使用数据分区中的预留空间实现转储完整转储信息。
由此可知,在本申请的实施例中,但不同芯片、不同产品芯片的基线各异,但电子设备是否支持转储功能由bootloader来控制。
可理解,本申请实施例的电子设备也可以为任意形式的终端设备,例如,电子设备可以包括安装有操作系统的手持式设备、车载设备等。例如,一些电子设备为:手机(mobilephone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。
作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)系统中的终端设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
本申请实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
值得说明的是,本申请实施例的产品实现形态是包含在机器学习、深度学习平台软件中,并部署在电子设备上的程序代码。本申请实施例的程序代码可以存储在电子设备内部。运行时,程序代码运行于电子设备的主机内存和/或GPU内存。
为了能够更好地理解本申请实施例,下面对本申请实施例的电子设备的结构进行介绍:
示例性的,图7是本申请实施例使用的电子设备的结构示意图。如图7所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED),低温多晶氧化物(low temperature polycrystallineoxide,LTPO)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
下面通过具体的实施例对本申请实施例的功能控制方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图8是本申请实施例提供的功能控制方法实施例一的流程示意图。该实施例的方法应用于电子设备,可以由电子设备执行,也可以由电子设备中的处理器执行。本实施例中以电子设备执行该方法进行说明。如图8所示,该功能控制方法可以包括如下步骤:
S801、获取电子设备中操作系统的系统版本。
在本申请的实施例中,为了保证电子设备在测试过程中的用户数据安全,电子设备在正常开机或者接收到恢复出厂设置指示时,可以检测电子设备中当前安装的操作系统的系统版本。
可选的,操作系统的每个版本通常会经过测试阶段,在排除掉触发操作系统故障重启的问题后再进行发布,而大多数用户通常会倾向于安装发布后的正式版本,以避免用户信息泄露,所以,电子设备可以基于操作系统的系统版本,执行不同的控制过程。
在一种可选的实施例中,在系统版本为测试版本时,执行S802:
S802、控制第一功能使能;其中,该第一功能使能使得在操作系统故障重启时电子设备具备转储系统状态信息的能力。
在实际应用中,操作系统的测试版本通常是刚开发出来的、功能还不完善的系统版本,其在运行过程中可能存在一些不可知的问题导致系统故障重启,在电子设备的操作系统处于测试版本,通常需要收集并转储处于操作系统故障重启时的系统状态信息,以便分析系统故障重启的原因,这样便可以对操作系统进行优化,以更好的服务于用户,提高用户的使用体验。
在本实施例中,为了实现监控处于测试版本的操作系统故障的原因,可以控制电子设备的第一功能使能,以使得在操作系统故障重启时,电子设备具备转储系统状态信息的能力。
可理解,该第一功能使能可以理解为fulldump使能,即在操作系统故障重启时,电子设备可以通过引导加载服务(bootloader)自动转储收集到的系统状态信息,以便后续的分析。
在一种可选的实施例中,在系统版本为正式版本时,执行S803:
S803、控制第一功能关闭;其中,该第一功能关闭使得在操作系统故障重启时电子设备不具备转储系统状态信息的能力。
可选的,当测试版本的操作系统经过一段时间的测试,确定操作系统的测试版本稳定时,便可以将该操作系统发布出去,以便大众用户去安装和使用。通常情况下,大众用户为了保证自己的数据安全,会禁止收集系统故障重启时的系统状态信息,所以,在本申请的实施例中,在电子设备的操作系统处于正式版本时,可以控制电子设备的第一功能关闭,以使得在操作系统故障重启时,电子设备不具备转储系统状态信息的能力,从而避免电子设备在操作系统故障重启时,去转储收集到的系统状态信息的行为。
在本申请的实施例中,通过获取电子设备中操作系统的系统版本,根据该系统版本控制第一功能的状态,即,在系统版本为测试版本时,控制第一功能使能,而在系统版本为正式版本时,控制第一功能关闭;其中,第一功能使能使得在操作系统故障重启时电子设备具备转储系统状态信息的能力,第一功能关闭使得在操作系统故障重启时电子设备不具备转储系统状态信息的能力。这样,若电子设备的系统版本为测试版本,则允许收集并转储系统崩溃重启时的系统状态信息,而在电子设备的系统版本为正式版本时,禁止转储系统崩溃重启时的系统状态信息,能够有效的避免用户信息泄露的风险,提高了数据安全性。
示例性的,在上述实施例的基础上,图9是本申请实施例提供的功能控制方法实施例二的流程示意图。参照图9所示,在本申请的实施例中,在S802之后,该方法还可以包括如下步骤:
S901、在满足第一条件时,在操作系统的第一数据分区预留第一空间,并生成第一标记。
其中,第一标记用于标记所述第一空间在所述第一数据分区中的偏移信息。
S902、将第一标记记录至操作系统的第二数据分区。
在实际应用中,当操作系统发生panic,即,故障、崩溃、错误时,操作系统通常会默认立即重启,并根据panic的不同状态,将记录系统在锁定之前的所有信息。因为系统panic重启是一种很严重的错误,不能确定系统能记录多少信息,因而,需要收集系统状态信息,以便在后续分析故障的原因。
可选的,为了能够在系统崩溃存储收集到的系统状态信息,电子设备可以在满足第一条件时,在第一数据分区中预留第一空间,并在第一空间预留成功后生成第一标记,将该第一标记记录到操作系统的第二数据分区中。
可理解,该第一标记可以通过fulldump_header表征,用于标识第一空间在第一数据分区中的偏移信息,也可以说成第一标识用于标识第一空间在第一数据分区中预留成功。
其中,第一数据分区可以理解为图3至图6中的数据分区。第一数据分区中的第一空间可以用于转储系统崩溃时收集到的系统状态信息,第一空间可以是第一数据分区的尾部空间。该第二数据分区可以理解为图3至图6中的内存转储分区。
可选的,在本实施例中,第二数据分区用于记录第一标记,即fulldump header元数据,第二数据分区用于记录完整转储信息的内容,因而,在生成第一标记后,便可以将第一标记记录至第二数据分区,以便后续对系统状态信息进行转储时,通过获取第一标记以确定第一空间的位置。
示例性的,图10是本申请实施例中第一数据分区和第二数据分区的分布示意图。如图10的(a)所示,第一数据分区的尾部具有第一空间。通常情况下,第一空间的大小等于内存大小和预设大小之和,例如,该预设大小可以为0.5GB或1GB等,本实施例并不对预设大小的具体取值进行限定,其可以根据实际需求设定。如图10的(b)所示,第二数据分区中存在用于记录第一标记的区域。可理解,用于记录第一标记的区域可以是第二数据分区的任意区域,其可以根据实际需求设定,本实施例不对其进行限定。例如,用于记录第一标记的区域通常位于第二数据分区的中间区域部分。可理解,不同的芯片,第一标记在第二数据分区内的位置不同,本申请实施例并不对其进行限定。
在本申请的实施例中,第一条件包括如下任意一种:电子设备首次开机、接收到恢复出厂设置指示。相应的,结合第一功能使能的前提条件可知,预留第一空间的操作如下:
在本申请的一种可选实施例中,在电子设备首次开机、第一功能使能和操作系统的版本为测试版本时,便可以在操作系统的第一数据分区预留第一空间,并生成第一标记。
例如,在设备首次开机时,首先获取第一数据分区的大小,确定第一数据分区的大小与物理存储空间的关系。可选的,若第一数据分区的大小小于物理存储空间的一半,则首先进行空间调整(ResizeF2fs),以扩充第一数据分区的空间,再判断操作系统是否为测试版本,若操作系统为正式版本或商用版本,则将第一数据分区扩至最大物理存储空间;若操作系统为测试版本,且第一功能使能(fulldump使能),且第一数据分区没有预留空间,则执行预留第一空间的操作。
在本申请的一种可选实施例中,在电子设备接收到恢复出厂设置指示,以及第一功能使能和操作系统的版本为测试版本时,也可以在操作系统的第一数据分区预留第一空间,并生成第一标记。
例如,在设备获取到用户触发的恢复出厂设置时,首先判断第一功能是否使能,若第一功能未使能,即fulldump关闭时,首先将第一数据分区扩充至物理存储空间大小;若第一功能使能,即fulldump打开时,执行预留第一空间的操作。
可选的,在本申请的实施例中,S901的具体实现如下:
A1、在满足第一条件时,查询操作系统的内存空间大小。
可选的,在本实施例中,第一空间的大小与内存空间的大小有关,因而,在本实施例中,执行预留第一空间的操作时,可以查询操作系统的内存空间大小,例如,查询DDR的大小。
A2、基于操作系统的内存空间大小,在第一数据分区预留第一空间。
示例性的,在确定操作系统的内存空间大小后,可以首先根据操作系统的内存空间大小,确定第一空间的大小,然后根据第一空间的大小在第一数据分区预留第一空间。
在本申请的实施例中,在第一数据分区预留第一空间的具体方式如下:
1.将第一数据分区的空间大小扩展至操作系统的物理存储空间大小;
2.通过安全回缩方式在第一数据分区的尾部预留第一空间,该第一空间的大小与内存空间大小正相关。
可选的,在电子设备中,第一空间的大小与内存空间大小正相关,例如,第一空间的大小等于DDR的大小+0.5GB。可理解,本申请实施例并不限定第一空间的具体大小,其可以根据实际需求确定,此处不作赘述。
在本实施例中,为了保证第一数据分区有足够大小的空间被预留出来,首先可以将第一数据分区的空间大小扩展至操作系统的物理存储空间大小,即将第一数据分区的空间扩展至最大,然后再通过安全回缩(resize-s)方式,将第一数据分区尾部的第一空间预留出来。可理解,安全回缩方式可以理解为在保证第二数据分区的大小不变的情况下,在第二数据分区尾部的预留该第一空间的大小。
A3、在第一空间预留成功时,基于第一空间的偏移位置,生成第一标记。
可选的,在本实施例中,当第一数据分区中的第一空间被成功预留时,可以通过生成第一标记的方式进行标记。具体的,第一标记可以用于标记第一空间已经被预留成功,以及其在存储器件中第一空间的偏移位置,因而,在第一空间预留成功时,可以基于第一空间的偏移位置,生成第一标记。
可选的,在本申请的一种可选实施例中,在S902之后,该方法还可以包括如下步骤:
S903、在操作系统故障重启时,基于第一标记,将获取的系统状态信息存储至第一空间。
在本申请的实施例中,在操作系统故障重启时,首先查询操作系统的分区中是否存在第一标记。例如,在第二数据分区中存在第一标记时,认为电子设备的引导加载服务支持第一功能,即bootloader支持fulldump转储,此时便可以使能fulldump_header中enable标记。
相应的,在本申请的实施例中,该S903可以通过如下步骤实现:
B1、在操作系统故障重启时,获取操作系统的系统状态信息;
B2、基于第一标记,确定第一空间在第一数据分区中的偏移信息;
B3、基于偏移信息,将系统状态信息存储至第一空间的位置。
示例性的,图11是引导加载服务转储系统状态信息的流程示意图。如图11所示,在操作系统崩溃触发重启时,进入引导加载服务(bootloader)的异常处理流程,即,引导加载服务可以自动收集操作系统故障之前的系统状态信息,并从第二数据分区(ramdump分区)读取第一标记(fulldump_header标记),若第一功能使能(fulldump使能)并且第一标记预留成功,则可以基于第一标记,确定第一空间在第一数据分区中的偏移位置,从而将系统状态信息压缩写入第一数据分区中的第一空间,即将系统状态信息(fulldump数据)写入第一数据分区尾部的预留空间中;随后,引导加载服务还可以更新第一标记(fulldump_header标记)所在区域中系统状态信息的大小;最后根据系统中的自动重启标记(is_auto_reset)标记是否重启,从而完成了完整转储信息转储。
可选的,本实施例还给出了手动模式和自动模式执行系统状态信息转储的bootloader界面状态和提示优化的对比示意图。例如,图12是转储时引导加载服务的界面状态示意图。如图12所示,在本实施例中,界面状态可以包括:
1.异常重启状态:panic进入bootloader,触发转储fulldump信息;
2.手动转储状态:fulldump转储关闭,提示用户手动转储,并且长按电源键重启;
提示:Please dump the logs with USB tool.
3.USB转储状态;
提示:Dumping logs,please wait for 3minutes...。
4.手动转储结束状态:自动转储完,提示手动重启,长按电源键重启;
提示:Dump done.
提示:Please press and hold the Power and Volume down buttons for morethan 10seconds to restart.
5.自动转储状态:fulldump转储打开,进行自动转储,根据“自动重启”开关决定是否自动/手动重启;
提示:Dumping logs,restart automatically after 3minutes.
6.自动转储结束状态:自动转储完,提示重启中。
提示:Dump done and restarting...。
在本实施例中,通过在第一数据分区预留第一空间,并在第二数据分区记录第一标记,可以实现了系统状态信息的自动转储,简化了转储步骤,提高了信息处理效率。
S904、将第一空间中的系统状态信息转储至目标文件。
在本实施例中,在基于第一标记,将获取的系统状态信息存储至第一空间之后,还可以将第一空间中的系统状态信息转储至目标文件。
对于异常场景,系统Panic重启后,用户可以通过测试应用提交问题单,但此时操作系统的系统状态信息没有转储完毕,若此时,将收集到的系统状态信息回传给测试应用,则会存在系统状态信息不完整、导致信息无法解析的问题,因而,在本实施例中,bootloader将收集到的系统fulldump信息转储至第一数据分区的第一空间中,然后再利用本地服务层(native层)的转储服务将第一空间中fulldump信息转储至目标文件,添加完整转储的时间戳信息,从而避免了获取到的系统状态信息无法解析的问题。
示例性的,在操作系统正常重启且满足第三条件时,将第一空间内的系统状态信息转储至目标文件。
其中,第三条件包括系统状态信息的大小小于或等于第一空间的大小、操作系统内的剩余空间与内存空间的大小满足预设关系和第一功能使能。
可选的,在本实施例中,图13是转储系统状态信息转储至文件的流程示意图。如图13所示,在电子设备正常开机重启时,转储服务启动,首先确定操作系统的版本是否为测试版本,相应的,在操作系统的版本是测试版本时,将is_auto_reset置true;在操作系统的版本为正式版本时,将is_auto_reset置false;其次,在系统版本为测试版本时,判断操作系统上次是否异常重启,如果是异常重启,即,在系统版本为测试版本且操作系统上次异常重启时,获取操作系统的剩余空间,从而判断操作系统内的剩余空间与内存空间的大小满足预设关系,即,判断操作系统的剩余空间是否小于2倍DDR大小,若操作系统的剩余空间小于2倍DDR大小,则退出,若操作系统的剩余空间大于或等于2倍DDR大小,则读取第一标记(fulldump_header);再次,在第一功能使能(fulldump_header使能)且系统状态信息的大小小于或等于第一空间的大小时,将系统状态信息转储至目标文件;在转储完成时,标记完成,最后退出转储服务。
示例性的,在系统状态信息的大小在范围(0,DDRSize+0.5GB]内,且操作系统的剩余空间大于或等于2倍DDR空间,且fulldump_header使能时,将第一空间中的系统状态信息转储至目标文件,例如,/data/vendor/log/reliability/fulldumplog目录下。可选的,目标文件的文件名带时间戳。这样可以避免由于空间不足造成转储失败的风险,提高了系统状态信息转储的成功率,从而提高了用户体验。
在本申请的一种可选实施例中,参照图9所示,在S904之后,该方法还可以包括如下步骤:
S905、在满足第二条件时,回收第一空间,并清除第一标记;其中,第二条件包括第一功能使能、第一数据分区存在第一空间和操作系统的版本升级为正式版本。
可选的,在电子设备的应用场景发生变化时,例如,操作系统的版本从测试版本升级为正式版本时,若第一功能使能且第一数据分区存在第一空间,则为了保证用户数据安全和/或保护用户隐私信息,需要在系统故障重启时,电子设备也不会自动转储收集到的系统状态信息。所以,在该场景中,需要关闭第一功能。
可理解,第一功能关闭后,第一数据分区中的第一空间被闲置,因而,在满足第二条件时,可以回收第一数据分区中的第一空间,并清除第一标记,以保证电子设备不会在系统故障时将系统状态信息转储至其他位置,以保证了用户数据安全。
可选的,第一功能使能可以认为第一数据分区中存在预留的第一空间以及第二数据分区中存在第一标记,因而,在第一空间被回收后,可以清除第二数据分区中的第一标记。
可选的,在本申请的实施例中,操作系统的版本从测试版本升级为正式版本的方式可以包括但不局限于如下任意一种:通过USB、SD或者在线升级等方式。即,电子设备可以通过USB、SD或者在线升级等方式中的任意一种,将系统版本从log版升级到nolog版,使得系统版本变成国内beta版本。
其中,log版,即正式版本时,允许开发者抓取数据;nolog版,即测试版本,不允许开发者抓取数据。测试版本,即国内beta。
可选的,在设备开机ResizeF2fs后,若fulldump使能、第一数据分区存在已预留空间(第一空间)并且系统版本为正式版本,则可以通过resize方式将第一数据分区扩展至物理大小,并清除第二数据分区内的第一标记,从而实现了第一数据分区中预留空间的回收。
本申请实施例提供的功能控制方法,在满足第一条件时,在操作系统的第一数据分区预留第一空间,并生成第一标记,该第一标记用于标记所述第一空间在所述第一数据分区中的偏移信息,将第一标记记录至操作系统的第二数据分区,在操作系统故障重启时,基于该第一标记,将获取的系统状态信息存储至第一空间,最后在满足第二条件时,回收第一空间,并清除第一标记。该技术方案中,第一数据分区中的空间可被预留或回收,实现了第一数据分区中空间的动态管理,解决了空间浪费的问题。
可选的,在本申请的实施例中,可以通过如下几种场景来验证本申请实施例的技术方案是否能够实现:
场景1:在测试版本(log版本)开机时,测试第一数据分区内的第一空间是否预留成功;
场景2:在测试(log)版本时,测试第一数据分区内的第一空间通过恢复出厂设置方式是否预留成功;
场景3:测试版本升级为正式版本(log升级nolog版本)时,测试第一数据分区内的第一空间是否回收成功;
场景4:通过触发系统异常(panic),测试是否能够传出压缩的系统状态信息(fulldump);
场景5:通过测试应用提交问题单,测试系统状态信息(fulldump)是否能够被打包成功。
通过上述各场景的验证方案,本申请实施例的技术方案可以实现第一数据分区中空间的预留和回收,解决了预留固定空间方式存在的空间浪费的问题。此外,本申请实施例的技术方案首先转储至预留空间,再转储文件的方式,避免了由于转储的系统状态信息不完整导致的无法解析问题。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对实现功能控制方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图14是本申请实施例提供的一种芯片的结构示意图。芯片1400包括一个或两个以上(包括两个)处理器1401、通信线路1402、通信接口1403和存储器1404。
在一些实施方式中,存储器1404存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
上述本申请实施例描述的方法可以应用于处理器1401中,或者由处理器1401实现。处理器1401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器1401可以实现或者执行本申请实施例中公开的各处理相关的方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器1404,处理器1401读取存储器1404中的信息,结合其硬件完成上述方法的步骤。
处理器1401、存储器1404以及通信接口1403之间可以通过通信线路1402进行通信。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (13)

1.一种功能控制方法,其特征在于,包括:
获取电子设备中操作系统的系统版本;
在所述系统版本为测试版本时,控制第一功能使能;
在所述系统版本为正式版本时,控制所述第一功能关闭;
其中,所述第一功能使能使得在所述操作系统故障重启时所述电子设备具备转储系统状态信息的能力,所述第一功能关闭使得在所述操作系统故障重启时所述电子设备不具备转储系统状态信息的能力。
2.根据权利要求1所述的方法,其特征在于,在所述系统版本为测试版本时,控制第一功能使能之后,所述方法还包括:
在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记,所述第一标记用于标记所述第一空间在所述第一数据分区中的偏移信息;
将所述第一标记记录至所述操作系统的第二数据分区。
3.根据权利要求2所述的方法,其特征在于,所述在满足第一条件时,在所述操作系统的第一数据分区预留第一空间,并生成第一标记,包括:
在满足所述第一条件时,查询所述操作系统的内存空间大小;
基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间;
在所述第一空间预留成功时,基于所述第一空间的偏移位置,生成所述第一标记。
4.根据权利要求3所述的方法,其特征在于,所述基于所述操作系统的内存空间大小,在所述第一数据分区预留所述第一空间,包括:
将所述第一数据分区的空间大小扩展至所述操作系统的物理存储空间大小;
通过安全回缩方式在所述第一数据分区的尾部预留所述第一空间;其中,所述第一空间的大小与所述内存空间大小正相关。
5.根据权利要求3所述的方法,其特征在于,所述第一条件包括如下任意一种:所述电子设备首次开机、接收到恢复出厂设置指示。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述方法还包括:
在满足第二条件时,回收所述第一空间,并清除所述第一标记;
所述第二条件包括第一功能使能、所述第一数据分区存在所述第一空间和所述操作系统的版本升级为正式版本。
7.根据权利要求2至5任一项所述的方法,其特征在于,所述方法还包括:
在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间;
将所述第一空间中的所述系统状态信息转储至目标文件。
8.根据权利要求7所述的方法,其特征在于,在所述操作系统故障重启时,基于所述第一标记,将获取的系统状态信息存储至所述第一空间,包括:
在所述操作系统故障重启时,获取所述操作系统的系统状态信息;
基于所述第一标记,确定所述第一空间在所述第一数据分区中的偏移信息;
基于所述偏移信息,将所述系统状态信息存储至所述第一空间的位置。
9.根据权利要求7所述的方法,其特征在于,所述将所述第一空间中的所述系统状态信息转储至目标文件,包括:
在所述操作系统正常重启,且满足第三条件时,将所述第一空间内的所述系统状态信息转储至目标文件;
其中,所述第三条件包括所述系统状态信息的大小小于或等于所述第一空间的大小、所述操作系统内的剩余空间与内存空间的大小满足预设关系和所述第一功能使能。
10.一种功能控制装置,其特征在于,包括:
获取单元,用于获取电子设备中操作系统的系统版本;
处理单元,用于在所述系统版本为测试版本时,控制第一功能使能,以及在所述系统版本为正式版本时,控制所述第一功能关闭;
其中,所述第一功能使能使得在所述操作系统故障重启时所述电子设备具备转储系统状态信息的能力,所述第一功能关闭使得在所述操作系统故障重启时所述电子设备不具备转储系统状态信息的能力。
11.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以执行如上述权利要求1-9任一项所述的信息处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如上述权利要求1-9任一项所述的信息处理方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得电子设备执行如上述权利要求1-9任一项所述的方法。
CN202210841404.8A 2022-07-18 2022-07-18 功能控制方法、装置、设备及存储介质 Pending CN116089135A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210841404.8A CN116089135A (zh) 2022-07-18 2022-07-18 功能控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210841404.8A CN116089135A (zh) 2022-07-18 2022-07-18 功能控制方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116089135A true CN116089135A (zh) 2023-05-09

Family

ID=86205126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210841404.8A Pending CN116089135A (zh) 2022-07-18 2022-07-18 功能控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116089135A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664655A (zh) * 2018-05-18 2018-10-16 上海赛治信息技术有限公司 嵌入式系统的日志存储方法及系统
CN112948157A (zh) * 2021-01-29 2021-06-11 苏州浪潮智能科技有限公司 服务器故障定位方法、装置、系统及计算机可读存储介质
CN113704205A (zh) * 2021-07-29 2021-11-26 荣耀终端有限公司 日志存储的方法、芯片、电子设备和可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664655A (zh) * 2018-05-18 2018-10-16 上海赛治信息技术有限公司 嵌入式系统的日志存储方法及系统
CN112948157A (zh) * 2021-01-29 2021-06-11 苏州浪潮智能科技有限公司 服务器故障定位方法、装置、系统及计算机可读存储介质
CN113704205A (zh) * 2021-07-29 2021-11-26 荣耀终端有限公司 日志存储的方法、芯片、电子设备和可读存储介质

Similar Documents

Publication Publication Date Title
EP3451193B1 (en) Electronic device and file data journaling method of electronic device
CN104185836A (zh) 用于在系统改变之后验证计算设备的适当操作的方法和系统
US20140129875A1 (en) Method for reading kernel log upon kernel panic in operating system
KR20110022146A (ko) 휴대용 단말기에서 하이버네이션 부팅 방법 및 장치
KR101673299B1 (ko) 운영 시스템 복구 방법 및 장치, 그리고 단말기기
CN109964227A (zh) 更新SELinux安全策略的方法及终端
CN115328563B (zh) 系统启动方法及电子设备
WO2022247301A1 (zh) 检测方法、图形界面及相关装置
CN116700768B (zh) 一种应用的处理方法及相关装置
KR102405593B1 (ko) 전자 장치 및 그의 데이터 운용 방법
CN116467015B (zh) 镜像生成方法、系统启动校验方法及相关设备
CN116400938B (zh) 操作系统的升级方法、设备及存储介质
CN115357295B (zh) 系统回退方法、设备及存储介质
CN116719670B (zh) 数据处理的方法、电子设备及可读存储介质
KR102274668B1 (ko) 차량용 avn 시스템의 소프트웨어 업데이트 제어 장치 및 방법
CN116089135A (zh) 功能控制方法、装置、设备及存储介质
KR102516940B1 (ko) 부팅을 수행하는 전자 장치와 이의 동작 방법
CN116088747A (zh) 信息处理方法、装置、设备及存储介质
CN112463199A (zh) 一种系统升级方法及终端
CN108270832B (zh) 一种故障重放方法和装置
CN113778485A (zh) 电子芯片的系统运行方法、装置、电子芯片和存储介质
CN117312055B (zh) 数据备份的方法及相关装置
KR20210016913A (ko) 데이터베이스의 데이터 유실을 방지하기 위한 전자 장치 및 전자 장치의 동작 방법
CN116701318B (zh) 系统升级信息获取方法、电子设备及存储介质
CN117707629A (zh) 系统启动方法、可读存储介质和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination