Android 4.4 Kitkat 使能 USB adb 功能
时间:2014-05-15 23:30:11
收藏:0
阅读:538
背景
在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能。这篇文章根据原作者的 Google+ 文章,在 Atmel sama5 开发板上做了测试,将步骤记录如下,供需要使用的读者参考,你也可以查看作者原文:https://plus.google.com/111524780435806926688/posts/AaEccFjKNHE
在 Linux-3.10 上使能 USB ADB
编译内核时使能 USB FunctionFS
When building your kernel, make sure to configure in FunctionFS:
Device Drivers -> USB Support -> USB Gadget Support
-> USB Gadget Driver -> Function Filesystem
Device Drivers -> USB Support -> USB Gadget Support
-> USB Gadget Driver -> Function Filesystem
设置正确的 USB vendor ID 和 Product ID
这个设置可以放在 bootcmd 或者加载内核模块的时候通过参数传递:
Modify your boot parameters to set the vendor and product ids so adb on your host recognizes the device.
g_ffs.idVendor=0x18d1 g_ffs.idProduct=0x4e26
g_ffs.idVendor=0x18d1 g_ffs.idProduct=0x4e26
Alternatively this can also be done if you built the gadget driver as a module at load time:
insmod g_ffs.ko idVendor=0x18d1 idProduct=0x4e26
启动 Android 并挂载 functionFS, 使能 USB adb
Now here I‘m assuming you‘ve got a serial port working. Boot your target device with your new kernel (and insmod the g_ffs driver if necessary), and setup the functionfs directory:
# mkdir /dev/usb-ffs # mkdir /dev/usb-ffs/adb # mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb
重启 adbd 守护进程
If everything is working, you can kill adbd and when it restarts it should find the functionfs mount and make use of it.
Hooray there‘s your shell!
# ps adbd # kill <pid for adbd>
然后进入 cmd 或者 Linux Host 就可以成功连接 usb adb 获得 Android shell 了
On your host system, connect to the target using the adb program:$ ./adb shell root@android:/#
Hooray there‘s your shell!
评论(0)