recovery 升级时间戳校验
来源:互联网 发布:淘宝网最新版本 编辑:程序博客网 时间:2024/06/07 22:48
我们在recovery升级的时候,经常提示这样的错误:
Installing update...
Can't install this package (Tue Jun 27 12:29:30 CST 2017) over newer build (Mon Jun 26 17:20:32 CST 2017)
E:Error in /udisk/xxxx.zip
(Status 7)
意思就是,我们不能从新的版本升级到旧的系统,有个时间戳的比较。
我们来看看这个时间戳校验是怎么工作的:
我们发现在升级包的升级脚本中updater-script中有段校验:
(!less_than_int(1498537770, getprop("ro.build.date.utc"))) || abort("E3003: Can't install this package (Tue Jun 27 12:29:30 CST 2017) over newer build (" + getprop("ro.build.date") + ").");
原来就是在这里进行的时间戳校验。
我们继续寻找,这个校验是在哪里加上去的呢,我们在 build/tools/releasetools/ota_from_target_files 发现了如下:
def WriteFullOTAPackage(input_zip, output_zip): ...... if not OPTIONS.omit_prereq: ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict) ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict) script.AssertOlderBuild(ts, ts_text) def option_handler(o, a): if xxx: xxxx elif o in ("-n", "--no_prereq"): OPTIONS.omit_prereq = True好像我们只需要告诉py,传递个参数--no_prereq,那么就不会加上时间戳的校验了
我们继续寻找,在 build/core/Makefile 中发现了对ota_from_target_files的调用:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)@echo "Package OTA: $@"$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \ ./build/tools/releasetools/ota_from_target_files -v \ $(BLOCK_BASE) \ $(UPDATE_DTB) \ -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(SECUREBOOT_MODE) \ $(DM_VERITY) \ $(SECURITY_DM_VERITY_MODE_WITH_TOOL) \ $(BUILT_TARGET_FILES_PACKAGE) $@.PHONY: otapackageotapackage: $(INTERNAL_OTA_PACKAGE_TARGET)
好了,我们在
./build/tools/releasetools/ota_from_target_files 传入参数--no_prereq即可,那么编译生成的升级包不再包含时间戳校验。
阅读全文
0 0
- recovery 升级时间戳校验
- (五)android recovery 升级时间与速度研究
- 破解android recovery升级
- Android Recovery升级原理
- MD5加密函数签名校验+时间戳时间间隔校验
- Android Recovery系统分析5----Recovery升级流程
- 时间校验
- 时间校验
- android recovery 升级和分区
- Recovery command 升级命令脚本
- 升级DM5校验
- 一键升级 ME860 CWM recovery
- Android OTA 升级(三):生成recovery.img
- Android OTA 升级(三):生成recovery.img
- Android OTA 升级(三):生成recovery.img .
- (四)android升级--recovery工作原理
- recovery image的OTA升级过程
- RK3188(radxa rock )recovery模式升级
- 用ButterKnife出现空指针
- 在表格中隔行换色(js)
- SideBarEnhancements
- LinkedList原理及源码解析
- 24点游戏c++
- recovery 升级时间戳校验
- 游戏编程入门(14):创建子画面背景
- Android HFP流程记录
- String to Integer (atoi)
- 非常实用的Java文件操作类
- C++智能指针
- linux查看内存占用情况(简洁版)
- 如何有效防止SQL注入
- 动态规划:HDU1176-免费馅饼