One Plus One – CM11 OTA更新失败的问题解决指南

38次阅读
没有评论

问题描述

在尝试通过TWRP刷写最新版本的CM系统更新时,遇到了ContactsProvider.apk文件的校验哈希错误(Hash miss-match)问题。具体表现为:

assert failed: apply_patch_check("/system/priv-app/ContactsProvider.apk", "fb6e94a195230a7d056372699dfe01a7ad7cefad", "4be1a92ade982716f9f64e53a48bdbb6dad997a")

刷写过程中因此失败。尝试回滚至之前的备份也未解决问题,且直接通过adb sideload方式安装更新依然无效。

解决方案

方案一:恢复原厂文件

如果当前设备上的ContactsProvider.apk已经非默认版本,则使用原厂备份的该文件来修复问题。步骤如下:
1. 确保TWRP已挂载:在刷写任何系统映像之前,务必先手动挂载/system分区。
2. 恢复原厂文件:如果设备存有原厂备份文件,请恢复到最初的原厂状态:
bash
adb push original_contacts_provider.apk /path/to/system/priv-app/
adb shell mount -o remount,rw /system
adb shell cp /path/to/original_contacts_provider.apk /system/priv-app/
adb shell chmod 644 /system/priv-app/ContactsProvider.apk

3. 重新刷写OTA更新:使用TWRP从系统位置挂载/system,进行完整的系统更新尝试。

方案二:全面重置

如果原厂文件已经丢失或者无法恢复,则需要进行更彻底的重置:
1. 下载完整系统映像:找到与设备当前状态兼容的CM官方系统镜像(如 bacon snapshot)。
2. 全刷CM系统更新:使用TWRP将整个系统镜像完全覆盖刷写,确保文件哈希不再冲突。命令为:
bash
fastboot flash system cm-system.img

3. 重置OTA机制:完成恢复操作后,请勿再对系统分区进行任何额外修改,否则可能会再次出现问题。
4. 重新启用OTA:设备重启并进入CM系统的正常模式后,将能够自动接收后续的OTA更新。

额外注意事项

  • 在执行上述操作时务必确保数据的重要备份,尤其是应用和个人文件,以防不测之变。
  • 计算机语言:确保所有手动命令使用正确的路径和分区命名方式,以避免不必要的错误发生。

以上解决方案希望可以帮助解决One Plus One – CM11设备上的OTA更新问题。若遇到复杂的情况,请参考官方论坛及社区获得更多技术支持与建议。

正文完