From d2fd54e0ffb377ec07f5fc87907356644ec0fdf6 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Wed, 7 Jun 2017 14:32:30 -0700 Subject: [PATCH] Move restorecon() of /sys from init to ueventd. ueventd already does restorecon() for /sys/{block,class,devices}, so instead of duplicating this effort with init, move the restorecon() that init does for all of /sys to ueventd. Bug: 62420036 Change-Id: I6125f8ff5316a0cf45872d1100d089d71802958f Merged-In: I6125f8ff5316a0cf45872d1100d089d71802958f Test: Boot sailfish, bullhead --- init/init.cpp | 1 - init/uevent_listener.cpp | 2 +- init/uevent_listener.h | 2 -- init/ueventd.cpp | 4 +--- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/init/init.cpp b/init/init.cpp index 4e462d7f9..999fadad7 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -880,7 +880,6 @@ static void selinux_restore_context() { selinux_android_restorecon("/dev/__properties__", 0); selinux_android_restorecon("/plat_property_contexts", 0); selinux_android_restorecon("/nonplat_property_contexts", 0); - selinux_android_restorecon("/sys", SELINUX_ANDROID_RESTORECON_RECURSE); selinux_android_restorecon("/dev/block", SELINUX_ANDROID_RESTORECON_RECURSE); selinux_android_restorecon("/dev/device-mapper", 0); diff --git a/init/uevent_listener.cpp b/init/uevent_listener.cpp index 01b825071..27c5d2374 100644 --- a/init/uevent_listener.cpp +++ b/init/uevent_listener.cpp @@ -165,7 +165,7 @@ RegenerationAction UeventListener::RegenerateUeventsForPath(const std::string& p return RegenerateUeventsForDir(d.get(), callback); } -const char* kRegenerationPaths[] = {"/sys/class", "/sys/block", "/sys/devices"}; +static const char* kRegenerationPaths[] = {"/sys/class", "/sys/block", "/sys/devices"}; void UeventListener::RegenerateUevents(RegenerateCallback callback) const { for (const auto path : kRegenerationPaths) { diff --git a/init/uevent_listener.h b/init/uevent_listener.h index 8e6f3b40b..ba31aaa71 100644 --- a/init/uevent_listener.h +++ b/init/uevent_listener.h @@ -35,8 +35,6 @@ enum class RegenerationAction { using RegenerateCallback = std::function; using PollCallback = std::function; -extern const char* kRegenerationPaths[3]; - class UeventListener { public: UeventListener(); diff --git a/init/ueventd.cpp b/init/ueventd.cpp index 31e41065b..d12164719 100644 --- a/init/ueventd.cpp +++ b/init/ueventd.cpp @@ -174,9 +174,7 @@ void ColdBoot::ForkSubProcesses() { } void ColdBoot::DoRestoreCon() { - for (const char* path : kRegenerationPaths) { - selinux_android_restorecon(path, SELINUX_ANDROID_RESTORECON_RECURSE); - } + selinux_android_restorecon("/sys", SELINUX_ANDROID_RESTORECON_RECURSE); device_handler_.set_skip_restorecon(false); }