如何确认 fastboot unlock 解锁成功
1、fastboot 模式下按音量上键后是否提示 Unlock Pass...return to fastboot in 3s
2、重启后界面是否显示
orange state
Your deivce has been unlocked and can't be trusted
your device will boot in 5 seconds
3、解锁成功后检查这两个属性会从
[ro.boot.flash.locked]: [1]
[ro.boot.verifiedbootstate]: [green]
变成
[ro.boot.flash.locked]: [0]
[ro.boot.verifiedbootstate]: [orange]
如何确认DM-verity 已关闭
确认已成功关闭dm-verity
adb shell mount
看到vendor 和system分区挂在如下mmcblk0pxx block表示dm-verity已关闭成功
k65v1_bsp:/ # mount |grep data
/dev/block/mmcblk0p35 on /vendor type ext4 (ro,seclabel,relatime,data=ordered)
/dev/block/mmcblk0p36 on /system type ext4 (ro,seclabel,relatime,data=ordered)
如显示挂载到 dm-x 节点 表示dm-verity仍然开启
k65v1_bsp:/ # mount |grep data
/dev/block/dm-0 on /vendor type ext4 (ro,seclabel,relatime,data=ordered)
/dev/block/dm-1 on /system type ext4 (ro,seclabel,relatime,data=ordered)
若不成功可检查 vbmeta, boot, system ,vendor 分区等是否在write protect 区间里
导致adb disable-verity 的flag无法成功写入 到 vbmeta |boot | system | vendor 分区里
参考/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6771/write_protect.c
的set_write_protect 函数
set_write_protect()里面会将proinfo分区设定在power on write protect区域内
为了proinfo分区能写入flag,需要将proinfo分区的power on write protect拿掉
修改方法:
1.全部分区关掉写保护功能
/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6xxx/rules.mk
MTK_POWER_ON_WP := no
2.单独拿掉proinfo分区写保护
ifdef MTK_PERSIST_PARTITION_SUPPORT
if (0 == is_fs_partition_ready_for_wp("persist")) {
dprintf(CRITICAL, "[%s]: persist is fmt \n", func);
sprintf(wp_start, "%s", "persist");
} else {
sprintf(wp_start, "%s", "sec1");//修改这里写保护分区的起始分区,去掉proinfo分区,注意剩下保留分区大小必须8M对齐
}
else
sprintf(wp_start, "%s", "sec1");//修改这里写保护分区的起始分区,去掉proinfo分区,注意剩下保留分区大小必须8M对齐
endif
android 6.0 M userdebug版本执行adb remount失败
[DESCRIPTION]
android 6.0 M版本默认会打开system verified boot,即在userdebug和user版本会把system映射到dm-0设备,然后再挂载。挂载前会检查system分区数据完整性,如果system分区被恶意修改了则不允许挂载system。
[SOLUTION]
userdebug版本如果需要remount system分区来push文件debug,不需要重新编译版本disable dm-verity,只需要执行以下adb命令即可。
adb root
adb disable-verity
adb reboot
重新启动后再执行:
adb remount即可把system分区remount成rw。
贵司向system分区push文件后,请不要再adb enable-verity,否则就会无法开机,因此push文件后,system分区数据就发生了变化。
adb disable-verity/enable-verity 命令只能在userdebug模式下使用。user版本不支持关闭dm-verity。
如果您的adb不支持adb disable-verity命令,请更新android sdk platform-tools到最新版本。