From 9e39755750f34fc522116c2a1efc7344f90cfc3b Mon Sep 17 00:00:00 2001 From: "yangjing.yeoh" Date: Mon, 23 Sep 2019 18:39:18 +0800 Subject: [PATCH] bugfix, fix get wrong package ResPackage for multi-pkg resources.arsc. --- .../src/main/java/brut/androlib/res/AndrolibResources.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 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 43724424..d67f9ff3 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 @@ -99,16 +99,19 @@ final public class AndrolibResources { throws AndrolibException { int id = 0; int value = 0; + int index = 0; - for (ResPackage resPackage : pkgs) { + for (int i = 0; i < pkgs.length; i++) { + ResPackage resPackage = pkgs[i]; if (resPackage.getResSpecCount() > value && ! resPackage.getName().equalsIgnoreCase("android")) { value = resPackage.getResSpecCount(); id = resPackage.getId(); + index = i; } } // if id is still 0, we only have one pkgId which is "android" -> 1 - return (id == 0) ? pkgs[0] : pkgs[1]; + return (id == 0) ? pkgs[0] : pkgs[index]; } public ResPackage loadFrameworkPkg(ResTable resTable, int id, String frameTag)