MTK Recovery mode下使用adb功能

Android P的默认模式下是不支持adb功能 的, 我们可以通过改代码, 使其在recovery mode下可用

recovery/etc/init.c中添加以下

...
on init
	export PATH /sbin:/system/bin
	...
	mount ext4 /emmc@android /system wait commit=1,noauto_da_alloc
	
	...
service adbd /sbin/adbd recovery
    start adbd
    ...

通过log查看usb设备

[    2.361835] <2>-(1)[1:init]config_usb_cfg_link b.1<-->ffs.adb
[    2.361839] <2>-(1)[1:init]usb_get_function usb_function name=Function FS Gadget
[    2.361986] <2>-(1)[1:init]gadget_dev_desc_UDC_store write musb-hdrc
[    2.361989] <2>-(1)[1:init]usb_gadget_probe_driver musb-hdrc 11201000.usb
[    2.371086] <0>-(0)[230:recovery]mutekey report

通过过滤usb, 发现使用的udc name11201000.usb, 将 init.recovery.mt8168.rc中的

write /config/usb_gadget/g1/UDC "musb-hdrc"

修改为

write /config/usb_gadget/g1/UDC "11201000.usb"

不出意外, 这个时候进入recovery模式下adb devices已经可以看到设备了. 通过音量键在recovery UI中选择Mount /system, 就可以使用adb shell了.

posted @ 2021-12-10 11:01  schnappichen  阅读(614)  评论(0)    收藏  举报