From fe67d0f24020fc7471d34ea3be43d90c89b66f17 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Sun, 13 Nov 2022 17:59:04 -0500 Subject: [PATCH] fix: support properly mapping r/R/res resources during disassemble --- .../brut/androlib/res/AndrolibResources.java | 14 ++------- .../androlib/res/decoder/ResFileDecoder.java | 30 +++++++++---------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java index ded97b98c7..9f2499e34f 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java @@ -221,22 +221,12 @@ public void decode(ResTable resTable, ExtFile apkFile, File outDir) ResAttrDecoder attrDecoder = duo.m2.getAttrDecoder(); attrDecoder.setCurrentPackage(resTable.listMainPackages().iterator().next()); - Directory inApk, in = null, out; + Directory in, out; try { out = new FileDirectory(outDir); - - inApk = apkFile.getDirectory(); + in = apkFile.getDirectory(); out = out.createDir("res"); - if (inApk.containsDir("res")) { - in = inApk.getDir("res"); - } - if (in == null && inApk.containsDir("r")) { - in = inApk.getDir("r"); - } - if (in == null && inApk.containsDir("R")) { - in = inApk.getDir("R"); - } } catch (DirectoryException ex) { throw new AndrolibException(ex); } diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java index 75f67a8c79..a3174411f3 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java @@ -64,11 +64,11 @@ public void decode(ResResource res, Directory inDir, Directory outDir, Map