一个、检查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_HDRC_HCD = y

2).在dws中设定OTG VBUS相应的输出控制pin配置为GPIO模式。var name为GPIO_OTG_DRVVBUS_PIN。再设定IDDIG pin默认模式为IDDIG,var name为GPIO_OTG_IDDIG_EINT_PIN

怎样实现挂载:

1).alps/mediatek/config/[project]/init.project.rc起始位置处加入例如以下内容

对于KK曾经的版本号:

on early-init

    mkdir /mnt/usbotg 0000 system system

对于KK(包括)以后的版本号:

#须要特别注意的是,这里是要另外加入on init,不是加在on early-init:

on init

    mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw

    mkdir /storage/usbotg 0700 root root

...

#service加在on boot:

on boot

service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg

    class late_start

    disabled

#

# Connectivity related services (Begin)

#

2).fstab文件末尾加入例如以下一行

对于KK曾经的版本号:

改动alps/mediatek/config/[project]/vold.fstab

dev_mount usbotg /mnt/usbotg auto /devices/platform/mt_usb

对于KK(包括)以后的版本号:

改动alps/mediatek/config/[project]/fstab

/devices/platform/mt_usb auto vfat  defaults voldmanaged=usbotg:auto

3).storage_list.xml加入例如以下一个xml节点

对于KK曾经的版本号:

<storage android:mountPoint="/mnt/usbotg"

       android:storageDescription="@string/storage_external_usb"

       android:removable="true"

       android:primary="false" />

对于KK(包括)以后的版本号:

<storage android:mountPoint="/storage/usbotg"

       android:storageDescription="@string/storage_external_usb"

       android:removable="true"

       android:primary="false" />

备注:详细改动哪个路径下的storage_list.xml文件,须要依据ProjectConfig.mk中的resource_overlay_support的值来定

对于JB3下面版本号,

假设RESOURCE_OVERLAY_SUPPORT的值为generic  ==>>  则改动alps/mediatek/custom/[project]/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml

假设RESOURCE_OVERLAY_SUPPORT的值为空  ==>> 则改动alps/framework/base/core/res/res/xml/storage_list.xml

对于JB3(包括)以上版本号,RESOURCE_OVERLAY_SUPPORT的值可依据须要配置为sd_in_ex_otg或sd_ex_otg。则无需再改动该文件

sd_in_ex_otg或sd_ex_otg分别表示内卡+外卡+otg或外卡+otg

相应文件分别在alps/mediatek/custom/common/sd_in_ex_otg/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml或alps/mediatek/custom/common/sd_ex_otg/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml





眼下USB OTG功能仅仅支持U盘(FAT格公式+分区)、Keyboard、Mouse、PTP device

版权声明:本文博客原创文章,博客,未经同意,不得转载。

android USB OTG功能实现的更多相关文章

  1. 如何打开USB OTG功能:

    一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确)二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OT ...

  2. Android开启OTG功能/USB Host API功能

    Android USB 模式简介 设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为"USB设备"角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被 ...

  3. 【转】随身HiFi 安卓OTG功能在音频上的妙用

    原文网址:http://article.pchome.net/content-1745467.html 随身HiFi 安卓OTG功能在音频上的妙用 [PChome电脑之家音频频道原创]说起Androi ...

  4. USB OTG

    OTG检测的原理是:USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时设备 ...

  5. stm32f407以太网及USB OTG快速开发

    stm32f407以太网及USB OTG快速开发 引言 想要快速完成网络协议栈和USB OTG功能,使用ST自家的工具STM32CubMx再好不过的了.如果你还不会使用,别着急下面我会一步一步的用图片 ...

  6. Android技术宅:自制USB OTG数据线

    作为一名Android技术宅,USB OTG是你必须了解的,所谓USB OTG就是你可以利用手机或平板上用来充电.与电脑传输数据的micro USB接口来连接其他USB外设,如游戏手柄.鼠标.键盘.U ...

  7. Android 4.4 Kitkat 使能 USB adb 功能

    背景 在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能.这篇文章依据原作者的 Google+ ...

  8. Android USB Camera(1) : 调试记录【转】

    转自:http://blog.csdn.net/eternity9255/article/details/53069037 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 前言 ...

  9. USB HOST与 USB OTG的区别及工作原理

    在SmartQ 7上面,同时存在USB HOST与 USB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!! 转自USB HOST与 ...

随机推荐

  1. 用bat 删除当前文件夹下的某类文件

    @echo on for /r %%f in (*.pdb,*.xml) do del %%f 保存为bat文件执行!

  2. Android异步操作总结

    Android中常常会有一些操作比方网络请求,文件读写.数据库操作.比較耗时,我们须要将其放在非UI线程去处理.此时.我们须要处理任务前后UI的变化和交互.我们须要通过类似js中异步请求处理,这里总结 ...

  3. REPLICAT RORA_1保持 ABENDED状态,无法启动问题处理

    REPLICAT  RORA_1保持 ABENDED状态,无法启动问题 环境: Item Source System Target System Platform Red Hat Enterprise ...

  4. Windows 8实例教程系列 - 数据绑定高级实例

    原文:Windows 8实例教程系列 - 数据绑定高级实例 上篇Windows 8实例教程系列 - 数据绑定基础实例中,介绍Windows 8应用开发数据绑定基础,其中包括一些简单的数据绑定控件的使用 ...

  5. poj 2762 Going from u to v or from v to u? (推断它是否是一个薄弱环节图)

    意甲冠军:给定一个有向图有m单向边缘.免费推断是否两点起来(a可以b要么b可以a或最多彼此),该请求 弱联通重量. 算法: 缩点求强连通分量.然后又一次建图.推断新图是否是一条单链,即不能分叉,假设分 ...

  6. NGUI 3.5教程(四)Atlas和Sprite(制作图片button)

    Atlas是NGUI的图集.我的理解是:Atlas把你的一些零散的图片,合并成一张图.这样做的优点是,能够减少Draw Call.我不了解它的底层运作机制,我猜应该也是再行进DXT之类的纹理压缩,所以 ...

  7. int a[5]={1,2,3,4,5};printf(&quot;%d\n&quot;, *((int*)(&amp;a+1)-2);

    有说服力的笔试题有一定的期限,问:什么是结果,答案是4,为什么要挤? 我明白(不知道是不正确): &a这是一个数组指针,类型int[5],然后&a添加1其实a+sizeof(int)* ...

  8. MVC常用特性

    MVC常用特性使用   简介 在以前的文章中,我和大家讨论如何用SingalR和数据库通知来完成一个消息监控应用. 在上一篇文章中,我介绍了如何在MVC中对MongoDB进行CRUD操作. 今天,我将 ...

  9. Hadoop加zookeeper构建高可靠集群

    事前准备 1.更改Linux主机名,每个人都有配置 vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop-server1 2.改动IP / ...

  10. Mac周边环境 goBASIC语言HelloWorld

    1. 安装mercurial Mercurial 是一种轻量级分布式版本号控制系统,採用 Python 语言实现 能够输入hg命令查询系统是否安装mercurial,能够例如以下两种命令安装 $sud ...