Skip to content
Snippets Groups Projects
Android.mk 44.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • endif
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    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)
    $(plat_hwservice_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
    $(plat_hwservice_contexts.tmp): $(plat_hwsvcfiles)
    	@mkdir -p $(dir $@)
    	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_SVC_FILES) > $@
    
    $(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
    $(LOCAL_BUILT_MODULE): $(plat_hwservice_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc $(ACP)
    	@mkdir -p $(dir $@)
    	sed -e 's/#.*$$//' -e '/^$$/d' $< > $@
    	$(HOST_OUT_EXECUTABLES)/checkfc -e -l $(PRIVATE_SEPOLICY) $@
    
    plat_hwsvcfiles :=
    plat_hwservice_contexts.tmp :=
    
    ##################################
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := nonplat_hwservice_contexts
    LOCAL_MODULE_CLASS := ETC
    LOCAL_MODULE_TAGS := optional
    ifeq ($(PRODUCT_FULL_TREBLE),true)
    LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/selinux
    else
    LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
    endif
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    nonplat_hwsvcfiles := $(call build_policy, hwservice_contexts, $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS) $(REQD_MASK_POLICY))
    
    nonplat_hwservice_contexts.tmp := $(intermediates)/nonplat_hwservice_contexts.tmp
    $(nonplat_hwservice_contexts.tmp): PRIVATE_SVC_FILES := $(nonplat_hwsvcfiles)
    $(nonplat_hwservice_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
    $(nonplat_hwservice_contexts.tmp): $(nonplat_hwsvcfiles)
    	@mkdir -p $(dir $@)
    	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_SVC_FILES) > $@
    
    $(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
    $(LOCAL_BUILT_MODULE): $(nonplat_hwservice_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc $(ACP)
    	@mkdir -p $(dir $@)
    	sed -e 's/#.*$$//' -e '/^$$/d' $< > $@
    	$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -e -l $(PRIVATE_SEPOLICY) $@
    
    nonplat_hwsvcfiles :=
    nonplat_hwservice_contexts.tmp :=
    
    ##################################
    include $(CLEAR_VARS)
    
    
    LOCAL_MODULE := vndservice_contexts
    LOCAL_MODULE_CLASS := ETC
    LOCAL_MODULE_TAGS := optional
    ifeq ($(PRODUCT_FULL_TREBLE),true)
    LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/selinux
    else
    LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
    endif
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    vnd_svcfiles := $(call build_policy, vndservice_contexts, $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS) $(REQD_MASK_POLICY))
    
    vndservice_contexts.tmp := $(intermediates)/vndservice_contexts.tmp
    $(vndservice_contexts.tmp): PRIVATE_SVC_FILES := $(vnd_svcfiles)
    $(vndservice_contexts.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
    $(vndservice_contexts.tmp): $(vnd_svcfiles)
    	@mkdir -p $(dir $@)
    	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $(PRIVATE_SVC_FILES) > $@
    
    $(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
    $(LOCAL_BUILT_MODULE): $(vndservice_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc $(ACP)
    	@mkdir -p $(dir $@)
    	sed -e 's/#.*$$//' -e '/^$$/d' $< > $@
    
    	$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -e -v $(PRIVATE_SEPOLICY) $@
    
    
    vnd_svcfiles :=
    vndservice_contexts.tmp :=
    ##################################
    include $(CLEAR_VARS)
    
    
    LOCAL_MODULE := plat_mac_permissions.xml
    
    rpcraig's avatar
    rpcraig committed
    LOCAL_MODULE_CLASS := ETC
    LOCAL_MODULE_TAGS := optional
    
    LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/selinux
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    plat_mac_perms_keys.tmp := $(intermediates)/plat_keys.tmp
    $(plat_mac_perms_keys.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
    $(plat_mac_perms_keys.tmp): $(call build_policy, keys.conf, $(PLAT_PRIVATE_POLICY))
    
    	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $^ > $@
    
    all_plat_mac_perms_files := $(call build_policy, mac_permissions.xml, $(PLAT_PRIVATE_POLICY))
    
    # Should be synced with keys.conf.
    
    all_plat_keys := platform media shared testkey
    all_plat_keys := $(all_keys:%=$(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))/%.x509.pem)
    
    $(LOCAL_BUILT_MODULE): PRIVATE_MAC_PERMS_FILES := $(all_plat_mac_perms_files)
    $(LOCAL_BUILT_MODULE): $(plat_mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys.py \
    $(all_plat_mac_perms_files) $(all_plat_keys)
    
    	$(hide) DEFAULT_SYSTEM_DEV_CERTIFICATE="$(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))" \
    
    		$(HOST_OUT_EXECUTABLES)/insertkeys.py -t $(TARGET_BUILD_VARIANT) -c $(TOP) $< -o $@ $(PRIVATE_MAC_PERMS_FILES)
    
    all_mac_perms_files :=
    
    all_plat_keys :=
    plat_mac_perms_keys.tmp :=
    
    ##################################
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := nonplat_mac_permissions.xml
    LOCAL_MODULE_CLASS := ETC
    LOCAL_MODULE_TAGS := optional
    
    LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/selinux
    
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    # Build keys.conf
    nonplat_mac_perms_keys.tmp := $(intermediates)/nonplat_keys.tmp
    $(nonplat_mac_perms_keys.tmp): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS)
    
    $(nonplat_mac_perms_keys.tmp): $(call build_policy, keys.conf, $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS) $(REQD_MASK_POLICY))
    
    	@mkdir -p $(dir $@)
    	$(hide) m4 -s $(PRIVATE_ADDITIONAL_M4DEFS) $^ > $@
    
    
    all_nonplat_mac_perms_files := $(call build_policy, mac_permissions.xml, $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS) $(REQD_MASK_POLICY))
    
    
    $(LOCAL_BUILT_MODULE): PRIVATE_MAC_PERMS_FILES := $(all_nonplat_mac_perms_files)
    $(LOCAL_BUILT_MODULE): $(nonplat_mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys.py \
    $(all_nonplat_mac_perms_files)
    	@mkdir -p $(dir $@)
    	$(hide) $(HOST_OUT_EXECUTABLES)/insertkeys.py -t $(TARGET_BUILD_VARIANT) -c $(TOP) $< -o $@ $(PRIVATE_MAC_PERMS_FILES)
    
    nonplat_mac_perms_keys.tmp :=
    all_nonplat_mac_perms_files :=
    
    ##################################
    
    ifeq ($(PRODUCT_FULL_TREBLE),true)
    include $(CLEAR_VARS)
    # For Treble builds run tests verifying that processes are properly labeled and
    # permissions granted do not violate the treble model.
    LOCAL_MODULE := treble_sepolicy_tests
    LOCAL_MODULE_CLASS := ETC
    LOCAL_MODULE_TAGS := tests
    
    include $(BUILD_SYSTEM)/base_rules.mk
    
    treble_sepolicy_tests := $(intermediates)/treble_sepolicy_tests
    $(treble_sepolicy_tests): PRIVATE_PLAT_FC := $(built_plat_fc)
    $(treble_sepolicy_tests): PRIVATE_NONPLAT_FC := $(built_nonplat_fc)
    $(treble_sepolicy_tests): PRIVATE_SEPOLICY := $(built_sepolicy)
    $(treble_sepolicy_tests): $(HOST_OUT_EXECUTABLES)/treble_sepolicy_tests.py \
    $(built_plat_fc) $(built_nonplat_fc) $(built_sepolicy)
    	@mkdir -p $(dir $@)
    	$(hide) python $(HOST_OUT_EXECUTABLES)/treble_sepolicy_tests.py -l $(HOST_OUT)/lib64 -f $(PRIVATE_PLAT_FC) -f $(PRIVATE_NONPLAT_FC) -p $(PRIVATE_SEPOLICY)
    	$(hide) touch $@
    endif # ($(PRODUCT_FULL_TREBLE),true)
    #################################
    
    build_device_policy :=
    
    built_plat_fc :=
    built_nonplat_fc :=
    
    built_plat_cil :=
    built_mapping_cil :=
    
    built_nonplat_cil :=
    
    built_nonplat_sc :=
    built_plat_sc :=
    
    built_precompiled_sepolicy :=
    
    built_plat_svc :=
    built_nonplat_svc :=
    
    mapping_policy :=
    
    plat_pub_policy.cil :=
    reqd_policy_mask.cil :=
    
    sepolicy_build_cil_workaround_files :=
    
    
    include $(call all-makefiles-under,$(LOCAL_PATH))