如何確認 fastboot unlock 解鎖成功,如何確認DM-verity 已關閉


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM