楼主: liukai516

[ROM相关] 『盛悦首发』ShenDu OS-For-Vega A850发布!已上归属补丁!

 火.. [复制链接]
发表于 2013-6-11 10:45:00 | 显示全部楼层
不管东西咋样 还是先谢谢了
发表于 2013-6-11 11:20:29 | 显示全部楼层
支持楼主,我以前用P990的时候那边大神移植的深度也不能关机,后面解决了,有时间我去那边论坛看看方法,到时候借鉴一下看可不可以修复,不过我还是期待有基于4.1系统的第三方系统。
发表于 2013-6-11 11:30:00 | 显示全部楼层
一、修改framework-res.apk


2、打开res\values\strings.xml,在最下面添加:

<string name="reboot">Reboot</string>
<string name="recovery">Recovery</string>
<string name="bootloader">Bootloader</string>

3、打开res\values-zh-rCN\strings.xml,在最下面添加:

<string name="reboot">重启</string>
<string name="recovery">重启至Recovery</string>
<string name="bootloader">重启至Bootloader</string>

4、重新编译framework-res为framework-res-new.apk,解出resources.arsc以不压缩的形式替换到原版framework-res.apk中,然后将三张图片加入到相应位置。
二、修改android.policy.jar
1、打开com\android\internal\policy\impl\GlobalActions.smali文件,在

.method private createDialog()Landroid/app/AlertDialog;

范围内(电源选项)查找

[Lcom/android/internal/policy/impl/GlobalActions$Action;

找到后修改为:

const/4 v0, 0x4

new-array v0, v0, [Lcom/android/internal/policy/impl/GlobalActions$Action;

注:0x4表示电源选项中有4个菜单,可修改为自己需要的条目数量。


2、

const/4 v1, 0x0

new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$4;

const v3,0x1080030# 所对应的图标

const v4,0x104011a# 所对应的文字

invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$4;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

aput-object v2, v0, v1

此为一个完整的菜单命令。一般有多个,可改变它们的顺序、亦可增加或删减。
注:0x1080030在framework-res\res\values\public.xml中所对应的数值为:0x01080030。
一般修改的话复制关机的那条命令修改,修改的地方为上面代码红色部分。
3、这段代码最后总的结尾为:

invoke-static {v0}, Lcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;

move-result-object v0

iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItemsjava/util/ArrayList;

所以添加命令的时候一定要注意加在上一个代码的aput-object v2, v0, v1后面和总结尾的前面。

4、将GlobalActions$4.smali(关机所对应的那个文件)复制三份,分别命名为:GlobalActions$8.smali、

GlobalActions$9.smali、GlobalActions$10.smali(命名规则是:GlobalActions$xx.smali,“xx-1”为最后一个数

字)。

5、以修改GlobalActions$8.smali为例说明:

(1)打开后替换GlobalActions$4为GlobalActions$8,一共三处。

(2)找到:
invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
修改为: (重启)
const-string v2, "now"

invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
修改为: (重启到recovery)
const-string v2, "recovery"

invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
修改为: (重启到bootloader)
const-string v2, "bootloader"

invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
注:有的机器重启到bootloader命令为download,例如三星的机器。
要使用ANSI编码



6、打包
java -jar smali.jar 1132 -o classes.dex
7、刷入即可。
如果为odex化的rom修改方法如下:
1、解包android.policy.odex
复制/system/framework目录下的所有文件到smali文件夹下(可用adb命令)
然后执行:
java -Xmx1024m -jar baksmali.jar -c :core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -x android.policy.odex
得到out目录
修改过程同上。
2、打包:
java -Xmx1024m -jar smali.jar out -o classes.dex
3、用winrar打开android.policy.jar把得到的classes.dex拖放进去。
4、把dexopt-wrapper上传到手机,并给权限
adb push dexopt-wrapper /system/bin
adb shell chmod 755 /system/bin/dexopt-wrapper

5、把android.policy.jar传送到手机/sdcard/

adb push android.policy.jar /sdcard/android.policy.jar 6、然后执行以下命令:
adb shell
busybox mount -o remount,rw /system
busybox cp -f /system/framework/android.policy.jar /system/framework/android.policy.jar.bak
busybox cp -f /system/framework/android.policy.odex /system/framework/android.policy.odex.bak
busybox cp -f /sdcard/android.policy.jar /system/framework/android.policy.jar
rm /system/framework/android.policy.odex
dexopt-wrapper /system/framework/android.policy.jar /system/framework/android.policy.odex /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
busybox dd if=/system/framework/android.policy.odex.bak of=/system/framework/android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
busybox cp -f /system/framework/android.policy.jar.bak /system/framework/android.policy.jar
rm /system/framework/android.policy.jar.bak
rm /system/framework/android.policy.odex.bak

reboot
命令解释:
busybox dd if=/system/framework/android.policy.odex.bak of=/system/framework/android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

意思为复制android.policy.odex.bak中的签名到android.policy.odex中
这是我从P990论坛找到的修复电源键不能关机的BUG方法,给大神参考参考。
发表于 2013-6-11 11:43:54 | 显示全部楼层
支持支持支持!!
发表于 2013-6-11 12:33:01 | 显示全部楼层
fghfjfdjfdjfdjdfjdf
发表于 2013-6-11 12:45:37 来自手机 | 显示全部楼层
支持一个   
 楼主| 发表于 2013-6-11 12:48:16 | 显示全部楼层
dingjiangliu17 发表于 2013-6-11 11:30
一、修改framework-res.apk

辛苦了......试试
发表于 2013-6-11 13:49:21 | 显示全部楼层
dfvpwHJG ;'jy;lwJ G;LE
发表于 2013-6-11 13:59:30 | 显示全部楼层
绝世好文,不得不顶
发表于 2013-6-11 14:13:42 | 显示全部楼层
降回4.0之后刷这个包卡在第一屏不动,什么情况?你的另一个rom也是.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
关于盛悦|手机版|小黑屋|盛悦网

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|粤ICP备12017825号

在本版发帖
关注公众号
QQ客服返回顶部