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

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

制作好差分包,使用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 =

相关文章:

  • 计算机毕业设计SpringBoot+Vue.js物流管理系统(源码+文档+PPT+讲解)
  • 推导二项型事件的随机变量标准误差:两种方法
  • GNU Binutils 全工具指南:从编译到逆向的完整生态
  • 铺地毯!!!
  • P3385 【模板】负环
  • 阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
  • Windows 图形显示驱动开发-WDDM 3.2-本机 GPU 围栏对象(二)
  • 5c/c++内存管理
  • 【DeepSeek 】学习编程的利器:DeepSeek 使用指南
  • react中如何使用使用react-redux进行数据管理
  • FastGPT 引申:奥运选手知识图谱构建与混合检索应用
  • arthas快速入门
  • 后端架构模式之-BFF(Backend-For-Frontend)
  • 康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
  • RFID无线测温技术助力环网柜智能运维升级
  • 微信小程序接入deepseek
  • 道可云人工智能每日资讯|《奇遇三星堆》VR沉浸探索展(淮安站)开展
  • 字符函数和字符串函数
  • 如何排查服务器内存泄漏问题
  • Redis|集群 Cluster
  • 美国务卿与以色列总理通话,讨论加沙局势
  • 2025全球城市科技传播能力指数出炉,上海位列第六
  • 荣盛发展:新增未支付债务11.05亿元
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 广州医药集团有限公司原党委书记、董事长李楚源被“双开”
  • 出走的苏敏阿姨一路走到了戛纳,这块红毯因她而多元