当前位置: 首页 > news >正文

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_mainFile "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 72, in _run_codeFile "/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_mainFile "/home/software001/work1/MT6XXX-S/p301/out/soong/host/linux-x86/bin/ota_from_target_files/internal/stdlib/runpy.py", line 72, in _run_codeFile "/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去修改

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于matlab的深度学习案例及基础知识专栏前言
  • 生成Elasticsearch xpack安全认证证书
  • 巧用 VScode 网页版 IDE 搭建个人笔记知识库!
  • notepad++中文出现异体汉字,怎么改正
  • Matlab学习笔记01 - 基本数据类型
  • 算法刷题笔记 字符串哈希(C++实现)
  • 【07】分布式事务解决方案
  • Spring Boot请求参数映射:@RequestBody、@RequestParam和@RequestPart的应用
  • 破解反爬虫策略 /_guard/auto.js(一) 原理
  • spring security新版本的爽点在哪里,DSL?
  • 【事件排查】网络问题排查H3C无线优化方案
  • Postcat使用全解析
  • 大龄程序员的出路在哪里?
  • 爬虫(二)——爬虫的伪装
  • WEB渗透之相关概念(笔记)
  • #Java异常处理
  • 【391天】每日项目总结系列128(2018.03.03)
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • ES6之路之模块详解
  • leetcode46 Permutation 排列组合
  • Node + FFmpeg 实现Canvas动画导出视频
  • nodejs实现webservice问题总结
  • Promise面试题,控制异步流程
  • Redux系列x:源码分析
  • SwizzleMethod 黑魔法
  • Tornado学习笔记(1)
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vim Clutch | 面向脚踏板编程……
  • Vue组件定义
  • 从零开始学习部署
  • 回顾2016
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • NLPIR智能语义技术让大数据挖掘更简单
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 阿里云服务器如何修改远程端口?
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​字​节​一​面​
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (不用互三)AI绘画工具应该如何选择
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读40-45)图像描述1
  • (十七)Flink 容错机制
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (状压dp)uva 10817 Headmaster's Headache
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • :中兴通讯为何成功
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [ 蓝桥杯Web真题 ]-布局切换
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [2023-年度总结]凡是过往,皆为序章
  • [AIGC] HashMap的扩容与缩容:动态调整容量以提高性能