From 0ac51cfc0123086679ae48535057dfcf34e5ad75 Mon Sep 17 00:00:00 2001 From: Jeff Vander Stoep Date: Thu, 2 May 2019 14:05:18 -0700 Subject: [PATCH] Load selinux compat file if it exists This addresses Treble backwards compat issues introduced in aosp/793958 and aosp/783669. Bug: 122874820 Test: build/flash blueline with pi-dev vendor and generic_ab system images. Test: adb pull /sys/fs/selinux/policy; sesearch policy --allowx -s vendordomain -t dev_type Change-Id: I9123aa02cf4bf07d72d1ea086dde0d1cf1b30db4 --- init/selinux.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/init/selinux.cpp b/init/selinux.cpp index 132fc137d..c49dc9f60 100644 --- a/init/selinux.cpp +++ b/init/selinux.cpp @@ -331,6 +331,12 @@ bool LoadSplitPolicy() { } std::string plat_mapping_file("/system/etc/selinux/mapping/" + vend_plat_vers + ".cil"); + std::string plat_compat_cil_file("/system/etc/selinux/mapping/" + vend_plat_vers + + ".compat.cil"); + if (access(plat_compat_cil_file.c_str(), F_OK) == -1) { + plat_compat_cil_file.clear(); + } + std::string product_policy_cil_file("/product/etc/selinux/product_sepolicy.cil"); if (access(product_policy_cil_file.c_str(), F_OK) == -1) { product_policy_cil_file.clear(); @@ -376,6 +382,9 @@ bool LoadSplitPolicy() { }; // clang-format on + if (!plat_compat_cil_file.empty()) { + compile_args.push_back(plat_compat_cil_file.c_str()); + } if (!product_policy_cil_file.empty()) { compile_args.push_back(product_policy_cil_file.c_str()); }