microdroid_manager prints to kmsg
Until we import kernlog, use stdio_to_kmsg as a workaround.
Bug: 189805435
Test: Follow microdroid/README.md
see the microdroid_manager's log messages
Change-Id: I0b178f8fe0751b536253a31c2fc322dc2db51b90
diff --git a/microdroid/README.md b/microdroid/README.md
index c2a65d5..c8ad8f4 100644
--- a/microdroid/README.md
+++ b/microdroid/README.md
@@ -119,7 +119,7 @@
"com.android.i18n",
"com.android.os.statsd",
"com.android.sdkext"
- ],
+ ]
}
```
diff --git a/microdroid/sepolicy/system/private/microdroid_manager.te b/microdroid/sepolicy/system/private/microdroid_manager.te
index f2feca2..deb969c 100644
--- a/microdroid/sepolicy/system/private/microdroid_manager.te
+++ b/microdroid/sepolicy/system/private/microdroid_manager.te
@@ -21,6 +21,12 @@
# Until then, allow microdroid_manager to execute the shell or other system executables.
allow microdroid_manager {shell_exec toolbox_exec}:file rx_file_perms;
+# Let microdroid_manager kernel-log.
+# TODO(b/189805435) when ready this should be kmsg_device rather than kmsg_debug_device
+userdebug_or_eng(`
+ allow microdroid_manager kmsg_debug_device:chr_file write;
+')
+
# Let microdroid_manager read a config file from /mnt/apk (fusefs)
# TODO(b/188400186) remove the below two rules
userdebug_or_eng(`
diff --git a/microdroid_manager/Android.bp b/microdroid_manager/Android.bp
index cb628b1..30f8481 100644
--- a/microdroid_manager/Android.bp
+++ b/microdroid_manager/Android.bp
@@ -9,7 +9,7 @@
edition: "2018",
prefer_rlib: true,
rustlibs: [
- "libandroid_logger",
+ "libenv_logger",
"libanyhow",
"libkeystore2_system_property-rust",
"liblog_rust",
diff --git a/microdroid_manager/microdroid_manager.rc b/microdroid_manager/microdroid_manager.rc
index c800002..4f194a3 100644
--- a/microdroid_manager/microdroid_manager.rc
+++ b/microdroid_manager/microdroid_manager.rc
@@ -1,4 +1,7 @@
service microdroid_manager /system/bin/microdroid_manager
disabled
+ # TODO(b/189805435) for now redirect stdio to kmsg
+ stdio_to_kmsg
+ setenv RUST_LOG info
# TODO(jooyung) remove this when microdroid_manager becomes a daemon
oneshot
\ No newline at end of file
diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index b71daa8..10731c5 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -17,10 +17,9 @@
mod ioutil;
mod metadata;
-use android_logger::Config;
use anyhow::{anyhow, bail, Result};
use keystore2_system_property::PropertyWatcher;
-use log::{info, Level};
+use log::info;
use microdroid_payload_config::{Task, TaskType, VmPayloadConfig};
use std::fs;
use std::path::Path;
@@ -29,10 +28,9 @@
const WAIT_TIMEOUT: Duration = Duration::from_secs(10);
-const LOG_TAG: &str = "MicrodroidManager";
-
fn main() -> Result<()> {
- android_logger::init_once(Config::default().with_tag(LOG_TAG).with_min_level(Level::Debug));
+ // TODO(b/189805435) use kernlog
+ env_logger::init();
info!("started.");