recovery v2是从donut开始出现的, 相对于recovery v1做了不少的改动,增强了原有的功能的同时,尽量将可能变化的部分隔离出来,让
各厂商可以添加自己的特性,这些体现在UI,设备功能上。 下面是从v1到v2改动的地方:
1、ui部分独立出来放到default_recovery_ui.c
界面上的修改一般改这里就可以了。
2、脚本解析器从amend切换到edify
edify支持简单的逻辑语法,脚本语法也不兼容了,不要迷恋recovery/etc/META-INF/com/google/android/update-script,这个脚本已经
不适合recovery v2。
3、脚本的调用方式
以前是直接调用脚本, 现在通过一个升级包里的META-INF/com/google/android/update-binary去调用
META-INF/com/google/android/updater-script,注意v1脚本是update-script,v2是updater-script。update-binary就是recovery/updater
,updater可以扩展自己的特性。脚本名字的不同,可以让v1和v2之间兼容。
4、包的签名方式
v2添加了对整个包的签名,公钥整合到了升级包文件的后面,同时兼容v1签名方式。
测试了一下兼容性, 包含了v1和v2的升级脚本,以及v2的update-binary, v2的升级包放到v1还是能正确升级的。
介绍一下v2如何添加了对整个包的签名 运行signapk.jar 带-w参数