Decompile, Edit, and Recompile Android Apps with APK Studio

If you have ever tried to modify precompiled android application, then you might be familiar with APKTool. APKTool is one of the most commonly used application to decompile and recompile android apk.

But there is a drawback with this APKTool. You can only decompile or recompile your apk, but you cannot edit the content, more specifically the source code. Generally the whole source code is compiled in .smali files and to edit that files you have to rely on some other compiler, decompiler and editor like Notepad++.

To combine all this things together and to make development easy, an XDA user, Vaibhav, created APK Studio.

APK Studio
APK Studio

As the name suggest, the APK Studio allows you to decompile, edit and recompile apk files right from one single app. This IDE looks quite similar to Netbeans IDE and has a lot of features to explore.

You can download this IDE from codeplex or XDA.

(Image credit: XDA)

11 thoughts on “Decompile, Edit, and Recompile Android Apps with APK Studio”

  1. not working ..recompile.. error

    I: Using Apktool 2.0.2
    I: Smaling smali folder into classes.dex…
    Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
    at java.util.AbstractList.listIterator(Unknown Source)
    at com.google.common.collect.Lists$TransformingSequentialList.listIterator(Lists.java:575)
    at java.util.AbstractList.listIterator(Unknown Source)
    at java.util.AbstractList.equals(Unknown Source)
    at org.jf.util.CharSequenceUtils.listEquals(CharSequenceUtils.java:48)
    at org.jf.dexlib2.base.reference.BaseMethodReference.equals(BaseMethodReference.java:55)
    at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
    at org.jf.dexlib2.writer.builder.BuilderMethodPool.internMethod(BuilderMethodPool.java:56)
    at org.jf.dexlib2.writer.builder.DexBuilder.internMethodReference(DexBuilder.java:170)
    at org.jf.smali.smaliTreeWalker.insn_format35c_method(smaliTreeWalker.java:5978)
    at org.jf.smali.smaliTreeWalker.instruction(smaliTreeWalker.java:4549)
    at org.jf.smali.smaliTreeWalker.ordered_method_items(smaliTreeWalker.java:3549)
    at org.jf.smali.smaliTreeWalker.method(smaliTreeWalker.java:2176)
    at org.jf.smali.smaliTreeWalker.methods(smaliTreeWalker.java:951)
    at org.jf.smali.smaliTreeWalker.smali_file(smaliTreeWalker.java:440)
    at brut.androlib.mod.SmaliMod.assembleSmaliFile(SmaliMod.java:97)
    at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:70)
    at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:55)
    at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
    at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:378)
    at brut.androlib.Androlib.buildSources(Androlib.java:305)
    at brut.androlib.Androlib.build(Androlib.java:288)
    at brut.androlib.Androlib.build(Androlib.java:261)
    at brut.apktool.Main.cmdBuild(Main.java:225)
    at brut.apktool.Main.main(Main.java:84)
    Process exited with code 1

    plzzz help

  2. I: Loading resource table…

    Exception in thread “main” brut.androlib.AndrolibException: Could not decode arsc file

    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:54)

    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:604)

    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)

    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)

    at brut.androlib.Androlib.getResTable(Androlib.java:49)

    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:93)

    at brut.apktool.Main.cmdDecode(Main.java:169)

    at brut.apktool.Main.main(Main.java:85)

    Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000

    at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)

    at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:43)

    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:95)

    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:81)

    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)

    … 7 more

    1. Hello i get email and follow but cant get help from you.
      brother give me a apk studio recompile version because new version only ready!………….

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.