From 19f40b85497e30a06cb80248adcf331c18f676d0 Mon Sep 17 00:00:00 2001 From: Skylot Date: Wed, 27 Sep 2023 19:44:17 +0100 Subject: [PATCH] feat(cli): add option to show available plugins list --- README.md | 2 -- .../jadx/cli/commands/CommandPlugins.java | 21 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5c4f621b3..1e4ee74c9 100644 --- a/README.md +++ b/README.md @@ -83,8 +83,6 @@ jadx[-gui] [command] [options] (.apk, .dex, .jar, .class, .smali, commands (use ' --help' for command options): plugins - manage jadx plugins -options: - -d, --output-dir - output directory options: -d, --output-dir - output directory -ds, --output-dir-src - output directory for sources diff --git a/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java b/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java index 7a4332f6d..2c6a51619 100644 --- a/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java +++ b/jadx-cli/src/main/java/jadx/cli/commands/CommandPlugins.java @@ -7,6 +7,7 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import jadx.cli.JCommanderWrapper; +import jadx.plugins.tools.JadxPluginsList; import jadx.plugins.tools.JadxPluginsTools; import jadx.plugins.tools.data.JadxPluginMetadata; import jadx.plugins.tools.data.JadxPluginUpdate; @@ -23,6 +24,9 @@ public class CommandPlugins implements ICommand { @Parameter(names = { "-l", "--list" }, description = "list installed plugins") protected boolean list; + @Parameter(names = { "-a", "--available" }, description = "list available plugins") + protected boolean available; + @Parameter(names = { "-u", "--update" }, description = "update installed plugins") protected boolean update; @@ -67,9 +71,22 @@ public class CommandPlugins implements ICommand { if (list) { List installed = JadxPluginsTools.getInstance().getInstalled(); System.out.println("Installed plugins: " + installed.size()); + int i = 1; for (JadxPluginMetadata plugin : installed) { - System.out.println(" " + plugin.getPluginId() + ":" + plugin.getVersion() - + " - " + plugin.getName() + ": " + plugin.getDescription()); + System.out.println(" " + (i++) + ") " + + plugin.getPluginId() + " (" + plugin.getVersion() + ") - " + + plugin.getName() + ": " + plugin.getDescription()); + } + } + + if (available) { + List availableList = JadxPluginsList.getInstance().get(); + System.out.println("Available plugins: " + availableList.size()); + int i = 1; + for (JadxPluginMetadata plugin : availableList) { + System.out.println(" " + (i++) + ") " + + plugin.getName() + ": " + plugin.getDescription() + + " (" + plugin.getLocationId() + ")"); } } }