diff --git a/init/property_service.cpp b/init/property_service.cpp index fa28fa33b..ecd5baa1d 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp @@ -762,12 +762,20 @@ void CreateSerializedPropertyInfo() { // Don't check for failure here, so we always have a sane list of properties. // E.g. In case of recovery, the vendor partition will not have mounted and we // still need the system / platform properties to function. - LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", &property_infos); + if (!LoadPropertyInfoFromFile("/vendor/etc/selinux/vendor_property_contexts", + &property_infos)) { + // Fallback to nonplat_* if vendor_* doesn't exist. + LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", + &property_infos); + } } else { if (!LoadPropertyInfoFromFile("/plat_property_contexts", &property_infos)) { return; } - LoadPropertyInfoFromFile("/nonplat_property_contexts", &property_infos); + if (!LoadPropertyInfoFromFile("/vendor_property_contexts", &property_infos)) { + // Fallback to nonplat_* if vendor_* doesn't exist. + LoadPropertyInfoFromFile("/nonplat_property_contexts", &property_infos); + } } auto serialized_contexts = std::string(); diff --git a/init/selinux.cpp b/init/selinux.cpp index d3ce23635..6aba9c1ef 100644 --- a/init/selinux.cpp +++ b/init/selinux.cpp @@ -423,12 +423,16 @@ void SelinuxRestoreContext() { selinux_android_restorecon("/vendor_file_contexts", 0); selinux_android_restorecon("/plat_property_contexts", 0); selinux_android_restorecon("/nonplat_property_contexts", 0); + selinux_android_restorecon("/vendor_property_contexts", 0); selinux_android_restorecon("/plat_seapp_contexts", 0); selinux_android_restorecon("/nonplat_seapp_contexts", 0); + selinux_android_restorecon("/vendor_seapp_contexts", 0); selinux_android_restorecon("/plat_service_contexts", 0); selinux_android_restorecon("/nonplat_service_contexts", 0); + selinux_android_restorecon("/vendor_service_contexts", 0); selinux_android_restorecon("/plat_hwservice_contexts", 0); selinux_android_restorecon("/nonplat_hwservice_contexts", 0); + selinux_android_restorecon("/vendor_hwservice_contexts", 0); selinux_android_restorecon("/sepolicy", 0); selinux_android_restorecon("/vndservice_contexts", 0);