From bc8d7c4fc381412f6e9fa0a2ee22a4ca42498909 Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 3 Nov 2022 19:15:33 +0000 Subject: [PATCH] feat(gui): add native libs info to summary (#1717) --- .../jadx/gui/ui/treenodes/SummaryNode.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/jadx-gui/src/main/java/jadx/gui/ui/treenodes/SummaryNode.java b/jadx-gui/src/main/java/jadx/gui/ui/treenodes/SummaryNode.java index 4b76e9ab..c7b57c4d 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/treenodes/SummaryNode.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/treenodes/SummaryNode.java @@ -3,17 +3,21 @@ package jadx.gui.ui.treenodes; import java.io.File; import java.io.IOException; import java.util.Comparator; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import javax.swing.Icon; import javax.swing.ImageIcon; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.StringEscapeUtils; import jadx.api.ICodeInfo; +import jadx.api.ResourceFile; import jadx.api.impl.SimpleCodeInfo; import jadx.core.dex.attributes.IAttributeNode; import jadx.core.dex.nodes.ClassNode; @@ -92,6 +96,8 @@ public class SummaryNode extends JNode { } builder.append(""); + addNativeLibsInfo(builder); + int methodsCount = classes.stream().mapToInt(cls -> cls.getMethods().size()).sum(); int fieldsCount = classes.stream().mapToInt(cls -> cls.getFields().size()).sum(); int insnCount = classes.stream().flatMap(cls -> cls.getMethods().stream()).mapToInt(MethodNode::getInsnsCount).sum(); @@ -104,6 +110,50 @@ public class SummaryNode extends JNode { builder.append(""); } + private void addNativeLibsInfo(StringEscapeUtils.Builder builder) { + List nativeLibs = wrapper.getResources().stream() + .map(ResourceFile::getOriginalName) + .filter(f -> f.endsWith(".so")) + .sorted(Comparator.naturalOrder()) + .collect(Collectors.toList()); + builder.append("

Native libs

"); + builder.append(""); + } + private void writeDecompilationSummary(StringEscapeUtils.Builder builder) { builder.append("

Decompilation

"); List classes = wrapper.getRootNode().getClassesWithoutInner(); -- GitLab