From 61684ea73d525e4a5a104928d9419363d44053e4 Mon Sep 17 00:00:00 2001 From: Sergey Toshin Date: Wed, 27 Jun 2018 19:55:24 +0300 Subject: [PATCH 1/2] Prevent adding duplicate ids for resource entries with different entry configs --- .../main/java/jadx/core/xmlgen/ResTableParser.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 89f630f20..c24f2a08a 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -3,7 +3,9 @@ package jadx.core.xmlgen; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,10 +91,13 @@ public class ResTableParser extends CommonBinaryParser { writer.startLine(""); writer.incIndent(); + Set addedValues = new HashSet<>(); for (ResourceEntry ri : resStorage.getResources()) { - String format = String.format("", - ri.getTypeName(), ri.getKeyName(), ri.getId()); - writer.startLine(format); + if(addedValues.add(ri.getTypeName() + "." + ri.getKeyName())) { + String format = String.format("", + ri.getTypeName(), ri.getKeyName(), ri.getId()); + writer.startLine(format); + } } writer.decIndent(); writer.startLine(""); From 22f51e1a289ef240d6ce3ce12aceda3aa5b7b8ad Mon Sep 17 00:00:00 2001 From: Sergey Toshin Date: Wed, 27 Jun 2018 20:09:08 +0300 Subject: [PATCH 2/2] Change display style for resources.arsc --- jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java index fe68b2df7..d5212709f 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JResource.java @@ -205,6 +205,9 @@ public class JResource extends JLoadableNode implements Comparable { if (ext.equals("html")) { return SyntaxConstants.SYNTAX_STYLE_HTML; } + if(ext.equals("arsc")) { + return SyntaxConstants.SYNTAX_STYLE_XML; + } return null; }