From 250957202f7aa86e3af93ddfe47a5c4035c40f50 Mon Sep 17 00:00:00 2001 From: huangyanjun <huang.yanjun1@zte.com.cn> Date: Thu, 13 Sep 2018 14:04:19 +0800 Subject: [PATCH] Fix building error for multi-line dontaudit statement All the *.conf.dontaudit files are generated from *.conf with the command of 'sed '/dontaudit/d' $@ > $@.dontaudit', but this command can not be applied to multi-line dontaudit statement. Test: Set plat_policy.conf.dontaudit as the input_file parameter of checkpolicy tool, then selinux syntax error will occur during building. Change-Id: I281de923d8a5f0b46256ec7de4df12a1c1d7e061 --- Android.mk | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Android.mk b/Android.mk index 20a5a27ce..035977666 100644 --- a/Android.mk +++ b/Android.mk @@ -313,7 +313,7 @@ $(sepolicy_policy.conf): PRIVATE_SEPOLICY_SPLIT := $(PRODUCT_SEPOLICY_SPLIT) $(sepolicy_policy.conf): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY) $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit $(LOCAL_BUILT_MODULE): $(sepolicy_policy.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy rm -f $@ @@ -425,7 +425,7 @@ $(plat_policy.conf): PRIVATE_COMPATIBLE_PROPERTY := $(PRODUCT_COMPATIBLE_PROPERT $(plat_policy.conf): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit $(LOCAL_BUILT_MODULE): PRIVATE_ADDITIONAL_CIL_FILES := \ $(call build_policy, $(sepolicy_build_cil_workaround_files), $(PLAT_PRIVATE_POLICY)) @@ -558,7 +558,7 @@ $(vendor_policy.conf): PRIVATE_COMPATIBLE_PROPERTY := $(PRODUCT_COMPATIBLE_PROPE $(vendor_policy.conf): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_PUBLIC_POLICY) $(REQD_MASK_POLICY) $(PLAT_VENDOR_POLICY) $(BOARD_VENDOR_SEPOLICY_DIRS)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit $(LOCAL_BUILT_MODULE): PRIVATE_POL_CONF := $(vendor_policy.conf) $(LOCAL_BUILT_MODULE): PRIVATE_REQD_MASK := $(reqd_policy_mask.cil) @@ -606,7 +606,7 @@ $(odm_policy.conf): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_PUBLIC_POLICY) $(REQD_MASK_POLICY) $(PLAT_VENDOR_POLICY) \ $(BOARD_VENDOR_SEPOLICY_DIRS) $(BOARD_ODM_SEPOLICY_DIRS)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit $(LOCAL_BUILT_MODULE): PRIVATE_POL_CONF := $(odm_policy.conf) $(LOCAL_BUILT_MODULE): PRIVATE_REQD_MASK := $(reqd_policy_mask.cil) @@ -753,7 +753,8 @@ $(sepolicy.recovery.conf): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_VENDOR_POLICY) $(BOARD_VENDOR_SEPOLICY_DIRS) \ $(BOARD_ODM_SEPOLICY_DIRS)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit + ifeq ($(SELINUX_IGNORE_NEVERALLOWS),true) $(hide) sed -z 's/\n\s*neverallow[^;]*;/\n/g' $@ > $@.neverallow $(hide) mv $@.neverallow $@ @@ -799,7 +800,7 @@ $(LOCAL_BUILT_MODULE): PRIVATE_EXCLUDE_BUILD_TEST := true $(LOCAL_BUILT_MODULE): $(call build_policy, $(sepolicy_build_files), \ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit ################################## # TODO - remove this. Keep around until we get the filesystem creation stuff taken care of. @@ -1593,7 +1594,7 @@ $(base_plat_policy.conf): PRIVATE_COMPATIBLE_PROPERTY := $(PRODUCT_COMPATIBLE_PR $(base_plat_policy.conf): $(call build_policy, $(sepolicy_build_files), \ $(BASE_PLAT_PUBLIC_POLICY) $(BASE_PLAT_PRIVATE_POLICY)) $(transform-policy-to-conf) - $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + $(hide) sed '/^\s*dontaudit.*;/d' $@ | sed '/^\s*dontaudit/,/;/d' > $@.dontaudit built_plat_sepolicy := $(intermediates)/built_plat_sepolicy $(built_plat_sepolicy): PRIVATE_ADDITIONAL_CIL_FILES := \ -- GitLab