From 1fa318dc8ce464e480539692af104ac60309f945 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Tue, 1 Apr 2025 03:14:10 -0700 Subject: [PATCH] Use Rust elf-cleaner implementation --- .gitattributes | 3 +- .gitmodules | 3 - build.py | 34 ++--- tools/elf-cleaner.exe | Bin 153460 -> 0 bytes tools/elf-cleaner/.gitignore | 1 + tools/elf-cleaner/Cargo.lock | 133 ++++++++++++++++++ tools/elf-cleaner/Cargo.toml | 13 ++ tools/elf-cleaner/src/main.rs | 85 +++++++++++ .../.gitignore | 0 .../Cargo.lock | 2 +- .../Cargo.toml | 4 +- .../src/main.rs | 0 tools/termux-elf-cleaner | 1 - 13 files changed, 249 insertions(+), 30 deletions(-) delete mode 100755 tools/elf-cleaner.exe create mode 100644 tools/elf-cleaner/.gitignore create mode 100644 tools/elf-cleaner/Cargo.lock create mode 100644 tools/elf-cleaner/Cargo.toml create mode 100644 tools/elf-cleaner/src/main.rs rename tools/{rustup_wrapper => rustup-wrapper}/.gitignore (100%) rename tools/{rustup_wrapper => rustup-wrapper}/Cargo.lock (99%) rename tools/{rustup_wrapper => rustup-wrapper}/Cargo.toml (74%) rename tools/{rustup_wrapper => rustup-wrapper}/src/main.rs (100%) delete mode 160000 tools/termux-elf-cleaner diff --git a/.gitattributes b/.gitattributes index 7f18b085d..eed785ce8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,7 +12,8 @@ # Denote all files that are truly binary and should not be modified. tools/** binary -tools/rustup_wrapper/** -binary +tools/rustup-wrapper/** -binary +tools/elf-cleaner/** -binary *.jar binary *.exe binary *.apk binary diff --git a/.gitmodules b/.gitmodules index 289d25b98..89f2f0886 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,6 +25,3 @@ [submodule "crt0"] path = native/src/external/crt0 url = https://github.com/topjohnwu/crt0.git -[submodule "termux-elf-cleaner"] - path = tools/termux-elf-cleaner - url = https://github.com/termux/termux-elf-cleaner.git diff --git a/build.py b/build.py index 461218e8e..055726b78 100755 --- a/build.py +++ b/build.py @@ -148,27 +148,16 @@ def cmd_out(cmds: list): def clean_elf(): - if is_windows: - elf_cleaner = Path("tools", "elf-cleaner.exe") - else: - elf_cleaner = Path("native", "out", "elf-cleaner") - if not elf_cleaner.exists(): - execv( - [ - "gcc", - '-DPACKAGE_NAME="termux-elf-cleaner"', - '-DPACKAGE_VERSION="2.1.1"', - '-DCOPYRIGHT="Copyright (C) 2022 Termux."', - "tools/termux-elf-cleaner/elf-cleaner.cpp", - "tools/termux-elf-cleaner/arghandling.c", - "-o", - elf_cleaner, - ] - ) - cmds = [elf_cleaner, "--api-level", "23"] + cargo_toml = Path("tools", "elf-cleaner", "Cargo.toml") + cmds = ["run", "--release", "--manifest-path", cargo_toml] + if args.verbose == 0: + cmds.append("-q") + elif args.verbose > 1: + cmds.append("--verbose") + cmds.append("--") cmds.extend(glob.glob("native/out/*/magisk")) cmds.extend(glob.glob("native/out/*/magiskpolicy")) - execv(cmds) + run_cargo(cmds) def run_ndk_build(cmds: list): @@ -484,6 +473,7 @@ def cleanup(): if "native" in targets: rm_rf(Path("native", "out")) + rm_rf(Path("tools", "elf-cleaner", "target")) if "app" in targets: header("* Cleaning app") @@ -553,8 +543,8 @@ def setup_rustup(): tgt = wrapper_dir / src.name tgt.symlink_to(f"rustup{EXE_EXT}") - # Build rustup_wrapper - wrapper_src = Path("tools", "rustup_wrapper") + # Build rustup-wrapper + wrapper_src = Path("tools", "rustup-wrapper") cargo_toml = wrapper_src / "Cargo.toml" cmds = ["build", "--release", f"--manifest-path={cargo_toml}"] if args.verbose > 1: @@ -564,7 +554,7 @@ def setup_rustup(): # Replace rustup with wrapper wrapper = wrapper_dir / (f"rustup{EXE_EXT}") wrapper.unlink(missing_ok=True) - cp(wrapper_src / "target" / "release" / (f"rustup_wrapper{EXE_EXT}"), wrapper) + cp(wrapper_src / "target" / "release" / (f"rustup-wrapper{EXE_EXT}"), wrapper) wrapper.chmod(0o755) diff --git a/tools/elf-cleaner.exe b/tools/elf-cleaner.exe deleted file mode 100755 index 5136cbd0a05e4da9fd1ed0b02552e8f7fdbc63c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153460 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 KnIY3$j{g^%JKOgF diff --git a/tools/elf-cleaner/.gitignore b/tools/elf-cleaner/.gitignore new file mode 100644 index 000000000..ea8c4bf7f --- /dev/null +++ b/tools/elf-cleaner/.gitignore @@ -0,0 +1 @@ +/target diff --git a/tools/elf-cleaner/Cargo.lock b/tools/elf-cleaner/Cargo.lock new file mode 100644 index 000000000..1e995843f --- /dev/null +++ b/tools/elf-cleaner/Cargo.lock @@ -0,0 +1,133 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "anyhow" +version = "1.0.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "elf-cleaner" +version = "0.0.0" +dependencies = [ + "anyhow", + "object", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "flate2" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] + +[[package]] +name = "indexmap" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "crc32fast", + "flate2", + "hashbrown", + "indexmap", + "memchr", + "ruzstd", +] + +[[package]] +name = "ruzstd" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" +dependencies = [ + "twox-hash", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] diff --git a/tools/elf-cleaner/Cargo.toml b/tools/elf-cleaner/Cargo.toml new file mode 100644 index 000000000..3115d957b --- /dev/null +++ b/tools/elf-cleaner/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "elf-cleaner" +version = "0.0.0" +edition = "2024" + +[dependencies] +object = { version = "0.36", features = ["build"] } +anyhow = "1.0" + +[profile.release] +strip = true +lto = true +codegen-units = 1 diff --git a/tools/elf-cleaner/src/main.rs b/tools/elf-cleaner/src/main.rs new file mode 100644 index 000000000..21ff21ceb --- /dev/null +++ b/tools/elf-cleaner/src/main.rs @@ -0,0 +1,85 @@ +use object::build::elf::{Builder, Dynamic, SectionData}; +use object::elf; +use std::{env, fs}; + +// Implementation adapted from https://github.com/termux/termux-elf-cleaner + +// Missing ELF constants +const DT_AARCH64_BTI_PLT: u32 = elf::DT_LOPROC + 1; +const DT_AARCH64_PAC_PLT: u32 = elf::DT_LOPROC + 3; +const DT_AARCH64_VARIANT_PCS: u32 = elf::DT_LOPROC + 5; + +const SUPPORTED_DT_FLAGS: u32 = elf::DF_1_NOW | elf::DF_1_GLOBAL; + +fn print_remove_dynamic(name: &str, path: &str) { + println!("Removing dynamic section entry {} in '{}'", name, path); +} + +fn process_elf(path: &str) -> anyhow::Result<()> { + let bytes = fs::read(path)?; + let mut elf = Builder::read(bytes.as_slice())?; + let is_aarch64 = elf.header.e_machine == elf::EM_AARCH64; + + elf.sections.iter_mut().for_each(|section| { + if let SectionData::Dynamic(entries) = &mut section.data { + // Remove unsupported entries + entries.retain(|e| { + let tag = e.tag(); + match tag { + elf::DT_RPATH => { + print_remove_dynamic("DT_RPATH", path); + return false; + } + elf::DT_RUNPATH => { + print_remove_dynamic("DT_RUNPATH", path); + return false; + } + _ => {} + } + if is_aarch64 { + match tag { + DT_AARCH64_BTI_PLT => { + print_remove_dynamic("DT_AARCH64_BTI_PLT", path); + return false; + } + DT_AARCH64_PAC_PLT => { + print_remove_dynamic("DT_AARCH64_PAC_PLT", path); + return false; + } + DT_AARCH64_VARIANT_PCS => { + print_remove_dynamic("DT_AARCH64_VARIANT_PCS", path); + return false; + } + _ => {} + } + } + true + }); + // Remove unsupported flags + for entry in entries.iter_mut() { + if let Dynamic::Integer { tag, val } = entry { + if *tag == elf::DT_FLAGS_1 { + let new_flags = *val & SUPPORTED_DT_FLAGS as u64; + if new_flags != *val { + println!( + "Replacing unsupported DT_FLAGS_1 {:#x} with {:#x} in '{}'", + *val, new_flags, path + ); + *val = new_flags; + } + break; + } + } + } + } + }); + + let mut out_bytes = Vec::new(); + elf.write(&mut out_bytes)?; + fs::write(path, &out_bytes)?; + Ok(()) +} + +fn main() -> anyhow::Result<()> { + env::args().skip(1).try_for_each(|s| process_elf(&s)) +} diff --git a/tools/rustup_wrapper/.gitignore b/tools/rustup-wrapper/.gitignore similarity index 100% rename from tools/rustup_wrapper/.gitignore rename to tools/rustup-wrapper/.gitignore diff --git a/tools/rustup_wrapper/Cargo.lock b/tools/rustup-wrapper/Cargo.lock similarity index 99% rename from tools/rustup_wrapper/Cargo.lock rename to tools/rustup-wrapper/Cargo.lock index 6943e2377..4748dc54f 100644 --- a/tools/rustup_wrapper/Cargo.lock +++ b/tools/rustup-wrapper/Cargo.lock @@ -12,7 +12,7 @@ dependencies = [ ] [[package]] -name = "rustup_wrapper" +name = "rustup-wrapper" version = "0.0.0" dependencies = [ "home", diff --git a/tools/rustup_wrapper/Cargo.toml b/tools/rustup-wrapper/Cargo.toml similarity index 74% rename from tools/rustup_wrapper/Cargo.toml rename to tools/rustup-wrapper/Cargo.toml index b52684d81..c9196f94c 100644 --- a/tools/rustup_wrapper/Cargo.toml +++ b/tools/rustup-wrapper/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "rustup_wrapper" +name = "rustup-wrapper" version = "0.0.0" -edition = "2021" +edition = "2024" [dependencies] home = "0.5" diff --git a/tools/rustup_wrapper/src/main.rs b/tools/rustup-wrapper/src/main.rs similarity index 100% rename from tools/rustup_wrapper/src/main.rs rename to tools/rustup-wrapper/src/main.rs diff --git a/tools/termux-elf-cleaner b/tools/termux-elf-cleaner deleted file mode 160000 index 55b68119a..000000000 --- a/tools/termux-elf-cleaner +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 55b68119abfca84c9bff009d6505c24862610ca1