Android红外摇控与remote.conf

2023-05-16

这几天在研究Amlogic的红外摇控,主要涉及到/system/etc/remote.conf和/system/usr/keylayout/Vendor_0001_Product_0001.kl这两个文件,其实一般情况下只需要修改/system/etc/remote.conf这个文件就可以了,下面我们来介绍下remote.conf怎么修改.

换摇控之后,你按键会出现这样的打印信息:

[  727.416139@0] Wrong custom code is 0x2dd2ff00
[  727.868522@0] Wrong custom code is 0x6699ff00
[  728.217197@0] Wrong custom code is 0x3ec1ff00
[  728.626735@0] Wrong custom code is 0x2dd2ff00
[  728.929900@0] Wrong custom code is 0x6699ff00
[  729.239544@0] Wrong custom code is 0x3ec1ff00

如果按键没这些,请在终端执行remotecfg,如果还是没有执行下dmesg查看下内核信息.

我们来看下remote.conf的内容:

#*********************************************************************************************************
#this file is configuration for each factory remote device
# 	work_mode	  0 :software mode  1 :hardware mode 
#	repeat_enable	  0 :disable repeat 1 :enable repeat	
#
#	factory_code      each device has it's unique factory code. 
#			  pattern:custom_code(16bit)+index_code(16bit)
#			  examble: 0xff000001 = 0xff00(custom cod)  0001 (index)
#
#	release_delay	  unit:ms.release will report from kernel to user layer after this period of time
#			  from press or repeat triggered. 
#
#	debug_enable      0 :debug disable  1 :debug disable
#
# SW MODE:
#	bit_count	  how many bits in each frame	  
#	tw_leader_act	  time window for leader active 
#	tw_bit0		  time window for bit0 time.
#	tw_bit1		  time window for bit1 time
#	tw_repeat_leader  time window for repeat leader
# REG
#	reg_base_gen	  set value for PREG_IR_DEC_BASE_GEN	
#	reg_control	  set value for PREG_IR_DEC_CONTROL
#	reg_leader_act	  set value for PREG_IR_DEC_LEADER_ACTIVE
#	reg_leader_idle	  set value for PREG_IR_DEC_LEADER_IDLE
#	reg_repeat_leader set value for PREG_IR_DEC_REPEAT_IDLE
#	reg_bit0_time	  set value for PREG_IR_DEC_BIT0_TIME
#************************************************************************************************************* 
#amlogic NEC remote
factory_code	= 0xff000001 
work_mode  		= 1
repeat_enable = 1
release_delay	=	150
debug_enable 	= 1
reg_control	= 0xfbe40
#left 0x6699ff00
left_key_scancode  = 0x99
right_key_scancode = 0xc1
up_key_scancode    = 0xca
down_key_scancode  = 0xd2
ok_key_scancode    = 0xce

key_begin
		0x99 105
		0xc1 106
		0xca 103
		0xd2 108
	        0xce 28
		0x92 2
		0x93 3
key_end
这个是我修改之后的,首先看下这部分:

#amlogic NEC remote
factory_code	= 0xff000001 
work_mode  		= 1
repeat_enable = 1
release_delay	=	150
debug_enable 	= 1
reg_control	= 0xfbe40
这里只有factory_code需要进行修改,我们按键之后的打印信息如下:

[  727.416139@0] Wrong custom code is 0x2dd2ff00
[  727.868522@0] Wrong custom code is 0x6699ff00
[  728.217197@0] Wrong custom code is 0x3ec1ff00
[  728.626735@0] Wrong custom code is 0x2dd2ff00
[  728.929900@0] Wrong custom code is 0x6699ff00
[  729.239544@0] Wrong custom code is 0x3ec1ff00

可以看到后16位是不变的都是ff00,有的可能是在高16位例如:

[  728.929900@0] Wrong custom code is 0xff002dd2
[  729.239544@0] Wrong custom code is 0xff003ec1

这是我乱编的,当然也有可能不是ff00也有可能是其它的,所以这里我们得到factory_code

factory_code就是0xff000001,前面得到的ff00在高位,低位的0001网上说可以随便写,不过这里还是写成0001

我们依次读到各个按键所打印出的数据:

[  727.416139@0] Wrong custom code is 0x2dd2ff00
[  727.868522@0] Wrong custom code is 0x6699ff00
[  728.217197@0] Wrong custom code is 0x3ec1ff00
[  728.626735@0] Wrong custom code is 0x2dd2ff00
[  728.929900@0] Wrong custom code is 0x6699ff00

[  729.239544@0] Wrong custom code is 0x3ec1ff00

这些code就是对应的按键信息:

up: 0x35caff00

down:0x2dd2ff00

left:0x6699ff00

right:0x3ec1ff00

这里我就只说这几个了,其它的按键方法都是一样.

我们看到remote.conf剩下的部分:

left_key_scancode  = 0x99
right_key_scancode = 0xc1
up_key_scancode    = 0xca
down_key_scancode  = 0xd2
ok_key_scancode    = 0xce

key_begin
		0x99 105
		0xc1 106
		0xca 103
		0xd2 108
	        0xce 28
		0x92 2
		0x93 3
key_end
left_key_scancode后面的是一个8位的数和key_begin下面的以0x开关的数都是从

[  727.416139@0] Wrong custom code is 0x2dd2ff00
[  727.868522@0] Wrong custom code is 0x6699ff00
[  728.217197@0] Wrong custom code is 0x3ec1ff00
[  728.626735@0] Wrong custom code is 0x2dd2ff00
[  728.929900@0] Wrong custom code is 0x6699ff00

[  729.239544@0] Wrong custom code is 0x3ec1ff00

这些数据里面解析出来的,而key_begin后面的105 106 这些都是对应的系统的键码

我们先来看下前面的那个0x的数据怎么得到,首先以0x2dd2ff00为例,这个在摇控器上是对应的方向键down

0x2dd2ff00去掉产家代号ff00后剩下的就是2dd2了,remote.conf中的数值码就是以0x开关的那个要么就是0x2d要么就是0xd2,不是高8位就是低8位,这个不同的产家有可能不一样,像我这个就是低8位0xd2,这个我是试了之后才知道的。

不过也可以不用试就可以得出,首先得记录摇控器各个按键的编码,然后修改remote.conf的factory_code后,重启盒子,然后你在按键的时候就会出来这样的信息:

[  145.727698@0] scancode is 0x008a, invalid key is 0x0000.
[  145.868198@0] scancode is 0x008a, invalid key is 0x0000.
[  166.160143@0] scancode is 0x008b, invalid key is 0x0000.
[  166.308242@0] scancode is 0x008b, invalid key is 0x0000.

这个0x008a,8a是低8位,所以可以确定低8位是按键数值码.

下面说下remote.conf后面的105 103这些值,这些都是系统键码,码值定义一般是在内核源码include/linux/input.h中,然后在/system/usr/keylayout/Vendor_0001_Product_0001.kl中也会出现部分,当你要用的按键功能这个.kl里没有的时候你就可以去input.h里找.

我们看下/system/usr/keylayout/Vendor_0001_Product_0001.kl内容:

key 399   GRAVE
key 1     BACK
key 2     1
key 3     2
key 4     3
key 5     4
key 6     5
key 7     6
key 8     7
key 9     8
key 10    9
key 11    0
key 15    BACK
key 158   BACK
key 58    SOFT_RIGHT
key 107   ENDCALL
key 62    ENDCALL
key 139    MENU
key 125    MENU
key 60    NOTIFICATION
key 127   SEARCH
key 217   SEARCH
key 228   POUND
key 227   STAR
key 231   CALL
key 61    CALL
key 97    DPAD_CENTER
key 232   DPAD_CENTER
key 108   DPAD_DOWN
key 103   DPAD_UP
key 102   HOME
key 105   DPAD_LEFT
key 106   DPAD_RIGHT
key 115   VOLUME_UP
key 114   VOLUME_DOWN
key 104   VOLUME_UP
key 109   VOLUME_DOWN
key 212   CAMERA

key 16    Q
key 17    W
key 18    E
key 19    R
key 20    T
key 21    Y
key 22    U
key 23    I
key 24    O
key 25    P
key 26    LEFT_BRACKET
key 27    RIGHT_BRACKET
key 43    BACKSLASH

key 30    A
key 31    S
key 32    D
key 33    F
key 34    G
key 35    H
key 36    J
key 37    K
key 38    L
key 39    SEMICOLON
key 40    APOSTROPHE
key 14    DEL

key 44    Z
key 45    X
key 46    C
key 47    V
key 48    B
key 49    N
key 50    M
key 51    COMMA
key 52    PERIOD
key 53    SLASH
key 28    ENTER

key 56    ALT_LEFT
key 100   ALT_RIGHT
key 42    SHIFT_LEFT
key 54    SHIFT_RIGHT
#key 15    TAB
key 57    SPACE
key 70    EXPLORER
key 155   ENVELOPE

key 12    MINUS
key 13    EQUALS
key 215   AT
key 119   MEDIA_PLAY_PAUSE
key 122   MEDIA_PREVIOUS
key 123   MEDIA_NEXT
key 120   MEDIA_FAST_FORWARD
key 121   MEDIA_REWIND
key 116   POWER	WAKE
key 113   VOLUME_MUTE
key 128   MEDIA_STOP
key 130   ZOOM_IN
key 131   ZOOM_OUT
key 133   TAB
key 140   F10
里面有一个:

key 108   DPAD_DOWN

这个108就是down对应的系统键码

前面我们说到摇控器down对应的编码是0x2dd2ff00

按键数值码是0xd2,功能是down,所以在key_begin里就应该是:

0xd2 108

我的摇控器部分编码:

up:0x35caff00

down:0x2dd2ff00

left:0x6699ff00

right:0x3ec1ff00

1:0x6d92ff00

2:0x6c93ff00

所以最后的remote.conf为:

#*********************************************************************************************************
#this file is configuration for each factory remote device
# 	work_mode	  0 :software mode  1 :hardware mode 
#	repeat_enable	  0 :disable repeat 1 :enable repeat	
#
#	factory_code      each device has it's unique factory code. 
#			  pattern:custom_code(16bit)+index_code(16bit)
#			  examble: 0xff000001 = 0xff00(custom cod)  0001 (index)
#
#	release_delay	  unit:ms.release will report from kernel to user layer after this period of time
#			  from press or repeat triggered. 
#
#	debug_enable      0 :debug disable  1 :debug disable
#
# SW MODE:
#	bit_count	  how many bits in each frame	  
#	tw_leader_act	  time window for leader active 
#	tw_bit0		  time window for bit0 time.
#	tw_bit1		  time window for bit1 time
#	tw_repeat_leader  time window for repeat leader
# REG
#	reg_base_gen	  set value for PREG_IR_DEC_BASE_GEN	
#	reg_control	  set value for PREG_IR_DEC_CONTROL
#	reg_leader_act	  set value for PREG_IR_DEC_LEADER_ACTIVE
#	reg_leader_idle	  set value for PREG_IR_DEC_LEADER_IDLE
#	reg_repeat_leader set value for PREG_IR_DEC_REPEAT_IDLE
#	reg_bit0_time	  set value for PREG_IR_DEC_BIT0_TIME
#************************************************************************************************************* 
#amlogic NEC remote
factory_code	= 0xff000001 
work_mode  		= 1
repeat_enable = 1
release_delay	=	150
debug_enable 	= 1
reg_control	= 0xfbe40
#left 0x6699ff00
left_key_scancode  = 0x99
right_key_scancode = 0xc1
up_key_scancode    = 0xca
down_key_scancode  = 0xd2
ok_key_scancode    = 0xce

key_begin
		0x99 105
		0xc1 106
		0xca 103
		0xd2 108
	        0xce 28
		0x92 2
		0x93 3
key_end
网上有一对remote.conf里面这些的详细说明,我这里就不作说明,我就说下这些数据怎么来的,不知道有没有说清楚。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android红外摇控与remote.conf 的相关文章

  • stable diffusion的使用

    文章目录 1 文生图1 1 mountains and trees and gree1 2 three dogs1 3 cats1 4 three lovely cats1 5 beautiful girl1 6 机器猫1 7 卡通图像生成
  • DIY:用开源软件搭建自己的物联网

    原文链接 xff1a DIY Open Source Software for your very own IoT 作者 xff1a Vishal Shah 翻译 xff1a 赵屹华 审校 xff1a 刘翔宇 图片来源 xff1a open
  • ubuntu开启rdp服务

    概要 ssh登录用于终端 xff0c 如果需要GUI的远程登陆ubuntu 我了解到大概3中方案 vncxrdp第三方软件 向日葵 TeamViewer之类的 因为vnc我一直配置不好 xff0c 所以试了一下xrdp xff0c 这样wi
  • csp模拟2-T1 HRZ的序列

    题目 时间限制 1s 空间限制 64MB 题目描述 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B站时看到了一个序列aaa xff0c 他对这个序列产生了浓厚的兴趣 他好奇是否存在一个
  • Ubuntu 中文件和目录的操作命令

    在 Ubuntu 中 xff0c 文件和目录的操作命令是非常重要的 这些命令帮助您在文件系统中创建 复制 移动 删除和查看文件和目录 以下是一些常用的文件和目录操作命令 xff1a cd cd 命令用于切换当前工作目录 例如 xff0c 要
  • Docker无法在WSL2的Ubuntu启动的问题

    今天在更新了WSL2上的Ubuntu22 04版本 xff0c 在安装Docker后无法启动 xff0c 查看Docker的日志显示如下的错误 INFO 2022 04 22T16 14 55 718999500 43 08 00 stop
  • C语言中的移位操作

    C语言中的移位操作 xff0c 内容不多 不过有些地方你不注意 xff0c 就疏忽了 先做两个小题先 1 unsigned char x 61 3 x lt lt 1是多少 xff1f x gt gt 1是多少 xff1f 2 char x
  • Android获取设备唯一标识的方法

    String uniqueId String mac 61 getMacAddressByInetAddress if mac 61 null amp amp mac equals 34 34 amp amp mac equals 34 0
  • Linux 搭建私有CA证书服务器之超详细版本

    一 CA简介 CA是什么 xff1f CA是Certificate Authority的简写 xff0c 从字面意思翻译过来是凭证管理中心 xff0c 认证授权 它有点类似我们生活中的身份证颁发机构 xff0c 这里的CA就相当于生活中颁发
  • 基于Nginx搭建RTMP-HLS视频直播服务器(推流+拉流)

    1 环境准备 Linux centos7 6 nginx 1 18 0 源码包 span class token function wget span http nginx org download nginx 1 8 1 tar gz n
  • k8s-部署本地仓库harbor

    1 基础配置 xff1a 主机名IP系统版本k8s master192 168 32 128centos 7 6k8s node1192 168 32 129centos 7 6k8s node2192 168 32 130centos 7
  • k8s部署nginx容器

    1 创建挂载nginx namespace yaml配置文件 xff08 k8s master xff1a 192 168 32 128 xff09 apiVersion v1 kind Namespace metadata name ng
  • k8s部署tomcat并且映射本地目录

    1 编写Dockerfile span class token punctuation span root 64 VM 12 7 centos opt span class token punctuation span span class
  • 自动化运维记录之GitLab CI/CD 自动化部署入门教程

    1 前端项目自动化部署需要的环境依赖 Node 安装项目依赖 打包都需要 Nginx web 项目部署必须 正向代理 方向代理 负载均衡等等 GitLab 也会用到 Nginx span class token punctuation sp
  • k8s-kubeadm证书过期续订解决方法

    1 实验目的 通过kubeadm安装的kubernetes集群各个组件所使用证书的期限为1年 xff0c 本实验练习的是到期之后如何续期 2 实验环境 ubernetes环境及版本 整个实验三台机器192 168 32 128作为maste
  • 宝塔部署Django项目-避坑必看

    1 在linux windoes机器上已经安装宝塔 浏览器登录宝塔管理页面 1 1打包模块 span class token number 1 span 将本地计算机的项目下的模块打包 python m pip freeze span cl
  • week11作业—A - 必做题11-1—

    题目 蒜头君从现在开始工作 xff0c 年薪 NNN 万 他希望在蒜厂附近买一套 606060 平米的房子 xff0c 现在价格是 200200200 万 假设房子价格以每年百分之 KKK 增长 xff0c 并且蒜头君未来年薪不变 xff0
  • Linux 系统 nginx 源码编译安装

    nginx版本 xff1a nginx 1 18 0 操作实施环境 Ubuntu 16 04 6 LTS SUSE Linux Enterprise Server 12 SP4 x86 64 注 xff1a 因为是源码安装 xff0c 操作
  • ubuntu18.04和20.04(ubuntu focal)安装MySQL8并使用navicat连接(详细)

    文章的第一节转载自原文连接 本文实现了服务器ubuntu18 04和虚拟机ubuntu20 04两个版本的MySQL8 的安装 xff0c 和navicat的连接 其中ubuntu18 04对应第二节 xff0c ubuntu20 04是u
  • 对接淘宝公共平台API

    1 说明 由于项目临时提出需求 xff0c 需要对接淘宝公共平台查询用户的一些信息 xff0c 所以需要和淘宝平台做对接 xff0c 我查看了一下淘宝公共平台开发文档 xff0c 虽然写的挺丰富挺整洁 xff0c 但我还是一头雾水 xff0

随机推荐

  • 使用IDEA插件从数据库表生成实体类

    目录 1 介绍 2 添加插件 3 创建数据库连接 4 添加数据库连接信息和驱动 5 表生成实体类 1 介绍 EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件 xff0c 主要通过自定义模板 基于ve
  • SpringBoot多环境动态环境切换(nacos)

    目录 1 环境变量切换 1 1 建立各环境配置文件 1 2 设置环境变量 2 nacos配置中心动态切换 2 1 配置文件 2 2 nacos配置 2 3 启动服务 3 同一nacos环境下服务不同环境控制 3 1 cloud方式 3 1
  • 批量插入或更新数据(MyBatis-plus框架)

    目录 1 场景说明 2 DUPLICATE 和REPLACE比较 3 批量插入或者更新 两种方式 方式一 xff1a mybatis plus的saveOrUpdateBatch方法 问题 xff1a 如果操作类集成了基础类 xff0c 比
  • SpringBoot+Nacos+OpenFeign环境搭建

    目录 1 boot方式nacos与openFeign集成 1 引入依赖 2 添加配置 3 测试接口调用 4 常见问题 xff1a 1 版本依赖 2 nacos客户端 2 cloud方式nacos与openFeign集成 1 引入依赖 2 添
  • RestTemplate连接池使用

    说明 在调用淘宝的公共平台接口时候 xff0c 响应较慢 xff0c 我们需要60ms能够获取到响应 xff0c 但是却经常是200ms甚至更长时间 xff0c 别人的接口只能够优化网络响应时间来提升接口响应 由于接口并发量发 xff0c
  • 华为云CCI方式部署服务

    1 创建工作负载 说明 xff1a 创建负载使用的是swr自己上传的镜像 工作负载的创建过程相对简单 xff0c 和CCE类似 xff0c 创建好工作负载后会自动生成服务 2 配置路由 说明 xff1a 添加路由需要指定好容器端口和服务端口
  • RocketMQ单机环境搭建测试+springboot整合

    1 资源下载 官网 xff1a 下载 RocketMQ 这里选择使用编译后可以直接用的 下载后解压 xff1a 略 2 更改配置 主要是更改 conf broker conf 的配置 xff0c 记得添加上下面这几行 xff0c 否则消息发
  • Assignment 2: Exploratory Data Analysis

    Assignment 2 Exploratory Data Analysis 在此作业中 xff0c 您将识别出感兴趣的数据集并进行探索性分析 xff0c 以更好地理解数据的形状和结构 xff0c 调查最初的问题以及发展初步的见解和假设 您
  • jsp页面不显示的问题

    明明前后端的测试都写好了 xff0c 但是就是显示不出来数据 最后的 最后 发现是在引入js的时候一个小小的疏忽浪费了我半个小时的时间 xff0c 值得记录 一下
  • mysql group by 用法解析(详细)

    group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计 xff0c 最终得到一个分组汇总表 SELECT子句中的列名必须为分组列或列函数 列函数对于GROUP BY子句定义的每个组各返回一个结果
  • kubectl get pod卡住的问题

    安装minikube之后 xff0c 出现了kubectl get pod卡住的问题 xff0c 我这里主要网络的问题 xff0c 因为使用代理时没有过滤本地的IP xff0c 添加上过滤IP就可以用了 export no proxy 61
  • 记录Win10+Ubuntu18.04(引导Win10启动)双系统迁移到SSD,Ubuntu迁移成功但丢失Win10启动项

    原来的Win10 43 Ubuntu双系统是先装的Win10后装Ubuntu时选择 34 与Windows系统共存 34 xff0c 如此开机后由Ubuntu启动项 紫屏 接管引导进入Ubuntu或Windows系统 看网上的教程如果不dd
  • ubuntu 22.04部署quincy版ceph

    ceph集群安装配置有多种方式 xff0c 下方cephadm方式是借助容器部署 cephadm从ceph的octopus版本开始支持 安装需要主机配置安装了容器和python 3 配置安排 xff1a ceph版本 xff1a quinc
  • C/C++ 中头文件相互包含引发的问题

    今天下午遇到一个头文件相互包含而导致的编译问题 xff0c 花了我不少时间去调试没找到问题 xff0c 最后晚上跟师兄讨论不少时间 xff0c 突然有所顿悟 xff01 问题重现 我把问题脱离于项目简单描述一下 xff1a 我写了一个函数
  • 安装Discuz!论坛 提示mysqli_connect() 不支持

    安装Discuz 论坛时提示 不支持Mysql数据库 xff0c 无法安装论坛 的解决方法 1 在系统的 system32 xff08 C windows system32 xff09 目录下缺少libmysql dll文件 xff0c 解
  • 汇编语言程序格式

    汇编语言程序格式 1 汇编程序功能 在计算机上运行汇编语言程序的步骤是 xff1a 用编辑程序建立ASM源文件 用MASM程序把ASM文件转换成OBJ文件 用LINK程序把OBJ文件转换成EXE文件 用DOS命令直接键入文件名就可执行该程序
  • TX2 ubuntu18.04 系统源

    See http help ubuntu com community UpgradeNotes for how to upgrade to newer versions of the distribution deb http ports
  • 解决 gpg: Can't check signature: public key not found

    repo init 的时候出现错误 object 12fd10c20115046dcd2fbe468a45e566f38ffbc9 type commit tag v1 12 7 tagger Conley Owens lt cco3 64
  • 跑bart代码

    跑huggingface上的bart遇到的一系列问题 1 无法连接到huggingface 解决1 xff1a 使用git wget方式下载 xff1a 失败 解决2 xff1a 从官网下载下来模型并上传 xff0c 讲代码中模型导入的路径
  • Android红外摇控与remote.conf

    这几天在研究Amlogic的红外摇控 xff0c 主要涉及到 system etc remote conf和 system usr keylayout Vendor 0001 Product 0001 kl这两个文件 xff0c 其实一般情