modified: src/client.rs
Some checks failed
gitea/Frida-android-native/pipeline/head There was a failure building this commit
Some checks failed
gitea/Frida-android-native/pipeline/head There was a failure building this commit
modified: src/main.rs modified: src/mobile.rs modified: src/simple_log.rs
This commit is contained in:
parent
db47c17b52
commit
efa814c70a
@ -22,10 +22,11 @@ use crate::udp::{UDPVpnPacket, UDPVpnHandshake, UDPSerializable};
|
||||
use network_interface::NetworkInterface;
|
||||
use network_interface::NetworkInterfaceConfig;
|
||||
|
||||
pub async fn client_mode(client_config: ClientConfiguration, fd: i32) {
|
||||
if let Err(err) = log::set_boxed_logger(Box::<crate::simple_log::SimpleLogger>::default()) {
|
||||
warn!("set logger error: {}", err);
|
||||
}
|
||||
static MY_LOGGER: SimpleLogger = SimpleLogger::new();
|
||||
|
||||
pub async fn client_mode(client_config: ClientConfiguration, fd: i32, env: &JNIEnv) {
|
||||
MY_LOGGER.set_env(env);
|
||||
log::set_logger(&MY_LOGGER).unwrap();
|
||||
|
||||
info!("Starting client...");
|
||||
|
||||
|
14
src/main.rs
14
src/main.rs
@ -75,13 +75,13 @@ mod jni {
|
||||
close_fd_on_drop: bool) -> JniResult<i32> {
|
||||
android_logger::init_once(Config::default().with_tag("RustFrida"));
|
||||
|
||||
FridaLib::traceFromNative(env, "Hello world".to_string());
|
||||
//FridaLib::traceFromNative(env, "Hello world".to_string());
|
||||
|
||||
Ok(-2)
|
||||
Ok(mobile::mobile_run(config_b32, close_fd_on_drop, tun_fd, env))
|
||||
}
|
||||
|
||||
pub extern "jni" fn stop(self, env: &JNIEnv) -> JniResult<i32> {
|
||||
Ok(-1)
|
||||
Ok(mobile::mobile_stop())
|
||||
}
|
||||
|
||||
pub extern "java" fn traceFromNative(
|
||||
@ -90,14 +90,6 @@ mod jni {
|
||||
) -> JniResult<()> {
|
||||
|
||||
}
|
||||
|
||||
/*pub extern "java" fn threadTestNoClass(env: &JNIEnv, s: String) -> JniResult<i32> {}
|
||||
pub extern "java" fn threadTestWithClass(
|
||||
env: &JNIEnv,
|
||||
class_ref: &GlobalRef,
|
||||
s: String,
|
||||
) -> JniResult<i32> {
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,9 +6,9 @@ use crate::client;
|
||||
use jni::sys::jint;
|
||||
use tokio::runtime::Runtime;
|
||||
|
||||
pub fn mobile_run(cfg_raw: String, close_fd_on_drop: bool, tun_fd: jint) -> c_int {
|
||||
pub fn mobile_run(cfg_raw: String, close_fd_on_drop: bool, tun_fd: i32, env: &JNIEnv) -> c_int {
|
||||
let config: ClientConfiguration = serde_yaml::from_slice(RFC4648.decode(cfg_raw.as_bytes()).unwrap().as_slice()).expect("Bad client config file structure");
|
||||
Runtime::new().unwrap().block_on(client::client_mode(config, tun_fd));
|
||||
Runtime::new().unwrap().block_on(client::client_mode(config, tun_fd, env));
|
||||
0
|
||||
/*let block = async move {
|
||||
let mut config = tun2::Configuration::default();
|
||||
|
@ -2,21 +2,10 @@ use crossbeam_channel::unbounded;
|
||||
use crossbeam_channel::{ Sender, Receiver };
|
||||
use std::sync::LazyLock;
|
||||
|
||||
static bnd: LazyLock<(Sender<Vec<u8>>, Receiver<Vec<u8>>)> = LazyLock::new(|| unbounded::<Vec<u8>>());
|
||||
|
||||
pub fn fetch_logs() -> Vec<u8> {
|
||||
if let Ok(bytes) = bnd.1.recv() {
|
||||
return bytes;
|
||||
}
|
||||
Vec::new()
|
||||
}
|
||||
|
||||
pub fn push_log(data: Vec<u8>) {
|
||||
bnd.0.send(data);
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Default)]
|
||||
pub struct SimpleLogger {}
|
||||
pub struct SimpleLogger {
|
||||
env: Option<&JNIEnv>
|
||||
}
|
||||
|
||||
impl log::Log for SimpleLogger {
|
||||
fn enabled(&self, metadata: &log::Metadata) -> bool {
|
||||
@ -45,6 +34,10 @@ impl SimpleLogger {
|
||||
record.module_path().unwrap_or(""),
|
||||
record.args()
|
||||
);
|
||||
push_log(msg.as_bytes().to_vec());
|
||||
FridaLib::traceFromNative(self.env, msg);
|
||||
}
|
||||
|
||||
fn set_env(&self, env: &JNIEnv) {
|
||||
self.env = Some(env);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user