燧石T2是几年前论坛里火爆过一段时间的安卓盒子,一直用的不错,前段时间出了点意外,遥控器坏了。去买一个新的也要花十多块钱,现在买个新的盒子才几个钱,想想是不是可以用别的盒子遥控器替代,测试了一圈,之前购买的天猫魔盒1用的YYF遥控器有反应,但是键位都是不对的,但是只要能认肯定就有办法。
在网上翻了一堆资料,发现可以用ADB连上盒子后用getevent获取遥控器实际代码,然后用这个代码替换现有的遥控器配置文件就可以了。
首先就是连上盒子
- adb connect 192.168.0.xx (你盒子的ip地址)
- adb shell
然后输入 su
如果没有任何反应,而提示符变成了#
就说明,你的机器已经root过了,可以继续下面的步骤
如果提示你没有权限,那就说明你没有root过,首先你就需要去root,方法请google
然后Ctrl+C退出adb
输入
- adb pull /system/usr/keylayout/sun6i-ir.kl d:\
从盒子里取回遥控器配置文件
用文本编辑器打开这个下载的文件是这样的
- key 87 POWER WAKE
- key 91 MUTE
- key 15 PAGE_UP
- key 76 PAGE_DOWN
- key 88 MEDIA_PLAY_PAUSE
- key 27 HOME
- key 79 VOLUME_DOWN
- key 26 VOLUME_UP
- key 78 BACK
- key 77 MENU
- key 16 1
- key 17 2
- key 18 3
- key 19 4
- key 20 5
- key 21 6
- key 23 7
- key 24 8
- key 25 9
- key 29 0
- key 30 DEL
- key 6 DPAD_LEFT
- key 67 DPAD_UP
- key 14 DPAD_RIGHT
- key 2 DPAD_CENTER
- key 10 DPAD_DOWN
很明显只要替换key后面跟随的数字,就可以替换遥控器了,现在就需要获取遥控器的代码,可以使用getevent来获取
现在按下遥控器按键数字1,终端里就会返回类似以下的内容
- dev/input/event4: 0001 001a 00000001 表示按下 af为键值(16进制)
- /dev/input/event4: 0000 0000 00000000
- /dev/input/event4: 0001 001a 00000000 表示弹起
- /dev/input/event4: 0000 0000 00000000
把1a换成10进制就是26
找到
sun6i-ir.kl中的这行把16改成26,就可以了
现在的任务就比较简单机械了,所有的按键都按一遍,把对应的按键代码替换一下就可以了。我把完成的文件放在附件里。
替换工作完成,现在就需要把文件上传到盒子相应位置就可以了
- adb push d:\sun6i-ir.kl /mnt/sdcard/
- adb shell
- su
- mount -o remount rw /system
- cp /mnt/sdcard/sun6i-ir.kl /system/usr/keylayout/sun6i-ir.kl
- chmod 744 /system/usr/keylayout/sun6i-ir.kl
搞定,现在重启一下测试一下,完全可行。
结束