diff --git a/src/main.rs b/src/main.rs index c01b552..4a741df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,11 +25,13 @@ mod udp; mod mobile; static TUN_QUIT: std::sync::Mutex> = std::sync::Mutex::new(None); -static LOG_ENV: Option<&JNIEnv> = None; +static LOG_ENV: std::sync::Mutex> = std::sync::Mutex::new(None); pub fn log2java(text: String) { - if let Some(env) = LOG_ENV { - jni::FridaLib::traceFromNative(env, text); + if let Ok(mut l) = LOG_ENV.lock() { + if l.is_some() { + jni::FridaLib::traceFromNative(l.unwrap(), text); + } } } @@ -67,8 +69,12 @@ mod jni { } else { return Ok(-2); } - - LOG_ENV = Some(env); + + if let Ok(mut l) = LOG_ENV.lock() { + if !l.is_some() { + *l = Some(env); + } + } let main_loop = async move { /*if let Err(err) = {