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

一般情况下进行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去修改

相关推荐

  1. Android12 OTA升级清除用户数据

    2024-07-15 22:28:04       21 阅读
  2. Android TV OTA本地验证升级方式

    2024-07-15 22:28:04       40 阅读
  3. android OTA升级之后,apk崩溃无法启动

    2024-07-15 22:28:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 22:28:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 22:28:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 22:28:04       58 阅读
  4. Python语言-面向对象

    2024-07-15 22:28:04       69 阅读

热门阅读

  1. 写在2024美洲杯之后

    2024-07-15 22:28:04       21 阅读
  2. AI艺术革命:使用神经网络生成创新艺术作品

    2024-07-15 22:28:04       19 阅读
  3. JUC练习——线程安全的计数器

    2024-07-15 22:28:04       20 阅读
  4. vue3~

    vue3~

    2024-07-15 22:28:04      18 阅读
  5. QSqlQuery::value: not positioned on a valid record

    2024-07-15 22:28:04       22 阅读
  6. 基于金碟云星空实现硬件ECN校验

    2024-07-15 22:28:04       18 阅读
  7. ObjectiveC 内存管理

    2024-07-15 22:28:04       21 阅读
  8. 7.15作业

    2024-07-15 22:28:04       23 阅读
  9. 【C++】继承与多态相关11道面试题整理

    2024-07-15 22:28:04       20 阅读
  10. .NET Core项目中添加MIME类型

    2024-07-15 22:28:04       21 阅读
  11. 对于RBAC模型的认识

    2024-07-15 22:28:04       20 阅读
  12. 开源项目面临的机遇与挑战

    2024-07-15 22:28:04       20 阅读