CN114003266B - 一种基于Android刷机固件生成多个差分包的方法与装置 - Google Patents

一种基于Android刷机固件生成多个差分包的方法与装置 Download PDF

Info

Publication number
CN114003266B
CN114003266B CN202111196256.0A CN202111196256A CN114003266B CN 114003266 B CN114003266 B CN 114003266B CN 202111196256 A CN202111196256 A CN 202111196256A CN 114003266 B CN114003266 B CN 114003266B
Authority
CN
China
Prior art keywords
file
differential
version
compiling
data
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
CN202111196256.0A
Other languages
English (en)
Other versions
CN114003266A (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.)
Hongshi Sunshine Shenzhen Technology Co ltd
Original Assignee
Hongshi Sunshine Shenzhen Technology 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 Hongshi Sunshine Shenzhen Technology Co ltd filed Critical Hongshi Sunshine Shenzhen Technology Co ltd
Priority to CN202111196256.0A priority Critical patent/CN114003266B/zh
Publication of CN114003266A publication Critical patent/CN114003266A/zh
Application granted granted Critical
Publication of CN114003266B publication Critical patent/CN114003266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于Android刷机固件生成多个差分包的方法与装置,其中方法包括:S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;S2:从所述初始差分中间包中提取对应的升级配置文件;S3:从所述刷机固件中提取第一版本对应的升级文件;S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。用以在差分中间包丢失的情况下,能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包。

Description

一种基于Android刷机固件生成多个差分包的方法与装置
技术领域
本发明涉及差分包生成技术领域,特别涉及一种基于Android刷机固件生成多个差分包的方法与装置。
背景技术
目前,现有的Android***升级的OTA差分包生成方法是在***编译过程中先编译出差分中间包,然后再编译出刷机包,然后运行差分命令将第一版本和第二版本的差分中间包差分出第一版本升级到第二版本的差分包。
通过将差分环境和差分中间包放入指定目录,用python自动化脚本控制第一版本分别和多个目标版本进行差分,可制作出一次性差分多个第一版本到多个目标版本的差分包的多版本差分工具。
当前的差分工具是基于差分中间包来制作OTA差分包的,如果客户编译流程或者保存不当导致差分中间包丢失将无法制作差分包,此时现有的方式只能是进行整包升级,由于整包体积庞大,相比差分包有很大的弊端,例如整包升级会耗费用户更多的流量和下载时间,需要设备拥有更大的存储空间,这些都会增加因为下载和空间导致升级失败的风险,用户体验相比差分升级较差。所以有必要研究差分中间包丢失的情况下能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包的差分工具。
因此,本发明提出一种基于Android刷机固件生成多个差分包的方法与装置。
发明内容
本发明提供一种基于Android刷机固件生成多个差分包的方法与装置,用以在差分中间包丢失的情况下,能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包。
本发明提供一种基于Android刷机固件生成多个差分包的方法,包括:
S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;
S2:从所述初始差分中间包中提取对应的升级配置文件;
S3:从所述刷机固件中提取第一版本对应的升级文件;
S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;
S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包,包括:
S101:获取当前待升级终端对应的第一编译环境文件和更新管理***终端的第二编译环境文件;
S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;
S103:从所述更新管理***终端调取所述第一版本对应的刷机固件和第一***源代码,并基于所述第一***源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;
S104:从所述更新管理***终端获取所述目标版本对应的第二***源代码,基于所述第二***源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;
其中,目标版本可以是一个或多个。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S2:从所述初始差分中间包中提取对应的升级配置文件,包括:
S201:对所述初始差分中间包进行数据识别;
S202:基于识别结果确定所述升级配置文件对应的文件大小和所述升级配置文件在所述初始差分中间包中的存储位置;
S203:基于所述存储位置和所述文件大小以及预设读取命令映射表,确定对应的第一预置命令;
S204:基于所述第一预置命令从所述初始差分中间包中提取对应的升级配置文件。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S3:从所述刷机固件中提取第一版本对应的升级文件,包括:
S301:对所述刷机固件进行文件识别,确定所述刷机固件包含的分区文件类型;
S302:基于所述刷机固件包含的所有分区文件类型和预设读取命令映射表,确定对应的第二预置命令;
S303:基于所述第二预置命令中从所述刷机固件中提取第一版本对应的升级文件。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包,包括:
S401:确定所述升级文件中每个分区文件类型对应的镜像文件;
S402:基于每个镜像文件生成对应的内核符号表文件;
S403:将所述升级文件和所述升级配置文件以及所述内核符号表文件打包,还原出第一版本对应的差分中间包。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S402:基于每个镜像文件生成对应的内核符号表文件,包括:
基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;
基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
S501:判断所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中间包,若存在,则向更新管理***终端发送更新版本确认指令,并接收对应的反馈指令,基于所述反馈指令删除不需要更新的目标版本差分中间包;
S502:确定所有保留的目标版本差分中间包对应的软件属性和升级难易程度,并基于每个目标版本差分中间包对应的软件属性和升级难易程度以及预设的差分顺序映射表,确定对应的差分执行顺序表;
S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,基于所述第一***源代码和所有编译环境文件生成对应的初始差分中间包,包括:
基于所述第一***源代码获得对应的编译指令;
基于所述第一编译环境文件和所述第二编译环境文件,确定对应的第一编译环境数据和第二编译环境数据;
基于所述编译指令获取对应的编译任务和对应的待编译文件,并确定所述待编译文件中的子编译文件根目录,基于所述子编译文件根目录以及所述编译任务将所述待编译文件划分成多个任务文件包,并基于所述编译任务中的编译顺序确定所述任务文件包的编译顺序;
基于所述编译任务和所述编译顺序确定第一时间戳;
获取所述第一编译环境数据对应的第一编译脚本和第二编译环境数据对应的第二编译脚本;
基于所述第一时间戳对所述第一编译脚本和第二编译脚本进行划分,获得多个第一编译子脚本和多个第二编译子脚本;
同时,基于所述第一时间戳将每个第一编译子脚本和对应的第二编译子脚本进行做差对比,基于对比结果修改所述第一编译子脚本,并基于第一时间戳和修改后的第一编译子脚本对所述第一编译环境数据进行更新,获得第三编译环境数据;
获取所述第三编译环境数据对应的第一依赖文件包和第二编译环境数据对应的第二依赖文件包;
将所述第二依赖文件包中包含的且所述第一依赖文件包中不包含的依赖文件添加至所述第一依赖文件包中,生成第三依赖文件包,基于所述第三依赖文件包更新所述第三编译环境数据生成对应的第四编译环境数据;
基于所述第四编译环境数据和所述编译任务对所有任务文件包进行编译并打包,生成对应的初始差分中间包。
优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
获取保留的每个目标版本差分中间包对应的第一内核符号表文件,基于所述第一内核符号表文件确定对应的第一符号序列和第一符号属性以及每个第一内核符号对应的数据空间中包含的目标数据;
基于还原出的差分中间包中的内核符号表文件确定对应的当前符号属性和当前符号序列以及每个第二内核符号对应的数据空间中包含的当前数据;
将当前数据和目标数据相等的第一内核符号和第二内核符号作为第一组符号,并基于所述第一符号序列和所述当前符号序列,确定出每个第一组符号中第一内核符号对应的第一位址和第二内核符号对应的第二位址;
将除所述第一组符号以外剩余的第一内核符号和第二内核符号中对应第一符号属性和对应当前符号属性一致的第一内核符号和第二内核符号作为第二组符号,并基于所述第一符号序列和所述当前符号序列,确定出所述每个第二组符号中第一内核符号对应的第三位址和第二内核符号对应的第四位址;
将除所述第一组符号和所述第二组符号以外剩余的第一内核符号删除,并基于对应的删除指令和删除路径生成对应的第一差分数据,同时,将除所述第一组符号和所述第二组符号以外剩余的第二内核符号对应的目标数据复制获得复制数据,并确定复制前对应的第五位址;
将还原出的差分中间包中的内核符号表文件作为第二内核符号表文件;
确定出与待差分的第一内核符号表文件相同的差分整理空间,并基于所述第一内核符号表文件划分出与所述第一符号序列对应的子空间;
将所述第二内核符号表文件中第二位址上对应的当前数据移送至所述第一位址对应的子空间,并基于对应的移送指令和移送路径生成对应的第二差分数据;
将所述复制数据存储至所述所述第五位址对应的子空间,并基于对应的复制指令和复制路径生成对应的第三差分数据;
按照预设的分隔符将所述第二组符号中包含的第一内核符号对应的目标数据和第二内核符号对应的当前数据划分,获得对应的目标子字符串和当前子字符串;
将每个目标子字符串和对应的当前子字符串进行对比,基于对比结果获得每个第二组符号中包含的第二内核符号对应的第四差分数据;
将所述第四位址上的差分数据更新至所述第三位址对应的子空间,并基于对应的更新指令和更新路径生成对应的第五差分数据;
将所述第一差分数据、所述第二差分数据、所述第三差分数据、所述第四差分数据、所述第五差分数据打包,获得生成第一版本到每个目标版本的OTA升级包。
本发明提供一种基于Android刷机固件生成多个差分包的装置,包括:
获取模块,用于获取第一版本的刷机固件、初始差分中间包、***编译环境文件以及多个目标版本差分中间包;
第一提取模块,用于从所述初始差分中间包中提取对应的升级配置文件;
第二提取模块,用于从所述刷机固件中提取第一版本对应的升级文件;
还原模块,用于基于所述升级文件和所述升级配置文件以及所述***编译环境文件,还原出对应的差分中间包;
生成模块,用于将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例1中一种基于Android刷机固件生成多个差分包的方法流程图;
图2为本发明实施例2中一种基于Android刷机固件生成多个差分包的方法流程图;
图3为本发明实施例2中一种基于Android刷机固件生成多个差分包的方法流程图;
图4为本发明实施例2中一种基于Android刷机固件生成多个差分包的方法流程图;
图5为本发明实施例2中一种基于Android刷机固件生成多个差分包的方法流程图;
图6为本发明实施例2中一种基于Android刷机固件生成多个差分包的方法流程图;
图7为本发明实施例中一种基于Android刷机固件生成多个差分包的装置结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供了一种基于Android刷机固件生成多个差分包的方法,参考图1,包括:
S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;
S2:从所述初始差分中间包中提取对应的升级配置文件;
S3:从所述刷机固件中提取第一版本对应的升级文件;
S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;
S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。
该实施例中,第一版本为终端厂商需要升级且丢失了中间包的任意***软件版本。
该实施例中,第一版本的刷机固件为终端厂商发布的第一软件版本的工厂刷机包。
该实施例中,初始差分中间包是对生成所述第一软件版本的***源代码进行编译获得的差分中间包,其中,可以为通过回退到所述第一软件版本的***源代码重新编译生成的差分中间包,但是由于此时的编译环境,时间戳等和当时是不同的,因此,即使是回退代码获取到的差分中间包中包含的版本升级文件也是错的,但是获取的升级配置文件是正确的。
该实施例中,编译环境文件为***源码编译所需要的编译脚本以及依赖文件,主要为ota差分脚本,build_image.py脚本,system_image_info.txt还有相应的依赖文件等。
该实施例中,目标版本差分中间包为升级完成后的软件版本的***源代码编译生成的差分中间包,可以为一个目标版本也可以为多个目标版本。
该实施例中,升级配置文件为将第一版本升级文件升级成目标版本升级文件并配置到机器***内所需的配置信息,一般是升级脚本,签名,配置表等文件,如META,OTA等。
该实施例中,升级文件为一般包括system分区,recovery分区,boot分区等至少一个分区文件,主要为system.img,boot.img等镜像文件,每个版本的升级文件是不同的,必须和同版本的刷机包进行一一对应。
该实施例中,还原出对应的差分中间包中的差分中间包是指第一软件版本的差分中间包。
该实施例中,OTA升级包即为第一版本至目标版本对应的增量升级包。
该实施例中,增量升级法即采用差分中间包进行作差获得的差分中间包进行升级,例如:当前软件版本(第一版本,也可以是终端厂商需要升级且丢失了中间包的任意***软件版本)的差分中间包(即为本实施例中还原出的差分中间包)为A,需要升级至新的软件版本(即目标版本)为B,则使B-A的差分中间包作为升级所需的差分中间包(即本实施例中需要生成的已丢失的差分中间包)。
上述方案技术的有益效果为:从任一目标版本的差分中间包中提取出升级配置文件,再从刷机包的system.img中通过升级配置文件和当前***编译环境文件还原出版本升级文件,然后通过升级配置文件和版本升级文件还原出缺失的第一版本差分中间包,再用还原的第一版本差分中间包依次和多个目标版本中间包进行差分,制作出第一版本到多个目标版本的差分包,解决了在差分中间包丢失的情况下能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包。
实施例2:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包,参考图2,包括:
S101:获取当前待升级终端对应的第一编译环境文件和更新管理***终端的第二编译环境文件;
S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;
S103:从所述更新管理***终端调取所述第一版本对应的刷机固件和第一***源代码,并基于所述第一***源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;
S104:从所述更新管理***终端获取所述目标版本对应的第二***源代码,基于所述第二***源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;
其中,目标版本可以是一个或多个。
该实施例中,待升级终端即为第一版本适配的用户终端,例如有手机端、PC端。
该实施例中,第一编译环境文件即为在待升级终端进行编译所需要的编译脚本以及依赖文件。
该实施例中,更新管理***终端即为软件更新管理的***用于实现整个升级过程。
该实施例中,第二编译环境文件即为升级文件在更新管理***终端进行编译所需要的编译脚本以及依赖文件。
该实施例中,第一***源代码为生成第一版本对应的***源代码。
该实施例中,第二***源代码未生成对应目标版本对应的***源代码。
该实施例中,编译生成对应的目标版本差分中间包的编译方法与编译生成对应的初始差分中间包的编译方法一致。
上述方案技术的有益效果为:通过检测检测待升级终端对应的当前软件版本确定第一版本,基于获取的当前待升级终端对应的第一编译环境文件和更新管理***终端的第二编译环境文件、从所述更新管理***终端调取对应的刷机固件和第一***源代码、从所述更新管理***终端获取所述目标版本对应的第二***源代码,获得第一版本的刷机固件、初始差分中间包和编译环境文件以及多个目标版本差分中间包,为后续生成从第一版本升级至目标版本所需的差分中间包提供了数据资源。
实施例3:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S2:从所述初始差分中间包中提取对应的升级配置文件,参考图3,包括:
S201:对所述初始差分中间包进行数据识别;
S202:基于识别结果确定所述升级配置文件对应的文件大小和所述升级配置文件在所述初始差分中间包中的存储位置;
S203:基于所述存储位置和所述文件大小以及预设读取命令映射表,确定对应的第一预置命令;
S204:基于所述第一预置命令从所述初始差分中间包中提取对应的升级配置文件。
该实施例中,识别结果包括初始差分中间包中升级配置文件和升级文件各自对应的文件大小和存储位置。
该实施例中,预设读取命令映射表是用于根据文件的存储位置和文件大小或者分区文件类型确定***内置的读取命令的映射表。
该实施例中,第一预置命令是用于从初始差分中间包中读取拷贝升级配置文件的python命令,也可以为cp命令。
上述方案技术的有益效果为:基于从第一版本的***源代码进行回退编译获得的初始差分中间包中获取的升级配置文件,可以用于制作当前软件版本至任意目标版本的差分中间包的升级配置文件,且通过对初始差分中间包进行数据识别获得的升级配置文件的文件大小和存储位置确定读取命令,在保证文件读取的准确率的情况下,节省了生成读取命令的时间,使得生成差分包的效率有所提高。
实施例4:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S3:从所述刷机固件中提取第一版本对应的升级文件,参考图4,包括:
S301:对所述刷机固件进行文件识别,确定所述刷机固件包含的分区文件类型;
S302:基于所述刷机固件包含的所有分区文件类型和预设读取命令映射表,确定对应的第二预置命令;
S303:基于所述第二预置命令中从所述刷机固件中提取第一版本对应的升级文件。
该实施例中,分区文件类型一般包括system分区,recovery分区,boot分区等分区文件。
该实施例中,预设读取命令映射表是用于根据文件的存储位置和文件大小或者分区文件类型确定***内置的读取命令的映射表。
该实施例中,第二预置命令是用于从刷机固件中读取拷贝升级文件的python命令,也可以为cp命令。
上述方案技术的有益效果为:基于从第一版本的刷机固件中提取的第一版本的升级文件可以获得第一版本的升级文件,可以用于制作当前软件版本的差分包中的升级文件,为生成当前软件版本的差分包(包括升级配置文件和升级文件)提供了数据资源,并且通过对刷机固件进行文件识别获得的分区文件类型确定读取命令,在保证文件读取的准确率的情况下,节省了生成读取命令的时间,使得生成差分包的效率有所提高。
实施例5:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包,参考图5,包括:
S401:确定所述升级文件中每个分区文件类型对应的镜像文件;
S402:基于每个镜像文件生成对应的内核符号表文件;
S403:将所述升级文件和所述升级配置文件以及所述内核符号表文件打包,还原出第一版本对应的差分中间包。
该实施例中,镜像文件即为升级文件中包含的分区文件的文件类型,因为所述版本升级文件一般包括system分区,recovery分区,boot分区等至少一个分区文件,主要为system.img,boot.img等镜像文件。
该实施例中,内核符号表文件即为system.map文件。
上述方案技术的有益效果为:基于从初始差分中间包中获取的升级配置文件和从当前软件版本的刷机固件对应的升级文件进行还原,可以获得当前软件版本(即第一版本)对应的差分中间包。
实施例6:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S402:基于每个镜像文件生成对应的内核符号表文件,包括:
基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;
基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件。
该实施例中,基于每个镜像文件生成对应的内核符号表文件的具体方式可以为:首先修改build_image.py文件,然后将sparse格式的system.img转换为ext4格式,通过simg2img命令可获取到ext4格式的system.img然后执行mount-text4 system.raw./system可获得文件格式system,通过调用./build/make/tools/releasetools/build_image.py–v/system/system_image_info.txt system.img./out/system/命令可获得system.map。
该实施例中,预设的文件格式模板即为ext4格式。
该实施例中,第一文件即为基于预设的格式模板格式转换后的镜像文件。
该实施例中,第三预置命令即为用于从第一文件中读取当前符号属性的python命令,也可以为cp命令。
上述方案技术的有益效果为:基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件;为第一版本对应的差分中间包的还原过程提供了准确无误的数据资源。
实施例7:
基于实施例1的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,参考图6,包括:
S501:判断所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中间包,若存在,则向更新管理***终端发送更新版本确认指令,并接收对应的反馈指令,基于所述反馈指令删除不需要更新的目标版本差分中间包;
S502:确定所有保留的目标版本差分中间包对应的软件属性和升级难易程度,并基于每个目标版本差分中间包对应的软件属性和升级难易程度以及预设的差分顺序映射表,确定对应的差分执行顺序表;
S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包。
该实施例中,更新版本确认指令用于确认对应软件需要更新的最新版本。
该实施例中,反馈指令用于反馈对应软件需要更新的最新版本。
该实施例中,软件属性例如有***软件、普通软件等。
该实施例中,升级难易程度基于对应软件的升级所需时间和需要停止的同步运行软件个数。
该实施例中,预设的差分顺序映射表用于基于对应的软件属性和升级难易程度可以确定对应的差分执行顺序表。
该实施例中,差分执行顺序表即需要进行差分的目标版本有多个时,表示将第一版本和每个目标版本进行查分的顺序的表格。
上述方案技术的有益效果为:基于确认所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中间包可以将不需要的差分中间包进行删除,省略了不需要更新的软件版本对应的差分中间包的生成过程,提高了差分中间包总进程的效率,节省了***运行资源和运行负载。
实施例8:
基于实施例2的基础上,所述的一种基于Android刷机固件生成多个差分包的方法,基于所述第一***源代码和所有编译环境文件生成对应的初始差分中间包,包括:
基于所述第一***源代码获得对应的编译指令;
基于所述第一编译环境文件和所述第二编译环境文件,确定对应的第一编译环境数据和第二编译环境数据;
基于所述编译指令获取对应的编译任务和对应的待编译文件,并确定所述待编译文件中的子编译文件根目录,基于所述子编译文件根目录以及所述编译任务将所述待编译文件划分成多个任务文件包,并基于所述编译任务中的编译顺序确定所述任务文件包的编译顺序;
基于所述编译任务和所述编译顺序确定第一时间戳;
获取所述第一编译环境数据对应的第一编译脚本和第二编译环境数据对应的第二编译脚本;
基于所述第一时间戳对所述第一编译脚本和第二编译脚本进行划分,获得多个第一编译子脚本和多个第二编译子脚本;
同时,基于所述第一时间戳将每个第一编译子脚本和对应的第二编译子脚本进行做差对比,基于对比结果修改所述第一编译子脚本,并基于第一时间戳和修改后的第一编译子脚本对所述第一编译环境数据进行更新,获得第三编译环境数据;
获取所述第三编译环境数据对应的第一依赖文件包和第二编译环境数据对应的第二依赖文件包;
将所述第二依赖文件包中包含的且所述第一依赖文件包中不包含的依赖文件添加至所述第一依赖文件包中,生成第三依赖文件包,基于所述第三依赖文件包更新所述第三编译环境数据生成对应的第四编译环境数据;
基于所述第四编译环境数据和所述编译任务对所有任务文件包进行编译并打包,生成对应的初始差分中间包。
该实施例中,编译指令即为生成第一版本的编译过程中表示编译任务和待编译文件的指令。
该实施例中,第一编译环境数据即为第一编译环境文件中包含的数据。
该实施例中,第二编译环境数据即为第二编译环境文件中包含的数据。
该实施例中,编译任务即为编译生成第一版本过程中的任务。
该实施例中,待编译文件即为编译生成第一版本过程中所需要编译的全部文件,其中包含部分第一***源代码。
该实施例中,子编译文件根目录即为每个待编译文件中包含的子编译文件的根目录,提供编译路径。
该实施例中,任务文件包编译生成第一版本过程中每个编译任务过程中需要编译的文件,由待编译文件划分而成,其中包含部分第一***源代码。
该实施例中,编译顺序即为编译生成第一版本过程中的编译顺序。
该实施例中,第一时间戳即为将总个编译过程的总时间按照每个编译任务所需的时间划分成多个时间段,其中,划分成的时间段的个数与编译任务的个数一致。
该实施例中,第一编译脚本即为第一编译环境数据中包含的编译脚本,主要为ota差分脚本,build_image.py脚本,system_image_info.txt。
该实施例中,第二编译脚本即为第二编译环境数据中包含的编译脚本,主要为ota差分脚本,build_image.py脚本,system_image_info.txt。
该实施例中,第一编译子脚本即为基于第一时间戳将第一编译脚本划分而成的,与编译任务一一对应。
该实施例中,第二编译子脚本即为基于第一时间戳将第二编译脚本划分而成的,与编译任务一一对应。
该实施例中,第三编译环境数据即为更新后的第一编译环境数据。
该实施例中,第一依赖文件包即为第三编译环境数据中包含的依赖文件。
该实施例中,第二依赖文件包即为第二编译环境数据中包含的依赖文件。
该实施例中,第三依赖文件包即为将所述第二依赖文件包中包含的且所述第一依赖文件包中不包含的依赖文件添加至所述第一依赖文件包中,生成的依赖文件包。
该实施例中,第四编译环境数据即为更新获得第三编译环境数据。
上述方案技术的有益效果为:通过基于第二编译环境文件对第一编译环境文件进行更新修改,保证了第一版本的编译生成过程中升级文件和升级配置文件与待升级终端的适配性,保证了编译过程的准确性,减小了还原成的差分中间包的误差。
实施例9:
基于实施例1的基础上,,所述的一种基于Android刷机固件生成多个差分包的方法,S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
获取保留的每个目标版本差分中间包对应的第一内核符号表文件,基于所述第一内核符号表文件确定对应的第一符号序列和第一符号属性以及每个第一内核符号对应的数据空间中包含的目标数据;
基于还原出的差分中间包中的内核符号表文件确定对应的当前符号属性和当前符号序列以及每个第二内核符号对应的数据空间中包含的当前数据;
将当前数据和目标数据相等的第一内核符号和第二内核符号作为第一组符号,并基于所述第一符号序列和所述当前符号序列,确定出每个第一组符号中第一内核符号对应的第一位址和第二内核符号对应的第二位址;
将除所述第一组符号以外剩余的第一内核符号和第二内核符号中对应第一符号属性和对应当前符号属性一致的第一内核符号和第二内核符号作为第二组符号,并基于所述第一符号序列和所述当前符号序列,确定出所述每个第二组符号中第一内核符号对应的第三位址和第二内核符号对应的第四位址;
将除所述第一组符号和所述第二组符号以外剩余的第一内核符号删除,并基于对应的删除指令和删除路径生成对应的第一差分数据,同时,将除所述第一组符号和所述第二组符号以外剩余的第二内核符号对应的目标数据复制获得复制数据,并确定复制前对应的第五位址;
将还原出的差分中间包中的内核符号表文件作为第二内核符号表文件;
确定出与待差分的第一内核符号表文件相同的差分整理空间,并基于所述第一内核符号表文件划分出与所述第一符号序列对应的子空间;
将所述第二内核符号表文件中第二位址上对应的当前数据移送至所述第一位址对应的子空间,并基于对应的移送指令和移送路径生成对应的第二差分数据;
将所述复制数据存储至所述所述第五位址对应的子空间,并基于对应的复制指令和复制路径生成对应的第三差分数据;
按照预设的分隔符将所述第二组符号中包含的第一内核符号对应的目标数据和第二内核符号对应的当前数据划分,获得对应的目标子字符串和当前子字符串;
将每个目标子字符串和对应的当前子字符串进行对比,基于对比结果获得每个第二组符号中包含的第二内核符号对应的第四差分数据;
将所述第四位址上的差分数据更新至所述第三位址对应的子空间,并基于对应的更新指令和更新路径生成对应的第五差分数据;
将所述第一差分数据、所述第二差分数据、所述第三差分数据、所述第四差分数据、所述第五差分数据打包,获得生成第一版本到每个目标版本的OTA升级包。
该实施例中,第一内核符号表文件即为保留的每个目标版本差分中间包包含的对应的内核符号标文件。
该实施例中,第一符号序列即为根据保留的每个目标版本差分中间包中按照存储子空间的排列方式确定的每个存储子空间存储数据对应的符号的排列顺序。
该实施例中,第一符号属性即为每个目标版本差分中间包中包含的存储子空间存储数据对应的符号的属性(符号名),例如有:符号名、数据类型等。
该实施例中,目标数据即为每个第一内核符号对应的数据空间中存储的数据。
该实施例中,当前符号序列即为即为基于还原出的差分中间包中按照存储子空间的排列方式确定的每个存储子空间存储数据对应的符号的排列顺序。
该实施例中,当前符号属性即为基于还原出的差分中间包中包含的存储子空间存储数据对应的符号的属性(符号名),例如有:符号名、数据类型等。
该实施例中,当前数据即为每个第二内核符号对应的数据空间中存储的数据。
该实施例中,将当前数据和目标数据相等即表示初始差分中间包升级至目标版本差分中间包过程中未变化的数据。
该实施例中,第一组符号由当前数据和目标数据相等的对应的第一内核符号和第二内核符号组成的符号组,比如:
第一内核符号中的目标数据依次是:1、#、4、3、6、7,第二内核符号中的目标数据依次是:2、7、6、1、@;
则第一组符号有:第一个第一内核符号和第四个第二内核符号、第五个第一内核符号和第三个第二内核符号、第六个第一内核符号和第二个第二内核符号(同一组符号对应的数据和符号属性都一致);
第二组内核符号有:第二个第一内核符号和第五个第二内核符号(符号属性同为标点符号但是数据不一致);
然后,将第三个第一内核符号、第四个第一内核符号删除,并复制第一个第二内核符号获得复制数据。
该实施例中,第一位址即为第一组符号中包含的每个第一内核符号对应的表内位置(与数据存储区域对应)。
该实施例中,第二位址即为第一组符号中包含的每个第二内核符号对应的表内位置(与数据存储区域对应)。
该实施例中,第二组符号除第一组符号以外剩余的第一内核符号和第二内核符号中符号属性相等的符号组成的符号组。
该实施例中,第三位址即为二组符号中包含的每个第一内核符号对应的表内位置(与数据存储区域对应)。
该实施例中,第四位址第二组符号中包含的每个第二内核符号对应的表内位置(与数据存储区域对应)。
该实施例中,删除指令包括待删除的符号和对应的数据。
该实施例中,删除路径即为删除过程的执行路径。
该实施例中,第一差分数据即为上述删除过程产生的差分数据。
该实施例中,复制数据将除所述第一组符号和所述第二组符号以外剩余的第二内核符号对应的目标数据复制获得的数据。
该实施例中,第五位址即为除所述第一组符号和所述第二组符号以外剩余的第二内核符号对应的表内位置(与数据存储区域对应)。
该实施例中,差分整理空间与待差分的第一内核符号表文件中对应的数据存储空间一致的存储空间。
该实施例中,子空间是基于第一内核符号表文件中每个第一内个符号对应的数据存储空间将差分整理空间划分而成的。
该实施例中,移送指令包括移送的符号和对应的数据。
该实施例中,移送路径执行移送过程中的执行路径。
该实施例中,第二差分数据即为上述移送过程产生的差分数据。
该实施例中,复制指令包括复制的符号和对应的数据。
该实施例中,复制路径即为复制过程中的执行路径。
该实施例中,第三差分数据即为上述复制过程产生的差分数据。
该实施例中,目标子字符串按照预设的分隔符将所述第二组符号中包含的第一内核符号对应的目标数据划分而成的。
该实施例中,当前子字符串按照预设的分隔符将所述第二组符号中包含的第一内核符号对应的当前数据划分而成的。
该实施例中,第四差分数据即为差分数据将每个目标子字符串和对应的当前子字符串进行对比,基于对比结果获得的差分数据。
该实施例中,更新指令包括更新的符号和对应的数据。
该实施例中,更新路径即为更新过程中的执行路径。
该实施例中,第五差分数据即为上述复制过程产生的差分数据。
上述方案技术的有益效果为:通过模拟从第一版本对应的差分中间包升级至第二版本的差分中间包的过程中的执行指令和执行路径,使得获得的OTA升级包详细地记录了升级过程中的数据变化过程,保证了OTA升级包的准确性。
本发明提供了一种基于Android刷机固件生成多个差分包的装置,参考图7,包括:
获取模块,用于获取第一版本的刷机固件、初始差分中间包、***编译环境文件以及多个目标版本差分中间包;
第一提取模块,用于从所述初始差分中间包中提取对应的升级配置文件;
第二提取模块,用于从所述刷机固件中提取第一版本对应的升级文件;
还原模块,用于基于所述升级文件和所述升级配置文件以及所述***编译环境文件,还原出对应的差分中间包;
生成模块,用于将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。
上述方案技术的有益效果为:通过设置获取模块、第一提取模块、第二提取模块、还原模块、生成模块,实现从任一目标版本的差分中间包中提取出升级配置文件,再从刷机包的system.img中通过升级配置文件和当前***编译环境文件还原出版本升级文件,然后通过升级配置文件和版本升级文件还原出缺失的第一版本差分中间包,再用还原的第一版本差分中间包依次和多个目标版本中间包进行差分,制作出第一版本到多个目标版本的差分包,解决了在差分中间包丢失的情况下能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种基于Android刷机固件生成多个差分包的方法,其特征在于,包括:
S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;
S2:从所述初始差分中间包中提取对应的升级配置文件;
S3:从所述刷机固件中提取第一版本对应的升级文件;
S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;
S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包;
S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包,包括:
S101:获取当前待升级终端对应的第一编译环境文件和更新管理***终端的第二编译环境文件;
S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;
S103:从所述更新管理***终端调取所述第一版本对应的刷机固件和第一***源代码,并基于所述第一***源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;
S104:从所述更新管理***终端获取所述目标版本对应的第二***源代码,基于所述第二***源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;
其中,目标版本是一个或多个。
2.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S2:从所述初始差分中间包中提取对应的升级配置文件,包括:
S201:对所述初始差分中间包进行数据识别;
S202:基于识别结果确定所述升级配置文件对应的文件大小和所述升级配置文件在所述初始差分中间包中的存储位置;
S203:基于所述存储位置和所述文件大小以及预设读取命令映射表,确定对应的第一预置命令;
S204:基于所述第一预置命令从所述初始差分中间包中提取对应的升级配置文件。
3.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S3:从所述刷机固件中提取第一版本对应的升级文件,包括:
S301:对所述刷机固件进行文件识别,确定所述刷机固件包含的分区文件类型;
S302:基于所述刷机固件包含的所有分区文件类型和预设读取命令映射表,确定对应的第二预置命令;
S303:基于所述第二预置命令中从所述刷机固件中提取第一版本对应的升级文件。
4.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包,包括:
S401:确定所述升级文件中每个分区文件类型对应的镜像文件;
S402:基于每个镜像文件生成对应的内核符号表文件;
S403:将所述升级文件和所述升级配置文件以及所述内核符号表文件打包,还原出第一版本对应的差分中间包。
5.根据权利要求4所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S402:基于每个镜像文件生成对应的内核符号表文件,包括:
基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;
基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件。
6.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
S501:判断所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中间包,若存在,则向更新管理***终端发送更新版本确认指令,并接收对应的反馈指令,基于所述反馈指令删除不需要更新的目标版本差分中间包;
S502:确定所有保留的目标版本差分中间包对应的软件属性和升级难易程度,并基于每个目标版本差分中间包对应的软件属性和升级难易程度以及预设的差分顺序映射表,确定对应的差分执行顺序表;
S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包。
7.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,基于所述第一***源代码和所有编译环境文件生成对应的初始差分中间包,包括:
基于所述第一***源代码获得对应的编译指令;
基于所述第一编译环境文件和所述第二编译环境文件,确定对应的第一编译环境数据和第二编译环境数据;
基于所述编译指令获取对应的编译任务和对应的待编译文件,并确定所述待编译文件中的子编译文件根目录,基于所述子编译文件根目录以及所述编译任务将所述待编译文件划分成多个任务文件包,并基于所述编译任务中的编译顺序确定所述任务文件包的编译顺序;
基于所述编译任务和所述编译顺序确定第一时间戳;
获取所述第一编译环境数据对应的第一编译脚本和第二编译环境数据对应的第二编译脚本;
基于所述第一时间戳对所述第一编译脚本和第二编译脚本进行划分,获得多个第一编译子脚本和多个第二编译子脚本;
同时,基于所述第一时间戳将每个第一编译子脚本和对应的第二编译子脚本进行做差对比,基于对比结果修改所述第一编译子脚本,并基于第一时间戳和修改后的第一编译子脚本对所述第一编译环境数据进行更新,获得第三编译环境数据;
获取所述第三编译环境数据对应的第一依赖文件包和第二编译环境数据对应的第二依赖文件包;
将所述第二依赖文件包中包含的且所述第一依赖文件包中不包含的依赖文件添加至所述第一依赖文件包中,生成第三依赖文件包,基于所述第三依赖文件包更新所述第三编译环境数据生成对应的第四编译环境数据;
基于所述第四编译环境数据和所述编译任务对所有任务文件包进行编译并打包,生成对应的初始差分中间包。
8.根据权利要求6所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
获取保留的每个目标版本差分中间包对应的第一内核符号表文件,基于所述第一内核符号表文件确定对应的第一符号序列和第一符号属性以及每个第一内核符号对应的数据空间中包含的目标数据;
基于还原出的差分中间包中的内核符号表文件确定对应的当前符号属性和当前符号序列以及每个第二内核符号对应的数据空间中包含的当前数据;
将当前数据和目标数据相等的第一内核符号和第二内核符号作为第一组符号,并基于所述第一符号序列和所述当前符号序列,确定出每个第一组符号中第一内核符号对应的第一位址和第二内核符号对应的第二位址;
将除所述第一组符号以外剩余的第一内核符号和第二内核符号中对应第一符号属性和对应当前符号属性一致的第一内核符号和第二内核符号作为第二组符号,并基于所述第一符号序列和所述当前符号序列,确定出所述每个第二组符号中第一内核符号对应的第三位址和第二内核符号对应的第四位址;
将除所述第一组符号和所述第二组符号以外剩余的第一内核符号删除,并基于对应的删除指令和删除路径生成对应的第一差分数据,同时,将除所述第一组符号和所述第二组符号以外剩余的第二内核符号对应的目标数据复制获得复制数据,并确定复制前对应的第五位址;
将还原出的差分中间包中的内核符号表文件作为第二内核符号表文件;
确定出与待差分的第一内核符号表文件相同的差分整理空间,并基于所述第一内核符号表文件划分出与所述第一符号序列对应的子空间;
将所述第二内核符号表文件中第二位址上对应的当前数据移送至所述第一位址对应的子空间,并基于对应的移送指令和移送路径生成对应的第二差分数据;
将所述复制数据存储至所述第五位址对应的子空间,并基于对应的复制指令和复制路径生成对应的第三差分数据;
按照预设的分隔符将所述第二组符号中包含的第一内核符号对应的目标数据和第二内核符号对应的当前数据划分,获得对应的目标子字符串和当前子字符串;
将每个目标子字符串和对应的当前子字符串进行对比,基于对比结果获得每个第二组符号中包含的第二内核符号对应的第四差分数据;
将所述第四位址上的差分数据更新至所述第三位址对应的子空间,并基于对应的更新指令和更新路径生成对应的第五差分数据;
将所述第一差分数据、所述第二差分数据、所述第三差分数据、所述第四差分数据、所述第五差分数据打包,获得生成第一版本到每个目标版本的OTA升级包。
9.一种基于Android刷机固件生成多个差分包的装置,其特征在于,包括:
获取模块,用于获取第一版本的刷机固件、初始差分中间包、***编译环境文件以及多个目标版本差分中间包;
第一提取模块,用于从所述初始差分中间包中提取对应的升级配置文件;
第二提取模块,用于从所述刷机固件中提取第一版本对应的升级文件;
还原模块,用于基于所述升级文件和所述升级配置文件以及所述***编译环境文件,还原出对应的差分中间包;
生成模块,用于将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包;
所述获取模块,包括:
S101:获取当前待升级终端对应的第一编译环境文件和更新管理***终端的第二编译环境文件;
S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;
S103:从所述更新管理***终端调取所述第一版本对应的刷机固件和第一***源代码,并基于所述第一***源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;
S104:从所述更新管理***终端获取所述目标版本对应的第二***源代码,基于所述第二***源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;
其中,目标版本是一个或多个。
CN202111196256.0A 2021-10-14 2021-10-14 一种基于Android刷机固件生成多个差分包的方法与装置 Active CN114003266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111196256.0A CN114003266B (zh) 2021-10-14 2021-10-14 一种基于Android刷机固件生成多个差分包的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111196256.0A CN114003266B (zh) 2021-10-14 2021-10-14 一种基于Android刷机固件生成多个差分包的方法与装置

Publications (2)

Publication Number Publication Date
CN114003266A CN114003266A (zh) 2022-02-01
CN114003266B true CN114003266B (zh) 2022-05-27

Family

ID=79922836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111196256.0A Active CN114003266B (zh) 2021-10-14 2021-10-14 一种基于Android刷机固件生成多个差分包的方法与装置

Country Status (1)

Country Link
CN (1) CN114003266B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637523A (zh) * 2022-02-14 2022-06-17 北京鸿合爱学教育科技有限公司 固件升级文件处理方法、装置、服务器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365702A (zh) * 2013-07-11 2013-10-23 中国科学院合肥物质科学研究院 IaaS云环境下轻量级虚拟机进程追踪***和方法
CN109739999A (zh) * 2019-01-16 2019-05-10 福建师范大学 一种高效的果蝇神经网络哈希搜索wmsn数据方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569843A (zh) * 2015-10-12 2017-04-19 青岛海信移动通信技术股份有限公司 一种生成ota中间包的方法及装置
CN105511911B (zh) * 2015-11-27 2019-02-12 青岛海信移动通信技术股份有限公司 ***固件升级包的生成方法及装置
CN106406872B (zh) * 2016-09-06 2019-07-23 Oppo广东移动通信有限公司 一种基于特定文件的差分升级包的制作方法及装置
CN110311801A (zh) * 2019-05-10 2019-10-08 珠海格力电器股份有限公司 一种设备固件升级方法及***
CN111857729A (zh) * 2020-07-23 2020-10-30 深圳忆联信息***有限公司 网卡驱动编译方法、装置、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365702A (zh) * 2013-07-11 2013-10-23 中国科学院合肥物质科学研究院 IaaS云环境下轻量级虚拟机进程追踪***和方法
CN109739999A (zh) * 2019-01-16 2019-05-10 福建师范大学 一种高效的果蝇神经网络哈希搜索wmsn数据方法

Also Published As

Publication number Publication date
CN114003266A (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
CN102736978B (zh) 一种检测应用程序的安装状态的方法及装置
CN107506219A (zh) 一种基于Android***的通用版本升级方法
CN103559065B (zh) 一种ota升级的方法和***
CN101436138A (zh) 一种用于软件升级且动态回滚的控制装置以及控制方法
CN103530150A (zh) 一种Linux操作***远程更新的方法
CN109376142B (zh) 数据迁移方法及终端设备
CN102193841B (zh) 一种Subversion配置库的备份方法及装置
CN112100194A (zh) 一种数据库版本管理方法及***
CN114003266B (zh) 一种基于Android刷机固件生成多个差分包的方法与装置
CN107003876A (zh) 固件更新
CN111104151A (zh) 一种基于Shell脚本的Git代码简化的管理方法
CN111400267A (zh) 记录日志的方法和装置
CN106603289B (zh) 一种lmt配置文件平滑升级方法
CN112286543B (zh) 一种应用服务部署方法及装置
CN101267645B (zh) 用于w基站业务流程软件开发的自动化测试方法和***
CN113468143A (zh) 数据迁移方法、***、计算设备及存储介质
CN112749147A (zh) 一种将数据库中数据表合并迁移的方法和装置
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、***及终端
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
CN111400243B (zh) 基于流水线服务的研发管理***以及文件存储方法、装置
CN113792026A (zh) 数据库脚本的部署方法、装置及计算机可读存储介质
CN113568834A (zh) Sdk代码的兼容性检测方法、装置、计算机设备和介质
CN107820129B (zh) 一种自动维护智能设备应用数据包的方法
CN116149707B (zh) 分布式***的升级风险检测和规避方法及装置
CN117492803B (zh) 一种智能门锁pcba软件升级方法及***

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