Don't unmount APEXes in microdroid

In microdroid, APEXes are passed as block devices from host, and then
mounted directly, without using /data. Unmounting APEXes on reboot is
for clean unmount of /data, so it's not needed in microdroid.

This skips unmounting in microdroid to remove unnecessary SELinux
denials.

Bug: 256793087
Test: run microdroid and reboot, see no denials happen
Change-Id: Iaf737876f5ab5de5e8f76ed8bb0963cc25d73a80
This commit is contained in:
Inseob Kim 2022-11-09 12:50:14 +09:00
parent b190f3cbe1
commit 0fbc1d7e31

View file

@ -567,6 +567,11 @@ int StopServicesAndLogViolations(const std::set<std::string>& services,
}
static Result<void> UnmountAllApexes() {
// don't need to unmount because apexd doesn't use /data in Microdroid
if (IsMicrodroid()) {
return {};
}
const char* args[] = {"/system/bin/apexd", "--unmount-all"};
int status;
if (logwrap_fork_execvp(arraysize(args), args, &status, false, LOG_KLOG, true, nullptr) != 0) {