一些主要步骤,构建java环境请自行百度
一、合并 SystemUI.odex 和 少dex的 SystemUI.apk 为完整的 SystemUI.apk 文件。2.3时代,小三 system/app 里只有后缀.apk的系统软件,4.0变成了 .apk+ .odex,要想反编译,必须将两者合并,否则……
1.需要工具:smali和 baksmali
请从此处下载最新版:http://code.google.com/p/smali/downloads/list
2.将手机ROM中 system/framework 中的文件全复制出来,连同下载好的 smali-1.3.3.jar 和 baksmali-1.3.3.jar以及 SystemUI.odex、SystemUI.apk 放到同一文件夹(如D:\dex)
3.分解 odex 文件为 class 文件。命令: java -jar baksmali-1.3.3.jar -x SystemUI.odex,命令完成之后,会生成一个 out 文件夹,里面就是所有的 class 文件。
4.将 class 生成为 classes.dex 文件。命令:java -Xmx512M -jar smali-1.3.3.jar out -o classes.dex(文件在步骤2的文件夹)
5.用压缩软件打开SystemUI.apk,把 classes.dex 拖放进去,至此合并完成(无需签名)。
本步骤同样适用于合并其他 odex和少dex的apk,修改步骤2命令中的.odex文件名即可,合并后记得签名。
二、反编译SystemUI.apk。
1.需要工具:适用于4.0系统上的apktool:http://bbs.angeeks.com/thread-2148503-1-1.html,原来2.3的apktool已经不能用了。
2.把下载好的aapt.exe apktool.bat apktool.jar和手机ROM中 system/framework 中的 framework-res.apk 以及合并好的 SystemUI.apk 放到同一文件夹(如D:\ics_apktool)
3.建立framework-res框架。命令:apktool if framework-res.apk
4.反编译SystemUI.apk。命令:apktool d SystemUI.apk,生成文件夹SystemUI。
5.用记事本打开 SystemUI\res\layout\status_bar.xml,找到android:background="@drawable/status_bar_background" ,改为android:background="#00000000",保存关闭。
6.打开 SystemUI\smali\com\android\systemui\statusbar\StatusBar.smali,查找 new-instance v11, Landroid/view/WindowManager$LayoutParams,把const/16 v16, 0x4 改为 const/16 v16, -0x3 保存关闭。
7.回编译SystemUI.apk。命令:apktool b SystemUI 生成SystemUI.apk(路径:SystemUI\dist),重命名为:S.apk,以便区别。
8.压缩软件打开 SystemUI.apk 和 S.apk ,把 S.apk的resources.arsc 、classes.dex、status_bar.xml 按原路径拖放到 SystemUI.apk。
9.PS SystemUI\res\drawable-hdpi中的statusbar_background.9.png为透明图片(透明度根据个人喜好设置,我设置为23%),按原路径拖放到 SystemUI.apk。
10.把 SystemUI.apk 复制到手机的system/目录下,改权限,移动到system/app下替换原文件,删除SystemUI.odex,重启。
至此,4.0.4状态栏透明完成!

一、合并 SystemUI.odex 和 少dex的 SystemUI.apk 为完整的 SystemUI.apk 文件。2.3时代,小三 system/app 里只有后缀.apk的系统软件,4.0变成了 .apk+ .odex,要想反编译,必须将两者合并,否则……
1.需要工具:smali和 baksmali
请从此处下载最新版:http://code.google.com/p/smali/downloads/list
2.将手机ROM中 system/framework 中的文件全复制出来,连同下载好的 smali-1.3.3.jar 和 baksmali-1.3.3.jar以及 SystemUI.odex、SystemUI.apk 放到同一文件夹(如D:\dex)
3.分解 odex 文件为 class 文件。命令: java -jar baksmali-1.3.3.jar -x SystemUI.odex,命令完成之后,会生成一个 out 文件夹,里面就是所有的 class 文件。
4.将 class 生成为 classes.dex 文件。命令:java -Xmx512M -jar smali-1.3.3.jar out -o classes.dex(文件在步骤2的文件夹)
5.用压缩软件打开SystemUI.apk,把 classes.dex 拖放进去,至此合并完成(无需签名)。
本步骤同样适用于合并其他 odex和少dex的apk,修改步骤2命令中的.odex文件名即可,合并后记得签名。
二、反编译SystemUI.apk。
1.需要工具:适用于4.0系统上的apktool:http://bbs.angeeks.com/thread-2148503-1-1.html,原来2.3的apktool已经不能用了。
2.把下载好的aapt.exe apktool.bat apktool.jar和手机ROM中 system/framework 中的 framework-res.apk 以及合并好的 SystemUI.apk 放到同一文件夹(如D:\ics_apktool)
3.建立framework-res框架。命令:apktool if framework-res.apk
4.反编译SystemUI.apk。命令:apktool d SystemUI.apk,生成文件夹SystemUI。
5.用记事本打开 SystemUI\res\layout\status_bar.xml,找到android:background="@drawable/status_bar_background" ,改为android:background="#00000000",保存关闭。
6.打开 SystemUI\smali\com\android\systemui\statusbar\StatusBar.smali,查找 new-instance v11, Landroid/view/WindowManager$LayoutParams,把const/16 v16, 0x4 改为 const/16 v16, -0x3 保存关闭。
7.回编译SystemUI.apk。命令:apktool b SystemUI 生成SystemUI.apk(路径:SystemUI\dist),重命名为:S.apk,以便区别。
8.压缩软件打开 SystemUI.apk 和 S.apk ,把 S.apk的resources.arsc 、classes.dex、status_bar.xml 按原路径拖放到 SystemUI.apk。
9.PS SystemUI\res\drawable-hdpi中的statusbar_background.9.png为透明图片(透明度根据个人喜好设置,我设置为23%),按原路径拖放到 SystemUI.apk。
10.把 SystemUI.apk 复制到手机的system/目录下,改权限,移动到system/app下替换原文件,删除SystemUI.odex,重启。
至此,4.0.4状态栏透明完成!
