Extend make_ext4fs to support setting SELinux security contexts in ext4 images.
Extend make_ext4fs with support for looking up the right security context from
the file_contexts configuration and setting it in the generated image. This is
similar to the existing support for looking up the UID/GID/mode via
android_filesystem_config.h and setting it, but via configuration rather than
defined in a header.
Change-Id: Ief9c44eeaaca4a44100a384b063f40b185469be3
diff --git a/ext4_utils/Android.mk b/ext4_utils/Android.mk
index 674cd47..10b6285 100644
--- a/ext4_utils/Android.mk
+++ b/ext4_utils/Android.mk
@@ -24,6 +24,11 @@
LOCAL_C_INCLUDES += external/zlib
LOCAL_SHARED_LIBRARIES := libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_SHARED_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
include $(BUILD_SHARED_LIBRARY)
@@ -35,6 +40,11 @@
LOCAL_C_INCLUDES += external/zlib
LOCAL_STATIC_LIBRARIES := libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_STATIC_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
include $(BUILD_STATIC_LIBRARY)
@@ -45,6 +55,12 @@
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES := libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_SHARED_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
+
include $(BUILD_HOST_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -54,6 +70,12 @@
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES += libext4_utils libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_SHARED_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
+
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
@@ -62,6 +84,12 @@
LOCAL_MODULE := make_ext4fs
LOCAL_STATIC_LIBRARIES += libext4_utils libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_STATIC_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
+
include $(BUILD_HOST_EXECUTABLE)
include $(CLEAR_VARS)
@@ -71,6 +99,12 @@
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES += libext4_utils libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_SHARED_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
+
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
@@ -80,6 +114,12 @@
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_LIBRARIES += libext4_utils libz
+ifeq ($(HAVE_SELINUX), true)
+LOCAL_C_INCLUDES += external/libselinux/include
+LOCAL_STATIC_LIBRARIES += libselinux
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif # HAVE_SELINUX
+
include $(BUILD_HOST_EXECUTABLE)
include $(CLEAR_VARS)