I.MX8QM android13开启adb调试

  1. 前言
    Android SDK:imx8_13.0.0_1.2.0(android 13 + u-boot 2022.04 + kernel 5.15.74)
    imx8qm官方Android 13 SDK默认USBOTG2作为了ADB和烧写镜像的接口,如果需要修改USBOTG1作为ADB和烧写镜像的接口,可参考本文档进行修改。文档所做修改基于IMX8QM-MEK,且验证OK。
  2. uboot
    对应的defconfig中合入下面patch。
--- a/configs/imx8qm_mek_android_uuu_defconfig
+++ b/configs/imx8qm_mek_android_uuu_defconfig
@@ -162,7 +162,7 @@ CONFIG_FASTBOOT_UUU_SUPPORT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x98000000
 CONFIG_FASTBOOT_BUF_SIZE=0x19000000
 CONFIG_FASTBOOT_FLASH=y
-CONFIG_FASTBOOT_USB_DEV=1
+CONFIG_FASTBOOT_USB_DEV=0

 CONFIG_BOOTAUX_RESERVED_MEM_BASE=0x88000000
 CONFIG_BOOTAUX_RESERVED_MEM_SIZE=0x01000000
  1. kernel
    内核defconfig中确定选定"CONFIG_USB_CHIPIDEA_IMX=y"。并在dts配置usbotg1为"peripheral"。
&usbphy1 {
        status = "okay";
};

&usbotg1 {
        dr_mode = "peripheral";     //设置USB为从机。
        vbus-supply = <&reg_usb_otg1_vbus>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbotg1>;
        srp-disable;
        hnp-disable;
        adp-disable;
        disable-over-current;
        status = "okay";
};

注意:usbotg1中dr_mode在"imx8qm-android.dtsi"有被设置成“host”,这里需要注释掉。
4. android
设置"vendor.usb.config"为"ci_hdrc.0"。

--- a/imx8q/mek_8q/init.usb.rc
+++ b/imx8q/mek_8q/init.usb.rc
@@ -45,7 +45,8 @@ on early-boot
     mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
     mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
     setprop sys.usb.mtp.device_type 3
-    setprop vendor.usb.config "5b130000.usb"
+#    setprop vendor.usb.config "5b130000.usb"
+    setprop vendor.usb.config "ci_hdrc.0"
     write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
     symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1

重新编译烧写后就可以看到PC正常识别到adb设备。
5. 解决adb remount报错问题。
通过上面的修改,虽然可以通过adb可以正常连接,但是当利用pus访问只读文件夹时,或“adb remount”时会提示错误。

#push报错
remote couldn’t create file: Read-only file system

#adb remount报错
Skipping /system for remount
Skipping /system_ext for remount
Skipping /vendor for remount
Skipping /product for remount
Skipping /odm for remount
remount failed

解决办法:进入系统,打开开发者选项,在开发者选项中找到"OEM解锁"并打开。然后按照下面步骤输入命令就可以正常push了。

adb reboot bootloader
fastboot devices   #可以看到已经进入到fastboot的设备。
fastboot flashing unlock  #这地方需要等十几秒,
fastboot reboot    #重启设备,不行就断电重启。
adb root
adb disable-verity
adb reboot
adb root
adb remount

你可能感兴趣的:(adb)