From 8b7545bf5745e1e0aba55b0334de40d2334728b1 Mon Sep 17 00:00:00 2001
From: Robert Craig <rpcraig@tycho.ncsc.mil>
Date: Thu, 20 Mar 2014 09:35:08 -0400
Subject: [PATCH] Build the selinux_version file.

The selinux_version file is used to perform policy
versioning checks by libselinux and SELinuxMMAC. When
loading policy a check is first performed to determine
if the policy out in /data/security/current should be
used to override the base policy shipped with the device.
The selinux_version file is used to make that choice. The
contents of the file simply contains the BUILD_FINGERPRINT
that the policy was built against. A simple string comparison
is then performed by libselinux and SELinuxMMAC.

Change-Id: I69d9d071743cfd46bb247c98f94a193396f8ebbd
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
---
 Android.mk | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/Android.mk b/Android.mk
index 80f5ece2e..bdf26b357 100644
--- a/Android.mk
+++ b/Android.mk
@@ -153,7 +153,7 @@ $(LOCAL_BUILT_MODULE):  $(ALL_FC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES
 	$(hide) m4 -s $(ALL_FC_FILES) > $@
 	$(hide) $(HOST_OUT_EXECUTABLES)/checkfc $(PRIVATE_SEPOLICY) $@
 
-file_contexts :=
+built_fc := $(LOCAL_BUILT_MODULE)
 
 ##################################
 include $(CLEAR_VARS)
@@ -174,7 +174,9 @@ $(LOCAL_BUILT_MODULE) : $(seapp_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECU
 	@mkdir -p $(dir $@)
 	$(HOST_OUT_EXECUTABLES)/checkseapp -p $(PRIVATE_SEPOLICY) -o $@ $<
 
+built_sc := $(LOCAL_BUILT_MODULE)
 seapp_contexts.tmp :=
+
 ##################################
 include $(CLEAR_VARS)
 
@@ -193,8 +195,8 @@ $(LOCAL_BUILT_MODULE):  $(ALL_PC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES
 	$(hide) m4 -s $(ALL_PC_FILES) > $@
 	$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@
 
-property_contexts :=
-built_sepolicy :=
+built_pc := $(LOCAL_BUILT_MODULE)
+
 ##################################
 
 ##################################
@@ -233,8 +235,25 @@ $(LOCAL_BUILT_MODULE) : $(mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys
 
 mac_perms_keys.tmp :=
 ##################################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := selinux_version
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
+
+include $(BUILD_SYSTEM)/base_rules.mk
+$(LOCAL_BUILT_MODULE) : $(built_sepolicy) $(built_pc) $(built_fc) $(built_sc)
+	@mkdir -p $(dir $@)
+	$(hide) echo -n $(BUILD_FINGERPRINT) > $@
+
+##################################
 
 build_policy :=
 sepolicy_replace_paths :=
+built_sepolicy :=
+built_sc :=
+built_fc :=
+built_pc :=
 
 include $(call all-makefiles-under,$(LOCAL_PATH))
-- 
GitLab