机顶盒匹配遥控器

一. 安卓6/7,遥控器配置文件在 /system/etc/remote.conf
ssh到机顶盒,准备修改 remote.conf 文件

  1. 设置厂家代码
    机顶盒终端执行 dmesg -c
    遥控器按任意键
    再执行一遍 dmesg -c 得到”wrong custom code is 0x12345678″
    其中后四位5678即厂家代码,修改为
    factory_code=0x56780001
  2. 保存remote.conf文件,执行 remotecfg remote.cfg
    遥控器俺任意键,执行 dmesg -c 如果得到类似”remote: scancode is 0x0043,invalid key is 0x00434040″
    表示厂家设置成功
  3. 设置键映射,在文件的 key_begin 和 key_end 之间
    遥控器上按 电源键,执行 dmesg -c 得到”remote: scancode is 0x0043,invalid key is 0x00434040″
    其中 43 即电源键代码,修改为
    0x43 116 #Power (0x43是需修改的项;116是linux的电源键代码,无需修改;#后面是说明)
    重复本步骤,将遥控器上所有的键都修改一遍
  4. 设置鼠标键
    按遥控器*键,执行 dmesg -c 得到的代码替换 fn_key_scancode 一行
    再根据前面keycode,修改上、下、左、右、确定键代码
    fn_key_scancode = 0x99 #MOUSE
    left_key_scancode = 0x25 #LEFT
    right_key_scancode = 0x27 #RIGHT
    up_key_scancode = 0x26 #UP
    down_key_scancode = 0x28 #DOWN
    ok_key_scancode = 0x0d #OK

    mouse_begin
    0 0x25 #LEFT
    1 0x27 #RIGHT
    2 0x26 #UP
    3 0x28 #DOWN
    mouse_end
  5. 设置重复键
    将需要设置的重复键代码(例如上、下、左、右),从前面的代码复制到 repeat_key_begin 和 repeat_key_end 之间
  6. 如果机顶盒是晶晨(Amlogic)芯片,可以同时设置两个遥控器,保留remote.conf不变,将第二个遥控器保存为remotesecond.conf
    并在机顶盒启动时,执行命令: remotecfg remotesecond.conf
    Android启动自动执行脚本的几种方式:
    (1) 添加到文件 /system/bin/install-recovery.sh
    (2) 添加到目录 /system/etc/init.d/
    (3) 添加到文件 /data/init.sh
    (4) 如果有magisk,添加到 /sbin/.magisk/img/.core/service.d 或 /sbin/.magisk/img/.core/post-fs-data.d
    以上方法只需其中之一即可

二. 安卓4.4,遥控器配置文件在 /system/etc/key.xml

1. key.xml文件可以映射四组不同的遥控器,选择其中一组子项来修改键值,无需写入厂家代码。

<other-key>
    <key value="0x6a951104" name="KEY_F10"        />      <!--key FactoryTest-->
    <key value="0xe51aee11" name="KEY_F11"        />
    <key value="0xf40b4040" name="KEY_UP"         />      <!--key up-->
    <key value="0xf10e4040" name="KEY_DOWN"       />      <!--key down-->
    <key value="0xee114040" name="KEY_RIGHT"      />      <!--key right-->
    <key value="0xef104040" name="KEY_LEFT"       />      <!--key left -->
    <key value="0xf20d4040" name="KEY_ENTER"      />      <!--key ok -->
    <key value="0xbd424040" name="KEY_BACK"       />      <!--Back -->
    <key value="0xba454040" name="KEY_MENU"       />      <!-- -->
    ...
</other-key>

2. 从方法一第3步获得遥控器的各个键值,比如按方向“上”键,dmesg -c 得到信息是:”remote: scancode is 0x0043,invalid key is 0xf40b4040″,那么修改 KEY_UP 的 value=”0xf40b4040″

3. 不要删除子项(比如)中遥控器没有的键值,如果是在电脑上修改key.xml,注意修改后的文件权限要与原文件一致。