Add product flavor to in app logs
This commit is contained in:
parent
f2da810790
commit
0a59263d2c
5
Cargo.lock
generated
5
Cargo.lock
generated
@ -2198,9 +2198,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
||||
|
||||
[[package]]
|
||||
name = "jnix"
|
||||
version = "0.5.2"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "542b2072131a62ec940ee161ff0a01e7a1c2a129796b30143efc952cb6e0f28f"
|
||||
checksum = "63c460f1b7afbfcb0810208d3b0efc6ac1d7574f5e379fa2c19fb957bb57678a"
|
||||
dependencies = [
|
||||
"jni",
|
||||
"jnix-macros",
|
||||
@ -2783,6 +2783,7 @@ dependencies = [
|
||||
"mullvad-types",
|
||||
"nix 0.23.2",
|
||||
"rand 0.8.5",
|
||||
"talpid-platform-metadata",
|
||||
"talpid-tunnel",
|
||||
"talpid-types",
|
||||
"thiserror 2.0.9",
|
||||
|
@ -7,12 +7,14 @@ object MullvadDaemon {
|
||||
System.loadLibrary("mullvad_jni")
|
||||
}
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
external fun initialize(
|
||||
vpnService: MullvadVpnService,
|
||||
rpcSocketPath: String,
|
||||
filesDirectory: String,
|
||||
cacheDirectory: String,
|
||||
apiEndpointOverride: ApiEndpointOverride?,
|
||||
extraMetadata: Map<String, String>,
|
||||
)
|
||||
|
||||
external fun shutdown()
|
||||
|
@ -170,6 +170,7 @@ class MullvadVpnService : TalpidVpnService() {
|
||||
filesDirectory = filesDir.absolutePath,
|
||||
cacheDirectory = cacheDir.absolutePath,
|
||||
apiEndpointOverride = apiEndpointOverride,
|
||||
extraMetadata = mapOf("flavor" to BuildConfig.FLAVOR),
|
||||
)
|
||||
Logger.i("MullvadVpnService: Daemon initialized")
|
||||
}
|
||||
|
@ -35,3 +35,4 @@ mullvad-problem-report = { path = "../mullvad-problem-report" }
|
||||
mullvad-types = { path = "../mullvad-types" }
|
||||
talpid-tunnel = { path = "../talpid-tunnel" }
|
||||
talpid-types = { path = "../talpid-types" }
|
||||
talpid-platform-metadata = { path = "../talpid-platform-metadata" }
|
||||
|
@ -3,6 +3,7 @@ pub const CLASSES: &[&str] = &[
|
||||
"java/net/InetAddress",
|
||||
"java/net/InetSocketAddress",
|
||||
"java/util/ArrayList",
|
||||
"java/util/HashMap",
|
||||
"net/mullvad/mullvadvpn/service/MullvadDaemon",
|
||||
"net/mullvad/mullvadvpn/service/MullvadVpnService",
|
||||
"net/mullvad/talpid/model/InetNetwork",
|
||||
|
@ -16,6 +16,7 @@ use mullvad_daemon::{
|
||||
cleanup_old_rpc_socket, exception_logging, logging, runtime::new_multi_thread, version, Daemon,
|
||||
DaemonCommandChannel, DaemonCommandSender, DaemonConfig,
|
||||
};
|
||||
use std::collections::HashMap;
|
||||
use std::{
|
||||
ffi::CString,
|
||||
io,
|
||||
@ -84,6 +85,7 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initial
|
||||
files_directory: JObject<'_>,
|
||||
cache_directory: JObject<'_>,
|
||||
api_endpoint: JObject<'_>,
|
||||
extra_metadata: JObject<'_>,
|
||||
) {
|
||||
let mut ctx = DAEMON_CONTEXT.lock().unwrap();
|
||||
assert!(ctx.is_none(), "multiple calls to MullvadDaemon.initialize");
|
||||
@ -99,6 +101,8 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_initial
|
||||
LOAD_CLASSES.call_once(|| env.preload_classes(classes::CLASSES.iter().cloned()));
|
||||
log::info!("Done loading classes");
|
||||
|
||||
talpid_platform_metadata::set_extra_metadata(HashMap::from_java(&env, extra_metadata));
|
||||
|
||||
let rpc_socket = pathbuf_from_java(&env, rpc_socket_path);
|
||||
let cache_dir = pathbuf_from_java(&env, cache_directory);
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
use std::collections::HashMap;
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
use std::sync::{LazyLock, RwLock};
|
||||
|
||||
mod command;
|
||||
use command::command_stdout_lossy;
|
||||
@ -27,15 +28,26 @@ fn os_version() -> String {
|
||||
get_prop("ro.build.version.release").unwrap_or_else(|| "N/A".to_owned())
|
||||
}
|
||||
|
||||
pub fn extra_metadata() -> HashMap<String, String> {
|
||||
let mut metadata = HashMap::new();
|
||||
pub fn extra_metadata() -> impl Iterator<Item = (String, String)> {
|
||||
let mut metadata = BTreeMap::new();
|
||||
metadata.insert(
|
||||
"abi".to_owned(),
|
||||
get_prop("ro.product.cpu.abilist").unwrap_or_else(|| "N/A".to_owned()),
|
||||
);
|
||||
metadata
|
||||
let extra = EXTRA_METADATA.read().unwrap();
|
||||
for (k, v) in extra.iter() {
|
||||
metadata.insert(k.clone(), v.clone());
|
||||
}
|
||||
metadata.into_iter()
|
||||
}
|
||||
|
||||
fn get_prop(property: &str) -> Option<String> {
|
||||
command_stdout_lossy("getprop", &[property]).ok()
|
||||
}
|
||||
|
||||
pub fn set_extra_metadata(extra: HashMap<String, String>) {
|
||||
*EXTRA_METADATA.write().unwrap() = extra;
|
||||
}
|
||||
|
||||
static EXTRA_METADATA: LazyLock<RwLock<HashMap<String, String>>> =
|
||||
LazyLock::new(|| RwLock::new(HashMap::new()));
|
||||
|
@ -15,6 +15,8 @@ mod imp;
|
||||
#[path = "android.rs"]
|
||||
mod imp;
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub use self::imp::set_extra_metadata;
|
||||
#[cfg(target_os = "macos")]
|
||||
pub use self::imp::MacosVersion;
|
||||
#[cfg(windows)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user