From 8d66f8bda919435d36a1df1d8f3cea16a3c496fa Mon Sep 17 00:00:00 2001 From: Dees Troy Date: Tue, 8 Oct 2013 14:04:55 +0000 Subject: Add toolbox_recovery rules Build special limited toolbox with SELinux tools for recovery Change-Id: Ifc76a6bd0468a72081f15ede2a68adf48af8a0f2 --- toolbox/Android.mk | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 toolbox/Android.mk (limited to 'toolbox/Android.mk') diff --git a/toolbox/Android.mk b/toolbox/Android.mk new file mode 100644 index 000000000..ef0593a04 --- /dev/null +++ b/toolbox/Android.mk @@ -0,0 +1,80 @@ +LOCAL_PATH:= system/core/toolbox/ +include $(CLEAR_VARS) + +TOOLS := \ + start \ + stop \ + getprop \ + setprop + +ifeq ($(TWHAVE_SELINUX), true) + TOOLS += \ + ls \ + getenforce \ + setenforce \ + chcon \ + restorecon \ + runcon \ + getsebool \ + setsebool \ + load_policy +endif + +LOCAL_SRC_FILES := \ + dynarray.c \ + toolbox.c \ + $(patsubst %,%.c,$(TOOLS)) + +TOOLS += reboot + +ifeq ($(BOARD_USES_BOOTMENU),true) + LOCAL_SRC_FILES += ../../../external/bootmenu/libreboot/reboot.c +else + LOCAL_SRC_FILES += reboot.c +endif + +LOCAL_C_INCLUDES := bionic/libc/bionic + +LOCAL_SHARED_LIBRARIES := \ + libcutils \ + liblog \ + libc + +ifeq ($(TWHAVE_SELINUX), true) + LOCAL_SHARED_LIBRARIES += libselinux +endif + +LOCAL_MODULE := toolbox_recovery +LOCAL_MODULE_STEM := toolbox +LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin +LOCAL_MODULE_TAGS := optional + +# Including this will define $(intermediates). +# +include $(BUILD_EXECUTABLE) + +$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h + +TOOLS_H := $(intermediates)/tools.h +$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS) +$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done +$(TOOLS_H): $(LOCAL_PATH)/Android.mk +$(TOOLS_H): + $(transform-generated-source) + +# Make #!/system/bin/toolbox launchers for each tool. +# +SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(TOOLS)) +$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE_STEM) +$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk + @echo "Symlink: $@ -> $(TOOLBOX_BINARY)" + @mkdir -p $(dir $@) + @rm -rf $@ + $(hide) ln -sf $(TOOLBOX_BINARY) $@ + +ALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS) + +# We need this so that the installed files could be picked up based on the +# local module name +ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \ + $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS) -- cgit v1.2.3