From 0e2bc759661e4794eca55050fdc285cb7a1e1bef Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Mon, 11 Dec 2023 11:38:25 +0800 Subject: [PATCH] Add version info to logs --- loader/build.gradle.kts | 10 ++++++++++ loader/src/CMakeLists.txt | 2 ++ loader/src/injector/entry.cpp | 4 ++-- loader/src/ptracer/main.cpp | 7 ++++++- loader/src/ptracer/monitor.cpp | 1 + zygiskd/build.gradle.kts | 4 ++++ zygiskd/src/constants.rs | 1 + zygiskd/src/main.rs | 5 ++++- zygiskd/src/zygiskd.rs | 2 +- 9 files changed, 31 insertions(+), 5 deletions(-) diff --git a/loader/build.gradle.kts b/loader/build.gradle.kts index a785e25..aa352b4 100644 --- a/loader/build.gradle.kts +++ b/loader/build.gradle.kts @@ -5,6 +5,10 @@ plugins { alias(libs.plugins.agp.lib) } +val verCode: Int by rootProject.extra +val verName: String by rootProject.extra +val commitHash: String by rootProject.extra + fun Project.findInPath(executable: String, property: String): String? { val pathEnv = System.getenv("PATH") return pathEnv.split(File.pathSeparator).map { folder -> @@ -60,10 +64,16 @@ android { } buildTypes { + debug { + externalNativeBuild.cmake { + arguments += "-DZKSU_VERSION=$verName-$verCode-$commitHash-debug" + } + } release { externalNativeBuild.cmake { cFlags += releaseFlags cppFlags += releaseFlags + arguments += "-DZKSU_VERSION=$verName-$verCode-$commitHash-release" } } } diff --git a/loader/src/CMakeLists.txt b/loader/src/CMakeLists.txt index b4f649b..c8dc73a 100644 --- a/loader/src/CMakeLists.txt +++ b/loader/src/CMakeLists.txt @@ -3,6 +3,8 @@ project("loader") find_package(cxx REQUIRED CONFIG) +add_definitions(-DZKSU_VERSION=\"${ZKSU_VERSION}\") + aux_source_directory(common COMMON_SRC_LIST) add_library(common STATIC ${COMMON_SRC_LIST}) target_include_directories(common PRIVATE include) diff --git a/loader/src/injector/entry.cpp b/loader/src/injector/entry.cpp index cd58e0a..0abbffa 100644 --- a/loader/src/injector/entry.cpp +++ b/loader/src/injector/entry.cpp @@ -9,7 +9,7 @@ void *self_handle = nullptr; extern "C" [[gnu::visibility("default")]] void entry(void* handle, const char* path) { - LOGI("Zygisk library injected, magic %s", path); + LOGI("Zygisk library injected, version %s", ZKSU_VERSION); self_handle = handle; zygiskd::Init(path); @@ -22,6 +22,6 @@ void entry(void* handle, const char* path) { logging::setfd(zygiskd::RequestLogcatFd()); #endif - LOGD("Start hooking"); + LOGI("Start hooking"); hook_functions(); } diff --git a/loader/src/ptracer/main.cpp b/loader/src/ptracer/main.cpp index 8b4cbe3..44312b9 100644 --- a/loader/src/ptracer/main.cpp +++ b/loader/src/ptracer/main.cpp @@ -40,10 +40,15 @@ int main(int argc, char **argv) { return 0; } } + printf("Zygisk Next Tracer %s\n", ZKSU_VERSION); printf("Usage: %s ctl start|stop|exit\n", argv[0]); return 1; + } else if (argc >= 2 && argv[1] == "version"sv) { + printf("Zygisk Next Tracer %s\n", ZKSU_VERSION); + return 0; } else { - LOGE("usage: %s monitor | trace | ctl ", argv[0]); + printf("Zygisk Next Tracer %s\n", ZKSU_VERSION); + printf("usage: %s monitor | trace | ctl | version\n", argv[0]); return 1; } } diff --git a/loader/src/ptracer/monitor.cpp b/loader/src/ptracer/monitor.cpp index 8ae2efe..72f90b5 100644 --- a/loader/src/ptracer/monitor.cpp +++ b/loader/src/ptracer/monitor.cpp @@ -366,6 +366,7 @@ public: }; void init_monitor() { + LOGI("Zygisk Next %s", ZKSU_VERSION); LOGI("init monitor started"); SocketHandler socketHandler{}; socketHandler.Init(); diff --git a/zygiskd/build.gradle.kts b/zygiskd/build.gradle.kts index c08747f..8d33c3f 100644 --- a/zygiskd/build.gradle.kts +++ b/zygiskd/build.gradle.kts @@ -6,6 +6,9 @@ plugins { val minKsuVersion: Int by rootProject.extra val maxKsuVersion: Int by rootProject.extra val minMagiskVersion: Int by rootProject.extra +val verCode: Int by rootProject.extra +val verName: String by rootProject.extra +val commitHash: String by rootProject.extra android.buildFeatures { androidResources = false @@ -25,6 +28,7 @@ cargo { spec.environment("MIN_KSU_VERSION", minKsuVersion) spec.environment("MAX_KSU_VERSION", maxKsuVersion) spec.environment("MIN_MAGISK_VERSION", minMagiskVersion) + spec.environment("ZKSU_VERSION", "$verName-$verCode-$commitHash-$profile") } } diff --git a/zygiskd/src/constants.rs b/zygiskd/src/constants.rs index 0ebea49..a2b82ef 100644 --- a/zygiskd/src/constants.rs +++ b/zygiskd/src/constants.rs @@ -9,6 +9,7 @@ use crate::lp_select; pub const MIN_KSU_VERSION: i32 = unwrap_ctx!(parse_i32(env!("MIN_KSU_VERSION"))); pub const MAX_KSU_VERSION: i32 = unwrap_ctx!(parse_i32(env!("MAX_KSU_VERSION"))); pub const MIN_MAGISK_VERSION: i32 = unwrap_ctx!(parse_i32(env!("MIN_MAGISK_VERSION"))); +pub const ZKSU_VERSION: &'static str = env!("ZKSU_VERSION"); #[cfg(debug_assertions)] pub const MAX_LOG_LEVEL: LevelFilter = LevelFilter::Trace; diff --git a/zygiskd/src/main.rs b/zygiskd/src/main.rs index 50403ed..b1107f7 100644 --- a/zygiskd/src/main.rs +++ b/zygiskd/src/main.rs @@ -6,7 +6,7 @@ mod zygiskd; mod companion; use std::future::Future; -use anyhow::Result; +use crate::constants::ZKSU_VERSION; fn init_android_logger(tag: &str) { android_logger::init_once( @@ -22,6 +22,9 @@ fn start() { let fd: i32 = args[2].parse().unwrap(); companion::entry(fd); return; + } else if args.len() == 2 && args[1] == "version" { + println!("Zygisk Next daemon {}", ZKSU_VERSION); + return; } utils::switch_mount_namespace(1).expect("switch mnt ns"); diff --git a/zygiskd/src/zygiskd.rs b/zygiskd/src/zygiskd.rs index 9815b74..2542586 100644 --- a/zygiskd/src/zygiskd.rs +++ b/zygiskd/src/zygiskd.rs @@ -31,7 +31,7 @@ struct Context { } pub fn main() -> Result<()> { - log::info!("Start zygisk companion"); + log::info!("Welcome to Zygisk Next ({}) !", constants::ZKSU_VERSION); let arch = get_arch()?; log::debug!("Daemon architecture: {arch}");