blob: 8189f88f3d23b01f61d26d759ebea14159de17d9 [file] [log] [blame]
Stephen Smalley2dd4e512012-01-04 12:33:27 -05001LOCAL_PATH:= $(call my-dir)
William Robertsf0e0a942012-08-27 15:41:15 -07002
Stephen Smalley2dd4e512012-01-04 12:33:27 -05003include $(CLEAR_VARS)
4
5# SELinux policy version.
Stephen Smalleyb4f17062015-03-13 10:03:52 -04006# Must be <= /sys/fs/selinux/policyvers reported by the Android kernel.
Stephen Smalley2dd4e512012-01-04 12:33:27 -05007# Must be within the compatibility range reported by checkpolicy -V.
Stephen Smalleye543a8b2013-04-01 10:07:43 -04008POLICYVERS ?= 26
Stephen Smalley2dd4e512012-01-04 12:33:27 -05009
10MLS_SENS=1
11MLS_CATS=1024
12
Stephen Smalleyb4f17062015-03-13 10:03:52 -040013ifdef BOARD_SEPOLICY_REPLACE
14$(error BOARD_SEPOLICY_REPLACE is no longer supported; please remove from your BoardConfig.mk or other .mk file.)
15endif
16
17ifdef BOARD_SEPOLICY_IGNORE
18$(error BOARD_SEPOLICY_IGNORE is no longer supported; please remove from your BoardConfig.mk or other .mk file.)
19endif
Stephen Smalley5b340be2012-03-06 11:12:41 -050020
Stephen Smalley8e0ca882015-04-01 10:14:56 -040021ifdef BOARD_SEPOLICY_UNION
22$(warning BOARD_SEPOLICY_UNION is no longer required - all files found in BOARD_SEPOLICY_DIRS are implicitly unioned; please remove from your BoardConfig.mk or other .mk file.)
23endif
Robert Craig6b0ff472014-01-29 13:10:58 -050024
Stephen Smalley8e0ca882015-04-01 10:14:56 -040025# Builds paths for all policy files found in BOARD_SEPOLICY_DIRS.
rpcraig47cd3962012-10-17 21:09:52 -040026# $(1): the set of policy name paths to build
Stephen Smalley8e0ca882015-04-01 10:14:56 -040027build_policy = $(foreach type, $(1), $(wildcard $(addsuffix /$(type), $(LOCAL_PATH) $(BOARD_SEPOLICY_DIRS))))
Stephen Smalley5b340be2012-03-06 11:12:41 -050028
dcashman704741a2014-07-25 19:11:52 -070029sepolicy_build_files := security_classes \
30 initial_sids \
31 access_vectors \
32 global_macros \
Nick Kralevicha17a2662014-11-05 15:30:41 -080033 neverallow_macros \
dcashman704741a2014-07-25 19:11:52 -070034 mls_macros \
35 mls \
36 policy_capabilities \
37 te_macros \
38 attributes \
39 *.te \
40 roles \
41 users \
42 initial_sid_contexts \
43 fs_use \
44 genfs_contexts \
45 port_contexts
46
Ying Wang02fb5f32012-01-17 17:51:09 -080047##################################
48include $(CLEAR_VARS)
Stephen Smalley2dd4e512012-01-04 12:33:27 -050049
Ying Wang02fb5f32012-01-17 17:51:09 -080050LOCAL_MODULE := sepolicy
51LOCAL_MODULE_CLASS := ETC
52LOCAL_MODULE_TAGS := optional
Ying Wang02fb5f32012-01-17 17:51:09 -080053LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
Stephen Smalley2dd4e512012-01-04 12:33:27 -050054
Ying Wang02fb5f32012-01-17 17:51:09 -080055include $(BUILD_SYSTEM)/base_rules.mk
Stephen Smalley2dd4e512012-01-04 12:33:27 -050056
Ying Wang02fb5f32012-01-17 17:51:09 -080057sepolicy_policy.conf := $(intermediates)/policy.conf
58$(sepolicy_policy.conf): PRIVATE_MLS_SENS := $(MLS_SENS)
59$(sepolicy_policy.conf): PRIVATE_MLS_CATS := $(MLS_CATS)
dcashman704741a2014-07-25 19:11:52 -070060$(sepolicy_policy.conf) : $(call build_policy, $(sepolicy_build_files))
Ying Wang02fb5f32012-01-17 17:51:09 -080061 @mkdir -p $(dir $@)
Nick Kralevich623975f2014-01-11 01:31:03 -080062 $(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
63 -D target_build_variant=$(TARGET_BUILD_VARIANT) \
Nick Kralevich623975f2014-01-11 01:31:03 -080064 -s $^ > $@
Robert Craig65d4f442013-03-27 06:30:25 -040065 $(hide) sed '/dontaudit/d' $@ > $@.dontaudit
Stephen Smalley2dd4e512012-01-04 12:33:27 -050066
Stephen Smalley2b826fc2012-01-24 08:46:13 -050067$(LOCAL_BUILT_MODULE) : $(sepolicy_policy.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy
Ying Wang02fb5f32012-01-17 17:51:09 -080068 @mkdir -p $(dir $@)
Ying Wangf4ea5b22012-04-09 15:31:03 -070069 $(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $@ $<
Robert Craig65d4f442013-03-27 06:30:25 -040070 $(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $(dir $<)/$(notdir $@).dontaudit $<.dontaudit
Ying Wang02fb5f32012-01-17 17:51:09 -080071
Ying Wangd8b122c2012-10-25 19:01:31 -070072built_sepolicy := $(LOCAL_BUILT_MODULE)
Ying Wang02fb5f32012-01-17 17:51:09 -080073sepolicy_policy.conf :=
Stephen Smalley01a58af2012-10-02 12:46:37 -040074
Stephen Smalleye60723a2014-05-29 16:40:15 -040075##################################
76include $(CLEAR_VARS)
77
78LOCAL_MODULE := sepolicy.recovery
79LOCAL_MODULE_CLASS := ETC
80LOCAL_MODULE_TAGS := eng
81
82include $(BUILD_SYSTEM)/base_rules.mk
83
84sepolicy_policy_recovery.conf := $(intermediates)/policy_recovery.conf
85$(sepolicy_policy_recovery.conf): PRIVATE_MLS_SENS := $(MLS_SENS)
86$(sepolicy_policy_recovery.conf): PRIVATE_MLS_CATS := $(MLS_CATS)
dcashman704741a2014-07-25 19:11:52 -070087$(sepolicy_policy_recovery.conf) : $(call build_policy, $(sepolicy_build_files))
Stephen Smalleye60723a2014-05-29 16:40:15 -040088 @mkdir -p $(dir $@)
89 $(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
90 -D target_build_variant=$(TARGET_BUILD_VARIANT) \
Stephen Smalleye60723a2014-05-29 16:40:15 -040091 -D target_recovery=true \
92 -s $^ > $@
93
94$(LOCAL_BUILT_MODULE) : $(sepolicy_policy_recovery.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy
95 @mkdir -p $(dir $@)
96 $(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $@ $<
97
98built_sepolicy_recovery := $(LOCAL_BUILT_MODULE)
99sepolicy_policy_recovery.conf :=
100
dcashman704741a2014-07-25 19:11:52 -0700101##################################
102include $(CLEAR_VARS)
103
104LOCAL_MODULE := general_sepolicy.conf
105LOCAL_MODULE_CLASS := ETC
106LOCAL_MODULE_TAGS := tests
107
108include $(BUILD_SYSTEM)/base_rules.mk
109
110exp_sepolicy_build_files :=\
111 $(wildcard $(addprefix $(LOCAL_PATH)/, $(sepolicy_build_files)))
112
113$(LOCAL_BUILT_MODULE): PRIVATE_MLS_SENS := $(MLS_SENS)
114$(LOCAL_BUILT_MODULE): PRIVATE_MLS_CATS := $(MLS_CATS)
115$(LOCAL_BUILT_MODULE): $(exp_sepolicy_build_files)
116 mkdir -p $(dir $@)
117 $(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
118 -D target_build_variant=user \
dcashman704741a2014-07-25 19:11:52 -0700119 -s $^ > $@
120 $(hide) sed '/dontaudit/d' $@ > $@.dontaudit
121
122GENERAL_SEPOLICY_POLICY.CONF = $(LOCAL_BUILT_MODULE)
123
124exp_sepolicy_build_files :=
125
126##################################
Stephen Smalley01a58af2012-10-02 12:46:37 -0400127include $(CLEAR_VARS)
128
Ying Wang02fb5f32012-01-17 17:51:09 -0800129LOCAL_MODULE := file_contexts
Ying Wang02fb5f32012-01-17 17:51:09 -0800130LOCAL_MODULE_CLASS := ETC
131LOCAL_MODULE_TAGS := optional
132LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
133
Stephen Smalley5b340be2012-03-06 11:12:41 -0500134include $(BUILD_SYSTEM)/base_rules.mk
Ying Wang02fb5f32012-01-17 17:51:09 -0800135
Evgenii Stepanov93030482015-06-12 17:18:20 -0700136FILE_CONTEXTS := file_contexts
137ifeq (address,$(strip $(SANITIZE_TARGET)))
138 FILE_CONTEXTS := $(FILE_CONTEXTS) file_contexts_asan
139endif
140ALL_FC_FILES := $(call build_policy, $(FILE_CONTEXTS))
Stephen Smalley01a58af2012-10-02 12:46:37 -0400141
Ying Wangd8b122c2012-10-25 19:01:31 -0700142$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
143$(LOCAL_BUILT_MODULE): $(ALL_FC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
Stephen Smalley5b340be2012-03-06 11:12:41 -0500144 @mkdir -p $(dir $@)
Stephen Smalley01a58af2012-10-02 12:46:37 -0400145 $(hide) m4 -s $(ALL_FC_FILES) > $@
Ying Wangd8b122c2012-10-25 19:01:31 -0700146 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc $(PRIVATE_SEPOLICY) $@
Stephen Smalley5b340be2012-03-06 11:12:41 -0500147
Robert Craig8b7545b2014-03-20 09:35:08 -0400148built_fc := $(LOCAL_BUILT_MODULE)
William Roberts171a0622012-08-16 10:55:05 -0700149
Ying Wang02fb5f32012-01-17 17:51:09 -0800150##################################
151include $(CLEAR_VARS)
Stephen Smalley2e0cd5a2015-03-12 17:45:03 -0400152
153LOCAL_MODULE := general_file_contexts
154LOCAL_MODULE_CLASS := ETC
155LOCAL_MODULE_TAGS := tests
156
157include $(BUILD_SYSTEM)/base_rules.mk
158
159$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
160$(LOCAL_BUILT_MODULE) : $(addprefix $(LOCAL_PATH)/, file_contexts) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
161 @mkdir -p $(dir $@)
162 $(hide) m4 -s $< > $@
163 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc $(PRIVATE_SEPOLICY) $@
164
165GENERAL_FILE_CONTEXTS := $(LOCAL_BUILT_MODULE)
166
167##################################
168include $(CLEAR_VARS)
Ying Wang02fb5f32012-01-17 17:51:09 -0800169LOCAL_MODULE := seapp_contexts
Ying Wang02fb5f32012-01-17 17:51:09 -0800170LOCAL_MODULE_CLASS := ETC
171LOCAL_MODULE_TAGS := optional
172LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
173
William Roberts171a0622012-08-16 10:55:05 -0700174include $(BUILD_SYSTEM)/base_rules.mk
Ying Wang02fb5f32012-01-17 17:51:09 -0800175
William Roberts98ed3922012-09-05 11:19:07 -0700176seapp_contexts.tmp := $(intermediates)/seapp_contexts.tmp
rpcraig47cd3962012-10-17 21:09:52 -0400177$(seapp_contexts.tmp): $(call build_policy, seapp_contexts)
William Roberts171a0622012-08-16 10:55:05 -0700178 @mkdir -p $(dir $@)
179 $(hide) m4 -s $^ > $@
180
Ying Wangd8b122c2012-10-25 19:01:31 -0700181$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
182$(LOCAL_BUILT_MODULE) : $(seapp_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkseapp
William Robertsf0e0a942012-08-27 15:41:15 -0700183 @mkdir -p $(dir $@)
Ying Wangd8b122c2012-10-25 19:01:31 -0700184 $(HOST_OUT_EXECUTABLES)/checkseapp -p $(PRIVATE_SEPOLICY) -o $@ $<
Ying Wang02fb5f32012-01-17 17:51:09 -0800185
Robert Craig8b7545b2014-03-20 09:35:08 -0400186built_sc := $(LOCAL_BUILT_MODULE)
William Roberts98ed3922012-09-05 11:19:07 -0700187seapp_contexts.tmp :=
Robert Craig8b7545b2014-03-20 09:35:08 -0400188
Ying Wang02fb5f32012-01-17 17:51:09 -0800189##################################
Stephen Smalley124720a2012-04-04 10:11:16 -0400190include $(CLEAR_VARS)
Stephen Smalley37712872015-03-12 15:46:36 -0400191LOCAL_MODULE := general_seapp_contexts
192LOCAL_MODULE_CLASS := ETC
193LOCAL_MODULE_TAGS := tests
194
195include $(BUILD_SYSTEM)/base_rules.mk
196
197general_seapp_contexts.tmp := $(intermediates)/general_seapp_contexts.tmp
198$(general_seapp_contexts.tmp): $(addprefix $(LOCAL_PATH)/, seapp_contexts)
199 @mkdir -p $(dir $@)
200 $(hide) m4 -s $^ > $@
201
202$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
203$(LOCAL_BUILT_MODULE) : $(general_seapp_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkseapp
204 @mkdir -p $(dir $@)
205 $(HOST_OUT_EXECUTABLES)/checkseapp -p $(PRIVATE_SEPOLICY) -o $@ $<
206
207GENERAL_SEAPP_CONTEXTS := $(LOCAL_BUILT_MODULE)
208general_seapp_contexts.tmp :=
209
210##################################
211include $(CLEAR_VARS)
Stephen Smalley124720a2012-04-04 10:11:16 -0400212
213LOCAL_MODULE := property_contexts
214LOCAL_MODULE_CLASS := ETC
215LOCAL_MODULE_TAGS := optional
216LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
217
218include $(BUILD_SYSTEM)/base_rules.mk
219
Robert Craigd98d26e2013-01-23 14:04:50 -0500220ALL_PC_FILES := $(call build_policy, property_contexts)
221
222$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
223$(LOCAL_BUILT_MODULE): $(ALL_PC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
Stephen Smalley124720a2012-04-04 10:11:16 -0400224 @mkdir -p $(dir $@)
Robert Craigd98d26e2013-01-23 14:04:50 -0500225 $(hide) m4 -s $(ALL_PC_FILES) > $@
226 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
Stephen Smalley124720a2012-04-04 10:11:16 -0400227
Robert Craig8b7545b2014-03-20 09:35:08 -0400228built_pc := $(LOCAL_BUILT_MODULE)
229
Stephen Smalley124720a2012-04-04 10:11:16 -0400230##################################
Riley Spahnf90c41f2014-06-05 15:52:02 -0700231include $(CLEAR_VARS)
232
Stephen Smalley2e0cd5a2015-03-12 17:45:03 -0400233LOCAL_MODULE := general_property_contexts
234LOCAL_MODULE_CLASS := ETC
235LOCAL_MODULE_TAGS := tests
236
Stephen Smalleyc9361732015-03-13 09:36:57 -0400237include $(BUILD_SYSTEM)/base_rules.mk
238
Stephen Smalley2e0cd5a2015-03-12 17:45:03 -0400239$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
240$(LOCAL_BUILT_MODULE) : $(addprefix $(LOCAL_PATH)/, property_contexts) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
241 @mkdir -p $(dir $@)
242 $(hide) m4 -s $< > $@
243 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
244
245GENERAL_PROPERTY_CONTEXTS := $(LOCAL_BUILT_MODULE)
246
247##################################
248include $(CLEAR_VARS)
249
Riley Spahnf90c41f2014-06-05 15:52:02 -0700250LOCAL_MODULE := service_contexts
251LOCAL_MODULE_CLASS := ETC
252LOCAL_MODULE_TAGS := optional
253LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
254
255include $(BUILD_SYSTEM)/base_rules.mk
256
257ALL_SVC_FILES := $(call build_policy, service_contexts)
258
259$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
260$(LOCAL_BUILT_MODULE): $(ALL_SVC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
261 @mkdir -p $(dir $@)
262 $(hide) m4 -s $(ALL_SVC_FILES) > $@
263 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
264
265built_svc := $(LOCAL_BUILT_MODULE)
266
267##################################
rpcraigb19665c2012-07-30 09:33:03 -0400268include $(CLEAR_VARS)
269
Stephen Smalley2e0cd5a2015-03-12 17:45:03 -0400270LOCAL_MODULE := general_service_contexts
271LOCAL_MODULE_CLASS := ETC
272LOCAL_MODULE_TAGS := tests
273
274include $(BUILD_SYSTEM)/base_rules.mk
275
276$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
277$(LOCAL_BUILT_MODULE) : $(addprefix $(LOCAL_PATH)/, service_contexts) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
278 @mkdir -p $(dir $@)
279 $(hide) m4 -s $< > $@
280 $(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
281
282GENERAL_SERVICE_CONTEXTS := $(LOCAL_BUILT_MODULE)
283
284##################################
285include $(CLEAR_VARS)
286
Robert Craig7f2392e2013-03-27 08:35:39 -0400287LOCAL_MODULE := mac_permissions.xml
rpcraigb19665c2012-07-30 09:33:03 -0400288LOCAL_MODULE_CLASS := ETC
289LOCAL_MODULE_TAGS := optional
290LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/security
291
William Roberts2c8a55d2012-11-30 14:59:09 -0800292include $(BUILD_SYSTEM)/base_rules.mk
rpcraigb19665c2012-07-30 09:33:03 -0400293
Geremy Condracd4104e2013-03-26 18:19:12 +0000294# Build keys.conf
295mac_perms_keys.tmp := $(intermediates)/keys.tmp
296$(mac_perms_keys.tmp) : $(call build_policy, keys.conf)
297 @mkdir -p $(dir $@)
298 $(hide) m4 -s $^ > $@
299
Robert Craig7f2392e2013-03-27 08:35:39 -0400300ALL_MAC_PERMS_FILES := $(call build_policy, $(LOCAL_MODULE))
rpcraigb19665c2012-07-30 09:33:03 -0400301
Robert Craig7f2392e2013-03-27 08:35:39 -0400302$(LOCAL_BUILT_MODULE) : $(mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys.py $(ALL_MAC_PERMS_FILES)
Geremy Condracd4104e2013-03-26 18:19:12 +0000303 @mkdir -p $(dir $@)
Nick Kralevichc3c90522013-10-25 12:25:36 -0700304 $(hide) DEFAULT_SYSTEM_DEV_CERTIFICATE="$(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))" \
305 $(HOST_OUT_EXECUTABLES)/insertkeys.py -t $(TARGET_BUILD_VARIANT) -c $(TOP) $< -o $@ $(ALL_MAC_PERMS_FILES)
Geremy Condracd4104e2013-03-26 18:19:12 +0000306
Robert Craig7f2392e2013-03-27 08:35:39 -0400307mac_perms_keys.tmp :=
rpcraigb19665c2012-07-30 09:33:03 -0400308##################################
Robert Craig8b7545b2014-03-20 09:35:08 -0400309include $(CLEAR_VARS)
310
311LOCAL_MODULE := selinux_version
312LOCAL_MODULE_CLASS := ETC
313LOCAL_MODULE_TAGS := optional
314LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
315
316include $(BUILD_SYSTEM)/base_rules.mk
Riley Spahnf90c41f2014-06-05 15:52:02 -0700317$(LOCAL_BUILT_MODULE) : $(built_sepolicy) $(built_pc) $(built_fc) $(built_sc) $(built_svc)
Robert Craig8b7545b2014-03-20 09:35:08 -0400318 @mkdir -p $(dir $@)
319 $(hide) echo -n $(BUILD_FINGERPRINT) > $@
320
321##################################
rpcraig47cd3962012-10-17 21:09:52 -0400322
323build_policy :=
dcashman704741a2014-07-25 19:11:52 -0700324sepolicy_build_files :=
Robert Craig8b7545b2014-03-20 09:35:08 -0400325built_sepolicy :=
326built_sc :=
327built_fc :=
328built_pc :=
Riley Spahnf90c41f2014-06-05 15:52:02 -0700329built_svc :=
Alice Chucdfb06f2012-11-01 11:33:04 -0700330
331include $(call all-makefiles-under,$(LOCAL_PATH))