From 6d3822d4fe56e720cb558d6669a28faa91ecdee7 Mon Sep 17 00:00:00 2001
From: Bowgo Tsai <bowgotsai@google.com>
Date: Wed, 29 Nov 2017 16:15:55 +0800
Subject: [PATCH] Add /odm/etc/selinux/odm_property_contexts

Bug: 64240127
Test: normal boot and recovery boot a device
Change-Id: Ibd71219f60644e57370c0293decf11d82f1cb35c
Merged-In: Ibd71219f60644e57370c0293decf11d82f1cb35c
(cherry picked from commit 1f717b1001c358ceae7d04c6a0d828f57595fdea)
---
 Android.mk            | 45 ++++++++++++++++++++++++++++++++++++++++++-
 private/file_contexts |  1 +
 2 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/Android.mk b/Android.mk
index db527a3dd..24176e84d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -255,7 +255,8 @@ ifdef BOARD_ODM_SEPOLICY_DIRS
 LOCAL_REQUIRED_MODULES += \
     odm_sepolicy.cil \
     odm_file_contexts \
-    odm_seapp_contexts
+    odm_seapp_contexts \
+    odm_property_contexts
 endif
 
 include $(BUILD_PHONY_PACKAGE)
@@ -1175,6 +1176,34 @@ built_vendor_pc := $(LOCAL_BUILT_MODULE)
 vendor_pcfiles :=
 vendor_property_contexts.tmp :=
 
+##################################
+include $(CLEAR_VARS)
+LOCAL_MODULE := odm_property_contexts
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/etc/selinux
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+odm_pcfiles := $(call build_policy, property_contexts, $(BOARD_ODM_SEPOLICY_DIRS))
+
+odm_property_contexts.tmp := $(intermediates)/odm_property_contexts.tmp
+$(odm_property_contexts.tmp): PRIVATE_PC_FILES := $(odm_pcfiles)
+$(odm_property_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
+$(odm_property_contexts.tmp): $(odm_pcfiles)
+	@mkdir -p $(dir $@)
+	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_PC_FILES) > $@
+
+
+$(LOCAL_BUILT_MODULE): $(odm_property_contexts.tmp) $(HOST_OUT_EXECUTABLES)/property_info_checker
+	@mkdir -p $(dir $@)
+	$(hide) cp -f $< $@
+	$(hide) $(HOST_OUT_EXECUTABLES)/property_info_checker $@
+
+built_odm_pc := $(LOCAL_BUILT_MODULE)
+odm_pcfiles :=
+odm_property_contexts.tmp :=
+
 ##################################
 include $(CLEAR_VARS)
 
@@ -1202,6 +1231,19 @@ include $(BUILD_SYSTEM)/base_rules.mk
 $(LOCAL_BUILT_MODULE): $(built_vendor_pc)
 	$(hide) cp -f $< $@
 
+##################################
+include $(CLEAR_VARS)
+LOCAL_MODULE := odm_property_contexts.recovery
+LOCAL_MODULE_STEM := odm_property_contexts
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(built_odm_pc)
+	$(hide) cp -f $< $@
+
 ##################################
 include $(CLEAR_VARS)
 
@@ -1526,6 +1568,7 @@ built_vendor_cil :=
 built_vendor_pc :=
 built_vendor_sc :=
 built_odm_cil :=
+built_odm_pc :=
 built_odm_sc :=
 built_plat_sc :=
 built_precompiled_sepolicy :=
diff --git a/private/file_contexts b/private/file_contexts
index 2671ccaf6..52761bc3e 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -340,6 +340,7 @@
 /(odm|vendor/odm)/etc/selinux/odm_sepolicy.cil                  u:object_r:sepolicy_file:s0
 /(odm|vendor/odm)/etc/selinux/odm_file_contexts                 u:object_r:file_contexts_file:s0
 /(odm|vendor/odm)/etc/selinux/odm_seapp_contexts                u:object_r:seapp_contexts_file:s0
+/(odm|vendor/odm)/etc/selinux/odm_property_contexts             u:object_r:property_contexts_file:s0
 
 #############################
 # Product files
-- 
GitLab