diff --git a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java index cdc3ee6b4..4c498956e 100644 --- a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java +++ b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java @@ -146,7 +146,7 @@ public final class JadxDecompiler { inputFiles.clear(); for (File file : files) { try { - InputFile.addFilesFrom(file, inputFiles); + InputFile.addFilesFrom(file, inputFiles, args.isSkipSources()); } catch (IOException e) { throw new JadxException("Error load file: " + file, e); } diff --git a/jadx-core/src/main/java/jadx/core/utils/files/InputFile.java b/jadx-core/src/main/java/jadx/core/utils/files/InputFile.java index d1615726e..a439cb8bb 100644 --- a/jadx-core/src/main/java/jadx/core/utils/files/InputFile.java +++ b/jadx-core/src/main/java/jadx/core/utils/files/InputFile.java @@ -32,9 +32,9 @@ public class InputFile { private final File file; private final List dexFiles = new ArrayList(); - public static void addFilesFrom(File file, List list) throws IOException, DecodeException { + public static void addFilesFrom(File file, List list, boolean... skipSources) throws IOException, DecodeException { InputFile inputFile = new InputFile(file); - inputFile.searchDexFiles(); + inputFile.searchDexFiles(skipSources[0]); list.add(inputFile); } @@ -45,7 +45,7 @@ public class InputFile { this.file = file; } - private void searchDexFiles() throws IOException, DecodeException { + private void searchDexFiles(boolean skipSources) throws IOException, DecodeException { String fileName = file.getName(); if (fileName.endsWith(".dex")) { @@ -75,6 +75,8 @@ public class InputFile { } return; } + if (skipSources) return; + throw new DecodeException("Unsupported input file format: " + file); }