Skip to content

Commit

Permalink
Merge pull request #2785 from iBotPeaches/revert-2650-fix-private-ref…
Browse files Browse the repository at this point in the history
…erence

Revert "fix: decoding references to private resources"
  • Loading branch information
iBotPeaches authored Mar 21, 2022
1 parent 49071d0 commit fc28ac5
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import brut.androlib.AndrolibException;
import brut.androlib.err.UndefinedResObjectException;
import brut.androlib.res.decoder.ARSCDecoder;
import org.apache.commons.lang3.StringUtils;

import java.util.LinkedHashMap;
Expand All @@ -29,13 +28,11 @@
public class ResResSpec {
private final ResID mId;
private final String mName;
private final int mFlags;
private final ResPackage mPackage;
private final ResTypeSpec mType;
private final Map<ResConfigFlags, ResResource> mResources = new LinkedHashMap<>();

public ResResSpec(ResID id, String name, int flags, ResPackage pkg, ResTypeSpec type) {
this.mFlags = flags;
public ResResSpec(ResID id, String name, ResPackage pkg, ResTypeSpec type) {
this.mId = id;
String cleanName;

Expand Down Expand Up @@ -75,19 +72,13 @@ public boolean hasDefaultResource() {
return mResources.containsKey(new ResConfigFlags());
}

public boolean isPublicResource() {
return (getFlags() & ARSCDecoder.ENTRY_FLAG_PUBLIC) != 0;
}

public String getFullName(ResPackage relativeToPackage, boolean excludeType) {
return getFullName(getPackage().equals(relativeToPackage), excludeType);
}

public String getFullName(boolean excludePackage, boolean excludeType) {
String privateSuffix = isPublicResource() ? "" : "*";
String packageName = excludePackage ? "" : getPackage().getName() + ":";
return (packageName.isEmpty() ? "" : privateSuffix + packageName)
+ (excludeType ? "" : getType().getName() + "/") + getName();
return (excludePackage ? "" : getPackage().getName() + ":")
+ (excludeType ? "" : getType().getName() + "/") + getName();
}

public ResID getId() {
Expand All @@ -106,10 +97,6 @@ public ResTypeSpec getType() {
return mType;
}

public int getFlags() {
return mFlags;
}

public boolean isDummyResSpec() {
return getName().startsWith("APKTOOL_DUMMY_");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -336,12 +336,12 @@ private void readEntry(EntryData entryData) throws AndrolibException {
if (spec.isDummyResSpec()) {
removeResSpec(spec);

spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), entryData.mFlags, mPkg, mTypeSpec);
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), mPkg, mTypeSpec);
mPkg.addResSpec(spec);
mTypeSpec.addResSpec(spec);
}
} else {
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), entryData.mFlags, mPkg, mTypeSpec);
spec = new ResResSpec(resId, mSpecNames.getString(specNamesId), mPkg, mTypeSpec);
mPkg.addResSpec(spec);
mTypeSpec.addResSpec(spec);
}
Expand Down Expand Up @@ -538,7 +538,7 @@ private void addMissingResSpecs() throws AndrolibException {
continue;
}

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

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

private final static short ENTRY_FLAG_COMPLEX = 0x0001;
public final static short ENTRY_FLAG_PUBLIC = 0x0002;
private final static short ENTRY_FLAG_PUBLIC = 0x0002;
private final static short ENTRY_FLAG_WEAK = 0x0004;

public static class Header {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,6 @@ public void valuesStringsTest() throws BrutException {
compareValuesFiles("values/strings.xml");
}

@Test
public void valuesColorsTest() throws BrutException {
compareValuesFiles("values/colors.xml");
}

@Test
public void valuesBoolsTest() throws BrutException {
compareValuesFiles("values/bools.xml");
}

@Test
public void valuesMaxLengthTest() throws BrutException {
compareValuesFiles("values-es/strings.xml");
Expand Down

This file was deleted.

This file was deleted.

0 comments on commit fc28ac5

Please sign in to comment.