Nexus S ICS4.0.4搜索键锁屏音量键唤醒完全释放电源键

  • A+
所属分类:随笔分享
摘要

标题有点长,不过没办法,很多人都是习惯于搜索搜索键锁屏或一键锁屏,或者是音量键唤醒或开屏,抑或是完全释放电源键之类,只好全部标于标题中,以便搜索。相对对于手机控来说,电源键应该是用得最多的一个键了,有事没事拿手机玩玩。用得多自然出故障的概率也大,所以本文介绍如何彻底释放拟的电源键,前提当然是不需要通过第三方软件来实现,否则,意义自然不大。当然,如果坚持认为电源键本来就是常用键,所以没必要换的童鞋可以绕行了,因为我也无可奈何。这里介绍的只是提供另一种锁屏、唤醒屏幕的方法,至于是否一定要使用,就看个人喜好了,毕竟本身的功能键都不会受到影响(搜索键除外,因为用处较少,所以只好牺牲它了)。

标题有点长,不过没办法,很多人都是习惯于搜索搜索键锁屏或一键锁屏,或者是音量键唤醒或开屏,抑或是完全释放电源键之类,只好全部标于标题中,以便搜索。相对对于手机控来说,电源键应该是用得最多的一个键了,有事没事拿手机玩玩。用得多自然出故障的概率也大,所以本文介绍如何彻底释放拟的电源键,前提当然是不需要通过第三方软件来实现,否则,意义自然不大。当然,如果坚持认为电源键本来就是常用键,所以没必要换的童鞋可以绕行了,因为我也无可奈何。这里介绍的只是提供另一种锁屏、唤醒屏幕的方法,至于是否一定要使用,就看个人喜好了,毕竟本身的功能键都不会受到影响(搜索键除外,因为用处较少,所以只好牺牲它了)。

言归正传,本法只测试于Nexus S(i9020A),原生4.0.4系统(非OTA,手刷deodexed版本),理论上适用于其它Nexus S手刷4.0.4用户。前提是电脑已装java并配置好环境变量,手机已root,会改权限。

一、搜索键改为锁屏 长按搜索键弹出电源菜单

1、用RE管理器编辑模式打开/system/usr/keylayout/cypress-touchkey.kl文件,找到其中的:

[code]key 217 SEARCH VIRTUAL[/code]

修改成:

[code]key 217 POWER VIRTUAL[/code]

保存退出后,再用RE修改其权限为644(rw-r--r--)。

2、重启手机即可。

二、音量键唤醒屏幕(音量键开屏) (不影响原来功能)

1、用RE管理器编辑模式打开/system/usr/keylayout/Generic.kl找到其中的:

[code]key 114 VOLUME_DOWN
key 115 VOLUME_UP[/code]

修改为:

[code]key 114 VOLUME_DOWN WAKE_DROPPED
key 115 VOLUME_UP WAKE_DROPPED[/code]

2、从手机或刷机ROM的 /system/framework/ 提取文件:android.policy.jar

3、用apktool反编译android.policy.jar文件:

[code]apktool d android.policy.jar[/code]

生成文件夹:android.policy.jar.out

注意:

如果执行以上命令出错,请用以下方法:

用baksmali反编译文件

[code]java -jar baksmali-1.3.2.jar android.policy.jar[/code]

生成out文件夹

重新编译

[code]java -jar smali-1.3.2.jar out -o classes.dex[/code]

生成classes.dex文件,用WinRAR(或其他解压软件)打开android.policy.jar 把该文件拖到android.policy.jar里面替换原文件。

接着就可以用以下命令反编译了

[code]apktool d android.policy.jar[/code]

4、一层层打开android.policy.jar.out文件夹,找到:android.policy.jar.outsmalicomandroidinternalpolicyimplKeyguardViewMediator.smali文件,打开该文件(用notepad++或记事本打开即可)。

搜索:.sparse-switch,找到如下行:
[code] .sparse-switch
0x18 -> :sswitch_0
0x19 -> :sswitch_0
0x1b -> :sswitch_1
0x4f -> :sswitch_1
0x55 -> :sswitch_1
0x56 -> :sswitch_1
0x57 -> :sswitch_1
0x58 -> :sswitch_1
0x59 -> :sswitch_1
0x5a -> :sswitch_1
0x5b -> :sswitch_1
0x7e -> :sswitch_1
0x7f -> :sswitch_1
0x82 -> :sswitch_1
0xa4 -> :sswitch_0[/code]


[code]0x18 -> :sswitch_0
0x19 -> :sswitch_0[/code]

这两行删除,并保存文件。

5、重新编译android.policy.jar:

[code]apktool b android.policy.jar.out[/code]

然后打开文件夹:android.policy.jar.outbuildapk,里面的classes.dex就是重新编译生成的。

6、用 WinRAR(或其他解压软件)打开 android.policy.jar,把上一步生成的classes.dex拖进去覆盖原文件。

7、把修改好的android.policy.jar放回手机的/system/framework/目录下覆盖原文件,并修改权限为644(rw-r--r--);或者做成刷机包:打开空白刷机包:Empty.zip,把修改好的 android.policy.jar 文件放到 system/framework/ 目录下。再把Empty.zip刷机包放到手机sdcard,用CWM刷包即可。

8、重启手机即可。

部分内容来自机锋网,得益于kangvip兄指点、修正。

附:

1、empty刷机包(去掉.jpg):empty

2、baksmali工具下载:http://code.google.com/p/smali/downloads/list

3、apktool工具下载:http://code.google.com/p/android-apktool/downloads/list

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • hai hai 0

      我觉得把搜索键改为打开历史记录很方便啊,在galaxy nexus 上体验很好,即点即开。但是我不会修改,不知道能否写个教程,或者做个zip