Revert "Revert "Dynamic insertion of pubkey to mac_permissions.xml""

This reverts commit 1446e714af0b0c358b5ecf37c5d704c96c72cf7c

Hidden dependency has been resolved.

Change-Id: Ia535c0b9468ea5f705dff9813186a7fa8bab84ae
diff --git a/Android.mk b/Android.mk
index aad5451..c3863db 100644
--- a/Android.mk
+++ b/Android.mk
@@ -168,12 +168,23 @@
 
 include $(BUILD_SYSTEM)/base_rules.mk
 
-mmac := $(intermediates)/$(MAC_PERMISSION_FILE)
-$(mmac) : $(call build_policy, $(MAC_PERMISSION_FILE))
+# Build keys.conf
+mac_perms_keys.tmp := $(intermediates)/keys.tmp
+$(mac_perms_keys.tmp) : $(call build_policy, keys.conf)
+	@mkdir -p $(dir $@)
+	$(hide) m4 -s $^ > $@
+
+# Build mac_permissions.xml
+$(MAC_PERMISSION_FILE).tmp := $(intermediates)/$(MAC_PERMISSION_FILE).tmp
+$($(MAC_PERMISSION_FILE).tmp) : $(call build_policy, $(MAC_PERMISSION_FILE))
 	@mkdir -p $(dir $@)
 	$(hide) cp $^ $@
 
-mmac :=
+$(LOCAL_BUILT_MODULE) : $($(MAC_PERMISSION_FILE).tmp) $(mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys.py
+	@mkdir -p $(dir $@)
+	$(HOST_OUT_EXECUTABLES)/insertkeys.py -t $(TARGET_BUILD_VARIANT) -c $(ANDROID_BUILD_TOP) $(mac_perms_keys.tmp) -o $@ $<
+
+$(MAC_PERMISSION_FILE).tmp :=
 ##################################
 
 build_policy :=