分享到:
发表于 2013-07-25 22:48:08 楼主 | |
回复赚个金币啊 第一步 添加字符串 首先反编译framework-res.apk 打开valuesstrings.xml,然后在里面加上
复制代码 保存,关闭 第二步 打开valuespublic.xml,分配刚刚加上去的字符串id 具体做法是,翻到文件最后,查看最后一个字符串的id,假设为10403c2,搜索10403c3,看看是否已经有此id了,没有的话,添加代码 复制代码 如果有,可以继续搜10403c4······ 第三步 现在可以在图片资源文件夹(resdrawable-hdpi,resdrawable-mdpi,resdrawable-ldpi)加上自己喜欢的图标了 为了方便,以下规定图标名字为reboot.png recovery.png download.png 实际上,大家可以自己命名图标名字 然后 为刚刚加上的图标和刚刚分配的id连接起来 打开valuespublic.xml,继续添加代码 复制代码 保存,关闭 现在framework-res.apk文件弄好了,剩下的编译就不用多说了 接下来弄另外一个文件framework.jar 目的是使关机选项有作用,能重启 反编译framework.jar(方法自己 百度 ) 打开comandroidinternalappShutdownThread.smali 在第37行添加代码
复制代码 然后,转到第1463行,注意,此行前一个代码应该是"invoke-static {}, Landroid/os/Power;->shutdown()V" 在此行添加代码
复制代码 然后在1477行
复制代码 继续添加代码
复制代码 保存,关闭 之后将framework.jar编译回来(方法百度) 接下来我们要在电源菜单中添加选项 反编译android.policy.jar 打开comandroidinternalpolicyimplGlobalActions.smali 第一件事就是将数组长度增加3 方法是将第431行的代码
复制代码 改为
复制代码 然后,在第457行,也就是在 aput-object v2, v0, v1 之后 添加代码
复制代码 确保id与刚刚在framework-res.apk中添加的id名称一致 保存,关闭 接下来确保你添加的重启选项可用 复制GlobalActions$3.smali 并且重命名为GlobalActions$7.smali 打开GlobalActions$7.smali 替换所有GlobalActions$3.smali 的实例 然后转到52行,52行前面的代码应该是 "invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V" 添加代码
复制代码 保存,关闭 接下来 复制GlobalActions$3.smali 并命名为GlobalActions$9.smali 打开GlobalActions$9.smali 替换所有GlobalActions$3.smali 实例 同样转到第52行,52行前面应该是"invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V 添加代码
复制代码 保存,关闭 将android.policy.jar编译回来 ok,试试效果吧 评分:+Z金豆 10 已有 1人参与评分 |
|
个性签名:无
|
发表于 2013-07-25 22:57:25 1楼 | |
第一步 添加字符串 首先反编译framework-res.apk 打开valuesstrings.xml,然后在里面加上 Recovery Download Reboot 复制代码 保存,关闭 第二步 打开valuespublic.xml,分配刚刚加上去的字符串id 具体做法是,翻到文件最后,查看最后一个字符串的id,假设为10403c2,搜索10403c3,看看是否已经有此id了,没有的话,添加代码 复制代码 如果有,可以继续搜10403c4······ 第三步 现在可以在图片资源文件夹(resdrawable-hdpi,resdrawable-mdpi,resdrawable-ldpi)加上自己喜欢的图标了 为了方便,以下规定图标名字为reboot.png recovery.png download.png 实际上,大家可以自己命名图标名字 然后 为刚刚加上的图标和刚刚分配的id连接起来 打开valuespublic.xml,继续添加代码 复制代码 保存,关闭 现在framework-res.apk文件弄好了,剩下的编译就不用多说了 接下来弄另外一个文件framework.jar 目的是使关机选项有作用,能重启 反编译framework.jar(方法自己 百度 ) 打开comandroidinternalappShutdownThread.smali 在第37行添加代码 .field public static mReboot:I 复制代码 然后,转到第1463行,注意,此行前一个代码应该是"invoke-static {}, Landroid/os/Power;->shutdown()V" 在此行添加代码 sget v1, Lcom/android/internal/app/ShutdownThread;->mReboot:I const/4 v2, 0x1 if-eq v1, v2, :reboot const/4 v2, 0x2 if-eq v1, v2, :rebootRecovery const/4 v2, 0x3 if-eq v1, v2, :rebootDownload 复制代码 然后在1477行 .line 531 invoke-static {}, Landroid/os/Power;->shutdown()V .line 532 return-void 复制代码 继续添加代码 :reboot const-string v4, "now" invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V return-void :rebootRecovery const-string v4, "recovery" invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V return-void :rebootDownload const-string v4, "download" invoke-static {v4}, Landroid/os/Power;->reboot(Ljava/lang/String;)V return-void 复制代码 保存,关闭 之后将framework.jar编译回来(方法百度) 接下来我们要在电源菜单中添加选项 反编译android.policy.jar 打开comandroidinternalpolicyimplGlobalActions.smali 第一件事就是将数组长度增加3 方法是将第431行的代码 const/4 v0, 0x3 new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action; 复制代码 改为 const/4 v0, 0x6 new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action; 复制代码 然后,在第457行,也就是在 aput-object v2, v0, v1 之后 添加代码 const/4 v1, 0x3 new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$7; const v3, 0x10803aa # reboot icon resource id const v4, 0x10403c5 # reboot string resource id invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;->(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 const/4 v1, 0x4 new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$8; const v3, 0x10803ab # recovery icon resource id const v4, 0x10403c3 # recovery string resource id invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;->(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 const/4 v1, 0x5 new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9; const v3, 0x10803ac # download icon resource id const v4, 0x10403c4 # download string resource id invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$9;->(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 复制代码 确保id与刚刚在framework-res.apk中添加的id名称一致 保存,关闭 接下来确保你添加的重启选项可用 复制GlobalActions$3.smali 并且重命名为GlobalActions$7.smali 打开GlobalActions$7.smali 替换所有GlobalActions$3.smali 的实例 然后转到52行,52行前面的代码应该是 "invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V" 添加代码 const/4 v2, 0x1 sput v2, Lcom/android/internal/app/ShutdownThread;->mReboot:I 复制代码 保存,关闭 接下来 复制GlobalActions$3.smali 并命名为GlobalActions$9.smali 打开GlobalActions$9.smali 替换所有GlobalActions$3.smali 实例 同样转到第52行,52行前面应该是"invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V 添加代码 const/4 v2, 0x3 sput v2, Lcom/android/internal/app/ShutdownThread;->mReboot:I 复制代码 保存,关闭 将android.policy.jar编译回来 ok,试试效果吧 |
|
发表于 2013-07-26 14:28:07 2楼 | |
![]() |
|
发表于 2013-10-20 21:58:18 3楼 | |
有成品吗 ~ 好复杂啊 | |
发表于 2014-02-06 20:02:37 4楼 | |
太有深度了,完全不懂原理,只知道改法 | |
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见