gradle 构建apktool.jar

4 篇文章 0 订阅
2 篇文章 0 订阅

apktool由gradle编译构建,但在apktool源码根目录运行gradle build, 没有生成apktool.jar,

basmali.jar, smali.jar 倒是生成了,后看apktool.jar的入口在brut.apktool/apktool-cli目录下

看gradle脚本:

 16 apply plugin: 'eu.appsatori.fatjar'
 17 
 18 configurations {
 19     proguard
 20 }
 21 
 22 dependencies {
 23   compile project(':brut.apktool:apktool-lib')
 24   proguard depends.proguard
 25 }
 26 
 27 gradle.taskGraph.whenReady {
 28   fatJar {
 29     manifest {
 30       attributes("Main-Class": "brut.apktool.Main")
 31     }
 32   }
 33 }
 34 
 35 task cleanOutputDirectory(type: Delete) {
 36     delete fileTree(dir: jar.destinationDir.getPath(), exclude: "apktool-cli.jar")
 37 }
 38 
 39 task proguard(type: JavaExec, dependsOn: fatJar) {
 40     def outFile = jar.destinationDir.getPath() + '/' + "apktool" + '-' + project.apktool_version + '-small' + '.' + jar.extension
 41     inputs.file jar.archivePath
 42     outputs.file outFile
 43 
 44     println "${jar.archivePath}"
 45     println "${outFile}"
 46     classpath = configurations.proguard
 47     main = 'proguard.ProGuard'
 48     args '-injars ' + "${jar.archivePath}" + ' (!META-INF/LICENSE.txt,!META-INF/NOTICE.txt,!README)'
 49     args "-outjars ${outFile}"
 50     args "-libraryjars ${System.properties['java.home']}/lib/rt.jar"
 51     args '-dontobfuscate

 52     args '-dontoptimize'
 53     args '-keep public class brut.apktool.Main { public static void main(java.lang.String[]); }'
 54     args '-keep class org.yaml.snakeyaml.** { public protected private *; }'
 55     args '-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }'
 56     args '-dontwarn com.google.common.base.**'
 57     args '-dontwarn com.google.common.collect.**'
 58     args '-dontwarn com.google.common.util.**'
 59     args '-dontwarn javax.xml.xpath.**'
 60     args '-dontnote **'

 61 }
 62 
 63 proguard.dependsOn cleanOutputDirectory
 64 tasks.getByPath(':release').dependsOn(proguard)


task生成相应的jar, 怀疑这个task没有默认执行

敲gradle proguard


果然生成的我们需要的东西。

apktool-2.0.0-dirty-small.jar




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
apktool.jarAPKTOOL这个反编译工具必须用到的必备jar包,同时也附上apktool.jar的使用方法,有兴趣的朋友们就来下载使用吧。 使用方法 一.APKTOOL使用环境配置 1.安装JAVA并设置环境变量。 下载安装都很简单,关键是安装完后还需要亲自设置环境变量以方便其他程序能够条用JAVA。 以WIN7为例,在桌面上右键点击计算机——>属性——>高级系统设置——>环境变量——>在下边的系统变量里新建一个变量,变量名为JAVA_HOME,值为JAVA的安装路径,比如我的是H:\ProgramFiles\Java\jdk1.6.0_26 二.APKTool的安装 1.其实这个谈不上安装,不过如果你愿意的话可以把下载到的APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令. 2.可能有些人下载的APKTOOL里有个安装的bat文件,并且有另外两个方便使用的bat文件。 三.APKTool的使用 1.decode 该命令用于进行反编译apk文件,一般用法为 apktool d <file.apk> <dir> <file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk <dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer 如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令 apktool d –f <file.apk> <dir> 这样就会强行覆盖已经存在的文件 2.build 该命令用于编译修改好的文件,一般用法为 apktool b <dir> 这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。 3.install-framework 该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值