From 483987b7e6dc2fd782b4d588685df506b7af5bc1 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Tue, 12 Dec 2023 11:24:53 +0800 Subject: [PATCH] fix companion exec failed --- loader/src/ptracer/monitor.cpp | 2 +- zygiskd/src/zygiskd.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/loader/src/ptracer/monitor.cpp b/loader/src/ptracer/monitor.cpp index 78da21e..90aaab9 100644 --- a/loader/src/ptracer/monitor.cpp +++ b/loader/src/ptracer/monitor.cpp @@ -243,7 +243,7 @@ static bool ensure_daemon_created(bool is_64bit) { } else if (pid == 0) { std::string daemon_name = "./bin/zygisk-cp"; daemon_name += is_64bit ? "64" : "32"; - execl(daemon_name.c_str(), basename(daemon_name.c_str()), nullptr); + execl(daemon_name.c_str(), daemon_name.c_str(), nullptr); PLOGE("exec daemon %s failed", daemon_name.c_str()); exit(1); } else { diff --git a/zygiskd/src/zygiskd.rs b/zygiskd/src/zygiskd.rs index 11ee31b..22454ba 100644 --- a/zygiskd/src/zygiskd.rs +++ b/zygiskd/src/zygiskd.rs @@ -156,6 +156,7 @@ fn create_daemon_socket() -> Result { fn spawn_companion(name: &str, lib_fd: RawFd) -> Result> { let (mut daemon, companion) = UnixStream::pair()?; + // FIXME: avoid getting self path from arg0 let process = std::env::args().next().unwrap(); let nice_name = process.split('/').last().unwrap();