summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk12
-rw-r--r--toolbox/Android.mk5
2 files changed, 13 insertions, 4 deletions
diff --git a/Android.mk b/Android.mk
index 089485a15..3d95c840c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -310,11 +310,17 @@ include $(CLEAR_VARS)
# Create busybox symlinks... gzip and gunzip are excluded because those need to link to pigz instead
BUSYBOX_LINKS := $(shell cat external/busybox/busybox-full.links)
exclude := tune2fs mke2fs mkdosfs gzip gunzip
+
+# If busybox does not have restorecon, assume it does not have SELinux support.
+# Then, let toolbox provide 'ls' so -Z is available to list SELinux contexts.
ifeq ($(TWHAVE_SELINUX), true)
- exclude += ls
- # toolbox will provide ls support with ls -Z capability for listing SELinux contexts
+ ifeq ($(filter restorecon, $(notdir $(BUSYBOX_LINKS))),)
+ exclude += ls
+ endif
endif
-RECOVERY_BUSYBOX_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(filter-out $(exclude),$(notdir $(BUSYBOX_LINKS))))
+
+RECOVERY_BUSYBOX_TOOLS := $(filter-out $(exclude), $(notdir $(BUSYBOX_LINKS)))
+RECOVERY_BUSYBOX_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/, $(RECOVERY_BUSYBOX_TOOLS))
$(RECOVERY_BUSYBOX_SYMLINKS): BUSYBOX_BINARY := busybox
$(RECOVERY_BUSYBOX_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Symlink: $@ -> $(BUSYBOX_BINARY)"
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
index 73868976a..053660ab1 100644
--- a/toolbox/Android.mk
+++ b/toolbox/Android.mk
@@ -7,8 +7,10 @@ TOOLS := \
getprop \
setprop
+# If busybox does not have SELinux support, provide these tools with toolbox.
+# Note that RECOVERY_BUSYBOX_TOOLS will be empty if TW_USE_TOOLBOX == true.
ifeq ($(TWHAVE_SELINUX), true)
- TOOLS += \
+ TOOLS_FOR_SELINUX := \
ls \
getenforce \
setenforce \
@@ -18,6 +20,7 @@ ifeq ($(TWHAVE_SELINUX), true)
getsebool \
setsebool \
load_policy
+ TOOLS += $(filter-out $(RECOVERY_BUSYBOX_TOOLS), $(TOOLS_FOR_SELINUX))
endif
ifeq ($(TW_USE_TOOLBOX), true)