Android 4.4 Kitkat 使能 USB adb 功能

背景

在 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

设置正确的 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

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.

    # 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
    [email protected]:/#

Hooray there‘s your shell!

Android 4.4 Kitkat 使能 USB adb 功能,布布扣,bubuko.com

时间: 2024-10-12 15:07:41

Android 4.4 Kitkat 使能 USB adb 功能的相关文章

Android 4.4 KitKat 支持 u 盘功能

Android U 盘功能实现和分析 u 盘功能实现结果: u 盘会当成 usb storage 在 Settings Storage 里面显示. 准备工作 内核需支持 usb host,需支持 FUSE 文件系统,在 FS 选项里面配置即可(CONFIG_FUSE_FS=y). Android 的配置 配置 init.<board>.rc mkdir /storage/udisk0 0000 system system mkdir /mnt/media_rw/udisk0 0700 medi

Android 4.4 Kitkat 使能有线网络 Ethernet

背景 Android kitkat 默认已经支持 Ethernet 有线网络,只要稍微配置,便可以直接使用,测试结果,网络浏览器和下载都没有没有问题,而且系统可以做到与 wifi 共存,互相不影响功能,这里简单介绍如何使能 Ethernet,并简要分析其代码和流程. Linux 配置部分 Linux 需要能够支持有线网络,生成 eth 网络设备节点. Android 配置 overlay 主要是 overlay 里面添加 Ethernet 网络类型支持:  frameworks/base/cor

android usb adb流程[转]

android adb 概述 android adb的代码分为两部分: kernel层的代码在如下路径: drivers/usb/gadget/f_adb.c drivers/usb/gadget/android.c 他吐给上层应用的是如下的设备节点:/dev/android_adb 应用层的代码在如下路径: system/core/adb目录 针对device,该目录编译的输出是adbd 控制台上手动启动平板adb的功能的方法如下: step1:在init.rc中申明adbd服务 [cpp] 

Android KitKat 4.4平台开发-添加USB ADB和MTP功能支持

ADB和MTP是Android基于USB实现的两个重要功能,极大地方便了用户在PC与Android设备之间的互操作,比如传输文件.安装应用.开发调试应用. 本文讲述如何在特定软硬件平台下支持Android ADB和MTP功能. Android版本: KitKat 4.4.2 Linux内核版本: 3.10 (Vendor Kernel) 硬件平台: Atmel SAMA5D3 SoC 针对Linux内核的更改 Merge Android Linux内核USB Gadget驱动到处理器厂商Linu

android apk 的root 权限和USB adb 权限的区别

USB adb 权限是指,当adb 连接手机时,手机中的守护进程adbd 的权限为root 权限,从而它的子进程也具有root 权限,通常如果adb shell 看到是: Android 4.0 以后版本: C:\Users\mtk29\Desktop>adb shell [email protected]:/ # Android 2.3 版本: C:\Users\mtk29\Desktop>adb shell 即表明adb 的连接是root 权限的,相反如果看到是$ 即表明是shell 权限

android USB OTG功能如何打开及实现

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能: 1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD CONFIG_USB_MTK_OTG =y CONFIG_USB_MTK_

android USB OTG功能实现

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能: 1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD CONFIG_USB_MTK_OTG =y CONFIG_USB_MTK_

【Xamarin挖墙脚系列:Android最重要的命令工具ADB】

adb工具提供了很好的基于命令的对系统的控制. 以前说过,安卓的本质是运行在Linux上的虚机系统.在Linux中,对系统进行操作都是以命令的形式进行.在Linux中,Linux的作者,编写了Linux的内核.在各个厂家的Linux中,对基于Linux内核的管理,提供了各种Shell管理工具. Linux系统提供多种不同的Shell以供选择.常用的有Bourne Shell(简称sh).C-Shelll(简称csh).Korn Shell(简称ksh)和Bourne Again Shell (简

Android 4.4(KitKat)窗口管理子系统 - 体系框架

窗口管理系统是Android中的主要子系统之一,它涉及到App中组件的管理,系统和应用窗口的管理和绘制等工作.由于其涉及模块众多,且与用户体验密切相关,所以它也是Android当中最为复杂的子系统之一.一个App从启动到主窗口显示出来,需要App,ActivityManagerService(AMS),WindowManagerService(WMS),SurfaceFlinger(SF)等几个模块相互合作.App负责业务逻辑,绘制自己的视图:AMS管理组件.进程信息和Activity的堆栈及状