[DESCRIPTION]
Android L和M 版本,data加密后,开启MTK_SHARED_SDCARD并把升级包放入内卡;或者有需要把升级包放入/data分区来升级, 一般这种情况,直接按键进入recovery mode,选择apply from sdcard来实现升级,是行不通的,建议在验证升级时,使用adb 命令的方式升级。
[SOLUTION]
L版本的步骤如下:
1、在normal mode先把升级包(update.zip) push 到data分区目,比如/data/update.zip.
2、adb shell 下执行:echo "--update_package=@/cache/recovery/block.map" > /cache/recovery/command
4、adb shell 下执行:system/bin/uncrypt
M版本的步骤如下:
1、在normal mode先把升级包(update.zip) push 到data分区目,比如/data/update.zip.
2、adb shell 下执行:system/bin/uncrypt /data/update.zip /cache/recovery/block.map
注意:要等待一段时间,直到命令执行退出…,然后在执行如下命令;
3、adb shell 下执行:echo "--update_package=@/cache/recovery/block.map" > /cache/recovery/command
4、adb reboot recovery
N版本的步骤如下:
参考上述M的步骤,但是需要一笔额外的Patch( PS:通过command的方式进行升级,从N版本上开始就不支持了,针对该问题,有对应的patch ),如下:
https://android.googlesource.com/platform/bootable/recovery/+/7ceff3e0030cd635f6b67153494df653c8bff3e5
最后手机reboot进入recovery mode开始升级