If you are an amateur/aficionado modder or themer, this is for you:
Some people are still having problems de/compiling system apks on Samsung ICS builds, most of the errors arising are related to "bad magic values". I googled a little and managed to find a modded Apktool. I’ve tested it and it has worked fine so far with many apks (e.g. framework-res, TouchWiz30Launcher, etc).
I packed all necessary files below, including new aapt from Android SDK 4.0.3. As you may already know, you need latest JDK for this to work.
*** NOTICE *** There are some apks like SystemUI that need special treatment. If errors are found when decompiling an apk with ICS Apktool, you have to try decompiling it using the Original Apktool which I've just uploaded, then for recompiling it you need to use the ICS Apktool (if you run the Original Apktool to recompile, you will probably encounter errors). Remember, both packages contain different aapt executables so it is recommended making two separate folders for each zip content.
Credit goes to Brut.all who developed the original Apktool and gcrut…@gmail.com who modded it.
NOTE: This thread is not intended to be a guide for modding or theming. If you want to start messing with apks, there are many tutorials out there.
Samsung Galaxy S III (1206) * WanamLite Rom XXELK4* Siyah Kernel * XXELKC Modem Samsung Galaxy Note 10.1 WiFi * Stock UEALI3
this is not work for me... got error when trying to decompile SystemUI.apk:
Code:
Exception in thread "main" java.lang.RuntimeException: bad magic value: 64 65 78 0a 30 33 35 00
at org.jf.dexlib.DexFile.<init>(DexFile.java:377)
at org.jf.dexlib.DexFile.<init>(DexFile.java:274)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:44)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
this is not work for me... got error when trying to decompile SystemUI.apk:
Code:
Exception in thread "main" java.lang.RuntimeException: bad magic value: 64 65 78 0a 30 33 35 00
at org.jf.dexlib.DexFile.<init>(DexFile.java:377)
at org.jf.dexlib.DexFile.<init>(DexFile.java:274)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:44)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
any solution?
Delete classes.dex from SystemUI.apk before decompiling. If you want to edit classes.dex use smali/baksmali 1.3.2.
this is not work for me... got error when trying to decompile SystemUI.apk:
Code:
Exception in thread "main" java.lang.RuntimeException: bad magic value: 64 65 78 0a 30 33 35 00
at org.jf.dexlib.DexFile.<init>(DexFile.java:377)
at org.jf.dexlib.DexFile.<init>(DexFile.java:274)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:44)
at brut.androlib.src.SmaliDecoder.decode(SmaliDecoder.java:33)
at brut.androlib.Androlib.decodeSourcesSmali(Androlib.java:68)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:85)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
any solution?
Do the following:
Decompile SystemUI using "Original Apktool" (already uploaded to the OP). If you try to recompile the apk with the Original Apktool you might find errors so you have to recompile it but this time using the "ICS Apktool". I hope this work for you.
Samsung Galaxy S III (1206) * WanamLite Rom XXELK4* Siyah Kernel * XXELKC Modem Samsung Galaxy Note 10.1 WiFi * Stock UEALI3
Delete classes.dex from SystemUI.apk before decompiling. If you want to edit classes.dex use smali/baksmali 1.3.2.
I am succeed decompile it without classes.dex, searching for baksmali now...
-- edit ---
I've tried, but get the same error as below....
Quote:
Originally Posted by xtremesv
Do the following:
Decompile SystemUI using "Original Apktool" (already uploaded to the OP). If you try to recompile the apk with the Original Apktool you might find errors so you have to recompile it but this time using the "ICS Apktool". I hope this work for you.
I am able to decompile it with original apk tool but when I tried to recompile it using ICS apktool i got this error :
Code:
E:\android\Lab\SystemUI\res\values\public.xml:318: error: Public symbol drawable/tw_stat_sys_6_level_signal_3 declared h
erbrut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\DOCUME~1\edp\LOCA
LS~1\Temp\APKTOOL4562847521524937175.tmp, -I, C:\Documents and Settings\edp\apktool\framework\1.apk, -S, E:\android\Lab\
SystemUI\res, -M, E:\android\Lab\SystemUI\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
at brut.androlib.Androlib.buildResources(Androlib.java:248)
at brut.androlib.Androlib.build(Androlib.java:171)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\DOCUME~1\edp\LOCALS~1\Temp\APKTOOL4562847
521524937175.tmp, -I, C:\Documents and Settings\edp\apktool\framework\1.apk, -S, E:\android\Lab\SystemUI\res, -M, E:\and
roid\Lab\SystemUI\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
... 6 more
e is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:319: error: Public symbol drawable/tw_stat_sys_6_level_signal_3_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:320: error: Public symbol drawable/tw_stat_sys_6_level_signal_4 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:321: error: Public symbol drawable/tw_stat_sys_6_level_signal_4_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:322: error: Public symbol drawable/tw_stat_sys_6_level_signal_5 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:323: error: Public symbol drawable/tw_stat_sys_6_level_signal_5_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:324: error: Public symbol drawable/tw_stat_sys_6_level_signal_6 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:325: error: Public symbol drawable/tw_stat_sys_6_level_signal_6_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:99: error: Public symbol drawable/tw_stat_sys_battery_not_charge declared
here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:326: error: Public symbol drawable/tw_stat_sys_signal_null declared here i
s not defined.
E:\android\Lab\SystemUI\res\values\public.xml:327: error: Public symbol drawable/tw_status_bar_close_on declared here is
not defined.
E:\android\Lab\SystemUI\res\values\public.xml:101: error: Public symbol drawable/zzz_stat_vt_signal declared here is not
defined.
E:\android\Lab\SystemUI\res\values\public.xml:102: error: Public symbol drawable/zzz_stat_vt_signal_null declared here i
s not defined.
I am able to decompile it with original apk tool but when I tried to recompile it using ICS apktool i got this error :
Code:
E:\android\Lab\SystemUI\res\values\public.xml:318: error: Public symbol drawable/tw_stat_sys_6_level_signal_3 declared h
erbrut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\DOCUME~1\edp\LOCA
LS~1\Temp\APKTOOL4562847521524937175.tmp, -I, C:\Documents and Settings\edp\apktool\framework\1.apk, -S, E:\android\Lab\
SystemUI\res, -M, E:\android\Lab\SystemUI\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
at brut.androlib.Androlib.buildResources(Androlib.java:248)
at brut.androlib.Androlib.build(Androlib.java:171)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\DOCUME~1\edp\LOCALS~1\Temp\APKTOOL4562847
521524937175.tmp, -I, C:\Documents and Settings\edp\apktool\framework\1.apk, -S, E:\android\Lab\SystemUI\res, -M, E:\and
roid\Lab\SystemUI\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
... 6 more
e is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:319: error: Public symbol drawable/tw_stat_sys_6_level_signal_3_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:320: error: Public symbol drawable/tw_stat_sys_6_level_signal_4 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:321: error: Public symbol drawable/tw_stat_sys_6_level_signal_4_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:322: error: Public symbol drawable/tw_stat_sys_6_level_signal_5 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:323: error: Public symbol drawable/tw_stat_sys_6_level_signal_5_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:324: error: Public symbol drawable/tw_stat_sys_6_level_signal_6 declared h
ere is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:325: error: Public symbol drawable/tw_stat_sys_6_level_signal_6_fully decl
ared here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:99: error: Public symbol drawable/tw_stat_sys_battery_not_charge declared
here is not defined.
E:\android\Lab\SystemUI\res\values\public.xml:326: error: Public symbol drawable/tw_stat_sys_signal_null declared here i
s not defined.
E:\android\Lab\SystemUI\res\values\public.xml:327: error: Public symbol drawable/tw_status_bar_close_on declared here is
not defined.
E:\android\Lab\SystemUI\res\values\public.xml:101: error: Public symbol drawable/zzz_stat_vt_signal declared here is not
defined.
E:\android\Lab\SystemUI\res\values\public.xml:102: error: Public symbol drawable/zzz_stat_vt_signal_null declared here i
s not defined.
what's going wrong here?
Take into account that both packages contents must be in separate folders to retain their respective aapt file which is different for each one. The best way to do this is to decompile SystemUI with Original Apktool then take the generated SystemUI folder and copy it into the ICS Apktool folder and recompile after your modding is done.
Samsung Galaxy S III (1206) * WanamLite Rom XXELK4* Siyah Kernel * XXELKC Modem Samsung Galaxy Note 10.1 WiFi * Stock UEALI3
Take into account that both packages contents must be in separate folders to retain their respective aapt file which is different for each one. The best way to do this is to decompile SystemUI with Original Apktool then take the generated SystemUI folder and copy it into the ICS Apktool folder and recompile after your modding is done.
too bad... stil got same error... I'm really confused....
I've solved my problems with apktool v1.4.3 and ICS-JPQ using the original aapt file of the last SDK/plattform-tools and not the aapt file provided by apktool. Now I can decompile/recompile whatever ICS file (at least for now).
Tested with framework-res.apk, SystemUI.apk, Settings.apk, Phone.apk and android.policy.jar
This is entry number one in a series of articles about tools for app developers, … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?