usb idVendor与idProduct修改与adb

usb idVendor和idProduct,分别代表一个usb设备的 厂商编
号 产品编号 。也就是常说的Vid Pid。这个是唯一的,需要向USB Org缴费维持。
                        咱们的产品模拟了Google Nexus One的PID VID也就
是 18d1 4e12.
但是BP相关acm功能,因为BP申请了271f的VID,所以与BP相关的usb复合设备,功
能设定就不一样。

我们来看一下咱们的usb配置脚本,init.nufront-tl7689.usb.rc,里面的内容很
容易理解,在不同的 sys.usb.config下,配置不同的pid vid function.贴两段代码:

//咱们模仿Google Nexus One的 adb,ums功能组合
on property:sys.usb.config=mass_storage,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
//vid
    write /sys/class/android_usb/android0/idProduct 4e12
//pid
    write /sys/class/android_usb/android0/functions
${sys.usb.config} // function , gadget usb driver的配置信息
    write /sys/class/android_usb/android0/enable 1
    stop tty_trans_1
    stop tty_trans_2
    stop audio_tool_d
    start adbd
    setprop sys.usb.state ${sys.usb.config}

// BP开启acm通讯的 gadget acm,adb功能组合,倍催的是,咱们的BP校准,用了
另外一个很相似的组合,audio-test,
#for audio test
on property:sys.usb.config=adb,acm
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 271f
    write /sys/class/android_usb/android0/idProduct 8703
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/f_acm/instances 1
    write /sys/class/android_usb/android0/enable 1
    stop tty_trans_1
    stop tty_trans_2
    start audio_tool_d
    start adbd
    setprop sys.usb.state ${sys.usb.config}

所以,安全机,烧写系统完毕之后,变成了vid/pid 271f/8703。这个配置,在很
多人的机器里面,并不认识,所以ubuntu并不能帮助你的adb连接。这个时候,需
要配置一些信息:

第一步:检查udev
udev简单介绍,是linux管理外部plug设备的子系统,能够自动识别插入系统的设
备,尤其是usb设备。它的识别规则放在/etc/udev /rules.d/目录下,都是一些
*.rules文件
里面包含规则。我们在这个目录下创建一个 51-android.rules的文件,并赋予操
作权限。
            # sudo vim /etc/udev/rules.d/51-android.rules //why 51? 因
为rules文件头两个字符都是数字,规则是按照数字从小到大检索,很多发行版有
50-udev.rules,放50后面就是51,你可以随便改.

贴出我的51-android.rules,应该都能看懂吧,遇到不同的设备pid/vid就添加一
条。OWNER是你的登录用户名称。这个文件让你的登 录用户可以有udev下发现列表
中的设备的权限。
但是这样有可能不够,需要第二步。

SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="4e12",MODE="0666",OWNER="nufront0182"
SUBSYSTEM=="usb",ATTRS{idVendor}=="271f",ATTRS{idProduct}=="8702",MODE="0666",OWNER="nufront0182"
SUBSYSTEM=="usb",ATTRS{idVendor}=="271f",ATTRS{idProduct}=="8703",MODE="0666",OWNER="nufront0182"

第二步:配置android主机默认目录
            创建 ~/.android/adb_usb.ini,这个是和Google android 的adb
server/client的检索相关。

            # sudo vim ~/ .android/ adb_usb.ini

            规则简单,#后面是注释,每一行代表一个vid,0xABCD类型,贴出
我的:

#adb
0x271f
0x18d1

第三步:生效udev,插拔usb, kill adb server,最终adb 可以用。

        # sudo service udev restart
        # sudo adb kill-server
        # sudo adb start-server
        # sudo adb shell

你可能感兴趣的:(系统环境配置)