本文转载:http://m.blog.csdn.net/dearsq/article/details/70175637
Platform: RK3399OS: Android 6.0Kernel: 4.4Version: v2017.04
-
- 需求
- Key-Pad 原理
- 实现
- getevent 获得键值
- 修改按键功能
- 验证
- 其他方法
需求
需求是将 Menu 键修改为 Home 键。
Key-Pad 原理
按键部分原理图如下
可见不同按钮串联的电阻值也不同。因此,按下不同的按钮时 ADKEY_IN 检测电压也会有所不同(不同的电阻值分压不同),平台端设计了接收不同电压时对应的功能,实现了功能按钮。
实现
getevent 获得键值
adbshell getevent
- 1
- 2
我们的 key pad 设备
按下我们需要修改的按钮(现在 MENU 键)
获得键值 0x003b,即 10 进制的 59
修改按键功能
在 SDK/device/rockchip/common/rk29-keypad.kl 修改
vi SDK/device/rockchip/common/rk29-keypad.kl -key 59 MENU key 59 HOME -key 102 HOME key 102 MENU key 114 VOLUME_DOWN key 115 VOLUME_UP key 116 POWER WAKE key 143 NOTIFICATION WAKE key 158 BACK key 212 CAMERA key 217 SEARCH
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
我们把 key 59 的功能改为 MENU
验证
按键生效。
其他方法
另外 adb pull /system/usr/keylayout/rk29-keypad.kl修改后直接 push 也可以进去完成任务。