I.MX8QM android13开启adb调试

本文介绍了如何在IMX8QM-MEK平台的Android13SDK中,通过修改defconfig和dts文件,将USBOTG1设置为ADB和烧写镜像的接口,以及解决adbremount报错的问题,包括OEM解锁和禁用verity以允许读写操作。
摘要由CSDN通过智能技术生成
  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
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飘忽不定的bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值