CN110022558B - 一种升级包的加密、解密方法和电子装置及存储介质 - Google Patents

一种升级包的加密、解密方法和电子装置及存储介质 Download PDF

Info

Publication number
CN110022558B
CN110022558B CN201910266567.6A CN201910266567A CN110022558B CN 110022558 B CN110022558 B CN 110022558B CN 201910266567 A CN201910266567 A CN 201910266567A CN 110022558 B CN110022558 B CN 110022558B
Authority
CN
China
Prior art keywords
file
upgrading
encrypted
upgrade
upgrade package
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
Application number
CN201910266567.6A
Other languages
English (en)
Other versions
CN110022558A (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910266567.6A priority Critical patent/CN110022558B/zh
Publication of CN110022558A publication Critical patent/CN110022558A/zh
Application granted granted Critical
Publication of CN110022558B publication Critical patent/CN110022558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

一种升级包的加密、解密方法和电子装置及存储介质,可基于原始升级包中各待升级分区的升级文件,确定其中的目标升级文件;之后,识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,基于上述描述可知本实施例中采用了部分加密的规则对目标升级文件中的部分文件进行加密,由此第二升级子文件无需加密,有效减少了加密数据量,缩短了加密时间,而解密升级包时,无需将第二升级子文件的数据1:1解密到内存,有利于降低升级包解密对电子装置内存的依赖、缩短解密时间及提升升级效率。

Description

一种升级包的加密、解密方法和电子装置及存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种升级包的加密、解密方法和电子装置及存储介质。
背景技术
目前,OTA(Over-the-Air r Technology,空中下载技术)升级是Android系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络自动下载OTA升级包,实现自动升级。
实际中,采用OTA升级包升级时,基于相关技术中OTA升级包的加密技术的限制,加密需要较大的内存,而解密时需要将整个升级包1:1解密到内存,所以OTA升级包的加解密过程对内存依赖较大,不适用于配置较低的机型,且在OTA升级包的加解密数据量大的情况下,尤其影响升级效率。
发明内容
本申请实施例提供一种升级包的加密、解密方法和电子装置及存储介质,有利于降低升级包在加密和解密时对内存的依赖。
本申请实施例第一方面提供一种升级包的加密方法,该升级包的加密方法包括:
获取原始升级包,其中,原始升级包中包含操作系统的各待升级分区的升级文件;
基于各升级文件的信息,确定目标升级文件;
识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,其中,第二升级子文件包含待写入操作系统的待升级分区的数据,第一升级子文件包含控制第二升级子文件写入待升级分区的写入控制数据。
本申请实施例第二方面提供一种升级包的解密方法,该升级包的解密方法包括:
获取加密升级包,解析加密升级包;
确定加密升级包中的目标升级文件,其中,目标升级文件中的第一升级子文件按照第一加密算法进行加密,目标升级文件中的第二升级子文件未加密;
按照与第一加密算法对应的第一解密算法,对目标升级文件中的第一升级子文件进行解密。
本申请实施例第三方面提供一种电子装置,该电子装置包括:
第一获取模块,用于获取原始升级包,其中,原始升级包中包含操作系统的各待升级分区的升级文件;
第一确定模块,用于基于各升级文件的信息,确定目标升级文件;
加密模块,用于识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,其中,第二升级子文件包含待写入操作系统的待升级分区的数据,第一升级子文件包含控制第二升级子文件写入待升级分区的写入控制数据。
本申请实施例第四方面提供一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现本申请实施例第一方面提供的加密方法中的步骤。
本申请实施例第五方面提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现本申请实施例第一方面提供的加密方法中的步骤。
本申请实施例第六方面提供一种电子装置,该电子装置包括:
第二获取模块,用于获取加密升级包,解析加密升级包;
第二确定模块,用于确定加密升级包中的目标升级文件,其中,目标升级文件中的第一升级子文件按照第一加密算法进行加密,目标升级文件中的第二升级子文件未加密;
解密模块,用于按照与第一加密算法对应的第一解密算法,对目标升级文件中的第一升级子文件进行解密。
本申请实施例第七方面提供一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现本申请实施例第二方面提供的解密方法中的步骤。
本申请实施例第八方面提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现本申请实施例第二方面提供的解密方法中的步骤。
本发明实施例提供了一种升级包的加密、解密方法和电子装置及存储介质,可以基于原始升级包中包含的各待升级分区的升级文件,确定这些升级文件中的目标升级文件;之后,识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,从上述的描述可以看出本实施例中实际上采用了部分加密的规则对目标升级文件中的部分文件进行加密,按照此种加密规则,第二升级子文件的数据不会进行加密,有效减少了加密数据量,缩短了加密时间,而电子装置解密升级包时,不需要将第二升级子文件的数据1:1解密到内存,并且由于第二升级子文件包含的是待写入待升级分区的数据,这一部分的数据量在目标升级文件往往占比较大,所以本实施例有利于降低升级包解密对电子装置内存的依赖、缩短解密时间及提升升级效率。
附图说明
图1为本申请提供的一种电子装置的硬件结构示意图;
图2为本申请第一实施例提供的升级包的加密方法的流程示意图;
图3为本申请第二实施例提供的细化的升级包的加密方法的流程示意图;
图4为本申请第二实施例中升级包的加密方法的原理示意图;
图5为本申请第三实施例提供的一种电子装置的结构示意图;
图6为本申请第三实施例提供的另一种电子装置的结构示意图;
图7为本申请第四实施例提供的一种升级包的解密方法的流程示意图;
图8为本申请第五实施例提供的细化的升级包的解密方法的流程示意图;
图9为本申请第六实施例提供的一种电子装置的结构示意图;
图10为本申请第六实施例提供的另一种电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,图1示出了一种电子装置的结构框图。本发明实施例提供的升级包的加密、解密方法可应用于如图1所示的电子装置10中,电子装置10包括但不限于:移动终端如智能手机、笔记本及穿戴智能设备等,固定终端如台式电脑及智能电视,以及服务器等等。
如图1所示,电子装置10包括存储器101、存储控制器102,一个或多个(图中仅示出一个)处理器103、外设接口104及触控屏幕105。这些组件通过一条或多条通讯总线/信号线106相互通讯。
可以理解,图1所示的结构仅为示意,其并不对电子装置的结构造成限定。电子装置10还可包括比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。
存储器101可用于存储软件程序以及模块,如本发明实施例中的升级包的加密、解密方法及电子装置对应的程序指令/模块,处理器103通过运行存储在存储器101内的软件程序以及模块,从而执行各种功能应用以及数据处理,例如实现上述的升级包的加密、解密方法。
存储器101可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器101可进一步包括相对于处理器103远程设置的存储器,这些远程存储器可以通过网络连接至电子装置10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器103以及其他可能的组件对存储器101的访问可在存储控制器102的控制下进行。
外设接口104将各种输入/输入装置耦合至CPU以及存储器101。处理器103运行存储器101内的各种软件、指令以执行电子装置10的各种功能以及进行数据处理。
在一些实施例中,外设接口104,处理器103以及存储控制器102可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
触控屏幕105在电子装置与用户之间同时提供一个输出及输入界面。具体地,触控屏幕105向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。例如,触控屏幕105向用户输出经本发明实施例中的升级包的加密、解密方法处理后的待显示内容。触控屏幕105的一些输出结果是对应于一些用户界面对象。触控屏幕105还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕105显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
基于上述电子装置描述本发明实施例中的升级包的加密方法和解密方法。
第一实施例:
本实施例示出了一种升级包的加密方法,可以实现对升级包的快速加密,缩短加密时间,还可以使得电子装置在使用升级包时,降低升级包解密对电子装置内存的依赖,缩短解密时间,提升升级效率。
参见图2,该升级包的加密方法包括:
步骤201、获取原始升级包,其中,原始升级包中包含操作系统的各待升级分区的升级文件;
本实施例中,原始升级包适用的操作系统包括但不限于安卓系统。原始升级包的类型包括但不限于OTA升级包。可以理解的是,本实施例的原始升级包为未压缩的升级包。
本实施例中,操作系统分区是针对操作系统的概念,操作系统的分区包括但不限于system系统分区,userdata数据分区、cache缓存分区、recovery分区(建立在hboot与android系统间的一个中间层,主要用于系统调试和恢复)、boot分区(存放内核和ramdisk的分区)、hboot分区(即bootloader,负责启动的分区)以及radio分区(基带所在分区)等等分区。这些分区在操作系统升级时,可以通过对应的升级文件实现升级。
本实施例中的待升级分区可以为操作系统的分区中的任意一个或多个,待升级分区的具体类型根据操作系统的实际升级情况而定,本实施例对此没有限制。
步骤202、基于各升级文件的信息,确定目标升级文件;
本实施例中的目标升级文件是需要按照部分加密规则进行加密的升级文件,即针对每一个目标升级文件,只对文件中的一部分进行加密,而对其他部分不加密。这种部分加密的加密规则可以有效降低加密数据量,减少加密时间。但是为了保证系统升级时的数据安全性,本实施例中满足目标升级文件中加密部分的数据不解密,则电子装置不能基于目标升级文件对对应的待升级分区进行升级的条件。
可选的,在一个实施例中,各升级文件,可以大致分为两部分-第一升级子文件和第二升级子文件,该第二升级子文件中包含了待写入对应的待升级分区的数据,第一升级子文件中包含了控制第二升级子文件写入对应的待升级分区的写入控制数据,即控制第二升级子文件中的数据“如何”写入待升级分区的数据。以一个待升级分区为system分区为例,假设原始升级包中的一个目标升级文件为system分区的升级文件,则该升级文件中的system.new.dat.br和system.patch.dat等二进制文件为本实施例中的第二升级子文件,该第二升级子文件中的数据最后需要写入对应的待升级分区中,而system分区的升级文件中的system.transfer.list脚本为本实施例中的第一升级子文件,相当于升级脚本,描述了电子装置根据第二升级子文件中的数据进行更新的过程,可以用于控制第二升级子文件中的数据写入待升级分区的过程。
可选的,在一个示例中,可以选择原始升级包中的所有升级文件作为目标升级文件。也可以选择原始升级包中的部分升级文件作为目标升级文件。可选的,在选择原始升级包中的部分升级文件作为目标升级文件时,为了降低加密数据量以及降低电子装置升级时解密的数据量,可以基于升级文件的实际文件大小进行选择,将较大的升级文件作为目标升级文件进行部分加密,例如将原始升级包的升级文件中文件大小排列在前的三个升级文件作为目标升级文件。可选的,在一个示例中,还可以根据升级文件对应的待升级分区来选择目标升级文件,本实施例对此没有限制。
步骤203、识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,其中,第二升级子文件包含待写入操作系统的待升级分区的数据,第一升级子文件包含控制第二升级子文件写入待升级分区的写入控制数据。
本实施例中,第一加密算法可以采用现有的加密算法实现,包括但不限于对称加密算法、非对称加密算法和Hash算法等等,本实施例对此没有限制。
本实施例中,在步骤203中,对目标升级文件进行部分加密,绕过了空间占用较大的二进制文件加密流程。可选的,在对原始升级包中的第一升级子文件按照第一加密算法进行加密后,可以压缩原始升级包,生成加密升级包,并进行签名等处理。本实施例的加密方法适用于block-based升级包的快速加密,以及电子装置的低内存场景。
在一个实施例中,以安卓操作系统为为例,假设原始升级包中包含system和vendor分区,通过步骤202,本实施例确定system和vendor分区的升级文件为目标升级文件,则本申请在步骤203中,对系统脚本文件system.transfer.list和vendor.transfer.list按照第一加密算法进行加密,对system.new.dat.br和system.patch.dat以及vendor.patch.dat和vendor.new.dat.br等全量或增量二进制文件不进行任何加密。
本实施例采用了部分加密的规则对目标升级文件中的部分文件进行加密,按照此种加密规则,第二升级子文件的数据不会进行加密,减少加密数据量,缩短了加密时间,而电子装置解密升级包时,不需要对第二升级子文件包含的待写入待升级分区的二进制数据进行解密,大大降低升级包解密对电子装置内存的依赖,缩短了解密时间,有利于提升升级效率,而加密的第一升级子文件有效保护了数据安全。
第二实施例:
本实施例提出了一种细化的升级包的加密方法,参见图3,该加密方法包括:
步骤301、获取原始升级包,其中,原始升级包中包含各待升级分区的升级文件;
本实施例中,对原始升级包、操作系统分区以及升级文件的解释参见第一实施例的相关描述,本实施例在此不在赘述。
步骤302、将各升级文件对应的待升级分区与预设操作系统分区进行匹配,将匹配成功的待升级分区的升级文件确定为目标升级文件;
可选的,在一个示例中,预设操作系统分区包括但不限于system分区和vendor分区。
可选的,在一个实施例中,步骤302中还可以通过如下的步骤来确定目标升级文件:
将各升级文件的文件大小与预设文件大小进行比较,将文件大小不小于预设文件大小的升级文件确定为目标升级文件。
可选的,在另一个实施例中,步骤302中还可以通过如下的步骤来确定目标升级文件:
将各待升级分区的升级文件按照文件大小从大到小的顺序进行排列,选择排列在前的三个升级文件作为目标升级文件。
步骤303、识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,其中,第二升级子文件包含待写入操作系统的待升级分区的数据,第一升级子文件包含控制第二升级子文件写入待升级分区的写入控制数据。
进一步的,考虑到除了system分区和vendor分区外的一些分区,例如boot分区,其升级文件一般较小,解密之后所占的存储空间也较小。对于这些空间占比较小的升级文件,可以直接进行全部加密,而不进行部分加密。可选的,本实施例中,在基于各升级文件的信息,确定目标升级文件后,还包括:按照第二加密算法,对原始升级包中除目标升级文件之外的其他升级文件进行整体加密。
可选的,对于安卓系统而言,可以将system和vendor分区的升级文件作为目标升级文件进行部分加密,将其他分区的升级文件进行整体加密。例如,对于boot、lk和modem分区的升级文件进行整体加密。
可选的,第一加密算法和第二加密算法可以相同或不同,本实施例对此没有限制。
可选的,本实施例在加密之后,为了便于电子装置快速、准确地确定需要解密的文件,可以在加密升级包中写入指示信息,该指示信息用于指示加密升级包中已加密的文件。
在一个示例中,在对原始升级包中的第一升级子文件按照第一加密算法进行加密后,还包括:
统计原始升级包的文件中的已加密文件;
在加密升级包中写入用于指示已加密文件的指示信息。
可选的,统计原始升级包的文件中的已加密文件时,可以将使用第一加密算法和第二加密算法加密的文件全部统计在内。
可以理解的是,本实施例中,加密升级包中指示信息的存在位置和存在形式可以任意设置,本实施例对此没有限制,例如可以将指示信息用任意字符组合表示,并将指示信息拼接在已加密文件的文件名称中,对于采用不同加密算法的文件,可以采用不同的字符组合表示。例如,对于system.new.dat.br升级子文件,可以将名称修改为system.new.dat.br(Ⅰ),以新增的指示信息(Ⅰ)指示system.new.dat.br升级子文件采用了第一加密算法进行加密;对于boot升级文件,可以将名称修改为boot(Ⅱ),以新增的指示信息(Ⅱ)指示boot升级子文件采用了第二加密算法进行加密。
在另一个示例中,可以采用更简单、直接的列表方式,为电子装置提供加密升级包中已经加密文件的信息。可选的,在加密升级包中写入用于指示已加密文件的指示信息包括:生成已加密文件的文件信息列表,将文件信息列表作为指示信息写入加密升级包中。
在该示例中,将统计的已加密文件的名称以列表的形式进行记录,得到类似下表所示的文件信息列表,如下表所示,文件信息列表中可以包含加密的文件的名称以及对应的加密算法。
已加密的文件 加密算法
system.transfer.list 第一加密算法
vendor.transfer.list 第一加密算法
recovery.img 第二加密算法
hboot.img 第二加密算法
boot.img 第二加密算法
lk.img 第二加密算法
表1
可选的,在一个示例中,该列表可以命名为metadat列表,与目标升级文件(其中,第一升级子文件已加密)和其他升级文件一起打包成为加密升级包。
下面以安卓系统为例,结合图4,详细说明采用本实施例的加密方式对OTA包进行加密的过程。
步骤1、获取译原始OTA包,并解压处理;
步骤2、将原始OTA包中待升级分区与预设操作系统分区(system和vendor分区)进行匹配,确定system分区和vendore分区的升级文件为目标升级文件;
步骤3、对于目标升级文件中的system.new.dat.br、vendor.new.dat.br(图4中未示出)、system.patch.dat以及vendor.patch.dat图4中未示出)等数据,拷贝到新的数据包中;
其中,步骤3中,还可以将拷贝的数据保留在原始OTA包中,不进行任何处理;
步骤4、采用客制化加密算法对系统脚本文件system.transfer.list和vendor.transfer.list以及boot、lk和modem等其他镜像文件进行加密处理;
可以理解的是,该步骤中,system.transfer.list和vendor.transfer.list文件分别属于system升级文件和vendor文件的一部分,而boot、lk和modem等其他镜像文件为完整的升级文件。
在步骤4中,可以在原始OTA中进行加密,也可以将加密后的文件拷贝到步骤3中的新的数据包中。
步骤5、统计加密处理过的文件,并记录生成如表1所示的文件信息列表oppo_metadata;
步骤6、压缩oppo_metadata、拷贝的数据及加密得到的数据,并对压缩包进行签名处理,生成最终加密OTA包。
在步骤6中,可以将oppo_metadata列表写入原始OTA包中与未加密和已加密的数据一起压缩,并对压缩包进行签名处理,生成最终加密OTA包。
本实施例采用了部分加密的规则对目标升级文件中的部分文件进行加密,按照此种加密规则,第二升级子文件的数据不会进行加密,减少加密数据量,缩短了加密时间,而电子装置解密升级包时,不需要对第二升级子文件包含的待写入待升级分区的二进制数据进行解密,大大降低升级包解密对电子装置内存的依赖,缩短了解密时间,有利于提升升级效率,而加密的第一升级子文件有效保护了数据安全。
第三实施例:
本实施例提供了一种电子装置,该电子装置可以是电子装置厂商提供的服务器,参见图5,该电子装置包括:
第一获取模块501,用于获取原始升级包,其中,原始升级包中包含操作系统的各待升级分区的升级文件;
第一确定模块502,用于基于各升级文件的信息,确定目标升级文件;
加密模块503,用于识别目标升级文件中的第一升级子文件和第二升级子文件,对原始升级包中的第一升级子文件按照第一加密算法进行加密,对第二升级子文件不加密,得到加密升级包,其中,第二升级子文件包含待写入操作系统的待升级分区的数据,第一升级子文件包含控制第二升级子文件写入待升级分区的写入控制数据。
可选的,第一确定模块502,用于将各升级文件对应的待升级分区与预设操作系统分区进行匹配,将匹配成功的待升级分区的升级文件确定为目标升级文件。
另一个示例中,可选的,第一确定模块502,用于将各升级文件的文件大小与预设文件大小进行比较,将文件大小不小于预设文件大小的升级文件确定为目标升级文件。
可选的,加密模块503还用于在第一确定模块502基于各升级文件的信息,确定目标升级文件后,按照第二加密算法,对原始升级包中除目标升级文件之外的其他升级文件进行整体加密。
进一步的,电子装置还包括处理模块,用于在加密模块503对原始升级包中的第一升级子文件按照第一加密算法进行加密后,统计原始升级包的文件中的已加密文件;在加密升级包中写入用于指示已加密文件已经被加密的指示信息。
进一步的,处理模块,具体用于统计原始升级包的文件中的已加密文件;生成已加密文件的文件信息列表,将文件信息列表作为指示信息写入加密升级包中。
进一步的,本实施例还提供一种电子装置。该电子装置可用于实现图2和图3所示实施例中的升级包的加密方法。如图6所示,该电子装置主要包括:
存储器601、处理器602、总线603及存储在存储器601上并可在处理器602上运行的计算机程序,存储器601和处理器602通过总线603连接。处理器602执行该计算机程序时,实现图2或图3所示实施例中的升级包的加密方法。其中,处理器的数量可以是一个或多个。
进一步的,本申请实施例还提供了一种存储介质,该存储介质可以是设置于本实施例中的电子装置中,该存储介质可以是前述图6所示实施例中的存储器。该存储介质上存储有计算机程序,该程序被处理器执行时实现图2或图3所示实施例中的升级包的加密方法。进一步的,该存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例的电子装置在对原始升级包加密的过程中,采用了部分加密的规则对目标升级文件中的部分文件进行加密,按照此种加密规则,第二升级子文件的数据不会进行加密,减少加密数据量,缩短了加密时间,而电子装置解密升级包时,不需要对第二升级子文件包含的待写入待升级分区的二进制数据进行解密,大大降低升级包解密对电子装置内存的依赖,缩短了解密时间,有利于提升升级效率,而加密的第一升级子文件有效保护了数据安全。
第四实施例:
参见图7,本实施例提供了一种升级包的解密方法,该解密方法包括如下的步骤:
步骤701、获取加密升级包,解析加密升级包;
本实施例中,获取升级加密包的方式可以是主动获取或者被动获取。可选的,获取加密升级包包括:向服务器发送升级查询请求,接收服务器响应于升级查询请求反馈的加密升级包;或者,获取加密升级包包括:接收服务器主动发送的加密升级包。
可选的,对应于第一实施例和第二实施例,加密升级包中不是所有的文件都进行了加密,只有目标升级文件中的第一升级子文件以及除目标升级文件外的其他升级文件才进行了加密。
步骤702、确定加密升级包中的目标升级文件,其中,目标升级文件中的第一升级子文件按照第一加密算法进行加密,目标升级文件中的第二升级子文件未加密;
可选的,加密升级包中用于包含有指示已加密文件的指示信息,在确定目标升级文件的时候,可以根据加密升级包中的指示信息来确定目标升级文件。可选的,确定加密升级包中的目标升级文件包括:获取加密升级包中包含的用于指示已加密文件的指示信息,基于指示信息确定加密升级包中的目标升级文件。
步骤703、按照与第一加密算法对应的第一解密算法,对目标升级文件中的第一升级子文件进行解密。
可选的,在对目标升级文件中的第一升级子文件进行解密时,将第一升级子文件解密到电子装置对应的内存中。
可选的,本实施例中,若加密升级包中除目标升级文件外的其他升级文件采用了第二加密算法加密,则按照对应的第二解密算法对加密升级包中除目标升级文件外的其他升级文件解密。可以理解的是,在解密这些其他升级文件时,将解密后的数据写入对应的分区中。
进一步的,在解密完成后,可以基于解密的数据以及第二升级子文件,进行升级,该升级过程与现有的升级过程没有区别。
可选的,在升级完成后,还包括,删除内存中的解密结果,以保证解密数据安全。
本实施例的电子装置在解密过程中,对目标升级文件无需1:1解密到内存,只需解密其中的第一升级子文件,降低了解密对内存的依赖,减少了解密数据量,缩短了解密时间,而解密结果输出到内存,保证解密数据安全,同时提高了升级包安装效率。
第五实施例:
参见图8,本实施例提供了一种细化的升级包的解密方法,该解密方法包括如下的步骤:
步骤801、获取加密升级包,解析加密升级包;
步骤802、从加密升级包中获取已加密文件的文件信息列表,根据文件信息列表中的信息,确定加密升级包中的目标升级文件,其中,目标升级文件中的第一升级子文件按照第一加密算法进行加密,目标升级文件中的第二升级子文件未加密;
上述步骤802是第三实施例中步骤702的细化步骤,其中,文件信息列表的生成过程参见第二实施例的相关描述。参见第二实施例中的表1,文件信息列表中可以包含加密的文件的名称和加密的算法。
步骤803、按照与第一加密算法对应的第一解密算法,对目标升级文件中的第一升级子文件进行解密。
本实施例结合图4,对电子装置实现升级包的解密方法进行详细说明。
步骤a、获取加密OTA包并打开该加密OTA包;
步骤b、解压得到oppo_metadata列表文件,并解析oppo_metadata列表文件内容,得到目标升级文件为system升级文件和vendor升级文件,第一升级子文件为system.transfer.list和vendor.transfer.list,完整加密的文件为boot升级文件以及lk升级文件等等;
步骤c、根据解析出的列表文件,从加密OTA包解压出对应文件,并利用对应解密算法解密到内存当中;
在步骤c中,对第一升级子文件system.transfer.list和vendor.transfer.list,按照第一解密算法解密到内存中,对目标升级文件外的其他升级文件按照第二解密算法解密到内存中;
步骤d、升级system分区和vendor分区时,读取并解析内存中解密的system.transfer.list和vendor.transfer.list,对于系统二进制文件即第二升级子文件仍然使用OTA包中原生的数据;
步骤e、升级boot、lk等其他镜像时,从内存中读取对应的解密数据并写入到指定分区中;
步骤f、升级完成后删除内存中的解密结果,保证解密数据安全。
本实施例的电子装置在解密过程中,对目标升级文件无需1:1解密到内存,只需解密其中的第一升级子文件,降低了解密对内存的依赖,减少了解密数据量,缩短了解密时间,而解密结果输出到内存,保证解密数据安全,同时提高了升级包安装效率。
第六实施例:
参见图9,本实施例提供了一种电子装置,包括:
第二获取模块901,用于获取加密升级包,解析加密升级包;
第二确定模块902,用于确定加密升级包中的目标升级文件,其中,目标升级文件中的第一升级子文件按照第一加密算法进行加密,目标升级文件中的第二升级子文件未加密;
解密模块903,用于按照与第一加密算法对应的第一解密算法,对目标升级文件中的第一升级子文件进行解密。
进一步的,第二确定模块902,用于获取加密升级包中包含的用于指示已加密文件的指示信息,基于指示信息确定加密升级包中的目标升级文件。
进一步的,第二确定模块902,用于从加密升级包中获取已加密文件的文件信息列表;根据文件信息列表中的信息,确定加密升级包中的目标升级文件。
进一步的,本实施例还提供一种电子装置,该电子装置包括可用于实现图7和图8所示实施例中的升级包的解密方法。
如图10所示,该电子装置主要包括:存储器1001、处理器1002、总线1003及存储在存储器1001上并可在处理器1002上运行的计算机程序,存储器1001和处理器1002通过总线1003连接。处理器1002执行该计算机程序时,实现7和图8所示实施例中的升级包的解密方法。其中,处理器的数量可以是一个或多个。
存储器1001可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1001用于存储可执行程序代码,处理器1002与存储器1001耦合。
进一步的,本申请实施例还提供了一种存储介质,该存储介质可以是设置于本实施例中的电子装置中的计算机可读存储介质,该存储介质可以是前述图10所示实施例中的存储器。
该存储介质上存储有计算机程序,该程序被处理器执行时实现图7和图8实施例所示的升级包的解密方法。进一步的,该存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的升级包的加密、解密方法和电子装置及存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种升级包的加密方法,其特征在于,所述方法应用于处于低内存场景的电子设备,包括:
获取原始升级包,其中,所述原始升级包中包含操作系统的各待升级分区的升级文件;
基于各所述升级文件的信息,确定目标升级文件,包括:将各所述升级文件的文件大小与预设文件大小进行比较,将文件大小不小于所述预设文件大小的升级文件确定为目标升级文件;
识别所述目标升级文件中的第一升级子文件和第二升级子文件,对所述原始升级包中的所述第一升级子文件按照第一加密算法进行加密,对所述第二升级子文件不加密,按照第二加密算法,对所述原始升级包中除所述目标升级文件之外的其他升级文件进行整体加密,得到加密升级包;其中,所述第二升级子文件包含待写入所述操作系统的待升级分区的数据,所述第一升级子文件包含控制所述第二升级子文件写入所述待升级分区的写入控制数据,所述第一加密算法和所述第二加密算法是不同的加密算法,所述第一升级子文件描述了电子设备根据第二升级子文件中的数据进行更新的过程;
统计所述原始升级包的文件中的已加密文件,在所述加密升级包中写入用于指示所述已加密文件的指示信息,包括:将指示信息拼接在已加密文件的文件名称中;其中,所述指示信息用字符表示,按照所述第一加密算法加密得到的已加密文件和按照所述第二加密算法加密得到的已加密文件,对应不同的指示信息。
2.根据权利要求1所述的升级包的加密方法,其特征在于,所述基于各所述升级文件的信息,确定目标升级文件包括:
将各所述升级文件对应的待升级分区与预设操作系统分区进行匹配,将匹配成功的待升级分区的升级文件确定为目标升级文件。
3.根据权利要求2所述的升级包的加密方法,其特征在于,所述基于各所述升级文件的信息,确定目标升级文件包括:
将各所述升级文件按照文件大小从大到小的顺序进行排列,将排列在前的预设数目个升级文件确定为目标升级文件。
4.根据权利要求1所述的升级包的加密方法,其特征在于,所述在所述加密升级包中写入用于指示所述已加密文件的指示信息包括:
生成所述已加密文件的文件信息列表,将所述文件信息列表作为所述指示信息写入所述加密升级包中。
5.一种升级包的解密方法,其特征在于,所述方法应用于处于低内存场景的电子设备,包括:
获取加密升级包,解析所述加密升级包;
确定所述加密升级包中经过加密的目标升级文件;
按照与第一加密算法对应的第一解密算法,对所述经过加密的目标升级文件中的第一升级子文件进行解密;
按照与第二加密算法对应的第二解密算法,对所述加密升级包中除所述经过加密的目标加密升级文件之外的其他经过加密的升级文件进行解密;
所述加密升级包的加密过程包括以下步骤:
获取原始升级包,其中,所述原始升级包中包含操作系统的各待升级分区的升级文件;
基于各所述升级文件的信息,确定目标升级文件,包括:将各所述升级文件的文件大小与预设文件大小进行比较,将文件大小不小于所述预设文件大小的升级文件确定为目标升级文件:
识别所述目标升级文件中的第一升级子文件和第二升级子文件,对所述原始升级包中的所述第一升级子文件按照第一加密算法进行加密,对所述第二升级子文件不加密,按照第二加密算法,对所述原始升级包中除所述目标升级文件之外的其他升级文件进行整体加密,得到加密升级包,其中,所述第二升级子文件包含待写入所述操作系统的待升级分区的数据,所述第一升级子文件包含控制所述第二升级子文件写入所述待升级分区的写入控制数据,所述第一加密算法和所述第二加密算法是不同的加密算法,所述第一升级子文件描述了电子设备根据第二升级子文件中的数据进行更新的过程;
统计所述原始升级包的文件中的已加密文件,在所述加密升级包中写入用于指示所述已加密文件的指示信息,包括:将指示信息拼接在已加密文件的文件名称中;其中,所述指示信息用字符表示,按照所述第一加密算法加密得到的已加密文件和按照所述第二加密算法加密得到的已加密文件,对应不同的指示信息。
6.根据权利要求5所述的升级包的解密方法,其特征在于,所述确定所述加密升级包中经过加密的目标升级文件包括:
从所述加密升级包中获取已加密文件的文件信息列表;
根据所述文件信息列表中的信息,确定所述加密升级包中经过加密的目标升级文件。
7.根据权利要求5所述的升级包的解密方法,其特征在于,所述方法还包括:
将所述加密升级包中的文件解密到内存中;
在基于各升级文件完成各待升级分区的升级后,删除所述内存中的解密结果。
8.一种电子装置,其特征在于,包括:
第一获取模块,用于获取原始升级包,其中,所述原始升级包中包含操作系统的各待升级分区的升级文件;
第一确定模块,用于基于各所述升级文件的信息,确定目标升级文件,包括:将各所述升级文件的文件大小与预设文件大小进行比较,将文件大小不小于所述预设文件大小的升级文件确定为目标升级文件;
加密模块,用于识别所述目标升级文件中的第一升级子文件和第二升级子文件,对所述原始升级包中的所述第一升级子文件按照第一加密算法进行加密,对所述第二升级子文件不加密,按照第二加密算法,对所述原始升级包中除所述目标升级文件之外的其他升级文件进行整体加密,得到加密升级包;
处理模块,用于统计所述原始升级包的文件中的已加密文件,在所述加密升级包中写入用于指示所述已加密文件的指示信息,包括:将指示信息拼接在已加密文件的文件名称中;其中,所述指示信息用字符表示,按照所述第一加密算法加密得到的已加密文件和按照所述第二加密算法加密得到的已加密文件,对应不同的指示信息;
其中,所述第二升级子文件包含待写入所述操作系统的待升级分区的数据,所述第一升级子文件包含控制所述第二升级子文件写入所述待升级分区的写入控制数据,所述第一加密算法和所述第二加密算法是不同的加密算法,所述第一升级子文件描述了电子设备根据第二升级子文件中的数据进行更新的过程。
9.一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1-4中任意一项所述方法中的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-4中的任意一项所述方法中的步骤。
11.一种电子装置,其特征在于,包括:
第二获取模块,用于获取加密升级包,解析所述加密升级包;
第二确定模块,用于确定所述加密升级包中经过加密的目标升级文件;
解密模块,用于按照与第一加密算法对应的第一解密算法,对所述目 标升级文件中经过加密的第一升级子文件进行解密,按照与第二加密算法对应的第二解密算法,对所述加密升级包中除所述经过加密的目标加密升级文件之外的其他经过加密的升级文件进行解密;
所述加密升级包的加密过程包括以下步骤:
获取原始升级包,其中,所述原始升级包中包含操作系统的各待升级分区的升级文件;
基于各所述升级文件的信息,确定目标升级文件,包括:将各所述升级文件的文件大小与预设文件大小进行比较,将文件大小不小于所述预设文件大小的升级文件确定为目标升级文件:
识别所述目标升级文件中的第一升级子文件和第二升级子文件,对所述原始升级包中的所述第一升级子文件按照第一加密算法进行加密,对所述第二升级子文件不加密,按照第二加密算法,对所述原始升级包中除所述目标升级文件之外的其他升级文件进行整体加密,得到加密升级包,其中,所述第二升级子文件包含待写入所述操作系统的待升级分区的数据,所述第一升级子文件包含控制所述第二升级子文件写入所述待升级分区的写入控制数据,所述第一加密算法和所述第二加密算法是不同的加密算法,所述第一升级子文件描述了电子设备根据第二升级子文件中的数据进行更新的过程;
统计所述原始升级包的文件中的已加密文件,在所述加密升级包中写入用于指示所述已加密文件的指示信息,包括:将指示信息拼接在已加密文件的文件名称中;其中,所述指示信息用字符表示,按照所述第一加密算法加密得到的已加密文件和按照所述第二加密算法加密得到的已加密文件,对应不同的指示信息。
12.一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求5-7中的任意一项所述方法中的步骤。
13.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求5-7中的任意一项所述方法中的步骤。
CN201910266567.6A 2019-04-03 2019-04-03 一种升级包的加密、解密方法和电子装置及存储介质 Active CN110022558B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910266567.6A CN110022558B (zh) 2019-04-03 2019-04-03 一种升级包的加密、解密方法和电子装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910266567.6A CN110022558B (zh) 2019-04-03 2019-04-03 一种升级包的加密、解密方法和电子装置及存储介质

Publications (2)

Publication Number Publication Date
CN110022558A CN110022558A (zh) 2019-07-16
CN110022558B true CN110022558B (zh) 2023-01-31

Family

ID=67190565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910266567.6A Active CN110022558B (zh) 2019-04-03 2019-04-03 一种升级包的加密、解密方法和电子装置及存储介质

Country Status (1)

Country Link
CN (1) CN110022558B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620940A (zh) * 2019-09-19 2019-12-27 四川天邑康和通信股份有限公司 一种iptv快速制作机顶盒ota升级包的系统、方法及处理装置
CN110909357B (zh) * 2019-10-21 2023-05-02 青岛海信电子设备股份有限公司 一种电子本及其控制方法
WO2021102753A1 (zh) * 2019-11-27 2021-06-03 深圳市欢太科技有限公司 刷机包加密方法、装置、电子设备及计算机存储介质
CN111104137B (zh) * 2019-12-06 2023-10-20 山东信通电子股份有限公司 一种ota设备的升级方法及装置
CN116795438A (zh) * 2021-07-30 2023-09-22 荣耀终端有限公司 配置操作系统制式的方法、设备及存储介质
CN115828272A (zh) * 2021-09-17 2023-03-21 华为技术有限公司 一种数据存储方法装置、设备及可读介质
CN114040381A (zh) * 2021-11-08 2022-02-11 百度在线网络技术(北京)有限公司 加密方法、解密方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232588A (zh) * 2007-01-22 2008-07-30 三星电子株式会社 视频处理装置及其方法,和电子装置及其控制方法
CN102456116A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 文件加密方法、解密方法及装置
CN106372517A (zh) * 2016-08-30 2017-02-01 北京小米移动软件有限公司 文件的加密方法、解密方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339597B (zh) * 2008-08-28 2011-10-05 飞天诚信科技股份有限公司 一种升级读写器固件的方法、系统和设备
CN102236757A (zh) * 2011-06-30 2011-11-09 北京邮电大学 一种适用于Android系统的软件保护方法及系统
CN107122668A (zh) * 2017-04-28 2017-09-01 环球智达科技(北京)有限公司 固件加密方法
CN109391936B (zh) * 2018-09-19 2021-04-06 四川长虹电器股份有限公司 一种ota升级包加密下载的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232588A (zh) * 2007-01-22 2008-07-30 三星电子株式会社 视频处理装置及其方法,和电子装置及其控制方法
CN102456116A (zh) * 2010-10-28 2012-05-16 无锡江南计算技术研究所 文件加密方法、解密方法及装置
CN106372517A (zh) * 2016-08-30 2017-02-01 北京小米移动软件有限公司 文件的加密方法、解密方法、装置及设备

Also Published As

Publication number Publication date
CN110022558A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN110022558B (zh) 一种升级包的加密、解密方法和电子装置及存储介质
US9880830B2 (en) On-board applet migration
US20160054989A1 (en) Automatic purposed-application creation
US8462945B2 (en) Protecting video content using virtualization
US20190012464A1 (en) Method and device for ensuring security of firmware of pos machine
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
US20150078550A1 (en) Security processing unit with configurable access control
CN104123199A (zh) 应用程序的恢复方法、装置和移动终端
US10762408B2 (en) Smart card
CN111694589B (zh) 升级包生成方法、装置、服务器及计算机可读存储介质
KR20160023164A (ko) 콘텐츠 분류 방법 및 전자 장치
CN107526608B (zh) 一种ota升级包升级方法及设备
CN111417927B (zh) 资源权限处理方法、装置、存储介质及芯片
US9959598B2 (en) Method of processing image and electronic device thereof
US10691424B2 (en) Method for programming and terminal device
WO2020113421A1 (zh) 一种挂载文件系统的方法、终端设备及存储介质
WO2020103060A1 (zh) 数据处理方法、装置、系统、服务器以及电子设备
KR102421318B1 (ko) 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스
US20210224393A1 (en) Method and system for dynamic application of storage encryption
CN110659472A (zh) 一种密码卡以及数据存储系统
US10409773B2 (en) Method and device for cleaning up terminal resource and terminal
CN112115496B (zh) 数据解密模式识别方法、装置、计算机设备及存储介质
US9965621B2 (en) Program protection device
CN115795519B (zh) 数据加解密处理方法、装置、电子设备及存储介质
CN112306412A (zh) 基于Ubifs系统的加密、解密方法、设备和介质

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