From ade741635f0108ff9b317a4da1f34ced4f820e54 Mon Sep 17 00:00:00 2001 From: Tri Vo <trong@google.com> Date: Thu, 20 Dec 2018 16:13:10 -0800 Subject: [PATCH] Separate product_hwservice_contexts out of system sepolicy. Bug: 119305624 Test: normal/recovery boot aosp_taimen Change-Id: I1009745686acd51563378dac56e857be0d60e794 --- Android.mk | 35 +++++++++++++++++++++++++++++++---- private/file_contexts | 3 ++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Android.mk b/Android.mk index 0abbabe9b..31a48b01b 100644 --- a/Android.mk +++ b/Android.mk @@ -286,6 +286,7 @@ ifdef HAS_PRODUCT_SEPOLICY LOCAL_REQUIRED_MODULES += \ product_sepolicy.cil \ product_file_contexts \ + product_hwservice_contexts \ endif include $(BUILD_PHONY_PACKAGE) @@ -1018,8 +1019,7 @@ endif include $(BUILD_SYSTEM)/base_rules.mk -# TODO(b/119305624): Move product-specific sepolicy out of plat_file_contexts -local_fc_files := $(call build_policy, file_contexts, $(PLAT_PRIVATE_POLICY) $(PRODUCT_PRIVATE_POLICY)) +local_fc_files := $(call build_policy, file_contexts, $(PLAT_PRIVATE_POLICY)) ifneq ($(filter address,$(SANITIZE_TARGET)),) local_fc_files += $(wildcard $(addsuffix /file_contexts_asan, $(PLAT_PRIVATE_POLICY))) endif @@ -1497,8 +1497,7 @@ endif include $(BUILD_SYSTEM)/base_rules.mk -# TODO(b/119305624): Move product-specific sepolicy out of plat_hwservice_contexts. -plat_hwsvcfiles := $(call build_policy, hwservice_contexts, $(PLAT_PRIVATE_POLICY) $(PRODUCT_PRIVATE_POLICY)) +plat_hwsvcfiles := $(call build_policy, hwservice_contexts, $(PLAT_PRIVATE_POLICY)) plat_hwservice_contexts.tmp := $(intermediates)/plat_hwservice_contexts.tmp $(plat_hwservice_contexts.tmp): PRIVATE_SVC_FILES := $(plat_hwsvcfiles) @@ -1519,6 +1518,34 @@ plat_hwservice_contexts.tmp := ################################## include $(CLEAR_VARS) +LOCAL_MODULE := product_hwservice_contexts +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/etc/selinux + +include $(BUILD_SYSTEM)/base_rules.mk + +product_hwsvcfiles := $(call build_policy, hwservice_contexts, $(PRODUCT_PRIVATE_POLICY)) + +product_hwservice_contexts.tmp := $(intermediates)/product_hwservice_contexts.tmp +$(product_hwservice_contexts.tmp): PRIVATE_SVC_FILES := $(product_hwsvcfiles) +$(product_hwservice_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS) +$(product_hwservice_contexts.tmp): $(product_hwsvcfiles) + @mkdir -p $(dir $@) + $(hide) m4 --fatal-warnings -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_SVC_FILES) > $@ + +$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy) +$(LOCAL_BUILT_MODULE): $(product_hwservice_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc + @mkdir -p $(dir $@) + sed -e 's/#.*$$//' -e '/^$$/d' $< > $@ + $(hide) $(HOST_OUT_EXECUTABLES)/checkfc -e -l $(PRIVATE_SEPOLICY) $@ + +product_hwsvcfiles := +product_hwservice_contexts.tmp := + +################################## +include $(CLEAR_VARS) + LOCAL_MODULE := vendor_hwservice_contexts LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_TAGS := optional diff --git a/private/file_contexts b/private/file_contexts index da41ef74a..a69f21592 100644 --- a/private/file_contexts +++ b/private/file_contexts @@ -373,7 +373,8 @@ /(product|system/product)(/.*)? u:object_r:system_file:s0 /(product|system/product)/overlay(/.*)? u:object_r:vendor_overlay_file:s0 -/(product|system/product)/etc/selinux/product_file_contexts u:object_r:file_contexts_file:s0 +/(product|system/product)/etc/selinux/product_file_contexts u:object_r:file_contexts_file:s0 +/(product|system/product)/etc/selinux/product_hwservice_contexts u:object_r:hwservice_contexts_file:s0 ############################# # Product-Services files -- GitLab