diff --git a/jadx-core/src/main/java/jadx/api/DecompilationMode.java b/jadx-core/src/main/java/jadx/api/DecompilationMode.java index bfb43875e..15e79a86c 100644 --- a/jadx-core/src/main/java/jadx/api/DecompilationMode.java +++ b/jadx-core/src/main/java/jadx/api/DecompilationMode.java @@ -19,5 +19,18 @@ public enum DecompilationMode { /** * Raw instructions without modifications */ - FALLBACK + FALLBACK; + + public boolean isSpecial() { + switch (this) { + case AUTO: + case RESTRUCTURE: + return false; + case SIMPLE: + case FALLBACK: + return true; + default: + throw new RuntimeException("Unexpected decompilation mode: " + this); + } + } } diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index 765fa2ab2..7c9ff67c1 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -347,6 +347,10 @@ public class ClassGen { * Additional checks for inlined methods */ private boolean skipMethod(MethodNode mth) { + if (cls.root().getArgs().getDecompilationMode().isSpecial()) { + // show all methods for special decompilation modes + return false; + } MethodInlineAttr inlineAttr = mth.get(AType.METHOD_INLINE); if (inlineAttr == null || inlineAttr.notNeeded()) { return false;