首先安装android adb工具,进CT android系统。插上刷机线。运行adb devices命令,可以看到设备名称,如:google xxxxx。
先进入android shell并且执行按键时间检测:
adb shell //进入shell root@android:/ #getevent //监控外设输入事件
把按键映射配置文件pull出来:
adb pull /system/usr/keylayout/sun7i-ir.kl ~/somedir/keylayout/sun7i-ir.kl adb pull /system/usr/keylayout/Generic.kl ~/somedir/keylayout/Generic.kl
输出类似如下图:
A20的android4.2.2下图中的name是sun7i-ir,此时将红外遥控器对准板载 红外接口头 按键即会显示对应键值,如:
/dev/input/event3: 0001 00af 00000001 表示按下 af为键值(16进制)
/dev/input/event3: 0000 0000 00000000
/dev/input/event3: 0001 00af 00000000 表示弹起
/dev/input/event3: 0000 0000 00000000
先将遥控器上所有按键值都捕获,然后用windows7自带计算器设置成程序员模式(查看—程序员),讲得到的值转换为10进制,比如上图中的是af,选择十六进制,输入af
将此值,对应16进制对应按键说明记录下来,比如我的一个遥控器的键位转换如下:
修改sun7i-ir.kl里面的键值为我们转换的10进制数值,里面有说明。把不需要的键值用#注释掉,保证没有重复的键值,改完保存。
修改Generic.kl,查找sun7i-ir.kl里添加的键值在此处是否有重复,重复全注释掉,比如我在sun7i-ir.kl里添加了4是音量减,Generic.kl里也有一个键值为4,这样就要把Generic.kl里的注释掉:
下面进入android文件系统,备份这两个文件:
adb shell cd /system/usr/keylayout/ mv Generic.kl Generic.kl.old mv sun7i-ir.kl sun7i-ir.kl.old exit
将新改的文件push到CT上:
adb push ~/somedir/keylayout/sun7i-ir.kl /system/usr/keylayout/sun7i-ir.kl adb push ~/somedir/keylayout/Generic.kl /system/usr/keylayout/Generic.kl
重启CT,没错的话遥控器应该可以用了。注意:这样改会破坏键盘布局!!
参考资料:
http://blog.csdn.net/a181622974/article/details/8017467
http://forum.cubietech.com/forum.php?mod=redirect&goto=findpost&ptid=693&pid=10364&fromuid=5045