android 全量包如何开放降级升级

1.安卓升级
安卓升级包里面有以下目录文件,其中文件
updater-script是升级脚本,通过Edify语言描述升级的逻辑
update-binary是一个二进制Linux程序,相当于解析脚本的解析器,主要是解析升级脚本updater-script,解析成recovery识别的升级接口
进行升级。

/META-INF/com/google/android/updater-script
/META-INF/com/google/android/update-binary

2.框架如下
在这里插入图片描述

3.全量包的updater-script内容开头一般如下

#读取机器版本的时间,以及现在升级包的时间,并进行比较,如果升级包的版本比机器版本还低的情况就升级失败
(!less_than_int(1581903713, getprop("ro.build.date.utc"))) || abort("E3003: Can't install this package (Mon Feb 17 09:41:53 CST 2020) over newer build (" + getprop("ro.build.date") + ").");
#对比升级包的设备名称以及机器设备名称是否一只,不一致则升级失败,这个xxxxx_platfrom一般指的是具体平台芯片
getprop("ro.product.device") == "xxxxx_platfrom" || abort("E3004: This package is for \"ac8257_demo_1g_32\" devices; this is a \"" + getprop("ro.product.device") + "\".");

4.如何去掉updater-script去掉时间校验
(1)打开文件源码目录下文件./build/tools/releasetools/ota_from_target_files.py里面中有一个函数(用python语言写的)
def WriteFullOTAPackage(input_zip, output_file)中有如下内容:

ts = target_info.GetBuildProp("ro.build.date.utc")
ts_text = target_info.GetBuildProp("ro.build.date")
script.AssertOlderBuild(ts, ts_text)

屏蔽掉该内容便可

#ts = target_info.GetBuildProp("ro.build.date.utc")
#ts_text = target_info.GetBuildProp("ro.build.date")
#script.AssertOlderBuild(ts, ts_text)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值