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