summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-06-07 21:53:04 -0700
committerElliott Hughes <enh@google.com>2014-06-09 16:10:42 -0700
commit7fc47129cf6a25b01b551816ac58ff3f53320123 (patch)
tree130c0288ea5deeaa9cecdd905f19beacdd88a42c
parent6e3fffeca6ac00379b0a22888d04a58ee0f51057 (diff)
downloadsystem_core-7fc47129cf6a25b01b551816ac58ff3f53320123.zip
system_core-7fc47129cf6a25b01b551816ac58ff3f53320123.tar.gz
system_core-7fc47129cf6a25b01b551816ac58ff3f53320123.tar.bz2
Switch md5 over to openssl rather than libc.
It doesn't make any sense for the C library to contain private stuff that's only used by toolbox. Rather than move that stuff out of bionic and into here, let's just use the same MD5 implementation the rest of the system's using. Change-Id: Ia1c73164124094b532af3453b90c4bd1ebfdaa24
-rw-r--r--toolbox/Android.mk126
-rw-r--r--toolbox/md5.c8
2 files changed, 66 insertions, 68 deletions
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
index fddf0a9..77df4d4 100644
--- a/toolbox/Android.mk
+++ b/toolbox/Android.mk
@@ -2,73 +2,73 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
TOOLS := \
- ls \
- mount \
cat \
- ps \
- kill \
- ln \
- insmod \
- rmmod \
- lsmod \
- ifconfig \
- rm \
- mkdir \
- rmdir \
- getevent \
- sendevent \
- date \
- wipe \
- sync \
- umount \
- start \
- stop \
- notify \
+ chcon \
+ chmod \
+ chown \
+ clear \
cmp \
- dmesg \
- route \
- hd \
+ date \
dd \
df \
+ dmesg \
+ du \
+ getenforce \
+ getevent \
getprop \
- setprop \
- watchprops \
- log \
- sleep \
- renice \
- printenv \
- smd \
- chmod \
- chown \
- newfs_msdos \
- netstat \
- ioctl \
- mv \
- schedtop \
- top \
- iftop \
+ getsebool \
+ hd \
id \
- uptime \
- vmstat \
- nandread \
+ ifconfig \
+ iftop \
+ insmod \
+ ioctl \
ionice \
- touch \
+ kill \
+ ln \
+ load_policy \
+ log \
+ ls \
+ lsmod \
lsof \
- du \
md5 \
- clear \
- getenforce \
- setenforce \
- chcon \
+ mkdir \
+ mkswap \
+ mount \
+ mv \
+ nandread \
+ netstat \
+ newfs_msdos \
+ notify \
+ printenv \
+ ps \
+ readlink \
+ renice \
restorecon \
+ rm \
+ rmdir \
+ rmmod \
+ route \
runcon \
- getsebool \
+ schedtop \
+ sendevent \
+ setenforce \
+ setprop \
setsebool \
- load_policy \
- swapon \
+ sleep \
+ smd \
+ start \
+ stop \
swapoff \
- mkswap \
- readlink
+ swapon \
+ sync \
+ top \
+ touch \
+ umount \
+ uptime \
+ vmstat \
+ watchprops \
+ wipe \
ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
TOOLS += r
@@ -92,21 +92,25 @@ LOCAL_SRC_FILES := \
toolbox.c \
uid_from_user.c \
-LOCAL_C_INCLUDES := bionic/libc/bionic
-
LOCAL_CFLAGS += \
-std=gnu99 \
-Werror -Wno-unused-parameter \
-include bsd-compatibility.h \
+LOCAL_C_INCLUDES += external/openssl/include
+
LOCAL_SHARED_LIBRARIES := \
- libcutils \
- liblog \
- libc \
- libusbhost \
- libselinux
+ libcrypto \
+ libcutils \
+ libselinux \
+
+# libusbhost is only used by lsusb, and that isn't usually included in toolbox.
+# The linker strips out all the unused library code in the normal case.
+LOCAL_STATIC_LIBRARIES := \
+ libusbhost \
LOCAL_MODULE := toolbox
+LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
# Including this will define $(intermediates).
#
diff --git a/toolbox/md5.c b/toolbox/md5.c
index 2fb8b05..5de4d9e 100644
--- a/toolbox/md5.c
+++ b/toolbox/md5.c
@@ -4,12 +4,7 @@
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <md5.h>
-
-/* When this was written, bionic's md5.h did not define this. */
-#ifndef MD5_DIGEST_LENGTH
-#define MD5_DIGEST_LENGTH 16
-#endif
+#include <openssl/md5.h>
static int usage()
{
@@ -30,7 +25,6 @@ static int do_md5(const char *path)
return -1;
}
- /* Note that bionic's MD5_* functions return void. */
MD5_Init(&md5_ctx);
while (1) {