CN116467015B - 镜像生成方法、***启动校验方法及相关设备 - Google Patents
镜像生成方法、***启动校验方法及相关设备 Download PDFInfo
- Publication number
- CN116467015B CN116467015B CN202310732587.4A CN202310732587A CN116467015B CN 116467015 B CN116467015 B CN 116467015B CN 202310732587 A CN202310732587 A CN 202310732587A CN 116467015 B CN116467015 B CN 116467015B
- Authority
- CN
- China
- Prior art keywords
- image
- partition
- mirror
- check
- security check
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 150
- 238000005192 partition Methods 0.000 claims abstract description 638
- 230000015654 memory Effects 0.000 claims abstract description 97
- 238000005056 compaction Methods 0.000 claims abstract description 37
- 238000004806 packaging method and process Methods 0.000 claims abstract description 20
- 238000012856 packing Methods 0.000 claims abstract description 9
- 239000003550 marker Substances 0.000 claims description 23
- 230000009467 reduction Effects 0.000 claims description 9
- 238000012423 maintenance Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 56
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000006854 communication Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000003068 static effect Effects 0.000 description 11
- 210000000988 bone and bone Anatomy 0.000 description 9
- 238000004590 computer program Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012858 packaging process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种镜像生成方法、***启动校验方法及相关设备,镜像生成方法包括:基于预设镜像精简规则确定参与镜像精简的多个安全校验分区镜像;为每个安全校验分区镜像添加镜像标识结构体,镜像标识结构体用于保存对应的安全校验分区镜像的信息;基于添加有镜像标识结构体的每个安全校验分区镜像,打包得到安全校验精简镜像。利用上述方法,通过将多个安全校验分区镜像打包成一个安全校验分区镜像,可降低分区列表中记录的安全校验分区的数量,即可降低分区列表的数据量与维护成本,减少内存空间的占用,提高分区列表的查询效率,且在每个安全校验分区镜像中添加镜像标识结构体,便于后续校验时可基于镜像标识结构体正确读取到对应的镜像内容。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种镜像生成方法、***启动校验方法及相关设备。
背景技术
为了提升电子设备运行的安全性,电子设备在开机启动阶段,一般会对操作***镜像进行合法性校验。对于基于内核的操作***,在实际启动的过程中,可以依次将启动操作***的引导程序镜像、内核镜像、主***镜像加载至内存,并在内存中依次验证每种镜像的合法性,在前一种镜像经验证合法后才加载下一种镜像至内存,直至主***镜像也通过合法性验证后,才会将主***镜像在内核的帮助下展开为用户真正能够看到的主***程序,至此完成电子设备的启动全过程。若存在镜像的合法性校验失败,操作***将会无法正常启动。
待校验镜像的镜像内容一般存储在安全校验分区中,由于待校验镜像数量较多,导致安全校验分区数量较多,若操作***具备A/B分区***功能,安全校验分区数量会大幅度增加。对于用于记录各个安全校验分区的信息的分区列表而言,随着安全校验分区数量的增加,分区列表的数据量也会增加,导致分区列表维护成本高,且会降低分区列表的查询效率,数据量大的分区列表亦会占用较多的内存空间,造成内存空间的浪费。
发明内容
鉴于以上内容,有必要提供一种镜像生成方法,通过将多个安全校验分区镜像打包成一个安全校验分区镜像,及在每个安全校验分区镜像中添加镜像标识结构体,改善分区列表数据量大及维护成本高的问题。
第一方面,本申请提供一种镜像生成方法,包括:基于预设镜像精简规则确定参与镜像精简的多个安全校验分区镜像;为多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体,镜像标识结构体用于保存对应的安全校验分区镜像的信息;基于添加有镜像标识结构体的每个安全校验分区镜像,打包得到安全校验精简镜像。采用上述技术方案,通过将多个安全校验分区镜像打包成一个安全校验分区镜像,进而多个安全校验分区镜像可共用一个安全校验分区进行存储,可降低分区列表中记录的安全校验分区的数量,即可降低分区列表的数据量与维护成本,减少内存空间的占用,提高分区列表的查询效率,且在每个安全校验分区镜像中添加镜像标识结构体,便于后续进行镜像校验时可基于镜像标识结构体正确读取到对应的镜像内容。
在一种可能的实现方式中,为多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体之后,还包括:对每个安全校验分区镜像进行内容填充,使得每个安全校验分区镜像达到预设大小;基于添加有镜像标识结构体的每个安全校验分区镜像,打包得到安全校验精简镜像,包括:基于内容填充后的每个安全校验分区镜像,打包得到安全校验精简镜像,安全校验精简镜像中的每个安全校验分区镜像设置有不同的签名校验密钥。采用上述技术方案,通过将各个安全校验分区镜像填充至预设大小(例如4KB),即保证各个安全校验分区镜像在安全校验精简镜像中对齐,又可使得各个安全校验分区镜像符合vbmeta镜像规范,且保留了各个安全校验分区镜像的签名校验密钥,可以提升各个安全校验分区镜像的镜像内容的安全性。
在一种可能的实现方式中,为多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体,包括:在每个安全校验分区镜像的镜像内容后添加镜像标识结构体。采用上述技术方案,通过在每个安全校验分区镜像的镜像内容后添加镜像标识结构体,便于后续进行镜像校验时可基于镜像标识结构体正确读取到对应的镜像内容,且便于后续通过镜像标识结构体将镜像内容与填充内容隔开。
在一种可能的实现方式中,对每个安全校验分区镜像进行内容填充,包括:在每个安全校验分区镜像的镜像标识结构体后填充预设内容。采用上述技术方案,通过在镜像标识结构体后进行内容填充,便于将原本的镜像内容与填充内容进行隔开,且保证各个安全校验分区镜像在安全校验精简镜像中对齐,又可使得各个安全校验分区镜像符合vbmeta镜像规范。
在一种可能的实现方式中,镜像标识结构体包括标志位、镜像名称位、起始位置位以及终止位置位,标志位用于定位镜像标识结构体,镜像名称位用于保存对应的安全校验分区镜像的镜像名称,起始位置位与终止位置位用于保存对应的安全校验分区镜像的镜像内容在所述安全校验精简镜像中的起始位置与终止位置。采用上述技术方案,通过将镜像标识结构体设置为包括标志位、镜像名称位、起始位置位以及终止位置位,进而后续在进行镜像校验时,可以基于镜像标识结构体中的标志位快速定位镜像标识结构体,以获取添加镜像标识结构体的安全校验分区镜像的镜像名称、镜像内容的起始位置与终止位置,基于镜像名称位保存的安全校验分区镜像的镜像名称,可以与需要校验的安全校验分区镜像的镜像名称进行比对,基于起始位置位以及终止位置位中保存的安全校验分区镜像的镜像内容的起始位置与终止位置,可以快速定位镜像内容,便于镜像内容的加载与校验。
在一种可能的实现方式中,预设镜像精简规则包括:具有独立升级需求和/或定制化需求的安全校验分区镜像不参与镜像精简。采用上述技术方案,通过将具有独立升级需求和/或定制化需求的安全校验分区镜像排除在镜像精简之外,便于这些安全校验分区镜像可以进行独立升级或者进行定制化处理。
第二方面,本申请提供一种***启动校验方法,包括:获取待检验的镜像清单;基于镜像清单确定待加载的目标安全校验分区镜像;若目标安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,识别安全校验精简镜像的镜像标识结构体,第一类型的安全校验分区镜像为基于多个参与镜像精简的安全校验分区镜像打包得到的安全校验精简镜像;基于镜像标识结构体,获取目标安全校验分区镜像的镜像内容在安全校验精简镜像中的位置信息;基于位置信息进行镜像内容的加载;对加载的镜像内容进行签名校验与哈希校验;若签名校验与哈希校验均通过,确定目标安全校验分区镜像为合法镜像。采用上述技术方案,第二电子设备存储有第一类型的安全校验分区镜像及第二类型的安全校验分区镜像。第一类型的安全校验分区镜像为基于多个安全校验分区镜像打包得到的安全校验精简镜像,即多个安全校验分区镜像共用一个安全校验分区。第二类型的安全校验分区镜像可以是指不参与镜像精简的安全校验分区镜像,即第二类型的安全校验分区镜像是按照原有的安全校验分区的方式进行存储。在进行镜像校验时,若待加载的安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,表明待加载的安全校验分区镜像为参与镜像精简的安全校验分区镜像,需要从安全校验精简镜像所在的安全校验分区中来读取待加载的安全校验分区镜像的镜像内容,通过对加载的镜像内容进行签名校验与哈希校验,可以确定当前校验的安全校验分区镜像是合法镜像还是非法镜像,若确认安全校验分区镜像为合法镜像,后续可以进行镜像内容的保存或挂载,以便完成第二电子设备的开机启动,若确认安全校验分区镜像为非法镜像,阻止非法镜像的保存或挂载,第二电子设备将无法启动。
在一种可能的实现方式中,***启动校验方法还包括:若目标安全校验分区镜像为第二类型的安全校验分区镜像,基于目标安全校验分区镜像的镜像名称进行镜像内容的加载,第二类型的安全校验分区镜像为不参与镜像精简的安全校验分区镜像。采用上述技术方案,若待加载的安全校验分区镜像为第二类型的安全校验分区镜像,表明待加载的安全校验分区镜像不参与镜像精简,即待加载的安全校验分区镜像是按照现有的方式存储在安全校验分区中,可直接基于待加载的安全校验分区镜像的镜像名称从对应的安全校验分区中读取镜像内容。
在一种可能的实现方式中,基于目标安全校验分区镜像的镜像名称进行镜像内容的加载,包括:查找与目标安全校验分区镜像的镜像名称对应的安全校验分区;从对应的安全校验分区中读取目标安全校验分区镜像的镜像内容。采用上述技术方案,对于第二类型的安全校验分区镜像,第二类型的安全校验分区镜像对应的安全校验分区仅存储了该安全校验分区镜像的镜像内容,可基于待加载的安全校验分区镜像的镜像名称查找对应的安全校验分区,从对应的安全校验分区中读取待加载的安全校验分区镜像的镜像内容。
在一种可能的实现方式中,识别安全校验精简镜像的镜像标识结构体,包括:解析安全校验精简镜像,识别安全校验精简镜像中的标志位;基于标志位定位镜像标识结构体。采用上述技术方案,在安全校验精简镜像中,每个镜像标识结构体对应一个安全校验分区镜像,每个镜像标识结构体均包括标志位,标志位可设置为明显与其他部分的内容相区分,可通过解析安全校验精简镜像,识别安全校验精简镜像中的标志位,进而基于标志位可以定位到一个镜像标识结构体。
在一种可能的实现方式中,基于镜像标识结构体,获取目标安全校验分区镜像的镜像内容在安全校验精简镜像中的位置信息,包括:解析镜像标识结构体中的镜像名称位,得到添加镜像标识结构体的安全校验分区镜像的镜像名称;若添加镜像标识结构体的安全校验分区镜像的镜像名称与目标安全校验分区镜像的镜像名称匹配,解析镜像标识结构体中的起始位置位和终止位置位,得到目标安全校验分区镜像的镜像内容在安全校验精简镜像中的位置信息。采用上述技术方案,在定位到镜像标识结构体之后,可以解析镜像标识结构体中的镜像名称位,得到添加该镜像标识结构体的安全校验分区镜像的镜像名称,以便与待加载的安全校验分区镜像的镜像名称进行匹配,若名称匹配,表明添加该镜像标识结构体的安全校验分区镜像即为当前待加载的安全校验分区镜像,进而可以通过继续解析镜像标识结构体中的起始位置位和终止位置位,得到镜像内容的位置信息(起始位置与终止位置),以便于后续准确读取待加载的安全校验分区镜像的镜像内容,若名称不匹配,可以继续识别安全校验精简镜像中的下一个标志位,定位下一个镜像标识结构体。
在一种可能的实现方式中,对加载的镜像内容进行签名校验与哈希校验,包括:对加载的镜像内容进行签名校验;若签名校验通过,对加载的镜像内容进行哈希校验,哈希校验包括对基于加载的镜像内容计算得到的哈希值进行校验,或者对基于所述加载的镜像内容构建得到的哈希树的根哈希值进行校验。采用上述技术方案,为了保障安全校验分区镜像的镜像内容的安全性,加载的镜像内容一般为密文,若使用预存的签名校验密钥可成功将加载的镜像内容由密文转换为明文,该镜像内容的签名校验通过,若使用预存的签名校验密钥无法将加载的镜像内容由密文转换为明文,该镜像内容的签名校验不通过,若签名校验通过,可以继续对加载的镜像内容进行哈希校验。若安全校验分区镜像的镜像内容较小,镜像内容可以一次性加载到内存中,可通过计算镜像内容的哈希值来进行校验,以确认镜像内容是否发生篡改,若安全校验分区镜像的镜像内容较大,无法一次性将整个安全校验分区镜像的镜像内容加载到内存中,需要分多次加载到内存。因此哈希校验流程会在将安全校验分区镜像的镜像内容加载到内存的过程中持续进行(多次内容的加载对应的哈希值可构建得到哈希树),对于此种情形,可通过计算哈希树的根哈希值进行校验,若计算得到的哈希值(根哈希值)与预期哈希值(预期根哈希值)相同,哈希校验通过,若计算得到的哈希值(根哈希值)与预期哈希值(预期根哈希值)不相同,哈希校验不通过。
第三方面,本申请提供一种电子设备,所述电子设备包括存储器和处理器,其中,所述存储器,用于存储程序指令;所述处理器,用于读取并执行所述存储器中存储的所述程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行第一方面的镜像生成方法,或者执行第二方面的***启动校验方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行第一方面的镜像生成方法,或者执行第二方面的***启动校验方法。
第五方面,本申请提供一种芯片,与电子设备中的存储器耦合,芯片用于控制电子设备执行第一方面的镜像生成方法,或者执行第二方面的***启动校验方法。
另外,第三方面至第五方面所带来的技术效果可参见上述方法部分各设计的方法相关的描述,此处不再赘述。
附图说明
图1是本申请一实施例提供的电子设备在开机启动阶段对操作***镜像进行合法性校验的流程图。
图2是本申请一实施例提供的镜像生成方法的流程图。
图3是本申请一实施例提供的安全校验分区镜像的结构示意图。
图4是本申请一实施例提供的安全校验精简镜像的结构示意图。
图5是本申请一实施例提供的***启动校验方法的流程图。
图6是本申请另一实施例提供的镜像生成方法的流程图。
图7是本申请又一实施例提供的镜像生成方法的流程图。
图8是本申请另一实施例提供的***启动校验方法的流程图。
图9是本申请一实施例提供的第一电子设备的硬件架构图。
图10是本申请一实施例提供的第二电子设备的硬件架构图。
具体实施方式
为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参阅。
需要说明的是,本申请实施例中所涉及的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请中的技术领域的技术人员通常理解的含义相同。本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。应理解,本申请中除非另有说明,“/”表示或的意思。例如,A/B可以表示A或B。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B三种情况。“至少一个”是指一个或者多个。“多个”是指两个或多于两个。例如,a、b或c中的至少一个,可以表示:a,b,c,a和b,a和c,b和c,a、b和c七种情况。
为便于理解下文对本申请各个实施例的说明,先对部分通用术语进行说明。
操作***(Operation System,OS):管理计算机硬件与软件资源的计算机程序。
内核:建立了计算机软件与硬件之间通讯的平台,内核提供***服务,比如文件管理、虚拟内存、设备输入/输出(Input/Output,I/O)等。
镜像(image):是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
本申请实施例所提供的方法可以应用于各种类型的电子设备。示例性的,本申请实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal-digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等电子设备,本申请实施例对电子设备的具体形态不作特殊限制。
在本申请实施例中,电子设备可以包括硬件层、运行在硬件层之上的操作***层,以及运行在操作***层上的应用层。该硬件层包括中央处理器(central processingunit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作***可以是任意一种或多种通过进程(process)实现业务处理的计算机操作***,例如,Android®操作***、iOS®操作***或Windows®操作***等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
以Android®操作***为例简述电子设备的开机流程,开机启动流程包括:
(1)Boot Rom,当按压开机按键的时候,引导芯片开始从固化在只读存储器(Read-Only Memory,ROM)的预设代码开始执行,然后加载引导程序到随机存取存储器(Random-Access Memory,RAM);
(2) Bootloader,又称为引导程序,是在操作***运行之前运行的一段程序,是运行的第一个程序,用于把操作***镜像拷贝到RAM中去,然后跳到镜像的入口去执行该文件,也可以称之为进入启动加载模式;
(3)Kernel,将内核加载进内存后,首先进入内核引导阶段,在内核引导阶段的最后,调用start_kernel进入内核启动阶段,主要是完成内核的大部分初始化工作。Start_kernel会最终启动用户空间的init进程;
(4)init进程,当初始化内核之后,就会启动init进程,在Android®操作***中,进程都是由init进程直接或间接派生(fork)出来的。init进程负责创建***中最关键的几个核心daemon(守护)进程,包括但不限于zygote和service manager。其中,zygote是Android启动的第一个dalvik虚拟机,它负责启动Java进程。service manager是Binder通信的基础;
(5)zygote进程,该进程是所有Java进程的父进程。例如,zygote虚拟机启动子进程system_server,同时定义了一个Socket,用于接收ActivityManagerService启动应用程序的请求;
(6)System Server进程,在System Server进程开启的时候,会初始化ActivityManagerService。同时,会加载本地***的服务库,调用createSystemContext()创建***上下文,创建ActivityThread及开启各种服务等等;
(7)Home Activity,在Activity Manager Service开启之后,会调用finishBooting()完成引导过程,同时发送开机广播,进入home界面,显示桌面。
需要说明的是,此处给出的描述仅是对实际启动过程做了一个较上位的概括,实际启动过程更加复杂,但原理相同,不同版本的安卓***可能在某些步骤的细节上做了一些调整,此处并不做具体限定。
在上述开机流程中,Bootloader会对操作***镜像进行合法性校验。由于安卓***是一个基于内核的操作***,因此在实际启动的过程中,可以依次将启动操作***的引导程序镜像、内核镜像、主***镜像加载至内存,并在内存中依次验证每种镜像的合法性,并仅在前一种镜像经验证合法后才加载下一种镜像至内存,直至主***镜像也通过合法性验证后,才会将主***镜像在内核的帮助下展开为用户真正能够看到的主***程序,至此完成电子设备的启动全过程。换言之,需要在主***镜像展开为主***程序前,对其是否满足合法性进行校验,并只有合法性校验通过后,才能展开为主***程序。一旦主***镜像合法性校验失败,则安卓***无法正常启动。
在一种实现方式中,在Bootloader中可基于安卓验证启动(Android verifyboot,AVB)安全机制对***启动分区镜像的数据完整性、可靠性和合法性进行校验。其中,AVB校验功能主要是由external/avb/libavb库实现的,这些库主要完成的工作包括对各个安全校验分区中的镜像的校验、签名验证、vbmeta镜像的解析、以及设备映射校验(deviceMapper verity,dm-verity)所需要的参数的解析等。
如图1所示,对于无文件***的镜像,例如boot.img、ramdisk.img等,可通过以下流程进行校验,无文件***的镜像校验一般发生在内核加载前,即将在内核加载前进行校验的镜像称为无文件***的镜像(由于内核还未加载,即还不存在文件***):
S101,从微内核(little kernel,LK)中获取预置的公钥,并基于该公钥对vbmeta镜像进行校验。
在一些实施例中,vbmeta镜像(vbmeta.img)存放有各个安全校验分区的校验数据、签名和其他信息。为了提升vbmeta镜像的内容安全性,烧录至电子设备内的vbmeta镜像一般由电子设备厂商进行了私钥签名,在开机启动阶段,通过从LK中获取预置的公钥,并使用该公钥对vbmeta镜像进行校验,以验证vbmeta镜像是否为私钥的所有者(即电子设备厂商)制作。其中,对vbmeta镜像进行签名的私钥与LK中预置的公钥是一个密钥对。
S102,若vbmeta镜像校验通过,解析vbmeta镜像,得到需要校验的第一镜像清单。
在一些实施例中,镜像清单的形式可以是列表或者其他形式,本申请实施例对此不作限定,第一镜像清单可以记录有一个或多个安全校验分区镜像的镜像名称(无文件***的安全校验分区镜像),安全校验分区镜像的镜像内容存储在对应的安全校验分区中。若vbmeta镜像校验不通过,流程结束,即无文件***的镜像校验失败,电子设备启动失败。
在一些实施例中,可以解析vbmeta镜像中存储的镜像校验链,确定在内核加载前需要校验的安全校验分区镜像,第一镜像清单可包含所有在内核加载前需要校验的各个安全校验分区镜像的镜像名称。镜像校验链可以是一个校验链式,包含了在开机启动阶段依次需要验证的每种镜像,对应的执行规则可以是在前一种镜像经验证合法后才校验下一种镜像。
S103,加载第一镜像清单中记录的安全校验分区镜像的镜像内容,及对加载的安全校验分区镜像的镜像内容进行签名校验。
在一些实施例中,可以基于安全校验分区镜像的镜像名称从对应的安全校验分区中读取安全校验分区镜像的镜像内容,实现镜像内容的加载。
由于第一镜像清单中可能记录了多个安全校验分区镜像,可以按照各个安全校验分区镜像在第一镜像清单中的排序,进行依次加载。
在一些实施例中,加载的安全校验分区镜像的镜像内容为密文,对加载的安全校验分区镜像的镜像内容进行签名校验可以包括:使用预存的签名校验密钥,判断可否将安全校验分区镜像的镜像内容转换为明文。若使用预存的签名校验密钥可成功将安全校验分区镜像的镜像内容由密文转换为明文,即表明该安全校验分区镜像的镜像内容的签名校验通过。
若签名校验通过,执行步骤S104,若签名校验不通过,表明该安全校验分区镜像的镜像内容不合法,即无文件***的镜像校验失败,电子设备启动失败,流程结束。
在一些实施例中,第一镜像清单中的每个安全校验分区镜像均对应有一个签名校验密钥,签名校验密钥可以保存在vbmeta镜像中,例如,签名校验密钥可以是签名校验公钥,对应的签名校验私钥可以由电子设备厂商保存,以添加签名。
S104,若签名校验通过,基于该安全校验分区镜像的镜像内容计算得到一哈希值,及对该哈希值进行校验。
在一些实施例中,对于无文件***的镜像而言,对应的安全校验分区镜像的镜像内容的数据量相对较小,可将整个安全校验分区镜像的镜像内容加载到内存中,因此可通过计算其哈希值来进行校验。
通过对安全校验分区镜像的镜像内容进行哈希校验,可以确认该读取的安全校验分区镜像的镜像内容是否发生篡改,例如将计算得到的哈希值与预期哈希值(预期哈希值可保存在vbmeta镜像中)进行比对,确认该读取的安全校验分区镜像的镜像内容是否发生篡改。若哈希值校验通过(即计算得到的哈希值与预期哈希值相同),执行步骤S105;若哈希值校验不通过,表明安全校验分区镜像的镜像内容被篡改过,即无文件***的镜像校验失败,电子设备启动失败,流程结束。
S105,若哈希值校验通过,存储已加载的安全校验分区镜像的镜像内容。
若哈希值校验通过,表明安全校验分区镜像的镜像内容未被篡改,确定安全校验分区镜像为合法镜像,可存储已加载的安全校验分区镜像的镜像内容至內存,便于后续加载内核时可进行拷贝。
在一些实施例中,在步骤S105之后,可执行加载内核(Kernel)、启动init进程,在init进程启动的过程中,可校验有文件***的镜像。
对于有文件***的镜像,例如system.img、vendor.img等,可通过以下流程进行校验,有文件***的镜像校验一般发生在内核加载后:
S111,初始化fstab,获取dm-verity的使能信息。
fstab是内核在启动时用来挂载文件***的文件***表。dm-verity提供了对块设备的完整性检查,包括阻止挂载和写入保护的分区。dm-verity校验机制允许镜像在读写的过程中进行校验,而不是一次性将整个镜像进行校验。通过获取dm-verity的使能信息,可以确定dm-verity校验机制是否关闭。
S112,若dm-verity为使能状态,解析vbmeta镜像,得到需要校验的第二镜像清单。
在一些实施例中,第二镜像清单可以记录有一个或多个安全校验分区镜像的镜像名称(有文件***的安全校验分区镜像),安全校验分区镜像的镜像内容存储在对应的安全校验分区。若dm-verity为非使能状态,表明电子设备被配置为略过对有文件***的镜像校验,流程结束。
在一些实施例中,可以解析vbmeta镜像中存储的镜像校验链,确定在内核加载后需要校验的安全校验分区镜像,第二镜像清单可包含所有在内核加载后需要校验的各个安全校验分区镜像的镜像名称。
S113,加载第二镜像清单中记录的安全校验分区镜像的镜像内容,及对加载的安全校验分区镜像的镜像内容进行签名校验。
在一些实施例中,可以基于安全校验分区镜像的镜像名称从对应的安全校验分区中读取安全校验分区镜像的镜像内容,实现镜像内容的加载。
由于第二镜像清单中可能记录了多个安全校验分区镜像,可以按照各个安全校验分区镜像在第二镜像清单中的排序,进行依次加载。
例如,加载的安全校验分区镜像的镜像内容为密文,对加载的安全校验分区镜像的镜像内容进行签名校验可以包括:使用预存的签名校验密钥,判断可否将安全校验分区镜像的镜像内容转换为明文。若使用预存的签名校验密钥可成功将安全校验分区镜像的镜像内容由密文转换为明文,即表明该安全校验分区镜像的镜像内容签名校验通过。
若签名校验通过,执行步骤S114;若签名校验不通过,表明该安全校验分区镜像的镜像内容不合法,即有文件***的镜像校验失败,电子设备启动失败,流程结束。
在一些实施例中,第二镜像清单中的每个安全校验分区镜像均对应有一个签名校验密钥,签名校验密钥可以保存在vbmeta镜像中。
S114,若该安全校验分区镜像的签名校验通过,基于该安全校验分区镜像的镜像内容计算得到哈希树的根哈希值,及对该根哈希值进行校验。
在一些实施例中,对于有文件***的镜像而言,对应的安全校验分区镜像的镜像内容的数据量相对较大,一般无法一次性将整个安全校验分区镜像的镜像内容加载到内存中,因此验证流程会在将安全校验分区镜像的镜像内容加载到内存的过程中持续进行(即分多次加载到内存,多次内容的加载对应的哈希值可构建得到哈希树),对于此种情形,可通过计算哈希树的根哈希值进行校验。
例如,对于有文件***的镜像而言,可以将镜像切割成4KB大小的块,按块加载到内存中,可以基于每个块的内容计算得到一哈希值,然后每两个块的哈希值又组合成新的哈希值,然后再继续两两组合,最后形成一个哈希树,哈希树的顶端即为根哈希值。可以将计算得到的根哈希值与预期根哈希值(预期根哈希值可保存在vbmeta镜像中)进行比对,确认该读取的安全校验分区镜像的镜像内容是否发生篡改。若根哈希值校验通过(即计算得到的根哈希值与预期根哈希值相同),执行步骤S115,若根哈希值校验不通过,表明安全校验分区镜像的镜像内容被篡改过,即有文件***的镜像校验失败,电子设备启动失败,流程结束。
S115,若根哈希值校验通过,挂载安全校验分区镜像的镜像内容。
若根哈希值校验通过,表明安全校验分区镜像的镜像内容未被篡改,确定安全校验分区镜像为合法镜像,可挂载安全校验分区镜像的镜像内容,便于后续init进程进行调用。
目前,安卓***终端大多都采用Android A/B分区***或者虚拟A/B分区***。Android A/B分区***包括基础分区(common)、静态分区、动态分区和用户数据分区(userdata)。其中,静态分区和动态分区均采用了双分区。静态分区可以划分为第一静态分区(slotA)和第二静态分区(slotB)。动态分区可以划分为第一动态分区(superA)和第二动态分区(superB)。也就是说,A/B分区拥有真实的两套逻辑分区,每个逻辑分区都拥有各自对应的一个槽位。
虚拟AB分区包括基础分区(common)、静态分区、动态分区和用户数据分区(userdata)。其中,将存储的文件较小,即占用存储器空间较小的静态分区划分为第一静态分区(slotA)和第二静态分区(slotB);将存储的文件较大,即占用存储空间较大的动态分区(super)采用了单分区。在动态分区内部划分两个逻辑分区,但是只有一份实体镜像数据(比如,逻辑分区A有实体数据,逻辑分区B为虚拟设备;或者,逻辑分区A为虚拟设备,逻辑分区B有实体数据)。虚拟A/B分区***解决了A/B分区***占用空间大的问题。
对于Android A/B分区***或者虚拟A/B分区***而言,每个镜像对应有两个安全校验分区镜像,命名方式一般是vbmeta_xxx_a.img与vbmeta_xxx_b.img,例如,对于system镜像,对应的两个安全校验分区镜像为vbmeta_system_a.img、vbmeta_system_b.img。
如下表1所示,示例性介绍了一些镜像与安全校验分区的对应关系。
表1
在表1中,各个安全校验分区用于存储对应的安全校验分区镜像,例如安全校验分区vbmeta_system_a用于存储安全校验分区镜像vbmeta_system_a.img,安全校验分区vbmeta_system_b用于存储安全校验分区镜像vbmeta_system_b.img。表1中的镜像名称“xxxx”、“xxxxx”、“xxxxxx”、“xxxxxxx”仅是镜像名称的泛指,并不限定为真实存在的镜像按此方式命名。
由于需要校验的镜像较多,导致对应的安全校验分区数量较多,而vbmeta镜像中的分区列表记录各个安全校验分区的信息,进而导致分区列表的数据量较大,维护成本高,且会降低分区列表的查询效率,且数据量较大的分区列表亦会占用较多的内存空间,造成内存空间的浪费。
为解决上述技术问题,本申请实施例提供一种镜像生成方法,将同一分区***下的多个安全校验分区镜像打包为一个安全校验分区镜像,及使用一个安全校验分区进行存储,进而可降低分区列表中记录的安全校验分区的数量,即可降低分区列表的数据量与维护成本,且减少内存空间的占用,提高分区列表的查询效率。
举例而言,可以对表1所示的安全校验分区进行精简,得到表2所示的镜像与安全校验分区的对应关系,在表2中,多个安全校验分区镜像打包为一个安全校验分区镜像,并使用一个安全校验分区进行存储,即多个镜像对应相同的安全校验分区vbmeta_yyy_a、vbmeta_yyy_b。
表2
在表2中,安全校验分区vbmeta_yyy_a用于存储安全校验分区镜像vbmeta_yyy_a.img,安全校验分区vbmeta_yyy_b用于存储安全校验分区镜像vbmeta_yyy_b.img,安全校验分区vbmeta_xxxxxx_a用于存储安全校验分区镜像vbmeta_xxxxxx_a.img。
vbmeta_yyy_a.img可通过对vbmeta_system_a.img、vbmeta_vendor_a.img、vbmeta_system_ext_a.img、vbmeta_odm_a.img、vbmeta_product_a.img、vbmeta_xxxx_a.img、vbmeta_xxxxx_a.img打包得到。vbmeta_yyy_b.img可通过对vbmeta_system_b.img、vbmeta_vendor_b.img、vbmeta_system_ext_b.img、vbmeta_odm_b.img、vbmeta_product_b.img、vbmeta_xxxx_b.img、vbmeta_xxxxx_b.img打包得到。vbmeta_yyy_a.img与vbmeta_yyy_b.img中的“yyy”命名可以根据实际需求进行设定,本申请实施例对此不作限定,“yyy”命名可选与操作***中原有的镜像名称进行区分,例如可以以电子设备厂商名称进行命名。
在一些实施例中,对于具有独立升级需求或者定制化需求的镜像,可以不参与精简处理,即仍然进行独立存储,保留原有的安全校验分区。例如,在表2中,具有独立升级需求的镜像包括“xxxxxx”镜像与“xxxxxxx”镜像,“xxxxxx”镜像与“xxxxxxx”镜像不参与精简处理。
对于表1所示的安全校验分区而言,vbmeta镜像中的分区列表需记录18个安全校验分区的信息,对于表2所示的安全校验分区而言,vbmeta镜像中的分区列表仅需记录6个安全校验分区的信息,即可实现降低分区列表的数据量。
参阅图2所示,为本申请实施例提供的镜像生成方法的流程图。所述方法可应用于第一电子设备中,第一电子设备安装有编译工具与avbtool工具,第一电子设备可以是计算机、服务器等设备。编译工具可用于进行镜像的编译,第一电子设备安装的编译工具可以是现有的编译工具,本申请实施例对此不作限定,avbtool工具可用于实现安全校验分区镜像的精简。所述镜像生成方法可包括:
S201,使用编译工具对基于源代码编写的第一镜像进行编译,得到用机器码表示的第二镜像,第一镜像包括vbmeta镜像与多个安全校验分区镜像。
在一些实施例中,编译工具可将镜像从源代码翻译为可被计算机硬件(例如芯片)直接执行的机器码。第一电子设备可启动编译工具,对基于源代码编写的第一镜像进行编译,得到用机器码表示的第二镜像。可以理解,第二镜像同样包括vbmeta镜像与多个安全校验分区镜像。
S202,配置avbtool工具和第二镜像的操作权限。
在一些实施例中,vbmeta_yyy_a.img与vbmeta_yyy_b.img的生成依赖于avbtool工具、vbmeta镜像、及各个安全校验分区镜像。通过为avbtool工具和第二镜像配置操作权限,使得第二镜像可读、可被复制等,及使得avbtool工具可以加载第二镜像。例如,第一电子设备可以通过执行set_file_permissions命令为avbtool工具和第二镜像配置操作权限。
S203,获取vbmeta镜像的镜像信息。
在一些实施例中,vbmeta镜像的镜像信息可以是指vbmeta镜像包含的安全校验分区镜像的信息,可以通过对vbmeta镜像进行解析,确定vbmeta镜像包含了哪些安全校验分区镜像。例如,第一电子设备可以通过执行get_vbmeta_info与avbtoolinfo_image--imagevbmeta.img命令来实现调用avbtool工具获取vbmeta镜像的镜像信息。
S204,基于vbmeta镜像的镜像信息及预设镜像精简规则将目标安全校验分区镜像复制至指定文件夹。
在一些实施例中,基于vbmeta镜像的镜像信息及预设镜像精简规则将目标安全校验分区镜像复制至指定文件夹,可便于avbtool工具后续进行镜像打包操作。预设镜像精简规则指定了哪些安全校验分区镜像参与镜像精简,或者指定了哪些安全校验分区镜像不参与镜像精简,预设镜像精简规则可以根据实际需求进行设定,本申请实施例对此不作限定。例如,预设镜像精简规则可以是一白名单,开发者可以将参与镜像精简的安全校验分区镜像的镜像名称添加至白名单,具有独立升级需求或者定制化需求的镜像可以不添加至白名单,即不参与镜像精简。目标安全校验分区镜像可以是指参与镜像精简的安全校验分区镜像。例如,目标安全校验分区镜像包括vbmeta_system_a.img、vbmeta_vendor_a.img、vbmeta_system_ext_a.img、vbmeta_odm_a.img等。
例如,第一电子设备可以通过执行cyp_vbmeta_img命令来实现对目标安全校验分区镜像的复制。
在一些实施例中,可先基于vbmeta镜像的镜像信息及预设镜像精简规则筛选出参与本次镜像精简的安全校验分区镜像,在基于筛选出的安全校验分区镜像构建镜像打包列表,镜像打包列表中记录的安全校验分区镜像即为目标安全校验分区镜像。
在一些实施例中,可以为A、B分区分别设定一个指定文件夹,将A分区的目标安全校验分区镜像存储在一指定文件夹,将B分区的目标安全校验分区镜像存储在另一指定文件夹。
在一些实施例中,假设vbmeta镜像记录的各个安全校验分区镜像当前存储在一文件夹(例如temp文件夹),步骤S204也可以包括:基于vbmeta镜像的镜像信息及预设镜像精简规则将不参与镜像精简的安全校验分区镜像从当前存储的文件夹中删除。例如,可以将不参与镜像精简的安全校验分区镜像vbmeta_xxxxxx_a、vbmeta_xxxxxx_b、vbmeta_xxxxxxx_a、vbmeta_xxxxxxx_b从temp文件夹中删除。
S205,在每个目标安全校验分区镜像的镜像内容中添加镜像标识结构体,及对镜像内容进行内容填充,使得每个目标安全校验分区镜像达到预设大小。
在一些实施例中,通过在每个目标安全校验分区镜像的镜像内容中添加镜像标识结构体,使得后续在对各个安全校验分区镜像进行AVB校验过程中,可基于镜像标识结构体中记录的信息定位对应的安全校验分区镜像及其镜像内容。对于各个目标安全校验分区镜像而言,镜像标识结构体可以添加至镜像内容的尾部,实际应用中不局限于此。
在一些实施例中,镜像标识结构体可以是footer结构体,footer结构体可以包括四个部分:标志位、镜像名称位、起始位置位以及终止位置位。标志位、镜像名称位、起始位置位以及终止位置位均可设定为固定字节,添加至各个目标安全校验分区镜像的footer结构体的格式相同,仅内容不相同。标志位可用于定位footer结构体,各个目标安全校验分区镜像的footer结构体中的标志位可以具有相同的内容,标志位的内容可以设定为与镜像内容,镜像名称位、起始位置位以及终止位置位的内容可明显区隔开,便于后续进行标志位的识别,以实现快速定位footer结构体。镜像名称位用于保存添加该footer结构体的目标安全校验分区镜像的镜像名称,起始位置位用于保存添加该footer结构体的目标安全校验分区镜像的镜像内容的起始位置,终止位置位用于保存添加该footer结构体的目标安全校验分区镜像的镜像内容的终止位置,便于后续在进行AVB校验时,可通过footer结构体保存的起始位置与终止位置快速定位某个安全校验分区镜像的镜像内容,进行镜像内容的加载与哈希校验。
在一些实施例中,安卓***定义了vbmeta结构体的大小一般为4KB,若各个目标安全校验分区镜像在添加镜像标识结构体之后的大小仍然小于4KB,此时可以通过为每个目标安全校验分区镜像分别进行内容填充,使目标安全校验分区镜像的大小达到4KB大小。例如,可以在每个目标安全校验分区镜像的镜像标识结构体的后面进行补“0”,使得每个目标安全校验分区镜像均为4KB大小,实现每个目标安全校验分区镜像的对齐。
例如,第一电子设备可以通过执行pad_vbmeta_img命令来实现对目标安全校验分区镜像添加footer结构体与补“0”至4KB大小。
如图3所示,以安全校验分区镜像vbmeta_system_a.img为例,可在vbmeta_system_a.img的镜像内容后添加footer结构体,及在footer结构体后进行补“0”至4KB大小。
在一些实施例中,若直接将各个目标安全校验分区镜像的镜像内容进行拼接(不进行补“0”与添加footer结构体),会导致后续在进行AVB校验的过程中,无法准确定位各个目标安全校验分区镜像及各个目标安全校验分区镜像的镜像内容,且由于各个目标安全校验分区镜像的大小不一致,使得各个目标安全校验分区镜像无法对齐。若将各个目标安全校验分区镜像的镜像内容直接补“0”至4KB大小,不添加footer结构体进行拼接,仅能使得各个目标安全校验分区镜像对齐,仍会出现在AVB校验过程中无法准确定位各个目标安全校验分区镜像及各个目标安全校验分区镜像的镜像内容的问题,且由于各个目标安全校验分区镜像大小不一致,即在各个目标安全校验分区镜像的镜像内容后补充了不同数量的“0”,无法将补充的“0”与镜像内容进行有效区分,进而导致后续在进行镜像内容的哈希运算时,哈希运算结果有误,无法准确进行镜像内容的校验。
S206,基于填充处理后的每个目标安全校验分区镜像,打包得到安全校验精简镜像。
在一些实施例中,在对指定文件夹中的每个目标安全校验分区镜像完成镜像标识结构体的添加与内容填充之后,可以基于该指定文件夹中的每个目标安全校验分区镜像,打包得到安全校验精简镜像(vbmeta_yyy_a.img/vbmeta_yyy_b.img)。
在一些实施例中,可以在打包阶段,填入对应的内容至各个footer结构体中的标志位、镜像名称位、起始位置位以及终止位置位。
在一些实施例中,也可以在步骤S205填入对应的内容至各个footer结构体中的标志位与镜像名称位,在打包阶段,填入对应的内容至各个footer结构体中的起始位置位与终止位置位。
例如,第一电子设备可以通过执行pkg_vbmeta_img命令来控制avbtool工具进行镜像打包,得到安全校验精简镜像。
以安全校验精简镜像为vbmeta_yyy_a.img为例,打包得到的vbmeta_yyy_a.img的结构可以如图4所示,假设vbmeta_yyy_a.img包含7个大小为4KB的安全校验分区镜像,vbmeta_yyy_a.img可以存储在安全校验分区vbmeta_yyy_a中,即安全校验分区vbmeta_yyy_a可以是一个28KB大小的存储区。
本申请实施例的镜像生成方法,生成安全校验精简镜像中的每个安全校验分区镜像的尾部均增添了一个footer结构体,通过footer结构体可将安全校验分区镜像的镜像内容与填充的“0”进行隔开,基于footer结构体中的标志位可以快速定位footer结构体,以获取添加该footer结构体的安全校验分区镜像的镜像名称、镜像内容的起始位置与终止位置,基于footer结构体保存的当前安全校验分区镜像的镜像名称,可以使得后续在进行AVB校验过程中,能够通过将footer结构体保存的镜像名称与需要校验的安全校验分区镜像的镜像名称进行比对,基于footer结构体中保存的安全校验分区镜像的镜像内容的起始位置与终止位置,可以使得后续在进行AVB校验过程中,快速定位镜像内容,便于镜像内容的加载与校验,且通过将各个安全校验分区镜像补“0”至4KB大小,即保证各个安全校验分区镜像的对齐,又使得各个安全校验分区镜像符合vbmeta镜像规范。
在一些实施例中,在得到安全校验精简镜像之后,可以将安全校验精简镜像以及不参与镜像精简的安全校验分区镜像烧录至第二电子设备中的对应的安全校验分区,使得第二电子设备可以在开机启动的过程中进行AVB校验。例如,操作***为MagicOS®,在MagicOS®开发阶段,开发人员可以使用第一电子设备(例如计算机、服务器)生成安全校验精简镜像,后续可以将安全校验精简镜像以及不参与镜像精简的安全校验分区镜像烧录至第二电子设备(例如,手机、平板电脑),使得安装有MagicOS®的手机或平板电脑可以在开机启动的过程中基于安全校验精简镜像以及不参与镜像精简的安全校验分区镜像进行AVB校验。
在一些实施例中,第二电子设备包括但不限于手机、平板电脑、智能手表、智能手环、智能眼镜、头显设备等终端设备。例如,第二电子设备采用Android A/B分区***,可以将vbmeta_yyy_a.img、vbmeta_xxxxxx_a.img、vbmeta_xxxxxxx_a.img烧录至第二电子设备的A分区***下对应的安全校验分区,将vbmeta_yyy_b.img、vbmeta_xxxxxx_b.img、vbmeta_xxxxxxx_b.img烧录至第二电子设备的B分区***下对应的安全校验分区。
本申请实施例将多个安全校验分区镜像打包成一个安全校验精简镜像,且保留了各个安全校验分区镜像的签名校验与镜像名称,即打包得到的安全校验精简镜像未对原有的安全校验分区镜像进行更改,因此第二电子设备在进行AVB校验过程中,仍然可以基于原有的镜像校验链进行校验,基于镜像校验链的校验顺序依次对各个安全校验分区镜像进行校验,即仍然可以采用与图1类似的校验流程进行镜像校验。
假设基于镜像校验链确定当前需要校验vbmeta_system_a.img,可通过以下方式来实现从vbmeta_yyy_a.img中读取vbmeta_system_a.img的镜像内容,以进行签名校验与哈希校验:
a1:识别vbmeta_yyy_a.img中的标志位,基于标志位定位footer结构体;
a2:解析footer结构体中的镜像名称位,得到添加该footer结构体的安全校验分区镜像的镜像名称;
a3:若解析得到的安全校验分区镜像的镜像名称与vbmeta_system_a不匹配,流程可跳转至步骤a1,识别vbmeta_yyy_a.img中的下一个标志位;
a4:若解析得到的安全校验分区镜像的镜像名称与vbmeta_system_a匹配,继续解析该footer结构体中的起始位置位和终止位置位,得到vbmeta_system_a.img的镜像内容的起始位置和终止位置;
a5:基于解析得到的起始位置和终止位置从vbmeta_yyy_a.img中读取vbmeta_system_a.img的镜像内容,以进行签名校验与哈希校验。
如图5所示,为本申请实施例提供的***启动校验方法的流程图。所述方法可应用于第二电子设备中,第二电子设备可以在开机过程中,执行所述***启动校验方法,所述***启动校验方法可包括:
S501,从LK中获取预置的公钥,并基于该公钥对vbmeta镜像进行校验。
在一些实施例中,vbmeta镜像(vbmeta.img)存放有各个安全校验分区的校验数据、签名和其他信息。为了提升vbmeta镜像的内容安全性,烧录至第二电子设备内的vbmeta镜像一般由第二电子设备厂商进行了私钥签名,在开机启动阶段,通过从LK中获取预置的公钥,并使用该公钥对vbmeta镜像进行校验,以验证vbmeta镜像是否为私钥的所有者(即第二电子设备厂商)制作。其中,对vbmeta镜像进行签名的私钥与LK中预置的公钥是一个密钥对。若vbmeta镜像校验通过,表明vbmeta镜像为第二电子设备厂商制作,执行步骤S502。
若vbmeta镜像校验不通过,表明第二电子设备启动失败,流程结束。
S502,若vbmeta镜像校验通过,解析vbmeta镜像,得到需要校验的镜像清单。
在一些实施例中,镜像清单可以记录有一个或多个待校验的安全校验分区镜像。第二电子设备可通过解析vbmeta镜像中的镜像校验链,得到需要校验的镜像清单。
在一些实施例中,第二电子设备存储的安全校验分区镜像可以划分为第一类型的安全校验分区镜像及第二类型的安全校验分区镜像。第一类型的安全校验分区镜像为基于多个参与镜像精简的安全校验分区镜像打包得到的安全校验精简镜像。第一类型的安全校验分区镜像包括多个安全校验分区镜像的镜像内容,即多个安全校验分区镜像共用一个安全校验分区。第二类型的安全校验分区镜像可以是指不参与镜像精简的安全校验分区镜像,即第二类型的安全校验分区镜像是按照原有的安全校验分区的方式进行存储。
S503,基于镜像清单确定待加载的安全校验分区镜像。
在一些实施例中,可以按照镜像清单中记录的各个安全校验分区镜像的顺序依次进行加载校验,镜像清单中的各个安全校验分区镜像的排序可以与镜像校验链的校验顺序相同,进而可以基于镜像清单确定待加载的安全校验分区镜像。
例如,当前待加载的安全校验分区镜像为镜像清单中排序第一位的安全校验分区镜像,在完成该安全校验分区镜像的加载与校验之后,下一次再加载镜像清单中排序第二位的安全校验分区镜像,直至镜像清单中的每个安全校验分区镜像均完成加载与校验。
S504,若待加载的安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,解析安全校验精简镜像,识别安全校验精简镜像中的标志位,及基于标志位定位footer结构体。
在一些实施例中,若待加载的安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,表明待加载的安全校验分区镜像为参与镜像精简的安全校验分区镜像,需要从安全校验精简镜像所在的安全校验分区读取待加载的安全校验分区镜像的镜像内容。
假设安全校验精简镜像由20个安全校验分区镜像打包得到,即安全校验精简镜像中存在20个footer结构体,每个footer结构体对应一个安全校验分区镜像,每个footer结构体均包括标志位。通过解析安全校验精简镜像,识别安全校验精简镜像中的标志位,进而基于标志位可以定位到一个footer结构体。在定位到footer结构体之后,可以解析footer结构体中的镜像名称位,得到添加该footer结构体的安全校验分区镜像的镜像名称,以便与待加载的安全校验分区镜像的镜像名称进行匹配。
S505,解析footer结构体中的镜像名称位,得到添加该footer结构体的安全校验分区镜像的镜像名称。
S506,判断解析得到的安全校验分区镜像的镜像名称是否与待加载的安全校验分区镜像的镜像名称匹配。
在一些实施例中,可以将解析得到的安全校验分区镜像的镜像名称与待加载的安全校验分区镜像的镜像名称进行比对,以确定名称是否匹配。
S507,若名称匹配,继续解析footer结构体中的起始位置位和终止位置位。
在一些实施例中,若解析得到的安全校验分区镜像的镜像名称与待加载的安全校验分区镜像的镜像名称匹配,表明添加该footer结构体的安全校验分区镜像即为当前待加载的安全校验分区镜像,进而可以通过继续解析footer结构体中的起始位置位和终止位置位,得到镜像内容的起始位置与终止位置,以便于准确读取待加载的安全校验分区镜像的镜像内容。
在一些实施例中,若名称不匹配,流程可跳转至步骤S505,识别安全校验精简镜像中的下一个标志位。
S508,基于解析得到的起始位置和终止位置进行镜像内容的加载。
在一些实施例中,在解析得到待加载的安全校验分区镜像的镜像内容在安全校验精简镜像中的起始位置和终止位置之后,可以基于起始位置和终止位置从安全校验精简镜像所在的安全校验分区中读取镜像内容,即可实现将待加载的安全校验分区镜像的镜像内容加载至内存。
S509,若待加载的安全校验分区镜像为第二类型的安全校验分区镜像,基于待加载的安全校验分区镜像的镜像名称进行镜像内容的加载。
在一些实施例中,若待加载的安全校验分区镜像为第二类型的安全校验分区镜像,表明待加载的安全校验分区镜像不参与镜像精简的安全校验分区镜像,即采用的是现有的方式存储在A/B分区***或者虚拟A/B分区***中,可直接基于待加载的安全校验分区镜像的镜像名称从对应的安全校验分区中读取镜像内容,即可实现将待加载的安全校验分区镜像的镜像内容加载至内存。
S510,对加载的镜像内容进行签名校验。
在一些实施例中,为了保障安全校验分区镜像的镜像内容的安全性,加载的镜像内容一般为密文,vbmeta镜像中保存各个安全校验分区镜像的签名校验密钥。对加载的镜像进行签名校验可以包括:使用预存的签名校验密钥(该镜像内容所属的安全校验分区镜像的签名校验密钥),判断可否将加载的镜像内容转换为明文。若使用预存的签名校验密钥可成功将加载的镜像内容由密文转换为明文,即表明该镜像内容的签名校验通过,执行步骤S511。
在一些实施例中,若安全校验分区镜像的镜像内容较大,无法一次性将整个安全校验分区镜像的镜像内容加载到内存中,即需要分多次加载到内存,此种情形,签名校验可以只在第一次加载该安全校验分区镜像的镜像内容时进行。
若签名校验不通过,表明第二电子设备启动失败,流程结束。
S511,若签名校验通过,对加载的镜像内容进行哈希校验。
在一些实施例中,若安全校验分区镜像的镜像内容较小,镜像内容可以一次性加载到内存中,可通过计算镜像内容的哈希值来进行校验,以确认镜像内容是否发生篡改。例如将计算得到的哈希值与预期哈希值(预期哈希值可保存在vbmeta镜像中)进行比对,确认读取的安全校验分区镜像的镜像内容是否发生篡改。若哈希值校验通过,执行步骤S512。若哈希值校验不通过,表明安全校验分区镜像的镜像内容被篡改过,即第二电子设备启动失败,流程结束。
若安全校验分区镜像的镜像内容较大,无法一次性将整个安全校验分区镜像的镜像内容加载到内存中,需要分多次加载到内存。因此哈希校验流程会在将安全校验分区镜像的镜像内容加载到内存的过程中持续进行(多次内容的加载对应的哈希值可构建得到哈希树),对于此种情形,可通过计算哈希树的根哈希值进行校验。例如将计算得到的根哈希值与预期根哈希值(预期根哈希值可保存在vbmeta镜像中)进行比对,确认读取的安全校验分区镜像的镜像内容是否发生篡改。若根哈希值校验通过,执行步骤S512。若根哈希值校验不通过,表明安全校验分区镜像的镜像内容被篡改过,流程结束,即第二电子设备启动失败。
S512,若哈希校验通过,确定安全校验分区镜像为合法镜像。
在一些实施例中,若哈希校验通过,可以确定安全校验分区镜像为合法镜像,后续可以进行镜像内容的保存或挂载。例如,若安全校验分区镜像为在内核启动前进行校验的镜像,可以将已加载的安全校验分区镜像的镜像内容保存在内存中,便于后续加载内核时可进行拷贝;若安全校验分区镜像为在内核启动后进行校验的镜像,可挂载安全校验分区镜像的镜像内容,便于后续init进程进行调用。
在一些实施例中,在执行完步骤S512之后,流程可以重新跳转至步骤S503,基于镜像清单确定下一个待加载的安全校验分区镜像,直至镜像清单中的所有安全校验分区镜像完成校验。
参阅图6所示,为本申请另一实施例提供的镜像生成方法的流程图。所述方法应用于第一电子设备中,第一电子设备可以是电脑、服务器等用于进行软件开发工作的设备。镜像生成方法包括:
S601,基于预设镜像精简规则确定参与镜像精简的多个目标安全校验分区镜像。
在一些实施例中,预设镜像精简规则可以由开发者根据实际需求进行设定,本申请实施例对此不作限定。例如,可以将具有独立升级需求或者定制化需求的镜像排除在外,不参与镜像精简,仍然按照现有的分区方式进行独立存储,即采用原有的安全校验分区进行镜像内容存储。
例如,预设镜像精简规则可以是一白名单,开发者可以将参与镜像精简的安全校验分区镜像的镜像名称添加至白名单,具有独立升级需求或者定制化需求的镜像不添加至白名单,白名单可以存储在第一电子设备中,进而第一电子设备可以基于白名单确定参与镜像精简的多个目标安全校验分区镜像。
S602,为多个目标安全校验分区镜像中的每个目标安全校验分区镜像添加镜像标识结构体,镜像标识结构体用于保存对应的目标安全校验分区镜像的信息。
通过在每个目标安全校验分区镜像的镜像内容中添加镜像标识结构体,使得后续在对各个安全校验分区镜像进行AVB校验过程中,可基于镜像标识结构体中记录的信息定位对应的安全校验分区镜像及其镜像内容。对于各个目标安全校验分区镜像而言,镜像标识结构体可以添加至镜像内容的尾部。
在一些实施例中,镜像标识结构体可以是footer结构体,footer结构体可以包括四个部分:标志位、镜像名称位、起始位置位以及终止位置位。标志位、镜像名称位、起始位置位以及终止位置位均可设定为固定字节,添加至各个目标安全校验分区镜像的footer结构体的格式相同,仅内容不相同。标志位可用于定位footer结构体,各个目标安全校验分区镜像的footer结构体中的标志位可以具有相同的内容,标志位的内容可以设定为可明显与镜像内容,镜像名称位、起始位置位以及终止位置位的内容区隔开,便于后续进行标志位的识别,以实现快速定位footer结构体。镜像名称位用于保存添加该footer结构体的目标安全校验分区镜像的镜像名称,起始位置位用于保存添加该footer结构体的目标安全校验分区镜像的镜像内容在安全校验精简镜像中的起始位置,终止位置位用于保存添加该footer结构体的目标安全校验分区镜像的镜像内容在安全校验精简镜像中的终止位置,便于后续在进行AVB校验时,可通过footer结构体保存的起始位置与终止位置快速定位某个安全校验分区镜像的镜像内容,进行镜像内容的加载与哈希校验。
S603,基于添加有镜像标识结构体的每个目标安全校验分区镜像,打包得到安全校验精简镜像。
在一些实施例中,在为每个目标安全校验分区镜像完成镜像标识结构体的添加之后,可以基于每个目标安全校验分区镜像,打包得到安全校验精简镜像。
在一些实施例中,打包之前的每个目标安全校验分区镜像均对应有不同的签名校验密钥,镜像打包过程涉及镜像内容的拷贝操作,保留各个目标安全校验分区镜像的签名校验,即在安全校验精简镜像中,每个安全校验分区镜像仍均对应有不同的签名校验密钥。
上述镜像生成方法,将多个安全校验分区镜像打包成一个安全校验精简镜像,后续可存储在一个安全校验分区中,可降低分区列表中记录的安全校验分区的数量,即可降低分区列表的数据量、维护成本及内存空间的占用,提高分区列表的查询效率,且保留了各个安全校验分区镜像的签名校验与镜像信息,便于后续校验时可正确读取到对应的镜像内容,且仍然可以基于原有的镜像校验链进行校验。
参阅图7所示,为本申请另一实施例提供的镜像生成方法的流程图。所述方法应用于第一电子设备中,第一电子设备可以是电脑、服务器等用于进行软件开发工作的设备。镜像生成方法包括:
S701,基于预设镜像精简规则确定参与镜像精简的多个目标安全校验分区镜像。
本申请实施例的步骤S701与前述实施例的步骤S601类似,为了避免重复,此处不再赘述。
S702,为多个目标安全校验分区镜像中的每个目标安全校验分区镜像添加镜像标识结构体,镜像标识结构体用于保存对应的目标安全校验分区镜像的信息。
本申请实施例的步骤S702与前述实施例的步骤S602类似,为了避免重复,此处不再赘述。
S703,对添加有镜像标识结构体的每个目标安全校验分区镜像进行内容填充,使得每个目标安全校验分区镜像达到预设大小。
在一些实施例中,安卓***定义了vbmeta结构体的大小一般为4KB,各个目标安全校验分区镜像在添加镜像标识结构体之后的大小可能仍然小于4KB,此时可以通过为每个目标安全校验分区镜像分别进行预设内容的填充,使得每个目标安全校验分区镜像均达到4KB大小。例如,可以在每个目标安全校验分区镜像的镜像标识结构体的后面进行补“0”,使得每个目标安全校验分区镜像均为4KB大小,进而可实现每个目标安全校验分区镜像在安全校验精简镜像中对齐,且可通过镜像标识结构体将镜像内容与填充内容隔开。
S704,基于内容填充后的每个目标安全校验分区镜像,打包得到安全校验精简镜像。
在一些实施例中,在对每个目标安全校验分区镜像完成镜像标识结构体的添加与内容填充之后,可以基于每个目标安全校验分区镜像,打包得到安全校验精简镜像。打包之前的每个目标安全校验分区镜像均对应有不同的签名校验密钥,镜像打包过程涉及镜像内容的拷贝操作,保留各个目标安全校验分区镜像的签名校验,即在安全校验精简镜像中,每个安全校验分区镜像仍均对应有不同的签名校验密钥。
上述镜像生成方法,将多个安全校验分区镜像打包成一个安全校验精简镜像,后续可存储在一个安全校验分区中,可降低分区列表中记录的安全校验分区的数量,即可降低分区列表的数据量、维护成本及内存空间的占用,提高分区列表的查询效率,且保留了各个安全校验分区镜像的签名校验与镜像信息,便于后续校验时可正确读取到对应的镜像内容,且仍然可以基于原有的镜像校验链进行校验,且通过将各个安全校验分区镜像补“0”至4KB大小,即保证各个安全校验分区镜像的对齐,又使得各个安全校验分区镜像符合vbmeta镜像规范。
参阅图8所示,为本申请实施例提供的***启动校验方法的流程图。所述方法应用于第二电子设备中,第二电子设备可以在开机过程中,执行所述***启动校验方法,第二电子设备可以是手机、平板电脑、笔记本电脑等终端设备。***启动校验方法包括:
S801,获取待检验的镜像清单。
在一些实施例中,vbmeta镜像存放有各个安全校验分区的校验数据、签名和其他信息。第二电子设备可通过解析vbmeta镜像中的镜像校验链(镜像校验链可以是一个校验链式,包含了在开机启动阶段依次需要验证的每种镜像),得到待检验的镜像清单。
在一些实施例中,第二电子设备存储有第一类型的安全校验分区镜像及第二类型的安全校验分区镜像。第一类型的安全校验分区镜像为基于多个参与镜像精简的安全校验分区镜像打包得到的安全校验精简镜像。第一类型的安全校验分区镜像包括多个安全校验分区镜像的镜像内容,即多个安全校验分区镜像共用一个安全校验分区。第二类型的安全校验分区镜像可以是指不参与镜像精简的安全校验分区镜像,即第二类型的安全校验分区镜像是按照原有的安全校验分区的方式进行存储。
假设第一安全校验精简镜像为基于第一至第十安全校验分区镜像打包得到,第一至第十安全校验分区镜像均可称为第一安全校验精简镜像的子镜像。
S802,基于镜像清单确定待加载的安全校验分区镜像。
在一些实施例中,镜像清单中记录了多个待校验的安全校验分区镜像,各个待校验的安全校验分区镜像在镜像清单中的排序可以与镜像校验链的校验顺序相同,进而可以基于镜像清单确定待加载的安全校验分区镜像。
例如,当前待加载的安全校验分区镜像为镜像清单中排序第一位的安全校验分区镜像,在完成该安全校验分区镜像的加载与校验之后,下一次再加载镜像清单中排序第二位的安全校验分区镜像,直至镜像清单中的每个安全校验分区镜像均完成加载与校验。
S803,若待加载的安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,识别所述安全校验精简镜像的镜像标识结构体。
在一些实施例中,若待加载的安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,表明待加载的安全校验分区镜像为参与镜像精简的安全校验分区镜像,需要从安全校验精简镜像所在的安全校验分区中来读取待加载的安全校验分区镜像的镜像内容。
在安全校验精简镜像中,每个镜像标识结构体对应一个安全校验分区镜像,每个镜像标识结构体均包括标志位,可通过解析安全校验精简镜像,识别安全校验精简镜像中的标志位,进而基于标志位可以定位到一个镜像标识结构体。
S804,基于镜像标识结构体,获取待加载的安全校验分区镜像的镜像内容在安全校验精简镜像中的位置信息。
在一些实施例中,在定位到镜像标识结构体之后,可以解析镜像标识结构体中的镜像名称位,得到添加该镜像标识结构体的安全校验分区镜像的镜像名称,以便与待加载的安全校验分区镜像的镜像名称进行匹配。
若解析得到的安全校验分区镜像的镜像名称与待加载的安全校验分区镜像的镜像名称匹配,表明添加该镜像标识结构体的安全校验分区镜像即为当前待加载的安全校验分区镜像,进而可以通过继续解析镜像标识结构体中的起始位置位和终止位置位,得到镜像内容的位置信息(起始位置与终止位置),以便于后续准确读取待加载的安全校验分区镜像的镜像内容。
在一些实施例中,若名称不匹配,可以继续识别安全校验精简镜像中的下一个标志位,定位下一个镜像标识结构体。
S805,基于位置信息进行镜像内容的加载。
在一些实施例中,在得到待加载的安全校验分区镜像的镜像内容的起始位置与终止位置之后,第二电子设备可以基于起始位置与终止位置实现准确读取待加载的安全校验分区镜像的镜像内容。
S806,若待加载的安全校验分区镜像为第二类型的安全校验分区镜像,基于待加载的安全校验分区镜像的镜像名称进行镜像内容的加载。
在一些实施例中,若待加载的安全校验分区镜像为第二类型的安全校验分区镜像,表明待加载的安全校验分区镜像不参与镜像精简,即待加载的安全校验分区镜像是按照现有的方式存储在安全校验分区中,可直接基于待加载的安全校验分区镜像的镜像名称从对应的安全校验分区中读取镜像内容,即可实现将待加载的安全校验分区镜像的镜像内容加载至内存。例如,第二电子设备可以查找与待加载的安全校验分区镜像的镜像名称对应的安全校验分区,从对应的安全校验分区中读取待加载的安全校验分区镜像的镜像内容。
S807,对加载的镜像内容进行签名校验与哈希校验。
在一些实施例中,为了保障安全校验分区镜像的镜像内容的安全性,加载的镜像内容一般为密文,vbmeta镜像中保存各个安全校验分区镜像的签名校验密钥。对加载的镜像进行签名校验可以是指:使用预存的签名校验密钥(该镜像内容所属的安全校验分区镜像的签名校验密钥),可否将加载的镜像内容转换为明文。若使用预存的签名校验密钥可成功将加载的镜像内容由密文转换为明文,该镜像内容的签名校验通过,若使用预存的签名校验密钥无法将加载的镜像内容由密文转换为明文,该镜像内容的签名校验不通过。
在一些实施例中,若签名校验通过,可以继续对加载的镜像内容进行哈希校验。若安全校验分区镜像的镜像内容较小,镜像内容可以一次性加载到内存中,可通过计算镜像内容的哈希值来进行校验,以确认镜像内容是否发生篡改。例如将计算得到的哈希值与预期哈希值(预期哈希值可保存在vbmeta镜像中)进行比对,确认读取的安全校验分区镜像的镜像内容是否发生篡改。若计算得到的哈希值与预期哈希值相同,哈希校验通过,若计算得到的哈希值与预期哈希值不相同,哈希校验不通过。
若安全校验分区镜像的镜像内容较大,无法一次性将整个安全校验分区镜像的镜像内容加载到内存中,需要分多次加载到内存。因此哈希校验流程会在将安全校验分区镜像的镜像内容加载到内存的过程中持续进行(多次内容的加载对应的哈希值可构建得到哈希树),对于此种情形,可通过计算哈希树的根哈希值进行校验。例如将计算得到的根哈希值与预期根哈希值(预期根哈希值可保存在vbmeta镜像中)进行比对,确认读取的安全校验分区镜像的镜像内容是否发生篡改。若计算得到的根哈希值与预期根哈希值相同,哈希校验通过,若计算得到的根哈希值与预期根哈希值不相同,哈希校验不通过。
S808,若签名校验与哈希校验均通过,确定安全校验分区镜像为合法镜像。
在一些实施例中,若安全校验分区镜像的签名校验与哈希校验均通过,第二电子设备可以确定该安全校验分区镜像为合法镜像,后续可以进行镜像内容的保存或挂载。例如,若安全校验分区镜像为在内核启动前进行校验的镜像,可以将已加载的安全校验分区镜像的镜像内容保存在内存中,便于后续加载内核时可进行拷贝;若安全校验分区镜像为在内核启动后进行校验的镜像,可挂载安全校验分区镜像的镜像内容,便于后续init进程进行调用。
S809,若签名校验或哈希校验未通过,确定安全校验分区镜像为非法镜像。
在一些实施例中,若安全校验分区镜像的签名校验或哈希校验未通过,表明安全校验分区镜像并非由第二电子设备厂商签发或者安全校验分区镜像的镜像内容被篡改过,确定安全校验分区镜像为非法镜像,第二电子设备无法启动。
参阅图9所示,第一电子设备1000可以电脑、服务器等用于进行软件开发工作的设备。如图9所示,第一电子设备100可以包括处理器1001、存储器1002及通信总线1003。存储器1002用于存储一个或多个计算机程序1004。一个或多个计算机程序1004被配置为被该处理器1001执行。该一个或多个计算机程序1004包括指令,处理器1001执行上述指令可以实现在第一电子设备100中执行如图2或图7所述的镜像生成方法。
可以理解的是,本实施例示意的结构并不构成对第一电子设备100的具体限定。在另一些实施例中,第一电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
处理器1001可以包括一个或多个处理单元,例如:处理器1001可以包括应用处理器(application processor,AP),调制解调器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器1001中还可以设置有存储器,用于存储指令和数据。在一些实施例中,处理器1001中的存储器为高速缓冲存储器。该存储器可以保存处理器1001刚用过或循环使用的指令或数据。如果处理器1001需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器1001的等待时间,因而提高了***的效率。
在一些实施例中,处理器1001可以包括一个或多个接口。接口可以包括集成电路(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)接口,SIM接口,和/或USB接口等。
在一些实施例中,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
参阅图10所示,第二电子设备200可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(Ultramobile Personal Computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(Personal Digital Assistant,PDA)、增强现实(Augmented Reality,AR)设备、虚拟现实(Virtual Reality,VR)设备、人工智能(Artificial Intelligence, AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该第二电子设备200的具体类型不作特殊限制。
第二电子设备200可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(Universal Serial 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等。
可以理解的是,本发明实施例示意的结构并不构成对第二电子设备200的具体限定。在本申请另一些实施例中,第二电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器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)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(Serial Data Line,SDA)和一根串行时钟线(Derail Clock Line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现第二电子设备200的触摸功能。
I2S接口可以用于音频通信。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(Camera Serial Interface,CSI),显示屏串行接口(DisplaySerial Interface,DSI)等。在一些实施例中,处理器110和显示屏194通过DSI接口通信,实现第二电子设备200的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对第二电子设备200的结构限定。在本申请另一些实施例中,第二电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
第二电子设备200通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-EmittingDiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light-Emitting Diode的,AMOLED),柔性发光二极管(Flexible Light-EmittingDiode,FLED),Miniled,Microled,Micro-OLED,量子点发光二极管(Quantum Dot Light-Emitting Diodes,QLED)等。在一些实施例中,第二电子设备200可以包括1个或N个显示屏194,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当第二电子设备200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
内部存储器121可以包括一个或多个随机存取存储器(Random-Access Memory,RAM)和一个或多个非易失性存储器(Non-Volatile Memory,NVM)。
随机存取存储器可以包括静态随机存储器(Static RandomAccess Memory,SRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)、同步动态随机存储器(Synchronous Dynamic Random Access Memory, SDRAM)、双倍资料率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(Single-Level Cell, SLC)、多阶存储单元(Multi-Level Cell, MLC)、三阶储存单元(Triple-Level Cell, TLC)、四阶储存单元(Quad-Level Cell,QLC)等,按照存储规范划分可以包括通用闪存存储(UniversalFlash Storage,UFS)、嵌入式多媒体存储卡(embedded Multi Media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作***或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展第二电子设备200的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
内部存储器121或外部存储器接口120用于存储一个或多个计算机程序。一个或多个计算机程序被配置为被该处理器110执行。该一个或多个计算机程序包括多个指令,多个指令被处理器110执行时,可实现上述实施例中在第二电子设备200上执行的***启动校验方法,以实现第二电子设备200的手写输入显示功能。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。第二电子设备200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,第二电子设备200根据压力传感器180A检测所述触摸操作强度。第二电子设备200也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于第二电子设备200的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触控式按键。第二电子设备200可以接收按键输入,产生与第二电子设备200的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触控振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触控操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触控操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触控振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和第二电子设备200的接触和分离。第二电子设备200可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时***多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。第二电子设备200通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,第二电子设备200采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在第二电子设备200中,不能和第二电子设备200分离。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在第一电子设备100上运行时,使得第一电子设备100执行上述相关方法步骤实现上述实施例中的镜像生成方法,当该计算机指令在第二电子设备200上运行时,使得第二电子设备200执行上述相关方法步骤实现上述实施例中的***启动校验方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的镜像生成方法或***启动校验方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的镜像生成方法或***启动校验方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random-Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (15)
1.一种镜像生成方法,其特征在于,所述方法包括:
基于预设镜像精简规则确定参与镜像精简的多个安全校验分区镜像;
为所述多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体,所述镜像标识结构体用于保存对应的安全校验分区镜像的信息,所述每个安全校验分区镜像一一对应一个安全校验分区,所述安全校验分区用于存储对应的镜像;
基于添加有所述镜像标识结构体的所述每个安全校验分区镜像,打包得到安全校验精简镜像,所述安全校验精简镜像对应一个安全校验分区,所述镜像标识结构体保存的信息包括对应的安全校验分区镜像的镜像内容在所述安全校验精简镜像中的位置信息。
2.如权利要求1所述的镜像生成方法,其特征在于,所述为所述多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体之后,还包括:
对所述每个安全校验分区镜像进行内容填充,使得所述每个安全校验分区镜像达到预设大小;
所述基于添加有所述镜像标识结构体的所述每个安全校验分区镜像,打包得到安全校验精简镜像,包括:
基于内容填充后的所述每个安全校验分区镜像,打包得到所述安全校验精简镜像,所述安全校验精简镜像中的每个安全校验分区镜像设置有不同的签名校验密钥。
3.如权利要求2所述的镜像生成方法,其特征在于,所述为所述多个安全校验分区镜像中的每个安全校验分区镜像添加镜像标识结构体,包括:
在所述每个安全校验分区镜像的镜像内容后添加所述镜像标识结构体。
4.如权利要求3所述的镜像生成方法,其特征在于,所述对所述每个安全校验分区镜像进行内容填充,包括:
在所述每个安全校验分区镜像的镜像标识结构体后填充预设内容。
5.如权利要求1至4任一项所述的镜像生成方法,其特征在于,所述镜像标识结构体包括标志位、镜像名称位、起始位置位以及终止位置位,所述标志位用于定位所述镜像标识结构体,所述镜像名称位用于保存对应的安全校验分区镜像的镜像名称,所述起始位置位与所述终止位置位用于保存对应的安全校验分区镜像的镜像内容在所述安全校验精简镜像中的起始位置与终止位置。
6.如权利要求1至4任一项所述的镜像生成方法,其特征在于,所述预设镜像精简规则包括:具有独立升级需求和/或定制化需求的安全校验分区镜像不参与镜像精简。
7.一种***启动校验方法,其特征在于,所述方法包括:
获取待检验的镜像清单;
基于所述镜像清单确定待加载的目标安全校验分区镜像;
若所述目标安全校验分区镜像为第一类型的安全校验分区镜像的子镜像,识别安全校验精简镜像的镜像标识结构体,所述第一类型的安全校验分区镜像为基于多个参与镜像精简的安全校验分区镜像打包得到的所述安全校验精简镜像,所述多个参与镜像精简的安全校验分区镜像中的每个安全校验分区镜像一一对应一个安全校验分区,所述安全校验精简镜像对应一个安全校验分区,所述安全校验分区用于存储对应的镜像;
基于所述镜像标识结构体,获取所述目标安全校验分区镜像的镜像内容在所述安全校验精简镜像中的位置信息;
基于所述位置信息进行镜像内容的加载;
对加载的镜像内容进行签名校验与哈希校验;
若所述签名校验与所述哈希校验均通过,确定所述目标安全校验分区镜像为合法镜像。
8.如权利要求7所述的***启动校验方法,其特征在于,所述方法还包括:
若所述目标安全校验分区镜像为第二类型的安全校验分区镜像,基于所述目标安全校验分区镜像的镜像名称进行镜像内容的加载,所述第二类型的安全校验分区镜像为不参与镜像精简的安全校验分区镜像。
9.如权利要求8所述的***启动校验方法,其特征在于,所述基于所述目标安全校验分区镜像的镜像名称进行镜像内容的加载,包括:
查找与所述目标安全校验分区镜像的镜像名称对应的安全校验分区;
从所述对应的安全校验分区中读取所述目标安全校验分区镜像的镜像内容。
10.如权利要求7所述的***启动校验方法,其特征在于,所述识别所述安全校验精简镜像的镜像标识结构体,包括:
解析所述安全校验精简镜像,识别所述安全校验精简镜像中的标志位;
基于所述标志位定位所述镜像标识结构体。
11.如权利要求10所述的***启动校验方法,其特征在于,所述基于所述镜像标识结构体,获取所述目标安全校验分区镜像的镜像内容在所述安全校验精简镜像中的位置信息,包括:
解析所述镜像标识结构体中的镜像名称位,得到添加所述镜像标识结构体的安全校验分区镜像的镜像名称;
若添加所述镜像标识结构体的安全校验分区镜像的镜像名称与所述目标安全校验分区镜像的镜像名称匹配,解析所述镜像标识结构体中的起始位置位和终止位置位,得到所述目标安全校验分区镜像的镜像内容在所述安全校验精简镜像中的位置信息。
12.如权利要求7至11中任一项所述的***启动校验方法,其特征在于,所述对加载的镜像内容进行签名校验与哈希校验,包括:
对加载的镜像内容进行签名校验;
若签名校验通过,对加载的镜像内容进行哈希校验,所述哈希校验包括对基于所述加载的镜像内容计算得到的哈希值进行校验,或者对基于所述加载的镜像内容构建得到的哈希树的根哈希值进行校验。
13.一种电子设备,其特征在于,所述电子设备包括存储器和处理器:
其中,所述存储器,用于存储程序指令;
所述处理器,用于读取并执行所述存储器中存储的所述程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行如权利要求1至6中任一项所述的镜像生成方法,或者执行如权利要求7至12中任一项所述的***启动校验方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行如权利要求1至6中任一项所述的镜像生成方法,或者执行如权利要求7至12中任一项所述的***启动校验方法。
15.一种芯片,与电子设备中的存储器耦合,其特征在于,所述芯片用于控制所述电子设备执行如权利要求1至6中任一项所述的镜像生成方法,或者执行如权利要求7至12中任一项所述的***启动校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310732587.4A CN116467015B (zh) | 2023-06-20 | 2023-06-20 | 镜像生成方法、***启动校验方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310732587.4A CN116467015B (zh) | 2023-06-20 | 2023-06-20 | 镜像生成方法、***启动校验方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116467015A CN116467015A (zh) | 2023-07-21 |
CN116467015B true CN116467015B (zh) | 2023-10-20 |
Family
ID=87181123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310732587.4A Active CN116467015B (zh) | 2023-06-20 | 2023-06-20 | 镜像生成方法、***启动校验方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467015B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009003B (zh) * | 2023-09-28 | 2024-01-09 | 飞腾信息技术有限公司 | 一种安全启动方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955648A (zh) * | 2014-05-15 | 2014-07-30 | 乐视致新电子科技(天津)有限公司 | 校验***镜像合法性的方法及装置 |
CN113209633A (zh) * | 2021-06-09 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 镜像的处理方法、装置、电子设备及可读存储介质 |
CN113377391A (zh) * | 2021-07-21 | 2021-09-10 | 北京百度网讯科技有限公司 | 镜像文件的制作和烧录的方法、装置、设备和介质 |
CN113900673A (zh) * | 2021-06-15 | 2022-01-07 | 荣耀终端有限公司 | ***安装包的管理方法、设备、存储介质及程序产品 |
CN114185491A (zh) * | 2021-12-13 | 2022-03-15 | 惠州Tcl移动通信有限公司 | 一种分区文件的下载方法、装置、存储介质及计算机设备 |
CN114706533A (zh) * | 2022-04-24 | 2022-07-05 | 苏州睿芯集成电路科技有限公司 | 一种基于gpt分区表的多文件多级启动加载方法及装置 |
US11416233B1 (en) * | 2021-04-21 | 2022-08-16 | Dell Products, L.P. | Software upgrade system and method for a baseboard management controller configured in an information handling system |
CN115328563A (zh) * | 2022-10-09 | 2022-11-11 | 荣耀终端有限公司 | ***启动方法及电子设备 |
-
2023
- 2023-06-20 CN CN202310732587.4A patent/CN116467015B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955648A (zh) * | 2014-05-15 | 2014-07-30 | 乐视致新电子科技(天津)有限公司 | 校验***镜像合法性的方法及装置 |
US11416233B1 (en) * | 2021-04-21 | 2022-08-16 | Dell Products, L.P. | Software upgrade system and method for a baseboard management controller configured in an information handling system |
CN113209633A (zh) * | 2021-06-09 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 镜像的处理方法、装置、电子设备及可读存储介质 |
CN113900673A (zh) * | 2021-06-15 | 2022-01-07 | 荣耀终端有限公司 | ***安装包的管理方法、设备、存储介质及程序产品 |
CN113377391A (zh) * | 2021-07-21 | 2021-09-10 | 北京百度网讯科技有限公司 | 镜像文件的制作和烧录的方法、装置、设备和介质 |
CN114185491A (zh) * | 2021-12-13 | 2022-03-15 | 惠州Tcl移动通信有限公司 | 一种分区文件的下载方法、装置、存储介质及计算机设备 |
CN114706533A (zh) * | 2022-04-24 | 2022-07-05 | 苏州睿芯集成电路科技有限公司 | 一种基于gpt分区表的多文件多级启动加载方法及装置 |
CN115328563A (zh) * | 2022-10-09 | 2022-11-11 | 荣耀终端有限公司 | ***启动方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116467015A (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210026555A1 (en) | System startup method and apparatus, electronic device, and storage medium | |
US11256496B2 (en) | Apparatus and method for managing application | |
CN106030525B (zh) | 用于硬件平台的固件的***内供应的方法及其硬件平台 | |
US20060064576A1 (en) | Boot systems and methods | |
CN109634628B (zh) | 在可信存储装置上生成校验和以加速认证 | |
CN104137057A (zh) | 生成和高速缓存软件代码 | |
KR101555210B1 (ko) | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 | |
CN116467015B (zh) | 镜像生成方法、***启动校验方法及相关设备 | |
CN108846129B (zh) | 存储数据访问方法、装置及存储介质 | |
CN116266467A (zh) | 具有安全启动更新及自动恢复的存储器装置 | |
US11604656B2 (en) | Method and apparatus for managing application | |
KR102405593B1 (ko) | 전자 장치 및 그의 데이터 운용 방법 | |
CN116700768B (zh) | 一种应用的处理方法及相关装置 | |
CN110045966A (zh) | 安装器的处理方法、装置及设备 | |
CN115774701A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
KR20200068275A (ko) | 저장 장치를 초기화하는 방법 및 전자 장치 | |
US20230031974A1 (en) | Enabling spi firmware updates at runtime | |
CN114780120A (zh) | 升级方法、设备及存储介质 | |
CN116679946B (zh) | 一种固件升级方法及终端 | |
CN116661876B (zh) | ***启动方法、文件生成方法、电子设备及服务器 | |
WO2024067053A1 (zh) | 一种应用程序安装方法及电子设备 | |
WO2022052739A1 (zh) | 设备树修复方法、***及计算机可读存储介质 | |
CN117177246B (zh) | 一种用于锁死电子设备的方法、电子设备及服务器 | |
CN116679946A (zh) | 一种固件升级方法及终端 | |
TW202009766A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |