如何确认 fastboot unlock 解锁成功,如何确认DM-verity 已关闭

简介: 如何确认 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到最新版本。

目录
相关文章
|
8月前
|
监控 Linux 芯片
Watchdog是什么?为什么要在系统初始化时候关闭什么是 watchdog?
Watchdog是什么?为什么要在系统初始化时候关闭什么是 watchdog?
376 0
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
小米手机 fastboot模式 显示 press any key to shutdown 解决方法(亲测有效,已解决)
909 0
|
Linux
linux 挂起后无法唤醒屏幕
linux 挂起后无法唤醒屏幕
111 0
|
调度
按键演示休眠与唤醒场景--基于IMX6ULL
按键演示休眠与唤醒场景--基于IMX6ULL
162 0
按键演示休眠与唤醒场景--基于IMX6ULL
|
物联网 Linux 开发者
线程 pthread_exit 时执行清理程序|学习笔记
快速学习线程 pthread_exit 时执行清理程序
|
SQL Oracle NoSQL
gdb调试之--read by other session 等待事件的重现
发生read by other session 等待事件,肯定是两个会话同时物理读同一个数据块,假设有两个会话,会话1发生物理读,会话2正要去物理读发现会话1正在物读理产生,此时会话2发生等待,此等待就是read by other session 等待事件。
|
iOS开发 Swift
Keep the Screen from Locking(阻止屏幕自动上锁)
在ios设备中,如果ios设备一段时间中没收到touch事件,ios设备就会自动锁定,但是在玩游戏时候可能会某段时间不触发touch时间,这时候就会锁定,而这并不是我们所想要的,那么我们可以设置 [[UIApplication sharedApplic...
970 0
|
Linux C++
linux下pthread_cancel无法取消线程的原因【转】
转自:http://blog.csdn.net/huangshanchun/article/details/47420961 版权声明:欢迎转载,如有不足之处,恳请斧正。 一个线程可以调用pthread_cancel终止同一进程中的另一个线程,但是值得强调的是:同一进程的线程间,pthread_cancel向另一线程发终止信号。
1945 0