参考文档
https://blog.51cto.com/u_16213661/7702798
1、调试准备
确保设备开启开发者模式?
确保设备开启usb调试模式?
确保电脑与设备通过USB连接?
确保电脑已安装adb环境?
2、查找按键code位置
进入adb shell
adb shell
获取按键的键值,使用getevent命令
getevent
然后依次在设备上按 加 和 减 按键,得到的就是按键的值了,如下图:

可以知道 加按键值为 0x72 , 减按键为0x73;根据event1 可以得知对应的事件名为 "sunxi-gpadc0",稍后根据该名字查找按键布局文件的位置。
3、确认按键布局文件位置
在adb shell中输入dumpsys input命令
dumpsys input
在输出结果中,搜索上一步中得到的 事件名:"sunxi-gpadc0",可以看到KeyLayoutFile文件的位置为:/system/usr/keylayout/Generic.kl,如下图

4、修改按键布局文件
使用命令拉取按键布局文件到电脑
adb pull /system/usr/keylayout/Generic.kl
在电脑上打开文件,将加减按键的键值互换

5、替换系统的按键布局文件
因为有的系统是只读的,所以在adb shell中使用如下命令下挂载为可读写
先切换到root用户
su
挂载系统为可读写的
mount -o remount,rw /system
备份原有文件
mv /system/usr/keylayout/Generic.kl /system/usr/keylayout/Generic.kl_bak
将修改后的按键布局文件,先上传到下载目录(不能直接上传到keylayout目录,没有权限)
确保电脑终端cd进入了Generic.kl文件所在的目录,执行上传命令:
adb push Generic.kl /sdcard/Download/

拷贝文件到系统目录中 /system/usr/keylayout/
adb shell su /sdcard/Download/Generic.kl /system/usr/keylayout/
6、确保Generic.kl文件的用户组和权限,与原有的一样
进入shell
adb shell
切换至root用户
su
修改文件所有者和组
chown root:root /system/usr/keylayout/Generic.kl
修改文件权限
chmod 644 /system/usr/keylayout/Generic.kl
为了系统安全,恢复系统挂载为只读
mount -o remount,ro /system
重启系统,加减按键就互换了
reboot
302

被折叠的 条评论
为什么被折叠?



