strip by ourselves

This commit is contained in:
5ec1cff
2023-12-08 19:46:40 +08:00
parent bcb65c4bd9
commit b34015b5f0
3 changed files with 34 additions and 5 deletions

View File

@@ -34,7 +34,7 @@ androidComponents.onVariants { variant ->
group = "module"
dependsOn(
":loader:assemble$variantCapped",
":zygiskd:cargoBuild",
":zygiskd:buildAndStrip",
)
into(moduleDir)
from("${rootProject.projectDir}/README.md")
@@ -65,6 +65,7 @@ androidComponents.onVariants { variant ->
}
into("bin") {
from(project(":zygiskd").buildDir.path + "/rustJniLibs/android")
include("**/zygiskd")
}
into("lib") {
from("${project(":loader").buildDir}/intermediates/stripped_native_libs/$variantLowered/out/lib")

View File

@@ -24,13 +24,11 @@ rustix = { version = "0.38", features = [ "fs", "process", "mount", "net", "thre
tokio = { version = "1.28", features = ["full"] }
[profile.dev]
# strip = true
# split-debuginfo = "packed"
strip = false
panic = "abort"
[profile.release]
strip = true
split-debuginfo = "packed"
strip = false
panic = "abort"
opt-level = "z"
lto = true

View File

@@ -27,3 +27,33 @@ cargo {
spec.environment("MIN_MAGISK_VERSION", minMagiskVersion)
}
}
afterEvaluate {
task<Task>("buildAndStrip") {
dependsOn(":zygiskd:cargoBuild")
doLast {
val dir = File(buildDir, "rustJniLibs/android")
val prebuilt = File(android.ndkDirectory, "toolchains/llvm/prebuilt").listFiles()!!.first()
val binDir = File(prebuilt, "bin")
println("binDir $binDir")
val suffix = if (prebuilt.name.contains("windows")) ".exe" else ""
val strip = File(binDir, "llvm-strip$suffix")
val objcopy = File(binDir, "llvm-objcopy$suffix")
dir.listFiles()!!.forEach {
if (!it.isDirectory) return@forEach
exec {
workingDir = it
commandLine(objcopy, "--only-keep-debug", "zygiskd", "zygiskd.debug")
}
exec {
workingDir = it
commandLine(strip, "--strip-all", "zygiskd")
}
exec {
workingDir = it
commandLine(objcopy, "--add-gnu-debuglink", "zygiskd.debug", "zygiskd")
}
}
}
}
}