diff --git a/.travis.yml b/.travis.yml
index 8f1e14b3e..c3911b26d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ jdk:
- oraclejdk7
- openjdk7
- openjdk6
-script: gradle clean build samples
+script: gradle clean build
notifications:
email:
- skylot@gmail.com
diff --git a/README.md b/README.md
index 9201af214..240e1cab4 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ Latest version available at
git clone https://github.com/skylot/jadx.git
cd jadx
- ./gradlew clean build
+ ./gradlew dist
(on Windows, use `gradlew.bat` instead of `./gradlew`)
@@ -37,13 +37,13 @@ Run **jadx** on itself:
```
jadx[-gui] [options] (.dex, .apk or .jar)
options:
- -d, --output-dir - output directory
- -j, --threads-count - processing threads count
- -f, --fallback - make simple dump (using goto instead of 'if', 'for', etc)
- --cfg - save methods control flow graph
- --raw-cfg - save methods control flow graph (use raw instructions)
- -v, --verbose - verbose output
- -h, --help - print this help
+ -d, --output-dir - output directory
+ -j, --threads-count - processing threads count
+ -f, --fallback - make simple dump (using goto instead of 'if', 'for', etc)
+ --cfg - save methods control flow graph to dot file
+ --raw-cfg - save methods control flow graph (use raw instructions)
+ -v, --verbose - verbose output
+ -h, --help - print this help
Example:
jadx -d out classes.dex
```
diff --git a/build.gradle b/build.gradle
index bd08e4af7..4d8d2ffa4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,16 +12,17 @@ subprojects {
gradle.projectsEvaluated {
tasks.withType(Compile) {
- options.compilerArgs << "-Xlint" << "-Xlint:unchecked" << "-Xlint:deprecation"
+ if (!"${it}".contains(":jadx-samples:")) {
+ options.compilerArgs << "-Xlint" << "-Xlint:unchecked" << "-Xlint:deprecation"
+ }
}
}
jar {
version = jadxVersion
- }
-
- manifest {
- mainAttributes('jadx-version' : jadxVersion)
+ manifest {
+ mainAttributes('jadx-version' : jadxVersion)
+ }
}
dependencies {
@@ -48,10 +49,16 @@ task pack(type: Zip, dependsOn: copyArtifacts) {
from copyArtifacts.destinationDir
}
-task build(dependsOn: pack) {
+task dist(dependsOn: pack) {
description = 'Build jadx distribution zip'
}
+task samples(dependsOn: 'jadx-samples:samples') {
+}
+
+task build(dependsOn: [dist, samples]) {
+}
+
task clean(type: Delete) {
delete buildDir
}
@@ -59,4 +66,3 @@ task clean(type: Delete) {
task wrapper(type: Wrapper) {
gradleVersion = '1.8'
}
-
diff --git a/jadx-core/src/main/java/jadx/core/Consts.java b/jadx-core/src/main/java/jadx/core/Consts.java
index 3b61400b5..a71c69dd5 100644
--- a/jadx-core/src/main/java/jadx/core/Consts.java
+++ b/jadx-core/src/main/java/jadx/core/Consts.java
@@ -1,9 +1,7 @@
package jadx.core;
-import jadx.core.utils.Utils;
-
public class Consts {
- public static final String JADX_VERSION = Utils.getJadxVersion();
+ public static final String JADX_VERSION = Jadx.getVersion();
public static final boolean DEBUG = false;
diff --git a/jadx-core/src/main/java/jadx/core/Jadx.java b/jadx-core/src/main/java/jadx/core/Jadx.java
index 4866aea6b..75605dd17 100644
--- a/jadx-core/src/main/java/jadx/core/Jadx.java
+++ b/jadx-core/src/main/java/jadx/core/Jadx.java
@@ -19,10 +19,15 @@ import jadx.core.dex.visitors.regions.ProcessVariables;
import jadx.core.dex.visitors.regions.RegionMakerVisitor;
import jadx.core.dex.visitors.typeresolver.FinishTypeResolver;
import jadx.core.dex.visitors.typeresolver.TypeResolver;
+import jadx.core.utils.Utils;
import java.io.File;
+import java.io.IOException;
+import java.net.URL;
import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.List;
+import java.util.jar.Manifest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,4 +78,19 @@ public class Jadx {
passes.add(new CodeGen(args));
return passes;
}
+
+ public static String getVersion() {
+ try {
+ Enumeration resources = Utils.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
+ while (resources.hasMoreElements()) {
+ Manifest manifest = new Manifest(resources.nextElement().openStream());
+ String ver = manifest.getMainAttributes().getValue("jadx-version");
+ if (ver != null)
+ return ver;
+ }
+ } catch (IOException e) {
+ LOG.error("Can't get manifest file", e);
+ }
+ return "dev";
+ }
}
diff --git a/jadx-core/src/main/java/jadx/core/utils/Utils.java b/jadx-core/src/main/java/jadx/core/utils/Utils.java
index ad4ea242c..f1bf28e0d 100644
--- a/jadx-core/src/main/java/jadx/core/utils/Utils.java
+++ b/jadx-core/src/main/java/jadx/core/utils/Utils.java
@@ -3,14 +3,10 @@ package jadx.core.utils;
import jadx.core.utils.exceptions.JadxRuntimeException;
import java.io.File;
-import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.net.URL;
-import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
-import java.util.jar.Manifest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -126,22 +122,6 @@ public class Utils {
return end;
}
- public static String getJadxVersion() {
- try {
- Enumeration resources =
- Utils.class.getClassLoader().getResources("META-INF/MANIFEST.MF");
- while (resources.hasMoreElements()) {
- Manifest manifest = new Manifest(resources.nextElement().openStream());
- String ver = manifest.getMainAttributes().getValue("jadx-version");
- if (ver != null)
- return ver;
- }
- } catch (IOException e) {
- LOG.error("Can't get manifest file", e);
- }
- return "dev";
- }
-
public static void makeDirsForFile(File file) {
File dir = file.getParentFile();
if (!dir.exists()) {