Android14 OTA差分包升级报Package is for source build

server/2025/3/6 9:39:47/

制作好差分包,使用adb线刷模式验证ota升级,出现E:Package is for source build错误

使用adb方式验证

  • 进入recovery模式
adb reboot recovery
  • 稍等一会界面会提示
Now send the package you want to apply 
to the device with "adb sidelaod <filename>"...
  • 输入命令开始升级
adb sideload Z:\xxx\xxx\ota\update.zip

update.zip是制作好的差分包

报E:Package is for source build

Finding update package...
[   48.397027] I:Update package id: /sideload/package.zip
[   48.521958] I:1 key(s) loaded from /system/etc/security/otacerts.zip
[   48.522082] Verifying update package...
[   48.560787] I:comment is 1738 bytes; signature is 1720 bytes from end
[   48.626868] I:signature (offset: 36340, length: 6b2): 308206ae06092a864886f70d0
[   48.627340] I:whole-file signature verified against RSA key 0
[   48.627449] Update package verification took 0.1 s (result 0).
[   48.661254] Installing update...
[   48.697640] I:old spl: 2024-05-05 new spl: 2024-05-05 CHECK passes
[   48.697909] E:Package is for source build mp1V614 but expected mp1V164
[   48.731747]
[   48.789490] I:current maximum temperature: 33043
[   48.789954] I:/sideload/package.zip

这个问题使用adb线刷才有, 如果使用代码升级验证不会出现。

本地验证时,注释以下代码

  • vendor_ap_s0/bootablse/recovery/install/install.cpp
--- a/vendor_ap_s0/bootable/recovery/install/install.cpp
+++ b/vendor_ap_s0/bootable/recovery/install/install.cpp
@@ -147,20 +147,20 @@ static bool CheckAbSpecificMetadata(const std::map<std::string, std::string>& me// Incremental updates should match the current build.auto device_pre_build = android::base::GetProperty("ro.build.version.incremental", "");auto pkg_pre_build = get_value(metadata, "pre-build-incremental");
-  if (!pkg_pre_build.empty() && pkg_pre_build != device_pre_build) {
+  /*if (!pkg_pre_build.empty() && pkg_pre_build != device_pre_build) {LOG(ERROR) << "Package is for source build " << pkg_pre_build << " but expected "<< device_pre_build;return false;
-  }
+  }*/auto device_fingerprint = android::base::GetProperty("ro.build.fingerprint", "");auto pkg_pre_build_fingerprint = get_value(metadata, "pre-build");
-  if (!pkg_pre_build_fingerprint.empty() &&
+ /* if (!pkg_pre_build_fingerprint.empty() &&!isInStringList(device_fingerprint, pkg_pre_build_fingerprint, FINGERPRING_SEPARATOR)) {LOG(ERROR) << "Package is for source build " << pkg_pre_build_fingerprint << " but expected "<< device_fingerprint;return false;
-  }
+  }*/// Check for downgrade version.int64_t build_timestamp =

http://www.ppmy.cn/server/172836.html

相关文章

蓝桥杯备考:bfs之马的遍历

像这种最短路径啊&#xff0c;我们一般都是用的bfs来求 像这道题&#xff0c;我们要定义dxdy两个方向向量 然后我们先把起点放在队列里面&#xff0c;然后把起点出队列&#xff0c;把最短路径是1的点放在队列里面&#xff0c;然后在再依次把最短路径是1的点出队列&#xff0c…

SpringMVC请求处理流程:DispatcherServlet工作原理

文章目录 引言一、DispatcherServlet概述二、DispatcherServlet初始化过程三、请求接收与处理器匹配四、请求参数绑定与处理器执行五、视图解析与渲染六、异常处理机制总结 引言 SpringMVC框架是Java Web开发中最流行的MVC框架之一&#xff0c;其核心组件DispatcherServlet作为…

【封闭式】论文写作技巧--集中学习+集中写作

学术论文写作是许多科研人员、研究生以及青年学者都会面临的重要挑战。从选题的确定到创新点的挖掘&#xff0c;再到最终成稿&#xff0c;每一步都需要逻辑清晰、方法科学和语言精准。然而&#xff0c;繁重的科研任务和有限的指导资源让许多人在论文写作过程中感到迷茫。为了解…

2024华为OD机试真题-螺旋数字矩阵-(C++)-E卷D卷-100分

2024华为OD机试题库-(E卷+C卷+D卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 用例2 用例3 考点 解题思路 代码 c++ 题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数 n (0 < n ≤ 999)和行数 …

《导游职业资格考试:保持良好心态,从容应对挑战》

《导游职业资格考试&#xff1a;保持良好心态&#xff0c;从容应对挑战》 备考导游职业资格考试是一场持久战&#xff0c;保持良好心态至关重要。在备考初期&#xff0c;制定合理的学习计划和目标&#xff0c;将整个备考过程分解为多个阶段&#xff0c;每个阶段设定明确的小目…

《Canvas修仙传·第四重天元婴境(下集)》 ——虚空幻境与三千法则的终极融合

诸位道友&#xff0c;历经三生三世的修炼&#xff0c;今日我们终将登顶三维修仙的巅峰&#xff01;本章将融合时空法则、物理天道与粒子大道&#xff0c;在浏览器中开辟电影级虚拟宇宙&#xff01;&#x1f31f; 章前虚空词典&#xff08;下&#xff09; &#x1f50d; 元婴境…

EasyDSS视频推拉流系统:清理缓存文件时如何确保缓存读写不受影响?

视频推拉流EasyDSS视频直播点播平台可提供一站式的视频转码、点播、直播、视频推拉流、播放H.265视频等服务&#xff0c;搭配RTMP高清摄像头使用&#xff0c;可将无人机设备的实时流推送到平台上&#xff0c;实现无人机视频推流直播、巡检等应用。 有用户咨询&#xff0c;视频推…

【CV001】归一化互相关模板匹配matlab实现

Normalized Cross-Correlation (NCC) 的原理 Normalized Cross-Correlation (NCC) 是一种衡量两个信号或图像之间相似度的度量方法。它在图像处理、计算机视觉和信号处理等领域应用广泛&#xff0c;特别是在模板匹配&#xff08;template matching&#xff09;中。NCC 的目标是…