方法一、
通过本教程的修改,你可以实现:
1.屏幕关闭状态下使用音量+—键即可唤醒屏幕,注意是唤醒,也就是点亮屏幕。
2.音量键本身的音量调整功能不被破坏。(目前大部分通过修改QWERTY文件来
实现屏幕唤醒的教程都是以牺牲音量键本身的音量控制功能为前提来进行修改的。)
3.不会出现部分锁屏软件在使用音量键唤醒屏幕时出现的与原生锁屏不兼容(双重解锁一类)问题。
本教程不适用于:
1.嫌麻烦的,即使你是个老鸟
2.使用第三方解锁软件来唤醒屏幕的
3.手机未ROOT(未解锁)
本教程适用于:
1.有耐心看完全文的,即使你是个小白
2.不想使用第三方软件,但无法通过修改QWERTY.KL文件来实现上述功能的玩家。
3.手机必须已经解锁并ROOT过
===============接下来正文=================
操作各步骤时请备份好相关文件以防机子挂掉。本人不对自行修改系统文件带来的各种未知错误负责,请大家修改前谨慎。
准备工具:
1.RE管理器 这个满世界都有下载,本贴不再提供
2.JAVA虚拟机 下载地址http://java.com/zh_CN/download/chrome.jspocale=zh_CN
3.编译工具 下载地址http://smali.googlecode.com/files/smali-1.2.8.jar 下载好改名为smali.jar
4.反编译工具 下载地址http://smali.googlecode.com/files/baksmali-1.2.8.jar 下载好改名为baksmali.jar
5.winrar
正式修改(本教程尽量言简意赅只告诉你应该做什么,原理之类的有兴趣的朋友请自行搜索):
1. 用RE管理器在systemframework路径下提取出android.policy.jar 复制至电脑,注意备份好源文件。
2.用WINRAR在电脑端强制打开android.policy.jar,提取出文件内的classes.dex文件
3.将下载下来的编译与反编译工具、classes.dex文件全部复制到C盘根目录下。
4.进入我的电脑–按住SHIFT键的同时在C盘点击鼠标右键–在弹出的菜单中选择“在此处打开命令窗口”
5.反编译:在命令行C:下输入 baksmali.jar classes.dex -o classes
6.进入C盘,可以看到C盘下多出了一个经过反编译后的文件夹CLASSES
7.在CLASSES文件夹下依次找到点开以下文件夹com-android-internal-policy-impl
8.在IMPL文件夹下找到KeyguardViewMediator.smali文件,右键打开方式选择用记事本打开。
9. 按CTRL+F调出搜索框,输入.method private isWakeKeyWhenKeyguardShowing(I)Z
10.找到并删除switch语句下的
0x18-> :sswitch_5
0x19-> :sswitch_5
这两行,同时保证删除后的其他字符空格位置与之前位置不变。
下面语句一定要和上面语句对齐,其它的不要动,点保存后退出。
11.重编译:操作步骤和第4第5步完全相同,只需要把第5步的命令内容改为smali.jar classes -o out.dex
12.现在你的C盘根目录上会得到一个out.dex的文件,把他重命名为classes.dex
13.用WINRAR把重新编译好的classes.dex放进android.policy.jar文件内,替换掉原文件,注意替换时的压缩方式选择为“存储”,切记。
14.用RE管理器把修改好的android.policy.jar文件替换回原系统文件夹下systemframework
15.修改
android.policy.jar文件的权限为:
√ √ □
√ □ □
√ □ □
16.重启手机,修改完成。已可通过音量键点亮屏幕。
方法二、
音量键唤醒,搜索键改为锁屏,这两个功能我个人觉得挺实用,修改几个文件就可以,不需要借助第三方软件。喜欢的支持下,不喜者无视之。
1,搜索键改为锁屏,长按搜索键弹出电源菜单。
a. 用RE修改/system/usr/keylayout/mxt224_ts_input.kl
找到以下行:
- key 217 SEARCH
[color=rgb(51, 102, 153) !important]复制代码
修改为:
- key 217 POWER
[color=rgb(51, 102, 153) !important]复制代码
b. 重启手机即可生效。
2,修改音量键唤醒(不影响音量键原来功能)
a. 用RE修改/system/usr/keylayout/Generic.kl
找到以下行:
- key 114 VOLUME_DOWN
- key 115 VOLUME_UP
[color=rgb(51, 102, 153) !important]复制代码
修改为:
- key 114 VOLUME_DOWN WAKE_DROPPED
- key 115 VOLUME_UP WAKE_DROPPED
[color=rgb(51, 102, 153) !important]复制代码
b. 从手机或刷机ROM的 /system/framework/ 提取文件:android.policy.jar
c. 用 apktool 反编译 android.policy.jar 文件:
- apktool d android.policy.jar
[color=rgb(51, 102, 153) !important]复制代码
生成文件夹:android.policy.jar.out
注意:
如果执行以上命令出错,请用以下方法:
执行:
- java -jar baksmali-1.3.2.jar android.policy.jar
[color=rgb(51, 102, 153) !important]复制代码
生成out文件夹
再执行:
- java -jar smali-1.3.2.jar out -o classes.dex
[color=rgb(51, 102, 153) !important]复制代码
生成classes.dex文件,用WinRAR打开android.policy.jar 把该文件拖到 android.policy.jar 里面替换原文件。
接着就可以用以下命令反编译了
- apktool d android.policy.jar
[color=rgb(51, 102, 153) !important]复制代码
d. 一层层打开 android.policy.jar.out 文件夹,找到:android.policy.jar.outsmalicomandroidinternalpolicyimplKeyguardViewMediator.smali 文件,打开该文件(用记事本打开即可)。
搜索:.sparse-switch,找到如下行:
- .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
[color=rgb(51, 102, 153) !important]复制代码
把
- 0x18 -> :sswitch_0
- 0x19 -> :sswitch_0
[color=rgb(51, 102, 153) !important]复制代码
这两行删除,并保存文件。
e. 重新编译 android.policy.jar:
- apktool b android.policy.jar.out
[color=rgb(51, 102, 153) !important]复制代码
然后打开文件夹:android.policy.jar.outbuildapk,里面的 classes.dex 就是重新编译生成的。
f. 用 WinRAR(或其他解压软件)打开 android.policy.jar,把上一步生成的 classes.dex 拖进去覆盖原文件。
g. 把修改好的 android.policy.jar 放回手机的 /system/framework/ 目录下覆盖原文件,并修改权限为 644(rw-r–r–)。
或者做成刷机包:打开空白刷机包:Empty.zip,把修改好的 android.policy.jar 文件放到 system/framework/ 目录下。再把Empty.zip刷机包放到手机sdcard,用CWM刷包即可。
h. 重新启动手机,完成。
方法三、
1.先找到你手机系统里的systemframeworkandroid.polic.jar,复制到电脑上。这步可以用91手机助手等.
用WINRAR解压出android.polic.jar,得到classes.dex
2.解包:xp用户请将附件中下载包解压到D盘根目录,(一定要在根目录或要修改批处理,否则不成功).然后将刚才解压得到的classes.dex文件复制到D:classes.dex解封包目录下.(就是附件下载的解压文件目录中).双击解包. bat .
3.如果一切正常,就会在当前目录下新生成一个文件夹。这个文件夹就是刚才反编译后得到的文件,要修改的文件就在里面.各个ROM版本不同,可能下面的目录会有不同,但应该不会有太大的相差.也因此一定要是本机内的android.polic.jar才可以修改.否则容易当机.
4.找到 comandroidinternalpolicyimpl KeyguardViewMediator.smali .用记事本打开本KeyguardViewMediator.smali文件.
打开后,查找到“method private isWakeKeyWhenKeyguardShowing(I)Z”。不会找的人可以用Ctr+F搜索关键词。鼠标往下拖,找到并删除switch语句下的0x18-> :sswitch_5 和 0x19-> :sswitch_5(删除红字部分)
删除后注意:下面语句一定要和上面语句对齐哦,其它的不要动,点保存后退出.
5.修改保存好后,就可以打包dex了。打包前把刚才反编译的目录名改成classes.(一定要改,否则不成功)
6.打包:请双击打包.bat,打包成功,并会在同目录下创建一个out.dex文件,重命名为classes.dex后替换进android.polic.jar文件.替换时,用winrar打开android.polic.jar,把重新打包并重命名的classes.dex拖进WINRAR就可以.选标准压缩就可以了,
7.貌似不用签名也可以,我建议还是签名吧.签名后文件JAR文件重新命名成android.polic.jar文件后复制到手机.systemframework目击录下,修改权限,重启后就可以用音量键唤醒屏幕了.
原文链接:http://bbs.gfan.com/android-7736487-1-1.html
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!