[MODDING/THEMING] Apktool for ICS apks

xtremesv

Senior Member
Dec 18, 2010
103
88
0
San Salvador
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.
 
Last edited:

i04055

Senior Member
Jan 15, 2011
419
41
0
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?
 
S

sileshnair

Guest
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.
 

xtremesv

Senior Member
Dec 18, 2010
103
88
0
San Salvador
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.
 

i04055

Senior Member
Jan 15, 2011
419
41
0
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....

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.
what's going wrong here?
 
Last edited:

xtremesv

Senior Member
Dec 18, 2010
103
88
0
San Salvador
I've tried, but get the same error as below....

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.
 

i04055

Senior Member
Jan 15, 2011
419
41
0
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....
 

intronauta

Senior Member
Aug 29, 2009
281
106
0
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

my2cents
 
  • Like
Reactions: dyulay

xtremesv

Senior Member
Dec 18, 2010
103
88
0
San Salvador
too bad... stil got same error... I'm really confused....
The last error you posted seemed related to bad version of aapt.exe. That's why I recommended using both Apktools one for decompiling and the other for rebuilding, that way is how it has worked in my case.

I wish I could've helped you more.
 

toinktoink

Senior Member
Feb 4, 2011
218
30
0
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

my2cents
this method work for me in the past, while decompiling MIUI's framework, now, can't seem to make it work using stock rom's framework, tried using different version of apktool and apk manager, and the one in this thread, to no avail. im also having that aapt problem
 

titooo7

Senior Member
Sep 29, 2010
1,687
4,466
153
London
It's really a pain in the ass to find a way to decompile/compile any ics apk file, so hope the tips suggested in this thread work...

Sent from my GT-I9100 using Tapatalk 2 Beta-2
 

Tiffany84

Recognized Themer
Jul 27, 2010
6,280
3,323
0
Here is my ApkManager, it's based on ApkManager 4.9 and contain an updated aapt and hacked Apktool 1.4.3 (new magic values) with updated smali (thanks to Ficeto).

I hope this will help you, it should work for all current ICS apps.
I just tried de-compiling and re-compiling the systemui.apk, which is the only apk I've had issues with since making the transfer to ICS and it worked perfect using this. Thank you SOOO much!!
 

cyfgeorge

Senior Member
Sep 23, 2011
62
26
0
Hong Kong
I just tried de-compiling and re-compiling the systemui.apk, which is the only apk I've had issues with since making the transfer to ICS and it worked perfect using this. Thank you SOOO much!!
Hi, Tiffany. I have trouble when I decompile and compile SystemUI.apk. Can you show me the step? Do I need to pull framework-res.apk and twframework-res.apk first and run "apktool if" command?

Sent from my GT-I9100 using XDA
 
S

sileshnair

Guest
Hi, Tiffany. I have trouble when I decompile and compile SystemUI.apk. Can you show me the step? Do I need to pull framework-res.apk and twframework-res.apk first and run "apktool if" command?

Sent from my GT-I9100 using XDA
Yes, only framework-res.apk.
 

m1keyb

Senior Member
Dec 23, 2011
399
247
0
Here is my ApkManager, it's based on ApkManager 4.9 and contain an updated aapt and hacked Apktool 1.4.3 (new magic values) with updated smali (thanks to Ficeto).

I hope this will help you, it should work for all current ICS apps.

I'm struggling with this could someone help please? I'm getting the following error when compiling framework-res

--------------------------------------------------------------------------
|24/03/2012 -- 17:09:19.00|
--------------------------------------------------------------------------
'mode' is not recognized as an internal or external command,
operable program or batch file.
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values\plurals.xml:79: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values\plurals.xml:79: error: Found tag </item> where </plurals> is expected
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values-en-rGB\plurals.xml:79: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values-en-rGB\plurals.xml:79: error: Found tag </item> where </plurals> is expected
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values-en-rUS\plurals.xml:79: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res\values-en-rUS\plurals.xml:79: error: Found tag </item> where </plurals> is expected
aapt: warning: string 'policydesc_allow_htmlemail' has no default translation in C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res; found: en_US
aapt: warning: string 'policylab_allow_htmlemail' has no default translation in C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res; found: en_US
aapt: warning: string 'wifi_p2p_pbc_go_negotiation_request_message' has no default translation in C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res; found: en_GB
aapt: warning: string 'wifi_p2p_pin_display_message' has no default translation in C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res; found: en_GB
aapt: warning: string 'wifi_p2p_pin_go_negotiation_request_message' has no default translation in C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res; found: en_GB
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Mike\AppData\Local\Temp\APKTOOL4577066397448428082.tmp, -x, -S, C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res, -M, C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\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:\Users\Mike\AppData\Local\Temp\APKTOOL4577066397448428082.tmp, -x, -S, C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\res, -M, C:\Android\android-sdk\Apk_Manager_ICS\other\..\projects\framework-res.apk\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
... 6 more
The system cannot find the file specified.
'7za' is not recognized as an internal or external command,
operable program or batch file.
'7za' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the file specified.
Here's the log from decompiling

--------------------------------------------------------------------------
|24/03/2012 -- 17:01:57.71|
--------------------------------------------------------------------------
'mode' is not recognized as an internal or external command,
operable program or batch file.
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
Could Not Find C:\Android\android-sdk\Apk_Manager_ICS\place-apk-here-for-modding\../place-apk-here-for-modding/signedframework-res.apk
Could Not Find C:\Android\android-sdk\Apk_Manager_ICS\place-apk-here-for-modding\../place-apk-here-for-modding/unsignedframework-res.apk
I: Loading resource table...
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
I: Done.
I: Copying assets and libs...