Merge "Async interface for running odrefresh"
diff --git a/authfs/fd_server/src/main.rs b/authfs/fd_server/src/main.rs
index f5a3cba..f17b7e8 100644
--- a/authfs/fd_server/src/main.rs
+++ b/authfs/fd_server/src/main.rs
@@ -28,7 +28,7 @@
use anyhow::{bail, Result};
use binder_common::rpc_server::run_rpc_server;
use log::debug;
-use nix::dir::Dir;
+use nix::{dir::Dir, sys::stat::umask, sys::stat::Mode};
use std::collections::BTreeMap;
use std::fs::File;
use std::os::unix::io::FromRawFd;
@@ -157,10 +157,15 @@
);
let args = parse_args()?;
+
+ // Allow open/create/mkdir from authfs to create with expecting mode. It's possible to still
+ // use a custom mask on creation, then report the actual file mode back to authfs. But there
+ // is no demand now.
+ let old_umask = umask(Mode::empty());
+ debug!("Setting umask to 0 (old: {:03o})", old_umask.bits());
+
let service = FdService::new_binder(args.fd_pool).as_binder();
-
debug!("fd_server is starting as a rpc service.");
-
let mut ready_fd = args.ready_fd;
let retval = run_rpc_server(service, RPC_SERVICE_PORT, || {
debug!("fd_server is ready");
diff --git a/compos/common/compos_client.rs b/compos/common/compos_client.rs
index 6c16bb0..9c23fac 100644
--- a/compos/common/compos_client.rs
+++ b/compos/common/compos_client.rs
@@ -87,14 +87,17 @@
.context("Failed to open config APK idsig file")?;
let idsig_fd = ParcelFileDescriptor::new(idsig_fd);
- let (log_fd, debug_level) = if parameters.debug_mode {
- // Console output and the system log output from the VM are redirected to this file.
- let log_fd =
- File::create(data_dir.join("vm.log")).context("Failed to create log file")?;
+ let (console_fd, log_fd, debug_level) = if parameters.debug_mode {
+ // Console output and the system log output from the VM are redirected to file.
+ let console_fd = File::create(data_dir.join("vm_console.log"))
+ .context("Failed to create console log file")?;
+ let log_fd = File::create(data_dir.join("vm.log"))
+ .context("Failed to create system log file")?;
+ let console_fd = ParcelFileDescriptor::new(console_fd);
let log_fd = ParcelFileDescriptor::new(log_fd);
- (Some(log_fd), DebugLevel::FULL)
+ (Some(console_fd), Some(log_fd), DebugLevel::FULL)
} else {
- (None, DebugLevel::NONE)
+ (None, None, DebugLevel::NONE)
};
let config_path = parameters.config_path.as_deref().unwrap_or(DEFAULT_VM_CONFIG_PATH);
@@ -108,7 +111,7 @@
});
let vm = service
- .createVm(&config, log_fd.as_ref(), log_fd.as_ref())
+ .createVm(&config, console_fd.as_ref(), log_fd.as_ref())
.context("Failed to create VM")?;
let vm_state = Arc::new(VmStateMonitor::default());