免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3795 | 回复: 1
打印 上一主题 下一主题

[Android] usb hiddev设备开发相关权限的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-16 12:24 |只看该作者 |倒序浏览
手上有一个Mifare的usb设备(门禁usb模块,非接触M1卡读卡器),设备商什么都不懂,只能帮忙定位芯片类型。
1、分析M1卡设备USB接口
原厂对usb设备描述含糊,没有usb设备通信的描述文档。只能自主分析设备。
M1卡设备属于usb hid设备类,经过分析M1卡设备不像平常的键盘等输入设备。
属于②类设备(内核要开启hiddev支持,才能在用户层进行访问),需要自己编写usb通信驱动(一般编写用户层驱动较为简单)。经过抓包与读取端点信息,发现了2个usb中断端点,一个用来输入一个用来输出,大小都是64个字节的包。查看了Android对usb host api的支持,太简陋了,只支持bulk传输。
01-04 22:50:53.411: D/m1(8461): endpoint[0].address: 02
01-04 22:50:53.411: D/m1(8461): max packet size: 0040
01-04 22:50:53.411: D/m1(8461): polling interval: 0A
01-04 22:50:53.411: D/m1(8461): endpoint[1].address: 82
01-04 22:50:53.411: D/m1(8461): max packet size: 0040
01-04 22:50:53.411: D/m1(8461): polling interval: 0A

usb.c ---> hid-core.c ----> hid-input.c ----> ①[keyboard/mouse/joystick/event]
|
|
②--> hiddev.c ----> POWER / MONITOR CONTROL
2、libusb1.0移植调试
自定义的usb hiddev设备操作是比较麻烦,尤其是操作中断断点,为了降低开发难度,选用开源libusb库的接口来操作设备。
http://www.libusb.org/

通过eclipse开发ndk程序, 目标是要和一个插在android上的HID设备通信,程序已经能编译通过,但是运行到android设备上后就报错,分析error 是我的程序没有打开/dev/bus/usb/下的设备文件的权限,改了uevend.rc,但是这个001 002 003会随着设备的异常插拔改变序号,Android又没有udev,实在繁琐。
root@android:/dev/bus/usb/001 # ll
ll
crw-rw---- root usb 189, 0 2010-01-01 08:00 001

请问如何能让自己的普通程序获得读写/dev/bus/usb/下文件的权限?
或者是否有类似像打开蓝牙权限那样在manifest.xml的设置?

也想通过获取manifest.xml 把apk添加到USB设备的组,通过查看权限指令pm list permissions | busybox grep USB* 没看到类似的描述啊。
#define AID_USB 1018 /* USB devices */

有没有manifest.xml配置能使得apk加入到AID_USB组中,这样就不用改系统权限了。

如果实在没有办法,只能实现一个root的服务监听uevent事件,修改权限了。。

论坛徽章:
0
2 [报告]
发表于 2014-07-17 10:01 |只看该作者
看了android的权限管理代码,apk使用权限申请都会与platform.xml查找,然后加入对应的gid中。

在系统权限管理自定义添加usb的支持条目。

android4.0/frameworks/base/data/etc/platform.xml 源文件 ---》目标/system/etc/permissions/platform.xml

<permissions>
...
    <permission name="android.permission.USBFS" >
        <group gid="usb" />
    </permission>
...
</permissions>

在apk中manifest <uses-permission android:name="android.permission.USBFS" />
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP