Android12 OTA全包升级清除用户数据

avatar
作者
猴君
阅读量:1

一般情况下进行OTA升级,是不会清除用户数据,如果想清除用户数据,制作升级包时添加–wipe_user_data参数。

制作清除用户数据的差分包
./out/soong/host/linux-x86/bin/ota_from_target_files --wipe_user_data -v --block -p out/host/linux-x86/ -i v1.zip v2.zip update.zip 
制作清除用户数据的全包

1.先使用make otapackage编译出素材包,文件是\out\target\product\k61v1_32_bsp_2g_ago\obj\PACKAGING\target_files_intermediates\full_k61v1_32_bsp_2g_ago-target_files-mp1V15202.zip
这个也是用来制作差分包的文件

2.使用命令生成可清除用户数据的全包

./out/soong/host/linux-x86/bin/ota_from_target_files --wipe_user_data out/target/product/k61v1_32_bsp_2g_ago/obj/PACKAGING/target_files_intermediates/full_k61v1_32_bsp_2g_ago-target_files-mp1V15202.zip full.zip 

如果编译失败报如下错误,修改ota_from_target_files.py脚本

xxxx@xxxx:~/work1/xxx/xxx$ ./out/soong/host/linux-x86/bin/ota_from_target_files --wipe_user_data out/target/product/k61v1_32_bsp_2g_ago/obj/PACKAGING/target_files_intermediates/full_k61v1_32_bsp_2g_ago-target_files-mp1V15202.zip full.zip 2024-07-15 17:07:27 - common.py - WARNING : Failed to read SYSTEM/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read VENDOR/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read SYSTEM_EXT/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read SYSTEM_EXT/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read ODM/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read ODM/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read VENDOR_DLKM/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read VENDOR_DLKM/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read ODM_DLKM/etc/build.prop 2024-07-15 17:07:27 - common.py - WARNING : Failed to read ODM_DLKM/build.prop 2024-07-15 17:07:28 - common.py - WARNING : Can't find META/ab_partitions.txt Traceback (most recent call last):   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 174, in _run_module_as_main   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 72, in _run_code   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/__main__.py", line 12, in <module>   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 174, in _run_module_as_main   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 72, in _run_code   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 1500, in <module>   File "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 1375, in main ValueError: Cannot generate downgradable full OTAs 

3.修改ota_from_target_files.py脚本

  • build/tools/releasetools/ota_from_target_files.py
if OPTIONS.wipe_user_data:     if not OPTIONS.vabc_downgrade:       logger.info("Detected downgrade/datawipe OTA."                   "When wiping userdata, VABC OTA makes the user "                   "wait in recovery mode for merge to finish. Disable VABC by "                   "default. If you really want to do VABC downgrade, pass "                   "--vabc_downgrade")       OPTIONS.disable_vabc = True     # We should only allow downgrading incrementals (as opposed to full).     # Otherwise the device may go back from arbitrary build with this full     # OTA package. -    if OPTIONS.incremental_source is None: -      raise ValueError("Cannot generate downgradable full OTAs") +    # if OPTIONS.incremental_source is None: +      # raise ValueError("Cannot generate downgradable full OTAs")  

最好使用vim去修改

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!