diff --git a/apktool-lib/src/main/java/brut/androlib/Androlib.java b/apktool-lib/src/main/java/brut/androlib/Androlib.java index 112f84be..314c8660 100644 --- a/apktool-lib/src/main/java/brut/androlib/Androlib.java +++ b/apktool-lib/src/main/java/brut/androlib/Androlib.java @@ -94,13 +94,7 @@ public class Androlib { public void decodeManifestFull(ExtFile apkFile, File outDir, ResTable resTable) throws AndrolibException { - try { - Directory apk = apkFile.getDirectory(); - LOGGER.info("Copying raw manifest..."); - apkFile.getDirectory().copyToDir(outDir, APK_MANIFEST_FILENAMES); - } catch (DirectoryException ex) { - throw new AndrolibException(ex); - } + mAndRes.decodeManifest(resTable, apkFile, outDir); } public void decodeResourcesRaw(ExtFile apkFile, File outDir) diff --git a/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java b/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java index 6be481fb..6dee5c05 100644 --- a/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java +++ b/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java @@ -105,14 +105,13 @@ public class ApkDecoder { // attribute references if (hasManifest()) { switch (mDecodeResources) { - case DECODE_RESOURCES_FULL: case DECODE_RESOURCES_NONE: mAndrolib.decodeManifestRaw(mApkFile, outDir); break; - // case DECODE_RESOURCES_FULL: - // mAndrolib.decodeManifestFull(mApkFile, outDir, - // getResTable()); - // break; + case DECODE_RESOURCES_FULL: + mAndrolib.decodeManifestFull(mApkFile, outDir, + getResTable()); + break; } } } diff --git a/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java b/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java index 5cbca987..08e6ce3c 100644 --- a/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java +++ b/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java @@ -149,9 +149,10 @@ final public class AndrolibResources { inApk = apkFile.getDirectory(); out = new FileDirectory(outDir); - fileDecoder.decode( - inApk, "AndroidManifest.xml", out, "AndroidManifest.xml", - "xml"); + LOGGER.info("Decoding AndroidManifest.xml with resources..."); + + fileDecoder.decodeManifest( + inApk, "AndroidManifest.xml", out, "AndroidManifest.xml"); if (inApk.containsDir("res")) { in = inApk.getDir("res");