[QCM6125][Android13] 默认关闭dm-verity以及OTA升级校验vbmeta和framework matrix失败问题

博客围绕Android系统展开,在user版本增加root权限后,remount操作复杂,决定关闭dm-verity。关闭后虽可直接remount,但打包正式固件时OTA升级失败,全量包和差分包均无法升级,报错显示vbmeta与framework matrix校验失败,解决方案是OTA升级时直接关闭校验。

问题描述

在user版本增加root权限之后,每次进行remount的时候,总会提示

remount of the / superblock failed: Permission denied
remount failed

这时候,需要先关闭dm-verify,重启,再remount;整个过程过于复杂,于是决定关闭dm-verify。

解决方案

--- a/QSSI.13/external/avb/avbtool.py
+++ b/QSSI.13/external/avb/avbtool.py
@@ -4243,7 +4243,7 @@ class AvbTool(object):
     sub_parser.add_argument('--flags',
                             help='VBMeta flags',
                             type=parse_number,
-                            default=0)
+                            default=2)
     sub_parser.add_argument('--set_hashtree_disabled_flag',
                             help='Set the HASHTREE_DISABLED flag',
                             action='store_true')

关闭dm-verity引发的问题

上面关闭dm-verify之后,终于可以直接执行remount了;但是,再打包输入正式固件的时候却发现OTA升级失败了,不管是全量包还是差分包都无法升级,通过cache目录下的日志可以看到报错

E:Failed to verify package compatibility (result 1): Runtime info and framework compatibility matrix are incompatible: Vbmeta version 0.0 does not match framework matrix 1.0

从上面的报错可以看到vbmeta跟framework matrix校验失败了,那么OTA升级的时候,直接关闭校验。

--- a/QSSI.13/system/libvintf/RuntimeInfo.cpp
+++ b/QSSI.13/system/libvintf/RuntimeInfo.cpp
@@ -125,7 +125,7 @@ bool RuntimeInfo::checkCompatibility(const CompatibilityMatrix& mat, std::string
                    << " does not match framework matrix " << matAvb;
                 *error = ss.str();
             }
-            return false;
+            return true;
         }
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值