Skip to content

Commit a86316e

Browse files
patilsnickkral
authored andcommitted
property_context: split into platform and non-platform components.
Bug: 33746484 Test: Successfully boot with original service and property contexts. Successfully boot with split serivce and property contexts. Change-Id: I87f95292b5860283efb2081b2223e607a52fed04 Signed-off-by: Sandeep Patil <[email protected]>
1 parent e8acd76 commit a86316e

File tree

4 files changed

+41
-25
lines changed

4 files changed

+41
-25
lines changed

Android.mk

+33-24
Original file line numberDiff line numberDiff line change
@@ -765,56 +765,64 @@ $(LOCAL_BUILT_MODULE): $(addprefix $(PLAT_PRIVATE_POLICY)/, seapp_contexts)
765765
##################################
766766
include $(CLEAR_VARS)
767767

768-
LOCAL_MODULE := property_contexts
768+
LOCAL_MODULE := plat_property_contexts
769769
LOCAL_MODULE_CLASS := ETC
770770
LOCAL_MODULE_TAGS := optional
771+
# TODO: Change module path to TARGET_SYSTEM_OUT after b/27805372
771772
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
772773

773774
include $(BUILD_SYSTEM)/base_rules.mk
774775

775-
all_pc_files := $(call build_policy, property_contexts, $(PLAT_PRIVATE_POLICY) $(BOARD_SEPOLICY_DIRS))
776-
all_pcfiles_with_nl := $(call add_nl, $(all_pc_files), $(built_nl))
776+
plat_pcfiles := $(call build_policy, property_contexts, $(PLAT_PRIVATE_POLICY))
777777

778-
property_contexts.tmp := $(intermediates)/property_contexts.tmp
779-
$(property_contexts.tmp): PRIVATE_PC_FILES := $(all_pcfiles_with_nl)
780-
$(property_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
781-
$(property_contexts.tmp): $(all_pcfiles_with_nl)
778+
plat_property_contexts.tmp := $(intermediates)/plat_property_contexts.tmp
779+
$(plat_property_contexts.tmp): PRIVATE_PC_FILES := $(plat_pcfiles)
780+
$(plat_property_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
781+
$(plat_property_contexts.tmp): $(plat_pcfiles)
782782
@mkdir -p $(dir $@)
783783
$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_PC_FILES) > $@
784784

785785

786786
$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
787-
$(LOCAL_BUILT_MODULE): $(property_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
787+
$(LOCAL_BUILT_MODULE): $(plat_property_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
788788
@mkdir -p $(dir $@)
789-
$(hide) sed -e 's/#.*$$//' -e '/^$$/d' $< > $@
789+
$(hide) sed -e 's/#.*$$//' -e '/^$$/d' $< | sort -u -o $@
790790
$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
791791

792-
built_pc := $(LOCAL_BUILT_MODULE)
793-
all_pc_files :=
794-
all_pcfiles_with_nl :=
795-
property_contexts.tmp :=
792+
built_plat_pc := $(LOCAL_BUILT_MODULE)
793+
plat_pcfiles :=
794+
plat_property_contexts.tmp :=
796795

797796
##################################
798797
include $(CLEAR_VARS)
799798

800-
LOCAL_MODULE := general_property_contexts
799+
LOCAL_MODULE := nonplat_property_contexts
801800
LOCAL_MODULE_CLASS := ETC
802-
LOCAL_MODULE_TAGS := tests
801+
LOCAL_MODULE_TAGS := optional
802+
# TODO: Change module path to TARGET_SYSTEM_OUT after b/27805372
803+
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
803804

804805
include $(BUILD_SYSTEM)/base_rules.mk
805806

806-
general_property_contexts.tmp := $(intermediates)/general_property_contexts.tmp
807-
$(general_property_contexts.tmp): $(addprefix $(PLAT_PRIVATE_POLICY)/, property_contexts)
807+
nonplat_pcfiles := $(call build_policy, property_contexts, $(BOARD_SEPOLICY_DIRS) $(REQD_MASK_POLICY))
808+
809+
nonplat_property_contexts.tmp := $(intermediates)/nonplat_property_contexts.tmp
810+
$(nonplat_property_contexts.tmp): PRIVATE_PC_FILES := $(nonplat_pcfiles)
811+
$(nonplat_property_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
812+
$(nonplat_property_contexts.tmp): $(nonplat_pcfiles)
808813
@mkdir -p $(dir $@)
809-
$(hide) m4 -s $< > $@
814+
$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_PC_FILES) > $@
810815

811-
$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_general_sepolicy)
812-
$(LOCAL_BUILT_MODULE): $(general_property_contexts.tmp) $(built_general_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc $(ACP)
816+
817+
$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
818+
$(LOCAL_BUILT_MODULE): $(nonplat_property_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
813819
@mkdir -p $(dir $@)
814-
$(hide) sed -e 's/#.*$$//' -e '/^$$/d' $< > $@
820+
$(hide) sed -e 's/#.*$$//' -e '/^$$/d' $< | sort -u -o $@
815821
$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
816822

817-
general_property_contexts.tmp :=
823+
built_nonplat_pc := $(LOCAL_BUILT_MODULE)
824+
nonplat_pcfiles :=
825+
nonplat_property_contexts.tmp :=
818826

819827
##################################
820828
include $(CLEAR_VARS)
@@ -947,7 +955,7 @@ LOCAL_MODULE_TAGS := optional
947955
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
948956

949957
include $(BUILD_SYSTEM)/base_rules.mk
950-
$(LOCAL_BUILT_MODULE): $(built_sepolicy) $(built_pc) $(built_plat_fc) \
958+
$(LOCAL_BUILT_MODULE): $(built_sepolicy) $(built_plat_pc) $(built_nonplat_pc) $(built_plat_fc) \
951959
$(buit_nonplat_fc) $(built_plat_sc) $(built_nonplat_sc) $(built_plat_svc) $(built_nonplat_svc)
952960
@mkdir -p $(dir $@)
953961
$(hide) echo -n $(BUILD_FINGERPRINT_FROM_FILE) > $@
@@ -962,7 +970,8 @@ built_nonplat_fc :=
962970
built_general_sepolicy :=
963971
built_general_sepolicy.conf :=
964972
built_nl :=
965-
built_pc :=
973+
built_plat_pc :=
974+
built_nonplat_pc :=
966975
built_nonplat_sc :=
967976
built_plat_sc :=
968977
built_sepolicy :=

CleanSpec.mk

+3
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,6 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/plat_property_context
6060

6161
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/property_contexts)
6262
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/property_contexts)
63+
64+
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/property_contexts)
65+
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/property_contexts)

private/file_contexts

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
/mapping_sepolicy\.cil u:object_r:rootfs:s0
4242
/nonplat_sepolicy\.cil u:object_r:rootfs:s0
4343
/plat_sepolicy\.cil u:object_r:rootfs:s0
44-
/property_contexts u:object_r:property_contexts:s0
44+
/plat_property_contexts u:object_r:property_contexts:s0
45+
/nonplat_property_contexts u:object_r:property_contexts:s0
4546
/seapp_contexts u:object_r:rootfs:s0
4647
/nonplat_seapp_contexts u:object_r:rootfs:s0
4748
/plat_seapp_contexts u:object_r:rootfs:s0

reqd_mask/property_contexts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# empty property_contexts file - this file is used to generate an empty
2+
# non-platform property context for devices without any property_contexts
3+
# customizations.

0 commit comments

Comments
 (0)