HTC JのSystemUI.apkをdeodexした際のメモです。
BOOTPATHの指定が足りないと以下のエラーが出ます。
Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException:
Could not find superclass Lcom/htc/fusion/fx/MessageListener;
これで詰まってる人がいるようなので、自分が行った方法をメモしておきます。
■必要なもの
・baksmali.jar/smali.jar (1.3.2で試しました)
・zipalign.exe (Android SDKに入ってます)
・7zip (7za以外でもOK)
■作業メモ
1.必要なものを端末からpull
$ mkdir framework
$ adb pull /system/framework ./framework
$ adb pull /system/app/SystemUI.odex
$ adb pull /system/app/SystemUI.apk
2.baksmaliでSystemUI.odexを展開
$ java -Xmx1024m -jar ./baksmali.jar -c :core.jar:core-junit.jar:bouncycastle.jar:\
> ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:\
> HTCDev.jar:HTCExtension.jar:filterfw.jar:com.htc.android.bluetooth.jar:wimax.jar:\
> usbnet.jar:com.orange.authentication.simcard.jar:com.htc.fusion.fx.jar:\
> com.htc.lockscreen.fusion.jar -d framework -x SystemUI.odex -o systemui
良く分からないのでBOOTPATHは全部追加。
改行の説明とかは、deodex化するような人はわかるだろうから省略。
★上記BOOTPATHは、1.31.920.1 の場合です。バージョンが変わると
パスも変わるので実際は、/init.rcのBOOTCLASSPATHを確認して指定して下さい。
3.dex化
$ java -Xmx1024m -jar ./smali.jar systemui -o classes.dex
4.classes.dexの統合
元々の classes.dex を削除して上書き。
7zipで SystemUI.apk 開いて、Drop&DrugでもOK
$ 7za d -tzip SystemUI.apk classes.dex
$ 7za a -tzip SystemUI.apk classes.dex
5.Zip alignment
$ zipalign.exe -v 4 SystemUI.apk zip_SystemUI.apk
Verifying alignment of zip_SystemUI.apk (4)...
54 META-INF/MANIFEST.MF (OK - compressed)
44743 META-INF/CERT.SF (OK - compressed)
91092 META-INF/CERT.RSA (OK - compressed)
92286 AndroidManifest.xml (OK - compressed)
:
:
$ mv SystemUI.apk SystemUI.apk.old
$ mv zip_SystemUI.apk SystemUI.apk
これでdeodex化したSystemUI.apk完成
6.CWMでファイル置き換え
元のファイルをrenameしたりmvしたりしてバックアップ。
deodex化したSystemUI.apkをいれて終了
$ adb shell mount /system
$ adb shell cp -pr /system/app/SystemUI.apk /system/app/SystemUI.apk.orig
$ adb shell mv /system/app/SystemUI.odex /system/app/SystemUI.odex.orig
$ adb push SystemUI.apk /system/app/
3328 KB/s (3508667 bytes in 1.029s)
$ adb shell chmod 644 /system/app/SystemUI.apk
再起動して、正常に起動したら完了。
★こちらで作成した、SystemUI.apkを置いておきます。⇒SystemUI.zip (1.31.920.1)
2012/10/10更新 2.05.970.3版はこちら⇒ SystemUI-2.05.970.3.zip