如何確認 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到最新版本。