Merge "Use genfs labels version library" into main am: 1c1bdd91b3
Original change: https://android-review.googlesource.com/c/platform/system/core/+/3364390
Change-Id: I81190c193a0e5e72be12f46da507b03118114683
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/init/Android.bp b/init/Android.bp
index 4025a6b..4ee3be2 100644
--- a/init/Android.bp
+++ b/init/Android.bp
@@ -176,6 +176,7 @@
"libxml2",
"lib_apex_manifest_proto_lite",
"update_metadata-protos",
+ "libgenfslabelsversion.ffi",
],
shared_libs: [
"libbase",
diff --git a/init/selinux.cpp b/init/selinux.cpp
index 5ced0b8..6316b4d 100644
--- a/init/selinux.cpp
+++ b/init/selinux.cpp
@@ -69,6 +69,7 @@
#include <android/avf_cc_flags.h>
#include <fs_avb/fs_avb.h>
#include <fs_mgr.h>
+#include <genfslabelsversion.h>
#include <libgsi/libgsi.h>
#include <libsnapshot/snapshot.h>
#include <selinux/android.h>
@@ -190,22 +191,6 @@
return true;
}
-int GetVendorGenfsVersion() {
- std::string line;
- if (!ReadFirstLine("/vendor/etc/selinux/genfs_labels_version.txt", &line)) {
- PLOG(ERROR) << "Failed to read /vendor/etc/selinux/genfs_labels_version.txt; assuming it's "
- "202404";
- return 202404;
- }
- int version;
- if (!ParseInt(line, &version)) {
- PLOG(ERROR) << "Failed to parse the genfs labels version " << line
- << "; assuming it's 202404";
- return 202404;
- }
- return version;
-}
-
constexpr const char plat_policy_cil_file[] = "/system/etc/selinux/plat_sepolicy.cil";
bool IsSplitPolicyDevice() {
@@ -342,11 +327,14 @@
std::vector<std::string> genfs_cil_files;
- int vendor_genfs_version = GetVendorGenfsVersion();
+ int vendor_genfs_version = get_genfs_labels_version();
std::string genfs_cil_file =
std::format("/system/etc/selinux/plat_sepolicy_genfs_{}.cil", vendor_genfs_version);
if (access(genfs_cil_file.c_str(), F_OK) != 0) {
+ LOG(INFO) << "Missing " << genfs_cil_file << "; skipping";
genfs_cil_file.clear();
+ } else {
+ LOG(INFO) << "Using " << genfs_cil_file << " for genfs labels";
}
// clang-format off