提交 78ed5201 编写于 作者: S sergey-wowwow

Changes ResourceFile

上级 0524d1f0
...@@ -35,7 +35,7 @@ public class ResourceFile { ...@@ -35,7 +35,7 @@ public class ResourceFile {
private final String name; private final String name;
private final ResourceType type; private final ResourceType type;
private ZipRef zipRef; private ZipRef zipRef;
private ResourceEntry alias; private String deobfName;
public static ResourceFile createResourceFile(JadxDecompiler decompiler, String name, ResourceType type) { public static ResourceFile createResourceFile(JadxDecompiler decompiler, String name, ResourceType type) {
if (!ZipSecurity.isValidZipEntryName(name)) { if (!ZipSecurity.isValidZipEntryName(name)) {
...@@ -53,26 +53,14 @@ public class ResourceFile { ...@@ -53,26 +53,14 @@ public class ResourceFile {
public String getOriginalName() { public String getOriginalName() {
return name; return name;
} }
public String getDeobfName() { public String getDeobfName() {
if(alias == null) { return deobfName != null ? deobfName : name;
return getOriginalName();
}
int index = name.lastIndexOf('.');
return String.format("%s%s/%s%s",
alias.getTypeName(),
alias.getConfig(),
alias.getKeyName(),
index == -1 ? "" : name.substring(index));
} }
public ResourceType getType() { public ResourceType getType() {
return type; return type;
} }
public ResourceEntry getAlias() {
return alias;
}
public ResContainer loadContent() { public ResContainer loadContent() {
return ResourcesLoader.loadContent(decompiler, this); return ResourcesLoader.loadContent(decompiler, this);
...@@ -81,9 +69,14 @@ public class ResourceFile { ...@@ -81,9 +69,14 @@ public class ResourceFile {
void setZipRef(ZipRef zipRef) { void setZipRef(ZipRef zipRef) {
this.zipRef = zipRef; this.zipRef = zipRef;
} }
public void setAlias(ResourceEntry ri) { public void setAlias(ResourceEntry ri) {
this.alias = ri; int index = name.lastIndexOf('.');
deobfName = String.format("%s%s/%s%s",
ri.getTypeName(),
ri.getConfig(),
ri.getKeyName(),
index == -1 ? "" : name.substring(index));
} }
public ZipRef getZipRef() { public ZipRef getZipRef() {
......
...@@ -165,14 +165,14 @@ public class RootNode { ...@@ -165,14 +165,14 @@ public class RootNode {
throw new JadxRuntimeException("Error loading jadx class set", e); throw new JadxRuntimeException("Error loading jadx class set", e);
} }
} }
private void updateObfuscatedFiles(ResTableParser parser, List<ResourceFile> resources) { private void updateObfuscatedFiles(ResTableParser parser, List<ResourceFile> resources) {
ResourceStorage resStorage = parser.getResStorage(); ResourceStorage resStorage = parser.getResStorage();
ValuesParser valuesParser = new ValuesParser(this, parser.getStrings(), resStorage.getResourcesNames()); ValuesParser valuesParser = new ValuesParser(this, parser.getStrings(), resStorage.getResourcesNames());
for(int i = 0; i < resources.size(); i++) { for (int i = 0; i < resources.size(); i++) {
ResourceFile resource = resources.get(i); ResourceFile resource = resources.get(i);
for(ResourceEntry ri : parser.getResStorage().getResources()) { for (ResourceEntry ri : parser.getResStorage().getResources()) {
if(resource.getOriginalName().equals(valuesParser.getValueString(ri))) { if (resource.getOriginalName().equals(valuesParser.getValueString(ri))) {
resource.setAlias(ri); resource.setAlias(ri);
break; break;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册