From b34015b5f0c33f5d3e572f2fc052d935473fc21e Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Fri, 8 Dec 2023 19:46:40 +0800 Subject: [PATCH] strip by ourselves --- module/build.gradle.kts | 3 ++- zygiskd/Cargo.toml | 6 ++---- zygiskd/build.gradle.kts | 30 ++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/module/build.gradle.kts b/module/build.gradle.kts index 48b81f0..eb9a6ab 100644 --- a/module/build.gradle.kts +++ b/module/build.gradle.kts @@ -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") diff --git a/zygiskd/Cargo.toml b/zygiskd/Cargo.toml index b84064b..347a9eb 100644 --- a/zygiskd/Cargo.toml +++ b/zygiskd/Cargo.toml @@ -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 diff --git a/zygiskd/build.gradle.kts b/zygiskd/build.gradle.kts index 081cfc7..32f3fed 100644 --- a/zygiskd/build.gradle.kts +++ b/zygiskd/build.gradle.kts @@ -27,3 +27,33 @@ cargo { spec.environment("MIN_MAGISK_VERSION", minMagiskVersion) } } + +afterEvaluate { + 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") + } + } + } + } +} \ No newline at end of file