【技术探讨】关于坚果root之后键值修改的讨论’
第一步:
首先修改按键映射文件。gingerbread/sdk/emulator/keymaps/qwerty.kl。该文件确定了linux键值与Android键值的对应关系。
注意事项:linux键值的选择不是没有限制的。选择不当,可能会导致上层不能获取到键值。
第二步:
修改framework下的文件:
gingerbread/frameworks/base/core/Java/android/view/KeyEvent.java gingerbread/frameworks/base/include/ui/KeycodeLabels.h gingerbread/frameworks/base/core/res/res/values/attrs.xml gingerbread/frameworks/base/libs/ui/Input.cpp gingerbread/frameworks/base/native/include/android/keycodes.h gingerbread/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
修改内容:增加按键支持,对原生按键采用input.h中对应宏定义,对非标准按键采用input.h中功能键宏定义。
在KeyEvent.java文件中,对新增加的按键需要添加类似如下注释:
[java] view plaincopy/**{@hide}*/ public static final int KEYCODE_F1 = 135;或者在terminal下运行:make update-api否则会报错。
此外,还需要将 private static final int LAST_KEYCODE的值进行修改,改为android键值的最大值。
PhoneWindowManager.java主要是对一些特殊按键的处理,比如HOME,POWER等。
在android中,上层可使用的键值默认情况下是92个,从0-91;一般情况下,这些键值是够用的,但是如果想扩充的话,还是需要添加新的键值的,那么如何将一个新的键值从驱动的设置映射到上层,使应用可以对我们自定义的键值进行相应的处理呢? 对keypad来说,涉及到的文件有以下几个: 1,/vendor/qcom/7k_ffa_keypad.kl 首先在此文件中,添加新的键值信息:Example: key 123 WLS flag 注意:新加的键值不要与已有的重复。 2.kernel/arch/arm/mach-msm/keypad_surf_ffa.c 在keypad对应的键位添加自定义的键码如 :123 3. frameworks/base/include/ui/keycodeLabels.h 在数组keycodes 中添加 新定义的信息 { "MUTE", 91 },{ "WLS" , 92 } 枚举类型 KeyCode 中添加 kKeyCodeMute = 91 kKeyCodeWLS= 92 4.frameworks/base/core/res/res/values/attrs.xml
case KEYCODE_SEARCH: case KEYCODE_WLS:
//注意:现在(Android 2.3)这个函数调用的是frameworks\base\libs\ui\Input.cpp中的bool KeyEvent::isSystemKey(int32_t keyCode) //这里使用的按键定义在./development/ndk/platforms/android-9/include/android/keycodes.h 通过以上的更改,新的键值就添加上去了,由于更改了 KeyEvent,影响到了API, 所以需要make update-api 如果对新键值进行处理,可以通过获取相应的keycode,对它进行处理; 对于按键事件的处理一般如下文件中 6. frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java 综上可知,我们可以根据需求定义自己的键值,并对键值所对应的事件信息进行合理化处理。注:7k_ffa_keypad.kl是专门给7k_ffa_keypad输入设备使用的keylayout文件,所以修改7k_ffa_keypad.kl 文件只是给键盘输入增加键值。如果是其他设备的输入,如x_input,而且当没有x_iput.kl存在的时候,那么默认的kl文件就是 qwerty.kl(android-root/development/emulator/keymaps/qwerty.kl)这个很重要。也就是说需要实现明白添加的键值是否是7k_ffa_keypad的input event
我的理解:看了一下key character map的处理,是通过读取kcm文件然后使用驱动程序提供的ioctl函数去修改来自输入设备的扫描码和系统预定义的keycode的映射关系。 kl文件应该也可以这么理解。这样的话,对于硬件扫描码,只需要修改这个kl文件。上层得到的都是系统预定义的keycode。
重要补充:
映射关系:ir硬件扫描码在驱动里面被 映射为 kernel/include/linux/input.h里面定义的某个键值。但是这个键值只在linux系统中使用。
Android通过源码目录下的device/xxx/xxx.kl( keylayout )文件完成linux键值到Android系统要使用的键值的映射
根据两个源码的对比:KeycodeLabels.hattrs.xmlkeycodes.h三个文件有改动特别注意:在文件device/xxx/xxx/xxx.kl(即键值对)文件中,重新建立按键扫描码与系统自定义的按键名称的映射关系按键扫描码可以通过串口中输入getevent,然后点击按钮时看打印信息获得扫描码不能重复,否则该文件失效~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·简单说,大部分标准实体按键,是修改*.kl文件。坚果应该也类似。君莫笑dai回复:技术贴,支持一个。
YQ601好热好耗电回复:我就服你,真的,很少看到这么有技术的贴
xfmiao回复:刚用大爆炸,搜索了下关键字,。。复制粘贴?
老兵猫族回复: 本帖最后由 老兵猫族 于 2017-5-16 13:43 编辑
xfmiao 发表于 2017-5-16 12:56刚用大爆炸,搜索了下关键字,。。复制粘贴?你可以 打开qwerty.kl看一下,里面是键值还有几个kl文件,现在需要知道坚果哪个是决定左侧键的键值文件,另外不知道是否可以向其他安卓手机一样直接修改。
老兵猫族回复:希望 尽快提供 M1L的 root
sam哥哥回复:来自D板带着爱
老兵猫族回复:
sam哥哥 发表于 2017-5-17 15:33来自D板带着爱哈哈哈哈
飞雨如丝回复:
老兵猫族 发表于 2017-5-16 13:36你可以 打开qwerty.kl看一下,里面是键值不能root 改了有什么用????改了又替换不了系统文件
老兵猫族回复:
飞雨如丝 发表于 2017-5-17 17:25不能root 改了有什么用????改了又替换不了系统文件坚果可以root,坚果pro和M1L不能root
飞雨如丝回复:
老兵猫族 发表于 2017-5-17 17:27坚果可以root,坚果pro和M1L不能root哦哦
本文地址:http://es.55jiaoyu.com/show-687382.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.往年大连中考满分是多少
- 12.为什么说学播音毁一生,原因有哪些
- 13.淘宝店铺的优质好评语大全
- 14.考研可改变第一学历吗、专科考研可以改变第一学历吗
- 15.民学网查出的学历国家承认吗(民学网查出的学历国家承认吗是真的吗)
- 16.往年轻薄商务笔记本电脑推荐-商务轻薄本性价比排行
- 17.承德护理职业学院(承德护理职业学院2023年招生计划)
- 18.wreak是什么意思wreak的翻译(wake,area是什么意思中文翻译)
- 19.电子科技大学A+类学科名单有哪些(含A、B、C类学科名单)
- 20.systematic是什么意思systematic的翻译(systematically是什么意思中文翻译)
- 21.leant是什么意思leant的翻译(lean,on什么意思中文意思)
- 22.华南农业大学是几本大学,华南农业大学是一本还是二本
- 23.包头中考考试科目时间预测安排,包头中考考哪几门考哪些课程
- 24.高考430分能上什么大学,430分高考能报啥学校
- 25.朱自清的散文代表作有什么(朱自清的散文代表作有什么散文集有什么散文诗集有什么)
- 26.浙江有几所大学是985和211,全国985和211大学名单汇总
- 27.i5,1155G7和R5,5600U哪款好-对比评测
- 28.荷兰什么叫-荷兰弟为什么叫荷兰弟,出演蜘蛛侠原因曝光
- 29.警察警衔工资改革新政策及新方案【全文】解读
- 30.电大专科(电大专科毕业论文)
- 31.广东省高级技工学校官网
- 32.广州大学专科
- 33.大连陆军学院,原大连陆军学院校址现在什么是什么学校
- 34.亲们,谁给一份南京大学的研究生招生简章?(河海大学
- 35.他日若遂凌云志全诗及出处
- 36.铜绿的化学式是什么有哪些性质
- 37.「佛山市顺德养正西山学校初中部」往年录取分数线
- 38.公办本科(公办本科和民办本科有什么区别)
- 39.外交学院是名牌大学吗
- 40.往年湖南高考成绩排名一分一段表
- 41.全国有8所烟草院校是哪些(这4所大学门槛低)
- 42.私人垄断资本主义基本概念是私人垄断资本主义
- 43.难以启齿,这8部影片可以一看(性教育适合看的影片)
- 44.美国独立战争的性质爆发战争的原因是什么
- 45.往年东莞市高中排名前十最新
- 46.大朗网络教育(大朗教育)
- 47.往年甘肃省高中排名最好的高中
- 48.逻辑思维训练有哪些方法优秀训练方法推荐
- 49.浙江大学教务管理系统
- 50.人类的动物老师有哪些这属于什么学科
- 51.往年山西高考状元榜_山西历届高考理科状元和文科状元
- 52.往年北京舞蹈学院艺术类招生简章招生人数及专业
- 53.航空最好的5个专业就业前景如何
- 54.太原科技大学怎么样及评价好不好太原科技大学口碑如何
- 55.满招损谦受益这句话的意思是什么出自哪
- 56.舍本逐末发生在什么时期含义是什么
- 57.女孩子首选十大专业什么专业适合女生
- 58.国防生是什么意思指的是什么
- 59.河南省三本学院有哪些2018最新三本院校名单
- 60.往年龙岩高中学校排名榜单龙岩十大优秀高中
- 51.招投标暂定资质是什么意思,大家说说房产暂定资质是什么意思
- 52.武汉华中天地在哪里,躲进武汉这些街角新店
- 53.交通银行保安待遇怎么样,天津交通银行保安人员工资待遇
- 54.华为nova8发布会(华为nova8发布会视频)
- 55.人工智能的三大研究学派,什么是人工智能
- 56.沈阳就业网,就业信息网
- 57.为什么都说质量不好呢,红旗车怎么样
- 58.学校宿舍电表怎么看,智能电表怎么看每天电量
- 59.搞定三星zflip3双卡双待,三星zflip3是双卡双待吗
- 60.手机512gb内存有必要吗,512G手机内存有必要吗
- 61.呼市新苑小区b区在哪里,明年玉泉区这些小区将进行改造
- 62.郫县包小姐在什么地方,消失的郫县/鹅溪
- 63.桦南农村剩的房子怎么解决,小财政大民生扮美诗画桦南
- 64.燎原村什么时候还建好,庭瑞誓拿汉阳燎原村
- 65.往年,年盖恒温库怎么补助,一群用公式和算法战胜市场的恒温动物
- 66.临潼有什么项目,来临潼看空手道项目
- 67.襄城县多少乡镇,叫襄城的地方有两个
- 68.永定下洋风电哪里,乡村振兴丨永定下洋
- 69.哈尔滨大禹智能怎么样,大禹电池真的行吗
- 70.关岭哪里要小工,今题关岭招聘网

