ykit/build.gradle

99 lines
2.4 KiB
Groovy
Raw Normal View History

2024-07-19 11:25:28 +00:00
plugins {
id 'java'
}
group = 'dev.maelstrom'
2024-07-19 12:46:18 +00:00
version = '0.3-SNAPSHOT'
2024-07-19 11:25:28 +00:00
repositories {
mavenCentral()
}
dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
}
test {
useJUnitPlatform()
2024-07-19 12:46:18 +00:00
}
tasks.register('extractApk', JavaExec) {
onlyIf {
!file('build/extracted').exists()
}
classpath = files('tools/apktool_2.9.3.jar')
args = ['d', 'source-apk/tumblr.apk', '-o', 'build/extracted']
}
2024-07-19 13:49:31 +00:00
tasks.register('mergeSmali') {
2024-07-19 12:46:18 +00:00
dependsOn tasks.extractApk
doLast {
2024-07-19 13:49:31 +00:00
copy {
into 'build/smali-merged'
from('src/main/smali')
from('build/extracted') {
include 'smali_classes*/**', 'smali/**'
}
duplicatesStrategy 'exclude'
2024-07-19 12:46:18 +00:00
}
2024-07-19 13:49:31 +00:00
}
}
tasks.register('smali') {
dependsOn tasks.mergeSmali
doLast {
mkdir('build/dex')
javaexec {
classpath = fileTree('tools/d2j').filter { it.name.endsWith('.jar') }
println(classpath.files)
mainClass = 'com.googlecode.d2j.smali.SmaliCmd'
args = ['-o', 'build/dex/classes.dex', 'build/smali-merged/smali']
2024-07-19 12:46:18 +00:00
}
2024-07-19 13:49:31 +00:00
}
}
// NOTE: Maybe broken if gradle thinks the extracted files are newer?
tasks.register('mergeResources') {
dependsOn tasks.extractApk
dependsOn tasks.smali
doLast {
// copy { // Copy from extracted
// from 'build/extracted'
// into 'build/merged'
// //exclude 'smali_classes*', 'smali'
// }
// copy { // Copy resources from src
// from 'src/main/resources'
// into 'build/merged'
// }
// copy { // Copy smali from src
// from 'src/main/smali'
// into 'build/merged'
// }
copy {
into('build/merged')
from('build/extracted') {
exclude 'smali_classes*', 'smali'
}
from('build/dex')
from('src/main/resources')
duplicatesStrategy 'include'
2024-07-19 13:10:42 +00:00
}
2024-07-19 12:46:18 +00:00
}
2024-07-19 13:49:31 +00:00
}
tasks.register('buildApk', JavaExec) {
dependsOn mergeResources
classpath = files('tools/apktool_2.9.3.jar')
args = ['b', 'build/merged', '-o', 'build/merged-apktool/tumblr-ykit.apk']
2024-07-19 11:25:28 +00:00
}