47 lines
1.4 KiB
Groovy
47 lines
1.4 KiB
Groovy
plugins {
|
|
id 'java-library'
|
|
}
|
|
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
|
|
def androidHome = providers.environmentVariable('ANDROID_HOME')
|
|
.orElse(providers.environmentVariable('ANDROID_SDK_ROOT'))
|
|
.orElse('/var/home/hellings/android-sdk')
|
|
def androidJar = file("${androidHome.get()}/platforms/android-34/android.jar")
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(17)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly files(androidJar)
|
|
runtimeOnly 'com.android.tools.smali:smali-baksmali:3.0.9'
|
|
}
|
|
|
|
tasks.register('dexRelease', Exec) {
|
|
dependsOn tasks.named('jar')
|
|
def outputDir = layout.buildDirectory.dir('dex')
|
|
inputs.file(tasks.named('jar').flatMap { it.archiveFile })
|
|
outputs.dir(outputDir)
|
|
doFirst {
|
|
outputDir.get().asFile.mkdirs()
|
|
commandLine "${androidHome.get()}/build-tools/34.0.0/d8", '--min-api', '23', '--lib', androidJar,
|
|
'--output', outputDir.get().asFile, tasks.named('jar').get().archiveFile.get().asFile
|
|
}
|
|
}
|
|
|
|
tasks.register('smaliRelease', JavaExec) {
|
|
dependsOn tasks.named('dexRelease')
|
|
classpath = configurations.runtimeClasspath
|
|
mainClass = 'com.android.tools.smali.baksmali.Main'
|
|
args 'disassemble', layout.buildDirectory.file('dex/classes.dex').get().asFile, '-o', layout.buildDirectory.dir('smali').get().asFile
|
|
}
|
|
|
|
tasks.named('build') {
|
|
dependsOn tasks.named('smaliRelease')
|
|
}
|