skylot / jadx

Dex to Java decompiler
Apache License 2.0
41.79k stars 4.89k forks source link

[feature] Pass cli args via a configuration file #1731

Open Fi5t opened 2 years ago

Fi5t commented 2 years ago

Describe your idea:

Hello! It would be nice to pass cli arguments to jadx via a config file instead of flags. jadx-gui already has the ability to copy existing settings to the clipboard. I think this function can be used to create config files for jadx-cli. What do you think?

skylot commented 2 years ago

@Fi5t thanks for bringing up this topic. There are several implementations and issues: Now jadx-cli already support "@ syntax" from jcommander library, so it is possible to store cli flags in file.
Example with usage notes:

-v
# split option and value
-d
out-jadx-tmp
# remove quotes for string values
--rename-flags
none

classes.dex

and use like:

jadx @config

It is possible to implement generation of this file in jadx-gui to export settings. But taking into account that there are other options stored in jadx project file like renames (#1341) and comments, maybe it will better just support jadx project file in jadx-cli. Main issue in that approach that jadx-gui uses 2 configs: project and global settings, so looks like export for jadx-cli will needed anyway. So in short: we need to implement import of jadx project file with embedded global settings into jadx-cli and add export of such file in jadx-gui.

P.S this will also help to resolve #534 (support excluded packages in jadx-cli)

Fi5t commented 1 year ago

@skylot thank you for the explanation about "@ syntax". I decided to create configs converter as a separate script. Maybe it'll help someone.