AI手机网,短视频直播 硬改改机 一键新机 群控软件 刷机定制

 找回密码
 立即注册
搜索
查看: 1910|回复: 0

USB端口对adb,download,mass_storage的支持

[复制链接]
发表于 2018-10-20 22:42:28 | 显示全部楼层 |阅读模式
P6X第一版软件只支持adb,download功能。为了支持mass_storage功能,于是在./device/qcom/M9PLUS/M9PLUSOneSim/system.prop
里面添加

#Set composition for USB device
#persist.sys.usb.config=diag,serial_smd,rmnet_bam,adb
persist.sys.usb.config=diag,serial_smd,rmnet_bam,mass_storage,adb
#For frameworks compatible process between BCM & NXP — xiaoshengtao
ro.config.nfc_chip_model=BCM
#Set read only default composition for USB
#ro.sys.usb.default.config=diag,serial_smd,rmnet_bam,adb
ro.sys.usb.default.config=diag,serial_smd,rmnet_bam,mass_storage,adb



添加完成后,发现插入USB到电脑端后只显示充电,原来的adb也不支持了。

于是检查了./qcom/common/rootdir/etc/init.qcom.usb.rc,发现里面

on property:sys.usb.config=diag,serial_smd,rmnet_bam,adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 9091
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports smd
   write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
    write /sys/class/android_usb/android0/functions diag,serial,rmnet,adb
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}


并没有on property:sys.usb.config=diag,serial_smd,rmnet_bam,mass_storage,adb

于是新增加了一个属性事件,同时添加了一个新的idProduct 9093

on property:sys.usb.config=diag,serial_smd,rmnet_bam,mass_storage,adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 9093
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports smd
    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
    write /sys/class/android_usb/android0/functions diag,serial,rmnet,mass_storage,adb
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}



编译下载后,mass_storage和adb都可以正常使用了。但是download功能不支持了。
后来和供应商沟通后,发现主要是download功能是和电脑端的驱动程序有关的,而驱动是和idProduct
相关联的,原来的ID是9091,所以把原来的属性事件on property:sys.usb.config=diag,serial_smd,rmnet_bam,adb
去掉,并将里面的idProduct值赋值给新添加的属性事件。这样就完成了修改。

在修改的过程中,还碰到过一个问题,就是当我把usb配置设置成
persist.sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb的时候,
因为属性事件在./qcom/common/rootdir/etc/init.qcom.usb.rc已经存在,

on property:sys.usb.config=diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 9025
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/f_serial/transports smd,tty
    write /sys/class/android_usb/android0/f_rmnet/transports smd,bam
    write /sys/class/android_usb/android0/functions diag,adb,serial,rmnet,mass_storage
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}


当编译下载后发现usb,adb等都不支持了,只有一个充电。后来听说,MSM8916的
USB的端点数不够引起的,无法在现有的端点上面支持过多的设备。据说其中的serial_tty
就用到了6路的端点数。

总结USB的配置必须要和属性事件完全一致,包括其中的功能的顺序。
另外idProduct对固件download的影响是通过电脑端的驱动完成的。
最后USB的功能不能超过芯片能支持的端点数。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术交流售后群

QQ|小黑屋|手机版|站点找错-建议|AI手机网 |Sitemap



GMT+8, 2024-3-29 03:33 , Processed in 0.139292 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表