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') }