feat(plugins): add API for search/use other plugins

This commit is contained in:
Skylot
2024-01-15 18:37:40 +00:00
parent fdc3fe1a8d
commit 8ed48183c7
14 changed files with 248 additions and 61 deletions
@@ -6,30 +6,33 @@ import java.util.List;
import jadx.api.plugins.JadxPlugin;
import jadx.api.plugins.JadxPluginContext;
import jadx.api.plugins.JadxPluginInfo;
import jadx.api.plugins.JadxPluginInfoBuilder;
import jadx.api.plugins.data.JadxPluginRuntimeData;
import jadx.api.plugins.input.ICodeLoader;
import jadx.api.plugins.input.JadxCodeInput;
import jadx.api.plugins.input.data.impl.EmptyCodeLoader;
import jadx.plugins.input.dex.DexInputPlugin;
public class JavaConvertPlugin implements JadxPlugin, JadxCodeInput {
public static final String PLUGIN_ID = "java-convert";
private final DexInputPlugin dexInput = new DexInputPlugin();
private final JavaConvertOptions options = new JavaConvertOptions();
private final JavaConvertLoader loader = new JavaConvertLoader(options);
private JadxPluginRuntimeData dexInput;
@Override
public JadxPluginInfo getPluginInfo() {
return new JadxPluginInfo(
PLUGIN_ID,
"Java Convert",
"Convert .class, .jar and .aar files to dex",
"java-input");
return JadxPluginInfoBuilder.pluginId(PLUGIN_ID)
.name("Java Convert")
.description("Convert .class, .jar and .aar files to dex")
.provides("java-input")
.build();
}
@Override
public void init(JadxPluginContext context) {
dexInput = context.plugins().getById(DexInputPlugin.PLUGIN_ID);
context.registerOptions(options);
context.addCodeInput(this);
}
@@ -41,6 +44,6 @@ public class JavaConvertPlugin implements JadxPlugin, JadxCodeInput {
result.close();
return EmptyCodeLoader.INSTANCE;
}
return dexInput.loadFiles(result.getConverted(), result);
return dexInput.loadCodeFiles(result.getConverted(), result);
}
}