From 6d984c0407cd6b252732869c504c997253dda13c Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 26 May 2018 18:15:54 +0300 Subject: [PATCH] gui: update default settings --- .../src/main/java/jadx/cli/JadxCLIArgs.java | 4 +-- .../java/jadx/gui/settings/JadxSettings.java | 27 +++++++++++++++++-- .../jadx/gui/treemodel/JLoadableNode.java | 2 ++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java index 7381cf07..25eaed00 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java @@ -64,7 +64,7 @@ public class JadxCLIArgs { protected boolean deobfuscationOn = false; @Parameter(names = {"--deobf-min"}, description = "min length of name, renamed if shorter") - protected int deobfuscationMinLength = 2; + protected int deobfuscationMinLength = 4; @Parameter(names = {"--deobf-max"}, description = "max length of name, renamed if longer") protected int deobfuscationMaxLength = 64; @@ -73,7 +73,7 @@ public class JadxCLIArgs { protected boolean deobfuscationForceSave = false; @Parameter(names = {"--deobf-use-sourcename"}, description = "use source file name as class name alias") - protected boolean deobfuscationUseSourceNameAsAlias = false; + protected boolean deobfuscationUseSourceNameAsAlias = true; @Parameter(names = {"--cfg"}, description = "save methods control flow graph to dot file") protected boolean cfgOutput = false; diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java index 716d0934..8711e1f6 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java @@ -10,21 +10,24 @@ import java.util.Map; import java.util.Set; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import jadx.api.JadxArgs; import jadx.cli.JadxCLIArgs; public class JadxSettings extends JadxCLIArgs { + private static final Logger LOG = LoggerFactory.getLogger(JadxSettings.class); private static final String USER_HOME = System.getProperty("user.home"); private static final int RECENT_FILES_COUNT = 15; + private static final int CURRENT_SETTINGS_VERSION = 1; private static final Font DEFAULT_FONT = new RSyntaxTextArea().getFont(); static final Set SKIP_FIELDS = new HashSet<>(Arrays.asList( "files", "input", "outputDir", "verbose", "printHelp" )); - private String lastOpenFilePath = USER_HOME; private String lastSaveFilePath = USER_HOME; private boolean flattenPackage = false; @@ -33,10 +36,11 @@ public class JadxSettings extends JadxCLIArgs { private String fontStr = ""; private boolean autoStartJobs = false; + private int settingsVersion = 0; + private Map windowPos = new HashMap<>(); public JadxSettings() { - setSkipResources(true); } public void sync() { @@ -47,6 +51,9 @@ public class JadxSettings extends JadxCLIArgs { if (threadsCount <= 0) { threadsCount = JadxArgs.DEFAULT_THREADS_COUNT; } + if (settingsVersion != CURRENT_SETTINGS_VERSION) { + upgradeSettings(settingsVersion); + } } public String getLastOpenFilePath() { @@ -213,4 +220,20 @@ public class JadxSettings extends JadxCLIArgs { return ""; } } + + private void upgradeSettings(int fromVersion) { + LOG.debug("upgrade settings from version: {} to {}", fromVersion, CURRENT_SETTINGS_VERSION); + if (fromVersion == 0) { + setDeobfuscationMinLength(4); + setDeobfuscationUseSourceNameAsAlias(true); + setDeobfuscationForceSave(true); + setThreadsCount(1); + setReplaceConsts(true); + setSkipResources(false); + setAutoStartJobs(false); +// fromVersion++; + } + settingsVersion = CURRENT_SETTINGS_VERSION; + sync(); + } } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JLoadableNode.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JLoadableNode.java index b9aebdb2..eccc1223 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JLoadableNode.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JLoadableNode.java @@ -1,5 +1,7 @@ package jadx.gui.treemodel; public abstract class JLoadableNode extends JNode { + private static final long serialVersionUID = 5543590584166374958L; + public abstract void loadNode(); } -- GitLab