diff options
author | Nick Kralevich <nnk@google.com> | 2014-11-17 18:56:25 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2014-11-17 18:56:25 +0000 |
commit | 33aacf1963dd1914c0ff94c4ddd05f729cdba3b6 (patch) | |
tree | b9f1eb413bc8483b651f04c23cdc55de6f5e1795 /adb | |
parent | 52b88980564b6f0f1f8b9ceb1eebb80204bab29e (diff) | |
parent | 86c9e5f7e20a3f1712038ce642628c2e1e866434 (diff) | |
download | system_core-33aacf1963dd1914c0ff94c4ddd05f729cdba3b6.zip system_core-33aacf1963dd1914c0ff94c4ddd05f729cdba3b6.tar.gz system_core-33aacf1963dd1914c0ff94c4ddd05f729cdba3b6.tar.bz2 |
Introduce "adb keygen"
automerge: 86c9e5f
* commit '86c9e5f7e20a3f1712038ce642628c2e1e866434':
Introduce "adb keygen"
Diffstat (limited to 'adb')
-rw-r--r-- | adb/adb_auth.h | 1 | ||||
-rw-r--r-- | adb/adb_auth_host.c | 27 | ||||
-rw-r--r-- | adb/commandline.c | 9 |
3 files changed, 34 insertions, 3 deletions
diff --git a/adb/adb_auth.h b/adb/adb_auth.h index b24c674..54dd537 100644 --- a/adb/adb_auth.h +++ b/adb/adb_auth.h @@ -18,6 +18,7 @@ #define __ADB_AUTH_H void adb_auth_init(void); +int adb_auth_keygen(const char* filename); void adb_auth_verified(atransport *t); void send_auth_request(atransport *t); diff --git a/adb/adb_auth_host.c b/adb/adb_auth_host.c index e53f059..a859199 100644 --- a/adb/adb_auth_host.c +++ b/adb/adb_auth_host.c @@ -117,18 +117,34 @@ out: static void get_user_info(char *buf, size_t len) { char hostname[1024], username[1024]; - int ret; + int ret = -1; + + if (getenv("HOSTNAME") != NULL) { + strncpy(hostname, getenv("HOSTNAME"), sizeof(hostname)); + hostname[sizeof(hostname)-1] = '\0'; + ret = 0; + } #ifndef _WIN32 - ret = gethostname(hostname, sizeof(hostname)); if (ret < 0) + ret = gethostname(hostname, sizeof(hostname)); #endif + if (ret < 0) strcpy(hostname, "unknown"); + ret = -1; + + if (getenv("LOGNAME") != NULL) { + strncpy(username, getenv("LOGNAME"), sizeof(username)); + username[sizeof(username)-1] = '\0'; + ret = 0; + } + #if !defined _WIN32 && !defined ADB_HOST_ON_TARGET - ret = getlogin_r(username, sizeof(username)); if (ret < 0) + ret = getlogin_r(username, sizeof(username)); #endif + if (ret < 0) strcpy(username, "unknown"); ret = snprintf(buf, len, " %s@%s", username, hostname); @@ -439,6 +455,11 @@ int adb_auth_get_userkey(unsigned char *data, size_t len) return ret + 1; } +int adb_auth_keygen(const char* filename) { + adb_trace_mask |= (1 << TRACE_AUTH); + return (generate_key(filename) == 0); +} + void adb_auth_init(void) { int ret; diff --git a/adb/commandline.c b/adb/commandline.c index d84d4ff..a85ce92 100644 --- a/adb/commandline.c +++ b/adb/commandline.c @@ -36,6 +36,7 @@ #define TRACE_TAG TRACE_ADB #include "adb.h" #include "adb_client.h" +#include "adb_auth.h" #include "file_sync_service.h" static int do_cmd(transport_type ttype, char* serial, char *cmd, ...); @@ -190,6 +191,9 @@ void help() " adb restore <file> - restore device contents from the <file> backup archive\n" "\n" " adb disable-verity - disable dm-verity checking on USERDEBUG builds\n" + " adb keygen <file> - generate adb public/private key. The private key is stored in <file>,\n" + " and the public key is stored in <file>.pub. Any existing files\n" + " are overwritten.\n" " adb help - show this help message\n" " adb version - show version num\n" "\n" @@ -1720,6 +1724,11 @@ top: return restore(argc, argv); } + if (!strcmp(argv[0], "keygen")) { + if (argc < 2) return usage(); + return adb_auth_keygen(argv[1]); + } + if (!strcmp(argv[0], "jdwp")) { int fd = adb_connect("jdwp"); if (fd >= 0) { |