一种基于Android刷机固件生成多个差分包的方法与装置制造方法及图纸

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

【技术实现步骤摘要】
一种基于Android刷机固件生成多个差分包的方法与装置


[0001]本专利技术涉及差分包生成
,特别涉及一种基于Android刷机固件生成多个差分包的方法与装置。

技术介绍

[0002]目前,现有的Android系统升级的OTA差分包生成方法是在系统编译过程中先编译出差分中间包,然后再编译出刷机包,然后运行差分命令将第一版本和第二版本的差分中间包差分出第一版本升级到第二版本的差分包。
[0003]通过将差分环境和差分中间包放入指定目录,用python自动化脚本控制第一版本分别和多个目标版本进行差分,可制作出一次性差分多个第一版本到多个目标版本的差分包的多版本差分工具。
[0004]当前的差分工具是基于差分中间包来制作OTA差分包的,如果客户编译流程或者保存不当导致差分中间包丢失将无法制作差分包,此时现有的方式只能是进行整包升级,由于整包体积庞大,相比差分包有很大的弊端,例如整包升级会耗费用户更多的流量和下载时间,需要设备拥有更大的存储空间,这些都会增加因为下载和空间导致升级失败的风险,用户体验相比差分升级较差。所以有必要研究差分中间包丢失的情况下能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包的差分工具。
[0005]因此,本专利技术提出一种基于Android刷机固件生成多个差分包的方法与装置。

技术实现思路

[0006]本专利技术提供一种基于Android刷机固件生成多个差分包的方法与装置,用以在差分中间包丢失的情况下,能使用升级配置文件和丢失版本刷机文件与新版本差分中间包来制作差分包。
[0007]本专利技术提供一种基于Android刷机固件生成多个差分包的方法,包括:
[0008]S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;
[0009]S2:从所述初始差分中间包中提取对应的升级配置文件;
[0010]S3:从所述刷机固件中提取第一版本对应的升级文件;
[0011]S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;
[0012]S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。
[0013]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包,包括:
[0014]S101:获取当前待升级终端对应的第一编译环境文件和更新管理系统终端的第二编译环境文件;
[0015]S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;
[0016]S103:从所述更新管理系统终端调取所述第一版本对应的刷机固件和第一系统源代码,并基于所述第一系统源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;
[0017]S104:从所述更新管理系统终端获取所述目标版本对应的第二系统源代码,基于所述第二系统源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;
[0018]其中,目标版本可以是一个或多个。
[0019]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S2:从所述初始差分中间包中提取对应的升级配置文件,包括:
[0020]S201:对所述初始差分中间包进行数据识别;
[0021]S202:基于识别结果确定所述升级配置文件对应的文件大小和所述升级配置文件在所述初始差分中间包中的存储位置;
[0022]S203:基于所述存储位置和所述文件大小以及预设读取命令映射表,确定对应的第一预置命令;
[0023]S204:基于所述第一预置命令从所述初始差分中间包中提取对应的升级配置文件。
[0024]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S3:从所述刷机固件中提取第一版本对应的升级文件,包括:
[0025]S301:对所述刷机固件进行文件识别,确定所述刷机固件包含的分区文件类型;
[0026]S302:基于所述刷机固件包含的所有分区文件类型和预设读取命令映射表,确定对应的第二预置命令;
[0027]S303:基于所述第二预置命令中从所述刷机固件中提取第一版本对应的升级文件。
[0028]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包,包括:
[0029]S401:确定所述升级文件中每个分区文件类型对应的镜像文件;
[0030]S402:基于每个镜像文件生成对应的内核符号表文件;
[0031]S403:将所述升级文件和所述升级配置文件以及所述内核符号表文件打包,还原出第一版本对应的差分中间包。
[0032]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S402:基于每个镜像文件生成对应的内核符号表文件,包括:
[0033]基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;
[0034]基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件。
[0035]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:
[0036]S501:判断所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中
间包,若存在,则向更新管理系统终端发送更新版本确认指令,并接收对应的反馈指令,基于所述反馈指令删除不需要更新的目标版本差分中间包;
[0037]S502:确定所有保留的目标版本差分中间包对应的软件属性和升级难易程度,并基于每个目标版本差分中间包对应的软件属性和升级难易程度以及预设的差分顺序映射表,确定对应的差分执行顺序表;
[0038]S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包。
[0039]优选的,所述的一种基于Android刷机固件生成多个差分包的方法,基于所述第一系统源代码和所有编译环境文件生成对应的初始差分中间包,包括:
[0040]基于所述第一系统源代码获得对应的编译指令;
[0041]基于所述第一编译环境文件和所述第二编译环境文件,确定对应的第一编译环境数据和第二编译环境数据;
[0042]基于所述编译指令获取对应的编译任务和对应的待编译文件,并确定所述待编译文件中的子编译文件根目录,基于所述子编译文件根目录以及所述编译任务将所述待编译文件划分成多个任务文件包,并基于所述编本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Android刷机固件生成多个差分包的方法,其特征在于,包括:S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包;S2:从所述初始差分中间包中提取对应的升级配置文件;S3:从所述刷机固件中提取第一版本对应的升级文件;S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包;S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到多个目标版本的OTA升级包。2.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S1:获取第一版本的刷机固件、初始差分中间包、编译环境文件以及多个目标版本差分中间包,包括:S101:获取当前待升级终端对应的第一编译环境文件和更新管理系统终端的第二编译环境文件;S102:检测待升级终端对应的当前软件版本,将所述当前软件版本作为第一版本;S103:从所述更新管理系统终端调取所述第一版本对应的刷机固件和第一系统源代码,并基于所述第一系统源代码和所述第一编译环境文件以及所述第二编译环境文件,生成对应的初始差分中间包;S104:从所述更新管理系统终端获取所述目标版本对应的第二系统源代码,基于所述第二系统源代码和所述第一编译环境文件以及所述第二编译环境文件,编译生成对应的目标版本差分中间包;其中,目标版本可以是一个或多个。3.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S2:从所述初始差分中间包中提取对应的升级配置文件,包括:S201:对所述初始差分中间包进行数据识别;S202:基于识别结果确定所述升级配置文件对应的文件大小和所述升级配置文件在所述初始差分中间包中的存储位置;S203:基于所述存储位置和所述文件大小以及预设读取命令映射表,确定对应的第一预置命令;S204:基于所述第一预置命令从所述初始差分中间包中提取对应的升级配置文件。4.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S3:从所述刷机固件中提取第一版本对应的升级文件,包括:S301:对所述刷机固件进行文件识别,确定所述刷机固件包含的分区文件类型;S302:基于所述刷机固件包含的所有分区文件类型和预设读取命令映射表,确定对应的第二预置命令;S303:基于所述第二预置命令中从所述刷机固件中提取第一版本对应的升级文件。5.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S4:基于所述升级文件和所述升级配置文件以及所述编译环境文件,还原出对应的差分中间包,包括:
S401:确定所述升级文件中每个分区文件类型对应的镜像文件;S402:基于每个镜像文件生成对应的内核符号表文件;S403:将所述升级文件和所述升级配置文件以及所述内核符号表文件打包,还原出第一版本对应的差分中间包。6.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S402:基于每个镜像文件生成对应的内核符号表文件,包括:基于预设的文件格式模板对所述镜像文件进行格式转换,获得对应的第一文件;基于第三预置命令读取每个第一文件中的当前符号属性,基于所述当前符号属性确定每个第一文件对应的内核符号表文件。7.根据权利要求1所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,S5:将还原出的差分中间包依次和所有目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包,包括:S501:判断所有目标版本差分中间包是否存在同一软件的不同版本对应的差分中间包,若存在,则向更新管理系统终端发送更新版本确认指令,并接收对应的反馈指令,基于所述反馈指令删除不需要更新的目标版本差分中间包;S502:确定所有保留的目标版本差分中间包对应的软件属性和升级难易程度,并基于每个目标版本差分中间包对应的软件属性和升级难易程度以及预设的差分顺序映射表,确定对应的差分执行顺序表;S503:基于所述差分执行顺序表将还原出的差分中间包依次和所有保留的目标版本差分中间包进行差分,生成第一版本到每个目标版本的OTA升级包。8.根据权利要求2所述的一种基于Android刷机固件生成多个差分包的方法,其特征在于,基于所述第一系统源代码和所有编译环境文件生成对应的初始差分中间包,包括:基于所述第一系统源代码获得对应的编译指令;基于所述第一编译环境文件和所述第二编译环境文件,确定对应的第一编译环境数据和...

【专利技术属性】
技术研发人员:韩黎光陈威东
申请(专利权)人:红石阳光深圳科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1