29e7e3edb1edb4567ef9f354d9a5290b92394492 |
|
29-Jul-2016 |
Josh Gao <jmgao@google.com> |
adb: fix stat on Windows. stat on Windows fails with ENOENT when passed a path with a trailing slash or backslash, regardless of whether the target is actually a directory. Emulate the correct POSIX behavior by stripping trailing path separators and then checking if the target is a directory if successful. Bug: http://b/30481559 Bug: https://code.google.com/p/android/issues/detail?id=214633 Change-Id: I1d398d19a9bce1ecb3fdc4aabc31aa98c82c3f93 Test: Relevant adb_tests pass on Linux and Windows 10. (cherry picked from commit f551ea0f6309465eeab70404076bd881320f4883)
/system/core/adb/sysdeps.h
|
69d2f9819785775c86137f5ff3298cd46b14a516 |
|
23-Mar-2016 |
Josh Gao <jmgao@google.com> |
adb: fix fd double close, Subprocess lifetime issue. This commit fixes two somewhat related issues in shell_service. - The fd returned by StartSubprocess is owned by a unique_fd contained in the Subprocess object, but also gets closed by the caller. Resolve this by duping the returned file descriptor. - A Subprocess object can be destroyed immediately after its initial construction in StartSubprocess if we're sufficiently unlucky. Split up the fork/exec and "start management thread" steps, so that we can safely do everything we need to do on the Subprocess before handing it over to the thread that'll eventually destroy it. Also includes squashed patches from AOSP master that allow for use of unique_fd inside adb. Bug: http://b/29254462 Change-Id: Id9cf0b7e7a7293bee7176919edc758597691c636 (cherry picked from commit c0e6e40cc916747a0a22c2538874348cda0ef607) (cherry picked from commit 54c72aaccc45edf4832cfdc5053d9ae6acc9bcdf) (cherry picked from commit 2c5d1d7cd914ec8ebf76c8a59d0889ebf5b538cd) (cherry picked from commit 2a7b86337f7b149887588e4df532272abe3e931c) (cherry picked from commit 13ea01db451b3993d175110a3336a58482be883d) (cherry picked from commit 344778da411ebb47966961f3a70ca0848425194f)
/system/core/adb/sysdeps.h
|
a9eb38d6a539e2e994ddd14c1e5d1d8ff157d0c9 |
|
05-Mar-2016 |
Josh Gao <jmgao@google.com> |
adb: make ScopedFd universally accessible and useful. Change-Id: I707ffbd10958e7449b4c95dff48638480c746939 (cherry picked from commit f0d3b4fc11b35ce295bd698555579ed242473e69)
/system/core/adb/sysdeps.h
|
a76e5f035eeffeb53c6bf0e667fe13625d5ffbac |
|
22-Feb-2016 |
David Pursell <dpursell@google.com> |
adb: use TCP keepalive. Currently adb only realizes a TCP transport has gone away when it tries to send a packet, which caused problems in particular for `adb reboot` since no packets are sent, leading to the client hanging until Ctrl+C. This CL turns on TCP keepalive packets to send 1 packet every second, allowing up to 10 failures before disconnecting. Using built-in TCP functionality turns out to be much cleaner in this case than trying to implement our own keepalive packets at the application layer, and should be more lightweight since it's all done in the TCP stack. Bug: http://b/23093474 Change-Id: Ifb41cbb85b9752a9f394e1eed3c6ac4da47a4e4d (cherry picked from commit bfd9503d1dfc652d0497fa1a5994b3d73e296898)
/system/core/adb/sysdeps.h
|
addab3d84dccd01cae9ca7b8a4b274b935f18fd4 |
|
17-Feb-2016 |
Josh Gao <jmgao@google.com> |
adb: don't emulate fdevent or socketpair on Windows. Change-Id: I16cf7d4427eb79f36db39e91f85402a268fa72f5 (cherry picked from commit 3777d2ecc05d397ca501f4ee296e4e66568bb1bd)
/system/core/adb/sysdeps.h
|
2674cd922e439e1d9e1db80e2dae5638a25f0390 |
|
13-Feb-2016 |
Josh Gao <jmgao@google.com> |
adb: sysdeps_win32: actually change ExitThread to _endthreadex. Forgot to amend this into b5fea14e. Change-Id: Id04e639eb87043901681db789d7a7925300fa867 (cherry picked from commit d7b3749202df90b49d4ab554944e0dd3564fe35a)
/system/core/adb/sysdeps.h
|
d9db09c3158d3da6aad34fbb926888ceafab3a55 |
|
12-Feb-2016 |
Josh Gao <jmgao@google.com> |
adb: make adb_thread_func_t return void, add adb_thread_exit. Windows restricts the return value of threads to 32-bits, even on 64-bit platforms. Since we don't actually return meaningful values from thread, resolve this inconsistency with POSIX by making adb's thread abstraction only take void functions. Change-Id: I5c23b4432314f13bf16d606fd5e6b6b7b6ef98b5 (cherry picked from commit b5fea14e13bb6e41b36f374c954dc55faeef4627)
/system/core/adb/sysdeps.h
|
d302a15a60feb453bb018da99b9abae8dab2ca01 |
|
09-Feb-2016 |
Josh Gao <jmgao@google.com> |
adb: sysdeps: add support for joining threads. Bug: http://b/27105824 Change-Id: I44e4edbb2a59565c35f1f3e6a6394ac258591f95 (cherry picked from commit 3b3e10d0465506abc7d9e07c0381396b3726f183)
/system/core/adb/sysdeps.h
|
85c65dab429f1f47b6f07e26f9637084fb314eb5 |
|
01-Feb-2016 |
David Pursell <dpursell@google.com> |
Merge "adb: win32: handle incomplete UTF-8 in console output, other fixes"
|
79d8f07a6f97511397d96dbb0676d710ce604f8c |
|
01-Feb-2016 |
David Pursell <dpursell@google.com> |
Merge "base: add SystemErrorCodeToString() function."
|
5f787ed2b3b9f6cc02aa5923b95d77e2a5865438 |
|
27-Jan-2016 |
David Pursell <dpursell@google.com> |
base: add SystemErrorCodeToString() function. Pulls the Windows error string generation out of adb into libbase so that it can be used by fastboot as well. Also makes a Unix equivalent that just wraps strerror() so that upcoming fastboot error reporting code can be platform-independent. The intent here is just to provide a portable way to report an error to the user. More general cross-platform error handling is out of scope. Bug: http://b/26236380 Change-Id: I5a784a844775949562d069bb41dcb0ebd13a32bc
/system/core/adb/sysdeps.h
|
d18aea99746d9befed6d596521ea3aa10e07d23f |
|
01-Feb-2016 |
Josh Gao <jmgao@google.com> |
Merge changes I93287b87,I30a3eb0b * changes: adb: add nullability specifiers to adb_client.h. adb: add adb_get_feature_set.
|
a166e71e216dbfe4bff8dfc369b10ab08e183427 |
|
29-Jan-2016 |
Josh Gao <jmgao@google.com> |
adb: add nullability specifiers to adb_client.h. Change-Id: I93287b876cb06d871b4330d2733ef6f43c58fbbf
/system/core/adb/sysdeps.h
|
2e02dc630f6449f2a79d9130a6346de7761e2be2 |
|
08-Nov-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: SIGWINCH support for Windows - Introduces unix_read_interruptible() which is like unix_read() except that it can return EINTR. - The big idea is that the Windows ReadConsoleInput() API will return an event on window resize and then we return EINTR from unix_read_interruptible() just like Unix. - Only handles horizontal resize since Windows doesn't seem to give an event for vertical resize when no special screen buffer is used. This should be sufficient for the primary use case of adb on Windows (people are not running vi in the first place). Change-Id: Id8d1710b559834c8098f2d7fbecedf2d0ade4b88 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
a30b79a2d9af3850da23b62703bf3b76db076ab9 |
|
16-Nov-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: handle incomplete UTF-8 in console output, other fixes Previously, the various adb_printf, adb_fwrite, etc. functions did not correctly handle the case of the passed buffer ending with an incomplete UTF-8 sequence. This is fixed by buffering up incomplete UTF-8 sequences in g_console_output_buffer (protected by the mutex g_console_output_buffer) and outputting it later once the full sequence is available. A unittest for the main worker function, ParseCompleteUTF8(), was added to adb_test. Other fixes: - Fix the return value of number-of-chars written to be number of UTF-8 bytes instead of number of UTF-16 characters. - Don't overwrite errno in success cases of various adb_printf, etc. functions. This might be excessive, but might be useful in the case when these functions are used for debugging/tracing. - Add missing UTF-8 stdio functions that aren't currently used by adb, but might be in the future: vprintf, putc, putchar, puts. - stdin_raw_init: If we can't get the console handle, don't call SetConsoleMode(). Not a big deal, but this will prevent erroneous trace output. Change-Id: I8730e8af92882c42b884ad921b39a17b54465085 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
4f71319df011d796a60a43fc1bc68e16fbf7d321 |
|
05-Dec-2015 |
Elliott Hughes <enh@google.com> |
Track rename of base/ to android-base/. Change-Id: Idf9444fece4aa89c93e15640de59a91f6e758ccf
/system/core/adb/sysdeps.h
|
cc65c3b9f8edc6fb48ffe725376e65fac42851d6 |
|
21-Nov-2015 |
Elliott Hughes <enh@google.com> |
Fix "adb sync" (and "adb push") error reporting. This patch ensures that we read any error response from the server if the server closes the connection. Unfortunately, that's not sufficient to ensure that we always see the server's error message --- sometimes the data just gets thrown away because we keep writing without reading. Setting SO_LINGER avoids this. Bug: http://b/25230872 Change-Id: I96c019cc72bd139198de79bf29e6536cc462c20f
/system/core/adb/sysdeps.h
|
d21dc825bbecad6ce480c5e5c574cc77eadcd779 |
|
13-Nov-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: remove widen()/narrow() in favor of UTF8ToWide()/WideToUTF8() Now that we have a more standardized API (also available in Chromium), switch to it. Another benefit is real error handling instead of just killing the process on invalid Unicode. Make UTF8ToWide()/WideToUTF8() set errno to EILSEQ on bad input. This is the same error code that wcsrtombs(3) uses. Update the unittest to check for EILSEQ. Change-Id: Ie92acf74d37adaea116cf610c1bf8cd433741e16 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
07db1196e7bd5856b5e2ebe4ea6791d2ae8c9e76 |
|
08-Nov-2015 |
Josh Gao <jmgao@google.com> |
adb: don't explode directories when pushing/pulling. Previously, `adb pull /data/local/tmp` would spew all of the contents of /data/local/tmp into the current directory. This patch makes push/pull keep directories intact. Bug: http://b/25394682 Change-Id: I2304ae9e61745a2b9536f58a6012640bf8ff422a
/system/core/adb/sysdeps.h
|
363af568b8491af1a4256b09b04cfa8a0606d8cc |
|
08-Nov-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb/base: minor compiler portability improvements I've been using these changes to compile with Visual Studio. - GetFileBasename(): __FILE__ uses \ with Visual Studio. - adb_trace.cpp: Apparently VS needs an ampersand before the function name. - "expr1 ? : expr2" is a GCC extension. - <algorithm> contains std::min(). - seekdir can't always be #define'd because some headers have members named seekdir. - adb_utils.cpp: Not really a compiler issue, just a random fix: 0x7F/DEL is not printable. Change-Id: I0dfb634f1ba4ccbc0d1b9f71b00e838fbebb3b41 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
c5b8ad88ce6e74216198f14c6e33d55cb1681370 |
|
28-Oct-2015 |
David Pursell <dpursell@google.com> |
adb: create unix_isatty() function. Our Windows code has several different ways it checks whether an FD is a console or not, some of which aren't exactly correct as they may treat character devices (e.g. NUL) as consoles. This CL disallows using the builtin isatty() function and provides unix_isatty() instead which correctly checks these corner cases. Change-Id: I6d551c745dae691c7eb3446b585265d62c1e62fa
/system/core/adb/sysdeps.h
|
0a79600e723de2da76ce7f3a44fb3821a484931b |
|
19-Oct-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: Improve Winsock error code mappings and strings Improved mapping of Winsock error codes to POSIX error codes, especially WSAECONNABORTED to EPIPE (which WriteFdExactly() looks for) when sending to a closed socket and WSAECONNRESET to ECONNRESET when the peer resets the connection. Use a macro to map strerror() to adb_strerror() which handles these POSIX error codes that the Windows C Runtime doesn't recognize. Also: * Unittest for adb_strerror(). * Don't trace when send() returns WSAEWOULDBLOCK because that is expected. Change-Id: If46aeb7b36de3eebfbbccf5478ff5b1bb087714b Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
1ed57f0dc333c0bc0800e222c569cca8a71deb89 |
|
07-Oct-2015 |
David Pursell <dpursell@google.com> |
adb: non-interactive shell stdin. Non-interactive `adb shell` previously only read from the remote shell, but we want it to write as well so interactive and non-interactive shells can both send data. With this CL, we can now do: $ echo foo | adb shell cat foo This is primarily usable with newer devices that support the shell_v2 features. Older devices will receive stdin but the shell will still hang after all input has been sent, requiring user Ctrl+C. This seems better than closing communication altogether which could potentially miss an unpredictable amount of return data by closing too early. Known issue: non-interactive stdin to a PTY shell isn't reliable. However I don't think this is a common case as ssh doesn't seem to handle it properly either. Examples: * echo 'echo foo' | adb shell * echo 'foo' | adb shell -t cat Bug: http://b/24565284 Change-Id: I5b017fd12d8478765bb6e8400ea76d535c24ce42
/system/core/adb/sysdeps.h
|
49ee7cf9a10f66ffa9a3490c69db5fa46e0a966b |
|
29-Aug-2015 |
Siva Velusamy <vsiva@google.com> |
adb: set thread names (linux & mac) Bug: 23423333 Change-Id: I0069f32ddbae2a10fb130064f721facf45b2cc09
/system/core/adb/sysdeps.h
|
2122c7a1483dc6050b33f58fad4a15d5acd79fdd |
|
27-Aug-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
win32: adb start-server shows stdout/stderr output from actual server When launching the adb server (typically from adb start-server), redirect stdout/stderr to anonymous pipes which are read by threads in the parent process, to make error diagnosis easier. If there is an error during adb start-server, the output looks like: > adb start-server * daemon not running. starting it now on port 5037 * error: could not blah # from server process could not read ok from ADB Server # from launch_server * failed to start daemon * # from adb_connect error: cannot connect to daemon # from adb_commandline Fix handle-leaks in launch_server by using new unique_handle class that is based on std::unique_ptr. In the server, close stdin and redirect to adb.log *before* sending the ACK, so that any errors are reported early instead of after the ACK. Change-Id: I943881210a0ea9458fc36851339f916c3d6a0830 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
5c398d2ce96150e94e596e959bfe2246b94de660 |
|
09-Aug-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: write ACK to separate pipe instead of stdout The win32 version of 9f2d1a9cfc04e1d5970823da1878097288a9a9cd. The big technique is to fit a Win32 HANDLE value in an int because it only uses 32-bits. This allows most of the other adb code to stay the same. Also, fix a regression in the 'adb server nodaemon' command that was erroneously returning an error when --reply-fd was not used, which should not be necessary for this particular command. Change-Id: I37e9c609014b813af93bf0d6c12f665b59c93c41 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
cf4ff64f2d3cdc4ffa2f06e594d18a965f591a82 |
|
11-May-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: Unicode path names, env vars, some console support Initial support for Unicode file/dir names. Unicode paths can be passed on the command line, directory enumeration can enumerate Unicode paths, Unicode paths are used for file access, and Unicode paths can be output on the console correctly. Also Unicode environment variable access. Initial support for Unicode output from adb shell (which uses adb_fwrite()). This is partial because the corner case of an adb_fwrite() call with an incomplete UTF-8 multi-byte sequence does not output correctly, but this should be uncommon, is better than what we had before (*always* incorrect UTF-8 multi-byte sequences) and can be fixed in the future. Calls to Windows APIs with char strings were changed to pass wchar_t strings to the FooW() variants. For more details, see the giant comment in sysdeps_win32.cpp. https://code.google.com/p/android/issues/detail?id=8185 Change-Id: I7ebf6713bb635638b986ccee97b354428837c9c5 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
5200c6670f041550c23821fec8e8e49b30ef6d29 |
|
31-Jul-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: win32: initial IPv6 support and improved Winsock error reporting Call getaddrinfo() for connecting to IPv6 destinations. Winsock APIs do not set errno. WSAGetLastError() returns Winsock errors that are more numerous than BSD sockets, so it really doesn't make sense to map those to BSD socket errors. Plus, even if we did that, the Windows C Runtime (that mingw binaries use) has a strerror() that does not recognize BSD socket error codes. The solution is to wrap the various libcutils socket_* APIs with sysdeps.h network_* APIs. For POSIX, the network_* APIs just call strerror(). For Windows, they call SystemErrorCodeToString() (adapted from Chromium). Also in this change: - Various other code was modified to return errors in a std::string* argument, to be able to surface the error string to the end-user. - Improved error checking and use of D() to log Winsock errors for improved debuggability. - For sysdeps_win32.cpp, added unique_fh class that works like std::unique_ptr, for calling _fh_close(). - Fix win32 adb_socketpair() setting of errno in error case. - Improve _socket_set_errno() D() logging to reduce confusion. Map a few extra error codes. - Move adb_shutdown() lower in sysdeps_win32.cpp so it can call _socket_set_errno(). - Move network_connect() from adb_utils.cpp to sysdeps.h. - Merge socket_loopback_server() and socket_inaddr_any_server() into _network_server() since most of the code was identical. Change-Id: I945f36870f320578b3a11ba093852ba6f7b93400 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
5c74270f95107952a893584d02b33f9a79f6b3c4 |
|
31-Jul-2015 |
Elliott Hughes <enh@google.com> |
More adb cleanup. This removes adb_dirstart and adb_dirstop. It also fixes a couple of memory leaks by switching to std::string. This also fixes the bug in the previous change --- mkdirs is given input like "/system/bin/sh" and only expected to create "/system/bin". In a later change, we should remove mkdirs and only expose the intended "unlink && mkdirs && create" functionality. Change-Id: I30289dc1b3dff575cc1b158d993652178f587552
/system/core/adb/sysdeps.h
|
47d67c96ec991ef1690b4c07188335cbc4bfa2aa |
|
06-May-2015 |
Alex Vallée <avallee@chromium.org> |
Write mkdirs in more idiomatic C++ style. ~ Rewrote mkdirs to be in C++ style. ~ Replaced adb_dir{start,stop} with std::string params and (r)find. + Added test for mkdirs. Also make base/test_utils.h public and support temporary directories as well as files. Change-Id: I6fcbdc5e0099f3359d3aac6b00c436f250ca1329
/system/core/adb/sysdeps.h
|
3e7048c027ffa081d2fea84b661a6da895a9f1fb |
|
28-Jul-2015 |
Elliott Hughes <enh@google.com> |
Fix const-ness of strrchr callers. This causes build failures in google3 where they use GCC. glibc only provides const-correct overloads for string functions for GCC >= 4.4, but clang -- which is what we use -- pretends to be GCC 4.2. Change-Id: I2a054823ea6201ebcea46d5e77b80a975eefc622
/system/core/adb/sysdeps.h
|
d48dbd89c8661607b338b696c14c9609050f3f29 |
|
24-Jul-2015 |
Elliott Hughes <enh@google.com> |
Fix Win32 adb build. Change-Id: I0a07379c470b7fa7f9bdef68c17ccb7bd0bd2079
/system/core/adb/sysdeps.h
|
381cfa9a8bc262dcd823a8bb6adc189595a2fe7d |
|
24-Jul-2015 |
Elliott Hughes <enh@google.com> |
Report getaddrinfo failures correctly. Also move us off the "convenience" function because you can't get useful error reporting from it. Change-Id: I5fcc6a6d762f5f60906980a7835f01a35045be65
/system/core/adb/sysdeps.h
|
8d8126a705dd3c5734a0894f88c2c758784bd469 |
|
21-Jul-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: logging: newlines, thread ids, error code overwriting Add missing \n to uses of legacy D() macro. This should make the legacy logging easier to read (and harder to miss important stuff). On POSIX, use gettid() from libcutils instead of pthread_self() so that the output shows a more reasonable number instead of a pointer value. This should be ok since libbase's logging already uses gettid(). Win32: Don't let the Win32 last error get overwritten by API calls after the original error'ing API. When encountering an unknown error, log the specific error code. Change-Id: Ib8f72754efa7ba895d2f1cd914251fec2a1d894c Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
6ac5d7dc56a016718d2a26803435505e983e5d80 |
|
23-May-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: fix adb_close() vs. unix_close() usage Document the differences between adb_*() and unix_*() in the function prototypes in sysdeps.h. See the file for the details (CR/LF translation, well-known file descriptors, etc.). Fix adb_read(), adb_write(), and adb_close() calls that should really be unix_read(), unix_write(), and unix_close(). Note that this should have no impact on unix because on unix, unix_read/unix_write/unix_close are macros that map to adb_read/adb_write/adb_close. Improve sysdeps_win32.cpp file descriptor diagnostic logging to output the name of the function that was passed a bad file descriptor. Change-Id: I0a1d9c28772656c80bcc303ef8b61fccf4cd637c Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
2e4a2eeaf3eb679c5f3fd1f4280418db6d5dc3a1 |
|
05-May-2015 |
Elliott Hughes <enh@google.com> |
_beginthread returns uintptr_t. 64-bit Windows is a thing, and we'll have to support it some day... Change-Id: Ib9e2da1a5625e95a0ffadfee8501825dfd4f9594
/system/core/adb/sysdeps.h
|
9b0f354fa25e3d5add516000c761e07c81c3bbc1 |
|
05-May-2015 |
Elliott Hughes <enh@google.com> |
Simplify adb_thread_create. Change-Id: I36d6021ef8fbc23e8bcd4ddbe1dac0eba467cc70
/system/core/adb/sysdeps.h
|
8d5fa6da44d56511b3e173bc463cbc65ff221b4a |
|
25-Apr-2015 |
Elliott Hughes <enh@google.com> |
Remove strtok from adb. Also fix android::base::Split to behave like Java, Python, and google3. Change-Id: Ifbffd4e92950a79e7aea5d153c95fe0980648417
/system/core/adb/sysdeps.h
|
2d4121c0dcc93382bcd7ea6476f433d8254919dd |
|
17-Apr-2015 |
Elliott Hughes <enh@google.com> |
Remove extern "C" barriers to using C++. Change-Id: Ic046d6aa540738cb46b54531bc59ba3b47b0136d
/system/core/adb/sysdeps.h
|
50184062b87a121458fff7d8bda6656c59c71c77 |
|
02-Mar-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb shell: Win32: fix Ctrl-C, tab completion, line editing, server echo The 'adb shell' command on Windows has had problems: * Ctrl-C killed the local Windows adb.exe process instead of sending the Ctrl-C to the Android device. * Local echo was enabled, causing everything typed to be displayed twice. * Line input was enabled, so the Android device only received input after hitting enter. This meant that tab completion did not work because the tab wasn't seen by the shell until pressing enter. * The usual input line editing keys did not work (Ctrl-A to go to the beginning of the line, etc.). This commit fixes these issues by reconfiguring the Win32 console and then translating input into what Gnome Terminal would send, in effect somewhat emulating a Unix terminal. This does not fix all Win32 console issues, but is designed to be better than what we had before, and to make the common day-to-day usage much more comfortable and usable. Change-Id: Idb10e0b634e27002804fa99c09a64e7176cf7c09 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
cc731cc76786b6bdc58764aad9924c0d0c8d645f |
|
25-Feb-2015 |
Dan Albert <danalbert@google.com> |
Test readx/writex (now renamed). Renamed readx/writex to ReadFdExactly/WriteFdExactly respectively. These read/write a full fixed-size buffer. If the whole buffer cannot be read/written, these functions return an error. Rename write_string to WriteStringFully. Move the TEMP_FAILURE_RETRY definition in sysdeps.h out of the !Windows section. It seems Windows won't actually interrupt a call, but it's easier to just define it than to #ifdef each call. Change-Id: Ia8ddffa2a52764a2f9a281c96c937660e002b9b9
/system/core/adb/sysdeps.h
|
818fb4b448a44ef9f1db85f66415fde4b7a96aa6 |
|
18-Feb-2015 |
Dan Albert <danalbert@google.com> |
Add extern "C" to all the adb headers. Change-Id: Iaefa3e18d6ee2e065eb97271a796613b2a8e7d6e
/system/core/adb/sysdeps.h
|
f055c193b85b5bc077a4e278f84f33a266edccf7 |
|
25-Jan-2015 |
Spencer Low <CompareAndSwap@gmail.com> |
adb: Win32: set socket buffer sizes properly On Windows, adb_socket_setbufsize() was taking a file descriptor value from the compatibility layer in sysdeps_win32.c (namely, an index into the _win32_fhs array) and passing it to the Winsock setsockopt() call, which wants a Winsock SOCKET handle. Basically, adb_socket_setbufsize() was passing `fd` instead of `_fh_from_int(fd)->fh_socket`, resulting in adb effectively setting a socket buffer size on a random socket in the process. The fix is to introduce adb_setsockopt() which just calls setsockopt() on non-Win32, and which uses the Winsock SOCKET handle on Win32. The change also moves Win32 disable_tcp_nagle() to a header and adds an extra sanity check to adb_shutdown(). Change-Id: I4354e818d27538f7ff5b0e70b28bdb6300e1b98b Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
/system/core/adb/sysdeps.h
|
630b9afeb0d7f0e5e053db0f900cfb65d914cb1a |
|
25-Nov-2014 |
Dan Albert <danalbert@google.com> |
Begin moving code from adb to libadb. Much of adb is duplicated in bootable/recovery/minadb and fastboot. Changes made to adb rarely get ported to the other two, so the trees have diverged a bit. We'd like to stop this because it is a maintenance nightmare, but the 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. Bug: 17626262 Change-Id: Ic8d5653bfcc0fec4e1acbece124402355084b864
/system/core/adb/sysdeps.h
|
298b6c70a084e87e688d19d1b3d609410121cf1d |
|
23-Aug-2014 |
leozwang <leozwang@google.com> |
Fix build on mac. On mac require a case. Also, this code is not portable, will fix it in long run. (cherry-pick of 0f1fda9ee80ba086e4c8960a7d153798e3cf3285.) Change-Id: I76194b62cea29bd3d21c7ba6c3da4d549bea4738
/system/core/adb/sysdeps.h
|
cbf0267f5b508f6933631e661a5be86f0bd89ed1 |
|
15-Aug-2014 |
leozwang <leozwang@google.com> |
Add more debug information. Re-commit https://googleplex-android-review.googlesource.com/#/c/519430/ Add fix for win_sdk build. Add socketpair debug log. Also output thread information in log on host side. (cherry-pick of adb09fa01a16d8c5c92c2f8d325e1678c531223f.) Change-Id: I21021bc111a3f7362a91b70593e3738125878118
/system/core/adb/sysdeps.h
|
2f431a8d5a1c2029af470a7336751a555131ee51 |
|
02-Oct-2014 |
Stephen Hines <srhines@google.com> |
Fix windows-specific error without messing up Makefile flags. Bug: 14416410 The proper fix for the error/warning we encountered is to move winsock2.h in front of windows.h. Change-Id: I29504ba3a184a85c6636d06c2ad900828fdb5436
/system/core/adb/sysdeps.h
|
b75d6f1429edf41cd15772a8d9d3a96f84a21862 |
|
07-May-2014 |
Andrew Hsieh <andrewhsieh@google.com> |
Remove obsolete reference to ddk; Fixes for -Werror Bug: 14416410 1. The new mingw-w64 toolchain x86_64-w64-mingw32-4.8 has ddk in x86_64-w64-mingw32/include/ddk 2. Add -Wno-error=cpp to suppress a warning that turns into error thanks to -Werror: Please include winsock2.h before windows.h 3. Cast GetLastError() return type DWORD to "int" 4. Include direct.h for _mkdir 5. Include stdint.h for uint8_t on Windows Change-Id: I4bec0587f6573692f08c760da6c98ae551b8b5eb
/system/core/adb/sysdeps.h
|
b911cf0af43718a6dedb06561e787ba3bdbdfe8b |
|
20-May-2014 |
Elliott Hughes <enh@google.com> |
Fix win32 implicit declaration of function socket_network_client_timeout. Change-Id: Ic6070855a21920384c555c9c82b9a2e4a776cbae
/system/core/adb/sysdeps.h
|
893a4a47e8c9290128b9254af0246e36f821c260 |
|
23-May-2013 |
Nick Kralevich <nnk@google.com> |
adb: Only use properties on device builds When building for the host, don't make reference to property_get / property_set. I'm in the process of removing host side support for properties. Change-Id: I691c5872b5fd538e78bc38a3fe72574cdc7f43c3
/system/core/adb/sysdeps.h
|
ec90f1dc11488f0ab8a25a9159965b4ae3c4ca88 |
|
13-Oct-2012 |
Kenny Root <kroot@google.com> |
Add TEMP_FAILURE_RETRY macro for darwin Darwin doesn't define the TEMP_FAILURE_RETRY macro in unistd.h so we need to add it everywhere. Joy! Change-Id: Ida554fc65193672cc4616dec79e6282e06cc1b28
/system/core/adb/sysdeps.h
|
1dc92bacb8cbf052438e0b1af4030a57901d6e94 |
|
13-Oct-2012 |
Kenny Root <kroot@google.com> |
am 207c17ff: Merge "Make adb robust against EINTR" * commit '207c17ff1f48d0db3c69628bb036a14db40b5887': Make adb robust against EINTR
|
73167412bc52ee370761e418366ddac504666567 |
|
13-Oct-2012 |
Kenny Root <kroot@google.com> |
Make adb robust against EINTR Change-Id: I39a8d9007ce2d5662a33a50e4d7e2e7f8f9fad63
/system/core/adb/sysdeps.h
|
d5fcafaf41f8ec90986c813f75ec78402096af2d |
|
12-Apr-2012 |
Benoit Goby <benoit@android.com> |
adb: Add public key authentification Secure adb using a public key authentication, to allow USB debugging only from authorized hosts. When a device is connected to an unauthorized host, the adb daemon sends the user public key to the device. A popup is shown to ask the user to allow debugging once or permanantly from the host. The public key is installed on the device in the later case. Other keys may be installed at build time. On the host, the user public/private key pair is automatically generated, if it does not exist, when the adb daemon starts and is stored in $HOME/.android/adb_key(.pub) or in $ANDROID_SDK_HOME on windows. If needed, the ADB_KEYS_PATH env variable may be set to a :-separated (; under Windows) list of private keys, e.g. company-wide or vendor keys. On the device, vendors public keys are installed at build time in /adb_keys. User-installed keys are stored in /data/misc/adb/adb_keys. ADB Protocol change: If the device needs to authenticate the host, it replies to CNXN packets with an AUTH packet. The AUTH packet payload is a random token. The host signs the token with one of its private keys and sends an AUTH(0) packet. If the signature verification succeeds, the device replies with a CNXN packet. Otherwise, it sends a new AUTH packet with a new token so that the host can retry with another private key. Once the host has tried all its keys, it can send an AUTH(1) packet with a public key as payload. adbd then sends the public key to the framework (if it has been started) for confirmation. Change-Id: I4e84d7621da956f66ff657245901bdaefead8395
/system/core/adb/sysdeps.h
|
1b7a7e81195ff06a7482f81cb92b094bb3481cb1 |
|
06-Jun-2012 |
Scott Anderson <saa@android.com> |
adb: Use bionic's strtok_r() for Windows A recent change use strtok_r which broke the Windows build. Clear this potential landmine by adding adb_strtok_r to sysdeps.h in the typical fashion. For Windows, the actual implementation in sysdeps_win32.c was copied from bionic/libc/string/strtok.c. Change-Id: Ibb71555bc429f7058c07c3d39e0b62859c79635c Signed-off-by: Scott Anderson <saa@android.com>
/system/core/adb/sysdeps.h
|
408fa57864c01113deaa213e5c1848a9c594ae92 |
|
16-Mar-2011 |
JP Abgrall <jpa@google.com> |
adb: fix subprocess exit handling, oom adjust fixes, extra debugging. * Add support for correctly handling subprocess termination in shell service (b/3400254 b/3482112 b/2249397) - have a waitpid() track the subprocess, then notify the fdevent via a socket - force an eof on the pty master in fdevent's new subproc handler. - modify fdevent to force-read the pty after an exit. * Migrate the "shell:blabla" handling to "#if !ADB_HOST" sections, where it belongs. * Fix the race around OOM adjusting. - Do it in the child before exec() instead of the in the parent as the child could already have started or not (no /proc/pid/... yet). * Allow for multi-threaded D() invocations to not clobber each other. - Allow locks across object files. - Add lock within D() - Make sure sysdesp init (mutex init also) is called early. * Add some missing close(fd) calls - Match similar existing practices near dup2() * Add extra D() invocations related to FD handling. * Warn about using debugging as stderr/stdout is used for protocol. * Fix some errno handling and make D() correctly handle it. * Add new adb trace_mask: services. * Make fdevent_loop's handle BADFDs more gracefully (could occur some subproc closed its pts explicitely). * Remove obsolete commandline args reported in help. (b/3509092) Change-Id: I928287fdf4f1a86777e22ce105f9581685f46e35
/system/core/adb/sysdeps.h
|
0e7c4274c687446dbe30a814278d7a6b99da8c4e |
|
24-Feb-2011 |
JP Abgrall <jpa@google.com> |
Revert "Fix adb hang when subprocess dies early." This is for http://b/3482112 "adb interactions with device causing test harness failures". This reverts commit 69c5c4c45bd4f1575ae8bdba13795297be7deb8c. Change-Id: I630bf2e04d2ecf0223bd2af4e87136754ff880d3
/system/core/adb/sysdeps.h
|
69c5c4c45bd4f1575ae8bdba13795297be7deb8c |
|
18-Feb-2011 |
JP Abgrall <jpa@google.com> |
Fix adb hang when subprocess dies early. * Handling of the subprocess and its FD. This fixes http://b/3400254 "Many bugreports getting hung at the end in monkey" - Start up a service thread that waits on the subprocess to terminate, then closes the FD associated with it. - Have the event handler select() with a timeout so that it can detect the closed FD. Select() with no timeout does not return when an FD is closed. - Have the event handler force a read on the closed FD to trigger the close sequence. - Migrate the "shell:blabla" handling to "#if !ADB_HOST" sections. * Fix the race around OOM adjusting. - Do it in the child before exec() instead of the in the parent as the child could already have started or not (no /proc/pid/... yet). * Allow for multi-threaded D() invocations to not clobber each other. - Allow locks across object files. - Add lock within D() * Add some missing close(fd) calls - Match similar existing practices near dup2() * Add extra D() invocations related to FD handling. * Warn about using debugging as stderr/stdout is used for protocol. Change-Id: Ie5c4a5e6bfbe3f22201adf5f9a205d32e069bf9d Signed-off-by: JP Abgrall <jpa@google.com>
/system/core/adb/sysdeps.h
|
95ef82866c7a922bf588027aa38c58a45eb84d9c |
|
02-Feb-2011 |
Benoit Goby <benoit@android.com> |
Fix adb leaking file descriptors to forked processes accept() creates a new file descriptor that should be closed on exec so that forked processes don't keep a fd opened on the socket. This also fixes b/3297070 where adb hangs after running adb on the target. Change-Id: I8df511289e5549ae49b4824c9dfb71a3bf85eae8
/system/core/adb/sysdeps.h
|
8cf0d59f61ae0b8554ecf3fe051850508b761b79 |
|
12-Oct-2009 |
Mike Lockwood <lockwood@android.com> |
adb: Add "adb disconnect" command for disconnecting TCP/IP devices. Also check that device is not already connected in "adb connect" Change-Id: I5f84b56b63d8c6932f23791cac319fd6bc39d36c Signed-off-by: Mike Lockwood <lockwood@android.com>
/system/core/adb/sysdeps.h
|
f6330a2eeb78c0971f33feee7fd1ee06472a7dba |
|
18-May-2009 |
David 'Digit' Turner <digit@google.com> |
Cleaning up whitespace in adb sources. Nothing more, nothing less.
/system/core/adb/sysdeps.h
|
414ff7d98ac8d7610a26206335954ad15f43f3ac |
|
18-May-2009 |
David 'Digit' Turner <digit@google.com> |
Move fdevent from libcutils into adb directory. ADB is the only client of this API, and I intend to modify it extensively to clean its codebase soon.
/system/core/adb/sysdeps.h
|
dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/system/core/adb/sysdeps.h
|
e54eebbf1a908d65ee8cf80bab62821c05666d70 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/system/core/adb/sysdeps.h
|
4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53 |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/system/core/adb/sysdeps.h
|