如何確認(rèn) 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樟氢、解鎖成功后檢查這兩個(gè)屬性會(huì)從
[ro.boot.flash.locked]: [1]
[ro.boot.verifiedbootstate]: [green]
變成
[ro.boot.flash.locked]: [0]
[ro.boot.verifiedbootstate]: [orange]
如何確認(rèn)DM-verity 已關(guān)閉
確認(rèn)已成功關(guān)閉dm-verity
adb shell mount
看到vendor 和system分區(qū)掛在如下mmcblk0pxx block表示dm-verity已關(guān)閉成功
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 節(jié)點(diǎn) 表示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 分區(qū)等是否在write protect 區(qū)間里
導(dǎo)致adb disable-verity 的flag無(wú)法成功寫入 到 vbmeta |boot | system | vendor 分區(qū)里
參考/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6771/write_protect.c
的set_write_protect 函數(shù)
set_write_protect()里面會(huì)將proinfo分區(qū)設(shè)定在power on write protect區(qū)域內(nèi)
為了proinfo分區(qū)能寫入flag解愤,需要將proinfo分區(qū)的power on write protect拿掉
修改方法:
1.全部分區(qū)關(guān)掉寫保護(hù)功能
/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6xxx/rules.mk
MTK_POWER_ON_WP := no
2.單獨(dú)拿掉proinfo分區(qū)寫保護(hù)
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");//修改這里寫保護(hù)分區(qū)的起始分區(qū),去掉proinfo分區(qū)乎莉,注意剩下保留分區(qū)大小必須8M對(duì)齊
}
else
sprintf(wp_start, "%s", "sec1");//修改這里寫保護(hù)分區(qū)的起始分區(qū)送讲,去掉proinfo分區(qū),注意剩下保留分區(qū)大小必須8M對(duì)齊
endif
android 6.0 M userdebug版本執(zhí)行adb remount失敗
[DESCRIPTION]
android 6.0 M版本默認(rèn)會(huì)打開system verified boot惋啃,即在userdebug和user版本會(huì)把system映射到dm-0設(shè)備哼鬓,然后再掛載。掛載前會(huì)檢查system分區(qū)數(shù)據(jù)完整性边灭,如果system分區(qū)被惡意修改了則不允許掛載system异希。
[SOLUTION]
userdebug版本如果需要remount system分區(qū)來(lái)push文件debug,不需要重新編譯版本disable dm-verity绒瘦,只需要執(zhí)行以下adb命令即可称簿。
adb root
adb disable-verity
adb reboot
重新啟動(dòng)后再執(zhí)行:
adb remount即可把system分區(qū)remount成rw。
貴司向system分區(qū)push文件后惰帽,請(qǐng)不要再adb enable-verity憨降,否則就會(huì)無(wú)法開機(jī),因此push文件后该酗,system分區(qū)數(shù)據(jù)就發(fā)生了變化授药。
adb disable-verity/enable-verity 命令只能在userdebug模式下使用。user版本不支持關(guān)閉dm-verity呜魄。
如果您的adb不支持adb disable-verity命令悔叽,請(qǐng)更新android sdk platform-tools到最新版本。