1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_PATH:= $(call my-dir) 2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(CLEAR_VARS) 3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectTOOLS := \ 5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ls \ 6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project mount \ 7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project cat \ 8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ps \ 9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project kill \ 10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ln \ 11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project insmod \ 12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project rmmod \ 13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project lsmod \ 14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ifconfig \ 15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project setconsole \ 16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project rm \ 17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project mkdir \ 18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project rmdir \ 19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project reboot \ 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project getevent \ 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sendevent \ 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project date \ 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project wipe \ 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sync \ 25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project umount \ 26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project start \ 27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project stop \ 28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project notify \ 29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project cmp \ 30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project dmesg \ 31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project route \ 32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project hd \ 33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project dd \ 34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project df \ 35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project getprop \ 36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project setprop \ 37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project watchprops \ 38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project log \ 39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project sleep \ 40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project renice \ 41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project printenv \ 42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project smd \ 43dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project chmod \ 442a743730c7d1a8adba8a922f7af46cef0b35363aDries Harnie chown \ 4572eead43c7711ca97b2d7f578e6b8854a2856ce0San Mehat newfs_msdos \ 46dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project netstat \ 47dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ioctl \ 48dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project mv \ 49dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project schedtop \ 50dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project top \ 51dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project iftop \ 52dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project id \ 53a699d6256fca0336b173c524c5b3d8f7d4fcdc25Mike Lockwood uptime \ 547c953d04bcc9070a1bce171e979c5201dd39325bArve Hjønnevåg vmstat \ 5510d469bff9031e857c7a290dae7d6ccf7b3a18f8San Mehat nandread \ 568b9b105bc7bf6428591d55462b3e727ba7504b29Kenny Root ionice \ 57795165bc1512faa121083c6bf3ce6f6d83ce59e6Ken Sumrall touch \ 58d0455c952d61d36e662f4a95d5e03689ecedca8fScott Anderson lsof \ 59d0455c952d61d36e662f4a95d5e03689ecedca8fScott Anderson md5 60dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 618290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyifeq ($(HAVE_SELINUX),true) 628290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 638290d1083ec7eee3f32265012f5d6be2774c4afcStephen SmalleyTOOLS += \ 648290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley getenforce \ 658290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley setenforce \ 668290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley chcon \ 678290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley restorecon \ 688290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley runcon \ 698290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley getsebool \ 708290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley setsebool \ 718290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley load_policy 728290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 738290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyendif 748290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 758290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 76b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) 77b76f0ff7005bde136c2e2f7d19359abe320ab90bErik GillingTOOLS += r 78b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gillingendif 79b76f0ff7005bde136c2e2f7d19359abe320ab90bErik Gilling 80dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_SRC_FILES:= \ 81a8d1afb3e91b043fcd303a40ca4ac9293bbd2781David 'Digit' Turner dynarray.c \ 82dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project toolbox.c \ 83dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(patsubst %,%.c,$(TOOLS)) 84dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 85123538954b9c8ad8fe7c2d755391f0b7cbaa1d6fMike LockwoodLOCAL_SHARED_LIBRARIES := libcutils libc libusbhost 86fd1e8553232aa6f3bfbb609158b24fa2e1c3d40bErik Gilling 87d0455c952d61d36e662f4a95d5e03689ecedca8fScott AndersonLOCAL_C_INCLUDES := bionic/libc/bionic 88d0455c952d61d36e662f4a95d5e03689ecedca8fScott Anderson 898290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyifeq ($(HAVE_SELINUX),true) 908290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 918290d1083ec7eee3f32265012f5d6be2774c4afcStephen SmalleyLOCAL_CFLAGS += -DHAVE_SELINUX 928290d1083ec7eee3f32265012f5d6be2774c4afcStephen SmalleyLOCAL_SHARED_LIBRARIES += libselinux 938290d1083ec7eee3f32265012f5d6be2774c4afcStephen SmalleyLOCAL_C_INCLUDES += external/libselinux/include 948290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 958290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyendif 968290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley 97dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectLOCAL_MODULE:= toolbox 98dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 99dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Including this will define $(intermediates). 100dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# 101dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectinclude $(BUILD_EXECUTABLE) 102dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 103dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(LOCAL_PATH)/toolbox.c: $(intermediates)/tools.h 104dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 105dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectTOOLS_H := $(intermediates)/tools.h 106dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): PRIVATE_TOOLS := $(TOOLS) 107dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): PRIVATE_CUSTOM_TOOL = echo "/* file generated automatically */" > $@ ; for t in $(PRIVATE_TOOLS) ; do echo "TOOL($$t)" >> $@ ; done 108dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): $(LOCAL_PATH)/Android.mk 109dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(TOOLS_H): 110dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(transform-generated-source) 111dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 112dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Make #!/system/bin/toolbox launchers for each tool. 113dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# 114dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectSYMLINKS := $(addprefix $(TARGET_OUT)/bin/,$(TOOLS)) 115dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): TOOLBOX_BINARY := $(LOCAL_MODULE) 116dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(LOCAL_PATH)/Android.mk 117dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @echo "Symlink: $@ -> $(TOOLBOX_BINARY)" 118dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @mkdir -p $(dir $@) 119dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project @rm -rf $@ 120dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(hide) ln -sf $(TOOLBOX_BINARY) $@ 121dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 122dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_DEFAULT_INSTALLED_MODULES += $(SYMLINKS) 123dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 124dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# We need this so that the installed files could be picked up based on the 125dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# local module name 126dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source ProjectALL_MODULES.$(LOCAL_MODULE).INSTALLED := \ 127dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(SYMLINKS) 128