Skip to content

Commit bdb7ece

Browse files
authored
chore: update default --res-resolve-mode in usage (#4042)
1 parent e10a045 commit bdb7ece

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ private enum Verbosity { NORMAL, VERBOSE, QUIET }
119119
private static final Option decodeResResolveModeOption = Option.builder()
120120
.longOpt("res-resolve-mode")
121121
.desc("Set the resolve mode for resources to <mode>.\n"
122-
+ "Possible values are: 'remove' (default), 'dummy' or 'keep'.")
122+
+ "Possible values are: 'keep' (default), 'remove' or 'dummy'.")
123123
.hasArg()
124124
.argName("mode")
125125
.build();

brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/BinaryResourceParser.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,6 @@ private void parsePackage(ResChunkPullParser parser) throws AndrolibException, I
271271

272272
// Clean up.
273273
injectMissingEntrySpecs();
274-
mMissingEntrySpecs.clear();
275274
mInvalidConfigs.clear();
276275
mKeyStrings = null;
277276
mTypeStrings = null;
@@ -807,25 +806,25 @@ private void skipUnreadHeader(ResChunkPullParser parser) throws IOException {
807806
}
808807

809808
private void injectMissingEntrySpecs() throws AndrolibException {
810-
if (mPackage == null || mTable.getConfig().getDecodeResolve() != Config.DecodeResolve.DUMMY) {
811-
return;
812-
}
809+
if (mTable.getConfig().getDecodeResolve() == Config.DecodeResolve.DUMMY) {
810+
for (ResId id : mMissingEntrySpecs) {
811+
ResTypeSpec typeSpec = mPackage.getTypeSpec(id.getTypeId());
812+
ResValue value;
813+
switch (typeSpec.getName()) {
814+
case "attr":
815+
case "^attr-private":
816+
value = ResAttribute.DEFAULT;
817+
break;
818+
default:
819+
value = ResReference.NULL;
820+
break;
821+
}
813822

814-
for (ResId id : mMissingEntrySpecs) {
815-
ResTypeSpec typeSpec = mPackage.getTypeSpec(id.getTypeId());
816-
ResValue value;
817-
switch (typeSpec.getName()) {
818-
case "attr":
819-
case "^attr-private":
820-
value = ResAttribute.DEFAULT;
821-
break;
822-
default:
823-
value = ResReference.NULL;
824-
break;
823+
mPackage.addEntrySpec(id, ResEntrySpec.DUMMY_PREFIX + id);
824+
mPackage.addEntry(id, ResConfig.DEFAULT, value);
825825
}
826-
827-
mPackage.addEntrySpec(id, ResEntrySpec.DUMMY_PREFIX + id);
828-
mPackage.addEntry(id, ResConfig.DEFAULT, value);
829826
}
827+
828+
mMissingEntrySpecs.clear();
830829
}
831830
}

0 commit comments

Comments
 (0)