From ec78c377c006040d14d92f5b1a1a52da779f20aa Mon Sep 17 00:00:00 2001 From: Alex Klyubin <klyubin@google.com> Date: Fri, 10 Mar 2017 12:44:16 -0800 Subject: [PATCH] Targets for artifacts needed by recovery This ensures that SELinux policy artifact needed by recovery at runtime have targets in this build script. This is to make recoveryimage/bootimage targets depend on these artifacts explicitly, which reduces the element of surprise. Moreover, this enables us to move non-recovery artifacts around without affecting recovery artifacts. Test: Clean build, flash, device boots just fine, no new denials. Reboot to recovery, recovery boots just fine, no denials. This was tested on bullhead (non A/B device) and sailfish (A/B device). Bug: 33642277 Change-Id: I3c494d9d7fec5c4f487d38964e572757fcf67f57 --- Android.mk | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Android.mk b/Android.mk index 647b9c5ac..38da65b35 100644 --- a/Android.mk +++ b/Android.mk @@ -439,9 +439,10 @@ include $(CLEAR_VARS) # keep concrete sepolicy for neverallow checks LOCAL_MODULE := sepolicy.recovery +LOCAL_MODULE_STEM := sepolicy LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT) include $(BUILD_SYSTEM)/base_rules.mk @@ -700,6 +701,20 @@ file_contexts.local.tmp := ################################## include $(CLEAR_VARS) +LOCAL_MODULE := file_contexts.bin.recovery +LOCAL_MODULE_STEM := file_contexts.bin +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_fc) + $(hide) cp -f $< $@ + +################################## +include $(CLEAR_VARS) + LOCAL_MODULE := plat_file_contexts LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_TAGS := optional @@ -884,6 +899,34 @@ nonplat_property_contexts.tmp := ################################## include $(CLEAR_VARS) +LOCAL_MODULE := plat_property_contexts.recovery +LOCAL_MODULE_STEM := plat_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_plat_pc) + $(hide) cp -f $< $@ + +################################## +include $(CLEAR_VARS) + +LOCAL_MODULE := nonplat_property_contexts.recovery +LOCAL_MODULE_STEM := nonplat_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_nonplat_pc) + $(hide) cp -f $< $@ + +################################## +include $(CLEAR_VARS) + LOCAL_MODULE := plat_service_contexts LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_TAGS := optional -- GitLab