Skip to content

Commit fc28ac5

Browse files
authored
Merge pull request #2785 from iBotPeaches/revert-2650-fix-private-reference
Revert "fix: decoding references to private resources"
1 parent 49071d0 commit fc28ac5

File tree

5 files changed

+7
-38
lines changed

5 files changed

+7
-38
lines changed

brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import brut.androlib.AndrolibException;
2020
import brut.androlib.err.UndefinedResObjectException;
21-
import brut.androlib.res.decoder.ARSCDecoder;
2221
import org.apache.commons.lang3.StringUtils;
2322

2423
import java.util.LinkedHashMap;
@@ -29,13 +28,11 @@
2928
public class ResResSpec {
3029
private final ResID mId;
3130
private final String mName;
32-
private final int mFlags;
3331
private final ResPackage mPackage;
3432
private final ResTypeSpec mType;
3533
private final Map<ResConfigFlags, ResResource> mResources = new LinkedHashMap<>();
3634

37-
public ResResSpec(ResID id, String name, int flags, ResPackage pkg, ResTypeSpec type) {
38-
this.mFlags = flags;
35+
public ResResSpec(ResID id, String name, ResPackage pkg, ResTypeSpec type) {
3936
this.mId = id;
4037
String cleanName;
4138

@@ -75,19 +72,13 @@ public boolean hasDefaultResource() {
7572
return mResources.containsKey(new ResConfigFlags());
7673
}
7774

78-
public boolean isPublicResource() {
79-
return (getFlags() & ARSCDecoder.ENTRY_FLAG_PUBLIC) != 0;
80-
}
81-
8275
public String getFullName(ResPackage relativeToPackage, boolean excludeType) {
8376
return getFullName(getPackage().equals(relativeToPackage), excludeType);
8477
}
8578

8679
public String getFullName(boolean excludePackage, boolean excludeType) {
87-
String privateSuffix = isPublicResource() ? "" : "*";
88-
String packageName = excludePackage ? "" : getPackage().getName() + ":";
89-
return (packageName.isEmpty() ? "" : privateSuffix + packageName)
90-
+ (excludeType ? "" : getType().getName() + "/") + getName();
80+
return (excludePackage ? "" : getPackage().getName() + ":")
81+
+ (excludeType ? "" : getType().getName() + "/") + getName();
9182
}
9283

9384
public ResID getId() {
@@ -106,10 +97,6 @@ public ResTypeSpec getType() {
10697
return mType;
10798
}
10899

109-
public int getFlags() {
110-
return mFlags;
111-
}
112-
113100
public boolean isDummyResSpec() {
114101
return getName().startsWith("APKTOOL_DUMMY_");
115102
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -336,12 +336,12 @@ private void readEntry(EntryData entryData) throws AndrolibException {
336336
if (spec.isDummyResSpec()) {
337337
removeResSpec(spec);
338338

339-
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), entryData.mFlags, mPkg, mTypeSpec);
339+
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), mPkg, mTypeSpec);
340340
mPkg.addResSpec(spec);
341341
mTypeSpec.addResSpec(spec);
342342
}
343343
} else {
344-
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), entryData.mFlags, mPkg, mTypeSpec);
344+
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), mPkg, mTypeSpec);
345345
mPkg.addResSpec(spec);
346346
mTypeSpec.addResSpec(spec);
347347
}
@@ -538,7 +538,7 @@ private void addMissingResSpecs() throws AndrolibException {
538538
continue;
539539
}
540540

541-
ResResSpec spec = new ResResSpec(new ResID(resId | i), "APKTOOL_DUMMY_" + Integer.toHexString(i), ENTRY_FLAG_PUBLIC, mPkg, mTypeSpec);
541+
ResResSpec spec = new ResResSpec(new ResID(resId | i), "APKTOOL_DUMMY_" + Integer.toHexString(i), mPkg, mTypeSpec);
542542

543543
// If we already have this resID dont add it again.
544544
if (! mPkg.hasResSpec(new ResID(resId | i))) {
@@ -602,7 +602,7 @@ private void nextChunkCheckType(int expectedType) throws IOException, AndrolibEx
602602
private final HashMap<Integer, ResTypeSpec> mResTypeSpecs = new HashMap<>();
603603

604604
private final static short ENTRY_FLAG_COMPLEX = 0x0001;
605-
public final static short ENTRY_FLAG_PUBLIC = 0x0002;
605+
private final static short ENTRY_FLAG_PUBLIC = 0x0002;
606606
private final static short ENTRY_FLAG_WEAK = 0x0004;
607607

608608
public static class Header {

brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt2/BuildAndDecodeTest.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@ public void valuesStringsTest() throws BrutException {
7272
compareValuesFiles("values/strings.xml");
7373
}
7474

75-
@Test
76-
public void valuesColorsTest() throws BrutException {
77-
compareValuesFiles("values/colors.xml");
78-
}
79-
80-
@Test
81-
public void valuesBoolsTest() throws BrutException {
82-
compareValuesFiles("values/bools.xml");
83-
}
84-
8575
@Test
8676
public void valuesMaxLengthTest() throws BrutException {
8777
compareValuesFiles("values-es/strings.xml");

brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/res/values/bools.xml

Lines changed: 0 additions & 4 deletions
This file was deleted.

brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/res/values/colors.xml

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)