香橙派zero3安卓12 TV,修改红外遥控器映射

1.按香橙派用户手册刷入安卓TV12。正常启动

2.由于自己有中国移动魔百和某款遥控器,没买官方遥控器(贵,据说tb有替代品inphnic?),但是买了红外扩展板。经测试,自有遥控器,最大的问题是返回桌面无反应,菜单是返回桌面,数字、方向、ok均正常。

3.有给树莓派安卓TV改映射的文章,所以尝试了一下,给香橙派改映射。

4.随便打开了以前刷盒子用的adb软件。(黑框下)

5.连接,换成香橙派ip

adb connect [香橙派ip]

6.root一下。

adb root (会断连)

7.重连

adb connect [香橙派ip]

8.进入系统

adb shell

9.获取event,可以看到,按下遥控器后出现了很多event0,event0对应的就是“sunxi-ir

getevent
add device 6: /dev/input/event0
  name:     "sunxi-ir"
/dev/input/event0: 0014 0000 00000000
/dev/input/event1: 0014 0000 00000000
/dev/input/event0: 0014 0001 00000000
/dev/input/event1: 0014 0001 00000000
/dev/input/event0: 0004 0004 01dd2295
/dev/input/event1: 0001 0004 00000001
/dev/input/event0: 0000 0000 00000000
/dev/input/event1: 0000 0000 00000000
/dev/input/event0: 0004 0004 00dd2295
/dev/input/event1: 0001 0004 00000000
/dev/input/event0: 0000 0000 00000000
/dev/input/event1: 0000 0000 00000000

10.找到sunxi-ir相关文件。dumpsys input 可以看见很多设备信息。使用grep筛选sunxi相关的,方便查看。

 dumpsys input | grep sunxi
 dumpsys input | grep sunxi
      Location: usb-sunxi-ohci-1/input0
      Location: usb-sunxi-ohci-1/input0
      Location: usb-sunxi-ohci-1/input0
      Location: usb-sunxi-ohci-1/input1
    1: sunxi-ir-uinput
      KeyLayoutFile: /system/usr/keylayout/sunxi-ir-uinput.kl
    2: sunxi-ir
      Location: sunxi-ir/input0
      KeyLayoutFile: /system/usr/keylayout/sunxi-ir.kl
  Device 3: sunxi-ir-uinput
  Device 2: sunxi-ir

sunxi-ir 对应的就是2:sunxi-ir,可以看见,KeyLayoutFile: /system/usr/keylayout/sunxi-ir.kl。找到了kl文件,本文目标就是修改它。

11.解锁readonly.不然没法修改,使用push也会失败。重新挂载,以rw模式

mount -o remount,rw /

12.解锁了push也会因为“空间不足”失败,AI说是node空间不足,所以选择了直接修改,vi打开。

busybox vi /system/usr/keylayout/sunxi-ir.kl

13.修改映射。很迷糊的改法。先看14

key  1  SOFT_LEFT
key  2  SOFT_RIGHT
key  82 HOME             我遥控器上的【菜单】对应的是HOME,而真实的菜单是82。
                         它们的对应关系是这样的,遥控器十六进制数,解码KEYCODE,功能数
                                                     0x00123456    HOME      82
key  4  BACK
key  5  CALL
key  6  ENDCALL
key  7  0
key  8  1
key  9  2
key  10  3
key  11  4
key  12  5

getevent 时按下遥控器,可以看见一些数,那就是遥控器发过来的码,然后系统把它对应到KEYCODE,然后,你拿到了遥控器按键【菜单】对应的KEYCODE【HOME】,然后修改时把KEYCODE对应的“key 3”改成想要的“key 82”.

14.获取按下遥控器时,KEYCODE是什么。

首先,迷惑行为

logcat -v time

然后,ctrl c终止,再次

logcat -v time  | grep KEYCODE

别问为什么,如果你直接grep的话,它没有输出信息????

05-13 08:52:54.187 D/TvWindowManager(  495): key event key = KEYCODE_BACK
05-13 08:52:54.344 D/TvWindowManager(  495): key event key = KEYCODE_BACK
05-13 09:16:58.278 D/TvWindowManager(  495): key event key = KEYCODE_HOME
05-13 09:16:58.492 D/TvWindowManager(  495): key event key = KEYCODE_HOME

此时我按下了我遥控器的【菜单】,然后获取到的是【KEYCODE_HOME】,HOME对应的功能是key 3,返回主页。

然后我vi编辑上面kl文件发现MENU对应的是key 82,所以把key 82 和HOME组合在一起

key  82 HOME。这样 遥控器按下【菜单】,系统收到【HOME】,然后执行 【key 82】功能。

同样的,我的【HOME】键,对应的是【AVR_POWER】,然后执行的【key 181】,所以改成

key 3  AVR_POWER

15.很难理解。key [数字]才是功能。KEYCODE只是遥控器对应的。可以用命令模拟一下按下按键:input   keyevent   [数字]

input keyevent 20是,input keyevent  3是HOME,input keyevent 82是MENU……

16.重启生效?adb reboot

找到对应的keylayout文件(.kl),

找到要改的KEYCODE

找到功能key [数字] 

mount 重新挂载

busybox vi修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰洋睿兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值