Apktool is built by Gradle, but runs Gradle build at Apktool source root, without generating Apktool.jar,
Basmali.jar, Smali.jar actually generated, after looking at Apktool.jar's entrance in the BRUT.APKTOOL/APKTOOL-CLI directory
Look at the Gradle script:
Apply plugin: ' Eu.appsatori.fatjar '
17
Configurations {
Proguard
20}
21st
dependencies {
Compile project (': Brut.apktool:apktool-lib ')
Proguard Depends.proguard
25}
26
Gradle.taskGraph.whenReady {
Fatjar {
Manifest {
Attributes ("Main-class": "Brut.apktool.Main")
31}
32}
33}
34
Task Cleanoutputdirectory (type:delete) {
Filetree Delete (Dir:jar.destinationDir.getPath (), Exclude: "Apktool-cli.jar")
37}
38
Proguard Task (type:javaexec, Dependson:fatjar) {
+ def outFile = Jar.destinationDir.getPath () + '/' + ' apktool ' + '-' + project.apktool_version + '-small ' + '. ' + Jar.extension
Inputs.file Jar.archivepath
Outputs.file OutFile
43
println "${jar.archivepath}"
println "${outfile}"
Classpath = Configurations.proguard
The main = ' Proguard. Proguard '
+ args '-injars ' + ' ${jar.archivepath} ' + ' (! meta-inf/license.txt,! meta-inf/notice.txt,! README) '
"-outjars ${outfile}"
"-libraryjars ${system.properties[' java.home ']}/lib/rt.jar"
Wuyi '-dontobfuscate
* args '-dontoptimize '
-keep args ' public class Brut.apktool.Main {public static void Main (java.lang.string[]);} '
-keep-args '-class org.yaml.snakeyaml.** {public protected private *;} '
Args '-keepclassmembers enum * {public static **[] values (), public static * * VALUEOF (java.lang.String);} '
+ args '-dontwarn com.google.common.base.** '
# args '-dontwarn com.google.common.collect.** '
-dontwarn com.google.common.util.** '
-dontwarn javax.xml.xpath.** '
"-dontnote * *"
61}
62
Proguard.dependson cleanoutputdirectory
Tasks.getbypath (': Release '). DependsOn (Proguard)
Task generates the appropriate jar, suspect that the task is not executed by default
Knock Gradle Proguard
Sure enough to generate what we need.
Apktool-2.0.0-dirty-small.jar
Gradle Building Apktool.jar