OTA升级之ADB方式

📌 注:该文档方式为可 Root 的版本(2023-08-18 生效)。

非 ROOT 方式见 OTA升级之非root下的方式(主线 2024-12-12 生效,XCD-E4U3 2024-12-20 生效;仅支持有水印版本)。

操作命令

自行下包

  1. 如果是全量整包,下好 watt_full_images.zip
  2. 如果想升级差分包:
    1. 单升,直接使用对应的 xxx_update.zip
    2. soc 差分和 hardware 一起,需要将对应差分 xxx_update.ziphardware.zip 组合压缩成整包,压缩前将 xxx_update.zip 改名为 soc.zip,整包名随意,可以和全量整包区分,例如 xxx_watt_full_images.zip

创建升级文件夹

adb root
adb shell mkdir /data/data/com.android.car.systemupdater/cache/update/

推包

adb push xxx.zip /data/data/com.android.car.systemupdater/cache/update/
 
# xxx.zip 就是上述 2.1 中准备的压缩包名字

启动安装

主线 or 可Root

adb shell am start --activity-single-top -a com.android.car.systemupdate.ADB_UPDATE --es update_file_name "xxx.zip"
 
# xxx.zip 就是上述 2.1 中准备的压缩包名字

非交样版本(有水印)不能Root

详见 OTA升级之非root下的方式

无水印版本不支持

E4U2 & MIUI1.1 Release版本(已失效)

[附件: application/vnd.android.package-archive (token=PXhKbXq18oq8rxxCCj7c1hyVnkc)]

adb unroot
 
# adb-transfer-release-signed.apk 为上面附件 apk,脚本操作可每次 install 此 apk
adb install adb-transfer-release-signed.apk
 
adb shell am start --activity-single-top -a android.intent.action.ADB.TRANSFER --es update_action "com.android.car.systemupdate.ADB_UPDATE" --es update_file_name "xxx.zip"
 
# xxx.zip 就是上述 2.1 中准备的压缩包名字

等待安装完成

安装成功则会自动重启,失败则会有对应弹窗,和现有的失败一样处理。

升级结果判定

2.3 步骤后保存当前 soc 版本信息,十分钟后再次获取版本信息,进行比较,如一样则升级失败,保存日志 adb bugreport 找 OTA 研发。

# 获取 inc 版本 code
getprop | grep ro.build.mi.version.inc
# [ro.build.mi.version.inc]: [360]
 
# 获取 soc 当前分区
adb shell getprop | grep ro.boot.slot_suffix
# [ro.boot.slot_suffix]: [_a]

详见 OTA升级之非root下的方式