Merge "adb: add "adb unroot" to restart adb in non-root mode"
diff --git a/adb/Android.mk b/adb/Android.mk
index 415952d..ba20bbe 100644
--- a/adb/Android.mk
+++ b/adb/Android.mk
@@ -14,13 +14,22 @@
# divergence makes this difficult to do all at once. For now, we will start
# small by moving common files into a static library. Hopefully some day we can
# get enough of adb in here that we no longer need minadb. https://b/17626262
-LIBADB_SRC_FILES :=
+LIBADB_SRC_FILES := transport.c transport_usb.c
LIBADB_C_FLAGS := -Wall -Werror -D_XOPEN_SOURCE -D_GNU_SOURCE
+LIBADB_LINUX_SRC_FILES := fdevent.cpp
+LIBADB_WINDOWS_SRC_FILES := sysdeps_win32.c
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libadbd
+LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0
+LOCAL_SRC_FILES := $(LIBADB_SRC_FILES) $(LIBADB_LINUX_SRC_FILES) usb_linux_client.c
+include $(BUILD_STATIC_LIBRARY)
+
include $(CLEAR_VARS)
LOCAL_MODULE := libadb
-LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=0
-LOCAL_SRC_FILES := $(LIBADB_SRC_FILES) fdevent.cpp
+LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1
+LOCAL_SRC_FILES := $(LIBADB_SRC_FILES) $(LIBADB_LINUX_SRC_FILES)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
@@ -28,9 +37,9 @@
LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1
LOCAL_SRC_FILES := $(LIBADB_SRC_FILES)
ifeq ($(HOST_OS),windows)
- LOCAL_SRC_FILES += sysdeps_win32.c
+ LOCAL_SRC_FILES += $(LIBADB_WINDOWS_SRC_FILES)
else
- LOCAL_SRC_FILES += fdevent.cpp
+ LOCAL_SRC_FILES += $(LIBADB_LINUX_SRC_FILES)
endif
include $(BUILD_HOST_STATIC_LIBRARY)
@@ -71,9 +80,7 @@
LOCAL_SRC_FILES := \
adb.c \
console.c \
- transport.c \
transport_local.c \
- transport_usb.c \
commandline.c \
adb_client.c \
adb_auth_host.c \
@@ -121,9 +128,7 @@
LOCAL_SRC_FILES := \
adb.c \
- transport.c \
transport_local.c \
- transport_usb.c \
adb_auth_client.c \
sockets.c \
services.c \
@@ -158,7 +163,7 @@
LOCAL_C_INCLUDES += system/extras/ext4_utils system/core/fs_mgr/include
LOCAL_STATIC_LIBRARIES := \
- libadb \
+ libadbd \
libfs_mgr \
liblog \
libcutils \
diff --git a/fs_mgr/fs_mgr_verity.c b/fs_mgr/fs_mgr_verity.c
index ef7cf6e..4683acb 100644
--- a/fs_mgr/fs_mgr_verity.c
+++ b/fs_mgr/fs_mgr_verity.c
@@ -317,9 +317,7 @@
// build the verity params here
verity_params = buffer + sizeof(struct dm_ioctl) + sizeof(struct dm_target_spec);
- if (sprintf(verity_params, "%s", table) < 0) {
- return -1;
- }
+ strcpy(verity_params, table);
// set next target boundary
verity_params += strlen(verity_params) + 1;
diff --git a/init/builtins.cpp b/init/builtins.cpp
index 42cfa43..9f3dcc1 100644
--- a/init/builtins.cpp
+++ b/init/builtins.cpp
@@ -389,7 +389,7 @@
return -1;
}
- sprintf(tmp, "/dev/block/mtdblock%d", n);
+ snprintf(tmp, sizeof(tmp), "/dev/block/mtdblock%d", n);
if (wait)
wait_for_file(tmp, COMMAND_RETRY_TIMEOUT);
@@ -409,7 +409,7 @@
}
for (n = 0; ; n++) {
- sprintf(tmp, "/dev/block/loop%d", n);
+ snprintf(tmp, sizeof(tmp), "/dev/block/loop%d", n);
loop = open(tmp, mode | O_CLOEXEC);
if (loop < 0) {
close(fd);
diff --git a/init/devices.cpp b/init/devices.cpp
index 9275439..3a9b753 100644
--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -152,7 +152,7 @@
if ((strlen(upath) + strlen(dp->attr) + 6) > sizeof(buf))
break;
- sprintf(buf,"/sys%s/%s", upath, dp->attr);
+ snprintf(buf, sizeof(buf), "/sys%s/%s", upath, dp->attr);
INFO("fixup %s %d %d 0%o\n", buf, dp->uid, dp->gid, dp->perm);
chown(buf, dp->uid, dp->gid);
chmod(buf, dp->perm);
diff --git a/init/init.cpp b/init/init.cpp
index 8647496..41ceb0a 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -252,7 +252,7 @@
umask(077);
if (properties_inited()) {
get_property_workspace(&fd, &sz);
- sprintf(tmp, "%d,%d", dup(fd), sz);
+ snprintf(tmp, sizeof(tmp), "%d,%d", dup(fd), sz);
add_environment("ANDROID_PROPERTY_WORKSPACE", tmp);
}
diff --git a/libnetutils/dhcpclient.c b/libnetutils/dhcpclient.c
index a05b7cb..240a789 100644
--- a/libnetutils/dhcpclient.c
+++ b/libnetutils/dhcpclient.c
@@ -236,13 +236,13 @@
#if VERBOSE
-static void hex2str(char *buf, const unsigned char *array, int len)
+static void hex2str(char *buf, size_t buf_size, const unsigned char *array, int len)
{
int i;
char *cp = buf;
-
+ char *buf_end = buf + buf_size;
for (i = 0; i < len; i++) {
- cp += sprintf(cp, " %02x ", array[i]);
+ cp += snprintf(cp, buf_end - cp, " %02x ", array[i]);
}
}
@@ -278,7 +278,7 @@
ALOGD("giaddr = %s", ipaddr(msg->giaddr));
c = msg->hlen > 16 ? 16 : msg->hlen;
- hex2str(buf, msg->chaddr, c);
+ hex2str(buf, sizeof(buf), msg->chaddr, c);
ALOGD("chaddr = {%s}", buf);
for (n = 0; n < 64; n++) {
@@ -327,7 +327,7 @@
memcpy(buf, &x[2], n);
buf[n] = '\0';
} else {
- hex2str(buf, &x[2], optsz);
+ hex2str(buf, sizeof(buf), &x[2], optsz);
}
if (x[0] == OPT_MESSAGE_TYPE)
name = dhcp_type_to_name(x[2]);