SM6115平台Android R OTA升级注意事项

OTA升级可以采用adb reboot recovery进入recovery模式下。通过update from adb或者update from SD card.

<1>recovery模式adb命令升级方式

adb sideload 执行此命令升级,如果失败,可以查看recovery log,查看失败原因并进一步分析。

SM6115源码采用此方式OTA升级失败,需要修改源码,失败原因参考文档kba-201025055508_1_how_to_fix_the_errors_when_build_and_do_ota_update_if_logic_partition_in_super_bigger_than_4gb_on_android_r.pdf

源码失败原因为device/qcom/bengal.mk 文件中ENABLE_VIRTUAL_AB定义为true,但是编译环境中android/vendor/qcom/opensource/core-utils/build/build.sh 文件中

Cross Reference: /LA.UM.9.15/LINUX/android/vendor/qcom/opensource/core-utils/build/build.sh

VIRTUAL_AB_ENABLED_TARGET_LIST=("kona" "lito" "taro" "lahaina") 重新定义虚拟AB分区为false,导致编译时把项目当作不带虚拟分区的进行编译。

android\device\qcom\bengal\BoardConfig.mk文件中定义的BOARD_QTI_DYNAMIC_PARTITIONS_SIZE 计算的不对导致的。关闭虚拟分区的宏后编译验证,OTA可以正常升级。

OTA升级后版本号没变化,是因为系统没有正确进入新分区B系统,即安装成功, 进入系统不成功,分析原因如下:升级的时候没有选择bnmeta和dtbo,只选择了boot和其他vendor,system image.开机校验失败。

在devices/qcom/bengal/BoardConfig.mk文件中加入AB_OTA_PARTITIONS ?= boot vendor dtbo vbmeta  重新验证OTA升级就可以进入新系统了。

<2>update_engine 开机升级方式

升级包push到手机里

adb root

adb push merged-qssi_bengal-ota.zip /data/ota_package/update.zip

adb enable-verity

adb reboot

Linux服务器上生成升级命令

LA.UM.9.15/LINUX/android/out/dist$ python ota.py merged-qssi_bengal-ota.zip

update_engine_client --update --follow --payload=file:///data/ota_package/update.zip --offset=9024 --size=555263132 --headers="FILE_HASH=ehTLHE5EHwyByVLXlITchOp5ovvZMHegBUW93URHu0o=

FILE_SIZE=555263132

METADATA_HASH=WGPzaLdNNPokah5alH0PvuEi4FU7VyluTAlcnH9zpJI=

METADATA_SIZE=101206

"

手机里执行adb shell后执行升级命令

update_engine_client --update --follow --payload=file:///data/ota_package/update.zip --offset=9024 --size=555263132 --headers="FILE_HASH=ehTLHE5EHwyByVLXlITchOp5ovvZMHegBUW93URHu0o=

FILE_SIZE=555263132

METADATA_HASH=WGPzaLdNNPokah5alH0PvuEi4FU7VyluTAlcnH9zpJI=

METADATA_SIZE=101206

"

执行命令后 出现如下图片表明升级成功。重启手机查看是否能正常进入新系统。

你可能感兴趣的:(SM6115平台Android R OTA升级注意事项)