MiCode / patchrom

Use disassemble/assemble technology to porting miui to misc android devices
http://micode.net/forum-55-1.html
490 stars 370 forks source link

problem in decompiling miui framework (framework-miui-res.apk)[SOLVED] #44

Closed sijav closed 11 years ago

sijav commented 11 years ago

Hey guys, I'm having a funny problem in compiling miui framework with apktool, here it is:

apktool b out/framework-miui-res out/framework-miui-res.apk W: Could not find sources I: Checking whether resources has changed... I: Building resources... invalid resource directory name: /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res/drawable-largeui-hdpi invalid resource directory name: /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res/values-largeui-xhdpi invalid resource directory name: /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res/drawable-largeui-xhdpi invalid resource directory name: /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res/values-largeui-hdpi Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL8916500702804855339.tmp, -x, -I, /home/sijav/apktool/framework/1.apk, -I, /home/sijav/apktool/framework/2.apk, -I, /home/sijav/apktool/framework/3.apk, -I, /home/sijav/apktool/framework/4.apk, -I, /home/sijav/apktool/framework/5.apk, -S, /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res, -M, /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/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, /tmp/APKTOOL8916500702804855339.tmp, -x, -I, /home/sijav/apktool/framework/1.apk, -I, /home/sijav/apktool/framework/2.apk, -I, /home/sijav/apktool/framework/3.apk, -I, /home/sijav/apktool/framework/4.apk, -I, /home/sijav/apktool/framework/5.apk, -S, /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/res, -M, /home/sijav/Desktop/patchrom/nypone/out/framework-miui-res/AndroidManifest.xml] at brut.util.OS.exec(OS.java:83) at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191) ... 6 more '''

I used both miui appt and googles! and If I use the latest google apktool.jar I getting this error => Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean Guys help me please!

sijav commented 11 years ago

I got no answer! but still have problems in even decompiling android.policy

build out/android.policy.jar... /home/sijav/Desktop/patchrom/tools/add_miui_smail.sh >/dev/null out/android.policy_miui out/android.policy /home/sijav/Desktop/patchrom/tools/apktool b out/android.policy out/android.policy.jar I: Checking whether sources has changed... I: Smaling... [10610,4] All register args must fit in 4 bits Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: /home/sijav/Desktop/patchrom/nypone/out/android.policy/smali/com/android/internal/policy/impl/PhoneWindowManager.smali at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:45) at brut.androlib.src.DexFileBuilder.addSmaliFile(DexFileBuilder.java:33) at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:64) at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:48) at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:35) at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:222) at brut.androlib.Androlib.buildSources(Androlib.java:179) at brut.androlib.Androlib.build(Androlib.java:170) at brut.androlib.Androlib.build(Androlib.java:154) at brut.apktool.Main.cmdBuild(Main.java:182) at brut.apktool.Main.main(Main.java:67) make: *\ [out/android.policy.jar] Error 1"

any help would appreciate here is the smali file =>

... move-object/from16 v0, p0

iget-boolean v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpKeyTriggered:Z

if-eqz v1, :cond_1f

:cond_1d
const/4 v1, 0x1

:goto_b
move-object/from16 v0, p0

invoke-direct {v0, v1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->interceptPowerKeyDown(Z)V

invoke-static {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$Injector;->sendPowerUpBroadcast(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
#Line 10610 is here:
goto/16 :goto_3

.line 3478
:cond_1e
:try_start_5
move-object/from16 v0, p0

iget v1, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIncallPowerBehavior:I

and-int/lit8 v1, v1, 0x2

if-eqz v1, :cond_1c

invoke-interface/range {v18 .. v18}, Lcom/android/internal/telephony/ITelephony;->isOffhook()Z

move-result v1

if-eqz v1, :cond_1c"
sijav commented 11 years ago

Solved by my self! in this line =>invoke-static {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$Injector;->sendPowerUpBroadcast(Lcom/android/internal/policy/impl/PhoneWindowManager;)V must change p to v like => invoke-static {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager$Injector;->sendPowerUpBroadcast(Lcom/android/internal/policy/impl/PhoneWindowManager;)V

sijav commented 11 years ago

THE PROBLEM IS STILL ON! I can't build any apk not sure why! any help for this invalid resource directory name would be appreciat

sijav commented 11 years ago

this was a problem with 32bit linux system! To solve this it should be run in a 64bit linux machine system!