Commit graph

1346 commits

Author SHA1 Message Date
Elliott Hughes
381cfa9a8b Report getaddrinfo failures correctly.
Also move us off the "convenience" function because you can't get useful
error reporting from it.

Change-Id: I5fcc6a6d762f5f60906980a7835f01a35045be65
2015-07-23 21:14:38 -07:00
Elliott Hughes
b877d72a86 am f5defe75: am 89cc750e: Merge "Don\'t limit Windows USB reads."
* commit 'f5defe752334c557a6be2d7242c944a81f11be76':
  Don't limit Windows USB reads.
2015-07-23 18:47:51 +00:00
Elliott Hughes
d704ede392 am 2fc8a91e: am 6b40d0aa: Merge "adb: win32: fix exec-in and exec-out to use binary mode"
* commit '2fc8a91eb35556b6f2bb4018b0fe2c08de55fe1c':
  adb: win32: fix exec-in and exec-out to use binary mode
2015-07-23 18:47:50 +00:00
Elliott Hughes
ae18667f94 am d804c6cd: am 571c8d71: Merge "Increase size of the the adb packets sent over the wire"
* commit 'd804c6cdc5f0dd4bccfe802f3e4db12e9110e0ef':
  Increase size of the the adb packets sent over the wire
2015-07-23 18:47:49 +00:00
Elliott Hughes
bd83f19f68 am 32b4d786: am a5d0ca4f: Merge "Show "(reverse)" in "adb reverse --list"."
* commit '32b4d786e14dd14cee39c12f56231ccf56c6710a':
  Show "(reverse)" in "adb reverse --list".
2015-07-23 02:06:46 +00:00
Elliott Hughes
fee0648121 am d66e949b: am 2e7c39ec: Merge ""adb tcpip" should require a numeric argument."
* commit 'd66e949b14305b367d3de4ba00901bff1122bb0e':
  "adb tcpip" should require a numeric argument.
2015-07-23 02:06:36 +00:00
Elliott Hughes
c83614a8a5 am 59ae3947: am 3bcdaa28: Merge "Recognize IPv6 addresses for "adb connect"."
* commit '59ae39473d1d9a53ecfbeb802f2b91c8e00a33e6':
  Recognize IPv6 addresses for "adb connect".
2015-07-23 02:06:31 +00:00
Elliott Hughes
61ee830ec9 Don't limit Windows USB reads.
In 3d2904cdf2 we removed the code that broke
Linux USB reads into 4KiB chunks. This patch does the same for Windows. This
improves Windows "adb pull" speeds 6x in my VM. (There was no equivalent
problem with writes, so this change only affects pull speeds.)

Change-Id: If19013e5f51975f4824bf9147b7b76cebd305b96
2015-07-22 15:59:06 -07:00
Elliott Hughes
6b40d0aaa1 Merge "adb: win32: fix exec-in and exec-out to use binary mode" 2015-07-22 22:43:45 +00:00
Tamas Berghammer
3d2904cdf2 Increase size of the the adb packets sent over the wire
The reason behing this change is to increase the adb push/pull speed
with reduceing the number of packets sent between the host and the
device because the communication is heavily bound by packet latency.

The change maintains two way compatibility in the communication
protocol with negotiating a packet size between the target and the
host with the CONNECT packets.

After this change the push/pull speeds improved significantly
(measured from Linux-x86_64 with 100MB of data):

           | Old push | Old pull || New push  | New pull  |
-----------------------------------------------------------
Hammerhead | 4.6 MB/s | 3.9 MB/s || 13.1 MB/s | 16.5 MB/s |
-----------------------------------------------------------
Volantis   | 6.0 MB/s | 6.2 MS/s || 25.9 MB/s | 29.0 MB/s |
-----------------------------------------------------------
Fugu       | 6.0 MB/s | 5.1 MB/s || 27.9 MB/s | 33.2 MB/s |
-----------------------------------------------------------

Change-Id: Id9625de31266e43394289e325c7e7e473379c5d8
2015-07-22 13:06:06 -07:00
Elliott Hughes
a5d0ca4f16 Merge "Show "(reverse)" in "adb reverse --list"." 2015-07-22 00:25:41 +00:00
Elliott Hughes
34c20bbdff Show "(reverse)" in "adb reverse --list".
Bug: http://b/17788586
Change-Id: I250a1459295ed38e8d962da8bea2a8d2f83c7ef0
2015-07-21 17:09:06 -07:00
Elliott Hughes
19d80b878c "adb tcpip" should require a numeric argument.
Defaulting to port 0 just breaks stuff.

Bug: http://b/22636927
Change-Id: I6239900e0828e71b31171d0184c24824957c99c8
2015-07-21 16:27:46 -07:00
Elliott Hughes
3bcdaa2877 Merge "Recognize IPv6 addresses for "adb connect"." 2015-07-21 22:29:05 +00:00
Elliott Hughes
3d5f60dbba Recognize IPv6 addresses for "adb connect".
Bug: http://b/22559299
Change-Id: I32891d706b5010c38db84a056e76dd279b780f75
2015-07-21 15:25:14 -07:00
Elliott Hughes
cc07811ebb am 3cd33a72: am 5208d551: Merge "adb: logging: newlines, thread ids, error code overwriting"
* commit '3cd33a722543a6da22c6dd70b700d27e7890e2b7':
  adb: logging: newlines, thread ids, error code overwriting
2015-07-21 18:26:07 +00:00
Spencer Low
8d8126a705 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>
2015-07-21 02:06:26 -07:00
Elliott Hughes
ac6a325e5c am b02de7ed: am 05418442: Merge "Remove subproc events when ADB_HOST."
* commit 'b02de7eda1d84179bc6d0f898a4b6e3d0565834b':
  Remove subproc events when ADB_HOST.
2015-07-21 02:34:29 +00:00
Elliott Hughes
05418442ff Merge "Remove subproc events when ADB_HOST." 2015-07-20 22:50:25 +00:00
Elliott Hughes
0f9b94e21d am 9287d2d8: am 953b44c3: Merge "Fix adbd/adb server confusion in an error message."
* commit '9287d2d83a420d750e3c1490d52930c11f662a19':
  Fix adbd/adb server confusion in an error message.
2015-07-20 18:18:53 +00:00
Elliott Hughes
64d303a0e7 Fix adbd/adb server confusion in an error message.
Change-Id: Iacb8bcfb1e8e1d46198ee4ba8cf0ec0d1b98c75a
2015-07-18 13:57:46 -07:00
Alex Vallée
947cb3e8ee Remove subproc events when ADB_HOST.
The code which triggers these events (via the SHELL_EXIT_NOTIFY_FD) are
only called from code which is already guarded by #if !ADB_HOST.

Change-Id: I184414f5e090c1f08ee117e4c8c434cd4a8b5221
2015-07-17 16:00:29 -04:00
Elliott Hughes
e45a665040 am c06c3001: am a1c344b9: Merge "Move mkdirs to adb_utils."
* commit 'c06c3001156cbbdf8d6b3e187e0f92c51c5a80b3':
  Move mkdirs to adb_utils.
2015-07-16 21:39:46 +00:00
Alex Vallée
1421614821 Move mkdirs to adb_utils.
There were duplicate implementations in commandline.cpp and
file_sync_client.cpp.

Change-Id: Ib448f76c0d7ffdcd577336b1c610a881425bc2db
2015-07-15 19:37:18 +00:00
Thierry Strudel
a0fbb90885 am 8703bea1: Merge "fs_config: replace getenv(\'OUT\') by new fs_config parameter" into mnc-dev
* commit '8703bea1807326fef9835bc474e7a7288c725925':
  fs_config: replace getenv('OUT') by new fs_config parameter
  fs_mgr: Use ro.boot.veritymode
2015-07-10 18:44:51 +00:00
Thierry Strudel
df33ffadd2 fs_config: replace getenv('OUT') by new fs_config parameter
Using a getenv('OUT') in such a deep down function is a wrong design
choice. Replacing with explicit parameter that may be NULL in case
device specific files can be accessed from /.
Since TARGET_COPY_OUT_SYSTEM may be defined to something different than
system we also ensure that we use a path relative to TARGET_OUT to
compute path to fs_config_* files.

Bug: 21989305
Bug: 22048934
Change-Id: Id91bc183b29beac7379d1117ad83bd3346e6897b
Signed-off-by: Thierry Strudel <tstrudel@google.com>
2015-07-09 21:47:07 -07:00
Dan Albert
fcbc32de34 am 00599eca: am e84205bf: Merge "Revert "Turn on -Wformat-nonliteral.""
* commit '00599eca7446f28762da3854566cff0b2ba46799':
  Revert "Turn on -Wformat-nonliteral."
2015-07-09 21:05:16 +00:00
Dan Albert
286bb6ddbd Revert "Turn on -Wformat-nonliteral."
One of my build aliases doesn't play nice with USE_MINGW=1, so my build lied to me. Will revert until I fix it up.

This reverts commit 459df8f3a1.

Change-Id: I7905c5ae5ee85fb2d228ce63d81c79f140998c18
2015-07-09 20:35:09 +00:00
Dan Albert
f9b81ccd75 am fcdc3141: am a35affb5: Merge "Turn on -Wformat-nonliteral."
* commit 'fcdc3141d3209afb8a8a62764fa66911a7104e74':
  Turn on -Wformat-nonliteral.
2015-07-09 20:21:31 +00:00
Elliott Hughes
d15baf0180 am 9d748c8b: am a6241a02: Merge "Replace HAVE_WIN32_IPC with _WIN32."
* commit '9d748c8bf4b3b4810c6ad9dcc75322c8059c3876':
  Replace HAVE_WIN32_IPC with _WIN32.
2015-07-09 17:51:06 +00:00
Dan Albert
459df8f3a1 Turn on -Wformat-nonliteral.
Apparently there are two classes of this warning in clang.
-Wformat-security is only emitted for cases of
`func(nonliteral_fmt_string)` (no args), and -Wformat-nonliteral is
emitted for cases *with* arguments. For whatever reason, the latter
isn't included in -Wextra and must be manually enabled.

To make this more easily portable to Windows, move the existing
gnu_printf/__printf__ decision into base/macros.h as ATTRIBUTE_FORMAT.

Change-Id: I3b0990e1d1f0a2e9c13b32f5cd60478946cb5fc6
2015-07-09 10:47:24 -07:00
Elliott Hughes
a6241a0298 Merge "Replace HAVE_WIN32_IPC with _WIN32." 2015-07-09 17:16:13 +00:00
Elliott Hughes
095307ec49 Replace HAVE_WIN32_IPC with _WIN32.
Change-Id: Ie9dc064fb23a4e4bd4856c9668784dec0be9d2d6
2015-07-09 10:03:18 -07:00
Daniel Rosenberg
a5b671d0e3 am 32933ff5: am dc4fa7f6: Merge "Fix "adb remount" for when the root directory is in system.img"
* commit '32933ff511a4b63f60543c97e2fc3b47ea465d1a':
  Fix "adb remount" for when the root directory is in system.img
2015-07-08 20:37:27 +00:00
Daniel Rosenberg
d6eba89f83 Fix "adb remount" for when the root directory is in system.img
When the root directory has been built into system.img, it is
mounted at /.

Change-Id: If01d12efeaa53b4ae59e801a6e9b802a9ae5882d
2015-07-08 19:36:19 +00:00
Elliott Hughes
0c3cb52dfc am f4bb11d2: am 913ef1ca: Merge "Fixed a documentation error in protocol.txt"
* commit 'f4bb11d29888bae67d09a8004c3925f7dea9b1fc':
  Fixed a documentation error in protocol.txt
2015-07-06 18:21:32 +00:00
Derrick Bonafilia
36da715f2f Fixed a documentation error in protocol.txt
Prior to the documentation told users to pass 0 in as
the first argument to write messages, when they should
be outting in their local-id. It is now corrected.

Change-Id: Ia2c6c84f95383baa5ca471493a29a39e5173b604
Signed-off-by: Derrick Bonafilia <dbonafilia@google.com>
2015-07-06 10:19:28 -07:00
Elliott Hughes
1bb6a4b89e am eb73219c: am b80ed906: Merge "adb server: don\'t close stale fd when TCP transport is closed"
* commit 'eb73219cbe186c4d879df081a83a97afa3ff7fc9':
  adb server: don't close stale fd when TCP transport is closed
2015-06-29 22:59:23 +00:00
Elliott Hughes
b80ed90696 Merge "adb server: don't close stale fd when TCP transport is closed" 2015-06-29 22:32:19 +00:00
Elliott Hughes
529bb75f9f am 04016450: am 9137d65e: Merge "Improve the "device \'(null)\' not found" error."
* commit '0401645033b0418f9cd6e07768ae3b062aa256ca':
  Improve the "device '(null)' not found" error.
2015-06-24 19:55:06 +00:00
Elliott Hughes
e2d3677cc2 Improve the "device '(null)' not found" error.
Now we'll say "no devices found" if you haven't set ANDROID_SERIAL and
there's no device connected to default to.

Also clean up the relevant code a little.

Change-Id: Id254929629ce0888628d5ba8e67cd996ffbf9c8a
2015-06-24 10:36:41 -07:00
Elliott Hughes
2f03148186 am 11e6f219: am 21ba889a: Merge "Ignore ro.adb.secure in user builds."
* commit '11e6f219e7c5b755c70979fb573fcdc607d0f118':
  Ignore ro.adb.secure in user builds.
2015-06-19 20:54:26 +00:00
Elliott Hughes
1cddc2092f Ignore ro.adb.secure in user builds.
Require authorization by default, and remove the ability to override
that in user builds. (userdebug and eng are still free to do whatever
they want.)

Bug: http://b/21862859
Change-Id: Ibf8af375be5bf1141c1ad481eee7a59fb10a7adb
(cherry picked from commit 5cba504215)
2015-06-19 13:26:02 -07:00
Elliott Hughes
5cba504215 Ignore ro.adb.secure in user builds.
Require authorization by default, and remove the ability to override
that in user builds. (userdebug and eng are still free to do whatever
they want.)

Bug: http://b/21862859
Change-Id: Ibf8af375be5bf1141c1ad481eee7a59fb10a7adb
2015-06-18 10:19:30 -07:00
Nick Kralevich
746d5cd66a am a27dca0f: am 60c5a460: Merge "Remove calls to is_selinux_enabled()"
* commit 'a27dca0f7a5d6c1f79aaf213a6b26428e4ad855e':
  Remove calls to is_selinux_enabled()
2015-06-13 10:30:52 +00:00
Nick Kralevich
4d87095ebf Remove calls to is_selinux_enabled()
d34e407aeb removed support for
running with SELinux completely disabled. SELinux must either be
in permissive or enforcing mode now.

Remove unnecessary calls to is_selinux_enabled(). It always returns
true now.

Change-Id: Ife3156b74b13b2e590afe4accf716fc7776567e5
2015-06-12 22:12:33 -07:00
Elliott Hughes
5ca8b9b0e6 am dc5993b3: am 4931ae54: Merge "Minor "adb help" fixes."
* commit 'dc5993b3bac7797fb4163e3ea78cdc80f2f0d024':
  Minor "adb help" fixes.
2015-06-13 02:25:37 +00:00
Elliott Hughes
7e067cff7a Minor "adb help" fixes.
One day we should slim this down. (Maybe implement the "help" versus
"help all" distinction that doesn't currently exist but was documented
before this change.)

Bug: https://code.google.com/p/android/issues/detail?id=158394
Change-Id: Ie24b588ffea00d262ce7ab0e5c328120ba8af240
2015-06-12 14:33:17 -07:00
Spencer Low
d62bce8040 adb: win32: fix key files reading/writing
The issue is that adb uses fopen() with "e" (presumably to open the file
with O_CLOEXEC), but that flag causes MSVCRT.DLL to return an error. So
when adb_auth_host.cpp goes to read or write the adbkey files, it fails.

The quick fix is to not use the "e" option on adb host code since it
isn't necessary there, compared to adbd.

An alternative fix would be to have a fopen() wrapper on Windows that
filters out the "e" option.

Bug: http://b/21806456
Bug: https://code.google.com/p/android/issues/detail?id=175077
Change-Id: I7d8ba2847dab0ed558ffe156e79093251eb253c9
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
(cherry picked from commit 9b9603148b)
2015-06-12 11:02:37 -07:00
Spencer Low
3abd31d8f4 adb server: don't close stale fd when TCP transport is closed
I think this fixes a scary bug that could be on all host platforms.

When running 'adb unroot' with an emulator, the connection to the
emulator is dropped (as expected). I noticed that the adb.log showed:

_fh_from_int:  1168: 5280 | _fh_from_int: invalid fd 106 passed to adb_close

Background: Every transport has a socketpair (two bidirectional sockets
connected to each other to form one 'pipe') that are used as follows:

* When adb wants to write to a transport, it writes to
t->transport_socket (half of the socketpair). An input thread reads from
t->fd (the other half of the socketpair) and writes the data to the
underlying transport (TCP, USB).

* An output thread reads from the underlying transport (TCP, USB) and
writes the data to t->fd. The main thread runs fdevent_loop() which
reads from t->transport_socket and processes the packets (that really
came from the underlying transport).

So t->fd and t->transport_socket are just an intermediate pipe between
transport agnostic code in adb and the underlying transport (TCP, USB).

Here's what I think is going on:

1. When the TCP transport is closed (such as when running adb unroot),
adb server's output thread notices this (adb_read() returns zero), and
it writes a special packet to t->fd.

2. The main thread processes the special packet by writing the special
packet to the input thread.

3. input_thread() sees the special packet, so it breaks out of a read
loop and calls transport_unref() which calls transport_unref_locked().

4. transport_unref_locked() calls t->close() which is a function pointer
that points to transport_local.cpp: remote_close() which calls
adb_close(t->fd). <----- ****THIS IS THE BUG****

I think this is a (very old) typo and it should instead be
adb_close(t->sfd) (the transport’s actual TCP socket) because it does
not make sense for the particular transport mechanism (TCP, USB) to be
messing with a socket of the socketpair of the transport agnostic code
(t->fd).

5. transport_unref_locked() calls remove_transport() which writes an
action to another special socketpair.

6. The action is read and eventually transport_registration_func() is
called and it calls adb_close(t->fd). But t->fd was already
(erroneously) closed in #4 above!! Anyway, this causes the adb.log
output.

The fix is to fix the typo changing t->fd to t->sfd and adding some
resiliency around whether the socket has already been closed (probably
by remote_kick()).

I tested this by putting a new adbd on an emulator, a new adb on Linux
and Windows and running the adb unroot scenario and checking adb.log. I
also ran test_adb.py (which doesn't totally work without problems with
an emulator, but I'll leave that to another day.)

Change-Id: I188b6c74917a3d721c150fd17ed0f2b63a2178c3
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-06-09 12:32:17 -07:00
Spencer Low
b7dfb79b53 adb: win32: fix exec-in and exec-out to use binary mode
adb exec-in and exec-out are designed to read/write binary data
according to the commit description at:
https://android.googlesource.com/platform/system/core/+/5d9d434%5E!/

On Windows, when adb_read and adb_write are used, they are always in
binary mode (because sysdeps_win32.cpp calls Windows APIs direct). But
unix_read, unix_write, fread, fwrite, read, write use the text
translation mode of the C Runtime file descriptor, which is by default
textmode.

adb exec-in and exec-out use copy_to_file() which uses unix_read() and
fwrite() when reading/writing stdin and stdout, thus, copy_to_file()
should switch to binary mode for those cases (it already uses binary
mode for file descriptors other than stdin and stdout).

copy_to_file() is also called by adb backup, adb restore, and adb
install-multiple, but those do not use stdin or stdout, so those
codepaths should not be affected by this change.

Change-Id: I3446d9b363d20a2c2f6be2b96e55b653d99df2f9
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-06-08 17:41:53 -07:00
Elliott Hughes
f8ee7c7442 am 35096f4c: am fa76ffcc: Merge "adb: win32: fix logging to adb.log"
* commit '35096f4cf8d2d81f28cec07781fd080f855c0e99':
  adb: win32: fix logging to adb.log
2015-06-08 22:43:46 +00:00
Elliott Hughes
fa76ffccaa Merge "adb: win32: fix logging to adb.log" 2015-06-08 22:21:31 +00:00
Jack Pham
a190c800bf adbd: enable USB SuperSpeed (again)
The descriptors to enable USB 3.0 SuperSpeed support had previously
been added in commit d6ee9f26a5
but were removed when the v1/v2 descriptor handling was refactored
in commits ab3446dd34 and again in
c49f51c451. Now that the dust has
settled, add back the SS descriptors to re-enable USB 3.0.

Change-Id: I8de7c7e50d9216a7492ce7863e3aaf92ff805eff
2015-06-08 11:31:47 -07:00
Elliott Hughes
71ae73c01d am b4d0722d: am a9456438: Merge "Fix test_adb.py against production builds."
* commit 'b4d0722d7dedece03e560dc13eb6b56bf18eeae6':
  Fix test_adb.py against production builds.
2015-06-06 00:35:20 +00:00
Paul Lawrence
0ec4b9363a am 439cdfd0: am af0baad7: Merge "adb shouldn\'t trace unless told to"
* commit '439cdfd0bfa8ee2cf0996f517e61ab9f7d90bdc6':
  adb shouldn't trace unless told to
2015-06-06 00:35:18 +00:00
Elliott Hughes
a945643831 Merge "Fix test_adb.py against production builds." 2015-06-06 00:16:23 +00:00
Paul Lawrence
6f009d9496 adb shouldn't trace unless told to
Prevents clean unmount of /data in crypto bounce

Bug: 21516860
Change-Id: I1f761dfdf216dcb35b4609cd46cc4d0644cc4a81
2015-06-05 16:01:48 -07:00
Elliott Hughes
3595328564 Fix test_adb.py against production builds.
Also use assertEqual for better errors. (I accidentally tested against
a non-AOSP build that doesn't have the \r fix.)

Change-Id: Ib032c01efa4e1efb14467ca776a14160fff4ad39
2015-06-05 13:11:43 -07:00
Elliott Hughes
3fa276aab5 am 473629d5: am f9ae390f: Merge "adb: win32: get test_adb.py running and passing 100%"
* commit '473629d564fbb90e5c08bc7006685fe47b8cadd0':
  adb: win32: get test_adb.py running and passing 100%
2015-06-05 01:08:36 +00:00
Elliott Hughes
f9ae390f63 Merge "adb: win32: get test_adb.py running and passing 100%" 2015-06-05 00:50:08 +00:00
Elliott Hughes
d41dee7fc8 am 641fd2e4: am ebce1470: Merge "adb: fix adb_close() vs. unix_close() usage"
* commit '641fd2e443607aadd2cb98177308241cb633dcbd':
  adb: fix adb_close() vs. unix_close() usage
2015-06-04 22:44:55 +00:00
Elliott Hughes
ebce147077 Merge "adb: fix adb_close() vs. unix_close() usage" 2015-06-04 22:28:50 +00:00
Spencer Low
d0f66c3616 adb: win32: fix logging to adb.log
In the adb client, redirect stdin and stderr of the adb server to `nul',
so that when the adb server starts up, it avoids issues in the C Runtime
where it closes stderr, making it hard to properly reopen. There are
probably other ways to avoid this issue, but I think this is the
cleanest that will keep working over the years and will exercise the
most commonly used code-paths in the C Runtime.

Fix some adb_close() calls to be unix_close() (only really matters on
Windows).

Make stderr non-buffered on Windows, to match the (sensible) Linux
behavior.

Change-Id: I1b15c64240e50dbeb56788b0d0d901f4536ad788
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-06-02 21:04:56 +00:00
Svetoslav
cb0322f536 am 23d84074: Improve adb install help.
* commit '23d84074652b77385431fc0d1505b7d43b7dba9e':
  Improve adb install help.
2015-06-02 14:22:54 +00:00
Svetoslav
23d8407465 Improve adb install help.
Bug: 21365060
Change-Id: I0a4ea5cf3a2f37a82161b30f7eec5781d175aa8f
2015-06-01 23:59:20 +00:00
Elliott Hughes
06e914eb8e am 5dd45034: am ce817c38: Merge "Fix error handling/reporting for "adb forward" and "adb reverse"."
* commit '5dd45034c3785792c59b3ef663ac2b669637d607':
  Fix error handling/reporting for "adb forward" and "adb reverse".
2015-05-30 01:56:48 +00:00
Elliott Hughes
424af02f36 Fix error handling/reporting for "adb forward" and "adb reverse".
We really need better infrastructure for parsing adb subcommands, but
in the meantime...

At least this cleans up a little more of the implementation too.

Bug: http://b/20736014
Change-Id: I76209847da3724906c71924017bcb69fa31e0b49
2015-05-29 18:03:57 -07:00
Lorenzo Colitti
4209796136 am 0983a6d5: Merge "Document the -g option to adb install." into mnc-dev
* commit '0983a6d54c202fde75523f1340bd9c9a168ab98c':
  Document the -g option to adb install.
2015-05-28 04:06:58 +00:00
Lorenzo Colitti
0b3baac512 Document the -g option to adb install.
Change-Id: I012165df343c24953f1c1cfcdce379bf1b67c624
2015-05-28 12:03:44 +09:00
Spencer Low
62b6b4a1ea adb: win32: get test_adb.py running and passing 100%
* Use posixpath instead of os.path, because os.path uses '\' instead of
'/' when running on Windows.

* tempfile.NamedTemporaryFile() does not work right on Windows because
it holds the file open, preventing other processes from accessing the
same file (https://bugs.python.org/issue14243). To work-around this, use
the mechanical transformation described at
http://stackoverflow.com/questions/15169101/how-to-create-a-temporary-file-that-can-be-read-by-a-subprocess

* Use pipes.quote() to quote path arguments, to prevent C:\foo\bar from
turning into C:foobar.

* Open files in binary mode with "b".

* Fix line-ending test to allow for \r\n on Windows, but to still test
for adbd incorrectly sending \r\n (which is then translated to \r\r\n).

Change-Id: Ib6ba94b919b747a878ba3ab54a4dea0801f76947
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-24 23:26:05 -07:00
Spencer Low
6ac5d7dc56 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>
2015-05-22 20:20:49 -07:00
Dan Albert
9313c0df20 Improve logging.
Any output from the LOG family will now go to stderr and logcat on the
device. stderr is usually redirected to a log file, but that is now
inhibited for adbd if being run from a tty (useful when debugging with
the serial console).

This also fixes sending logs to the file on device for the trace mask
of "all". The "all" tag was specifically handled to return early from
the function, preventing the file initialization from happening.

Change-Id: Id253577bfd1500fbce92dbfba0f9be23dbfd5ee4
2015-05-21 16:25:57 -07:00
Dan Albert
36473768ef Merge "Clean up adb_trace_init." 2015-05-21 23:03:50 +00:00
Dan Albert
db037bcd22 Merge "Make atransport be a real class." 2015-05-21 22:53:40 +00:00
Dan Albert
c7915a3470 Make atransport be a real class.
Using non-POD types in atransport means we'll need to start treating
it as a real class (specifically with regards to new/delete rather
than malloc/free).

I've also cleaned up the home grown linked lists for transport_list
and pending_list to just be std::lists. We might want to refactor that
again to be an std::unordered_map keyed on serial, since that seems to
be a common way to search it.

Change-Id: I7f5e23cdc47944a9278099723ca029585fe52105
2015-05-21 15:49:05 -07:00
Dan Albert
23fee8fcf5 Turn on -Wextra.
Change-Id: I3cddd6d949fdfa79312246670c37475276734f41
2015-05-21 15:15:11 -07:00
Dan Albert
e246219d0c Clean up adb_trace_init.
Old code was a mess for splitting a string and then searching a list
when they really wanted a map.

To more closely match ANDROID_LOG_TAG, only use a space separated list
rather than space/colon/semi-colon/comma.

Change-Id: I915ff4968e42d5f8dec1b43b6eacc0c8d7b44d7b
2015-05-21 15:03:44 -07:00
Spencer Low
ac3f7d9a78 adb / libbase: clean up NOGDI and evil ERROR macro
Instead of defining and undefining NOGDI:

1. Always #include "base/logging.h" after #include <windows.h>.
Unfortunately, I could not find an easy way to give the user a
warning/error if they include in the wrong order.

2. base/logging.h does #undef ERROR to undefine the evil ERROR macro
that is from another era and probably a bad idea to begin with.

Change-Id: I995d89620611e849af9d7ec47eb55fc0512377f2
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-20 12:25:19 -07:00
Dan Albert
d92fd41f69 Merge "Make connection states a proper type." 2015-05-19 00:29:54 +00:00
Dan Albert
dcd78a15d0 Make connection states a proper type.
Change-Id: I809f9b327c832b88dd63151bf7dcb012d88e81c4
2015-05-18 17:10:33 -07:00
Dan Albert
075e8608a7 Ignore whitespace/indent issues from cpplint.
Unfortunately this lint check also fires when public/private are not
indented by a single space. The indentation format in adb does not
match google style, so that's not going to happen.

Change-Id: I35e5654a2359222bb274ac5fb2961aee6a3a280f
2015-05-18 16:49:07 -07:00
Dan Albert
747a6f22cd Merge "adb: win32: fix key files reading/writing" 2015-05-16 01:04:21 +00:00
Dan Albert
569a130196 Make pty raw in adb shell when non-interactive.
The main goal here is fixing the line ending translation from \n to
\r\n, but we probably don't want any translation to happen.

Bug: http://b/19735063
Change-Id: I1d6d6c6b57cc741b046c2432cd864b344ce1f28a
2015-05-15 17:33:05 -07:00
Dan Albert
4e0008123d Merge "adb: win32: fix StringPrintf format string checking of %zd and PRIu64" 2015-05-15 22:49:59 +00:00
Elliott Hughes
2181c722ce Fix ' escaping in adb.
You can't just use \' inside a single-quoted string.

Bug: http://b/20323053
Bug: http://b/3090932
Change-Id: I73754b097671d02dc11c35052f0534b6dd789e4f
(cherry picked from commit 84b0bf2264)
2015-05-15 14:50:47 -07:00
Dan Albert
0df06907b4 Merge "adb: win32: fix daemon acknowledgement" 2015-05-15 21:47:07 +00:00
Elliott Hughes
84b0bf2264 Fix ' escaping in adb.
You can't just use \' inside a single-quoted string.

Bug: http://b/20323053
Bug: http://b/3090932
Change-Id: I73754b097671d02dc11c35052f0534b6dd789e4f
2015-05-15 12:06:00 -07:00
Spencer Low
6001c87cbc adb: win32: fix StringPrintf format string checking of %zd and PRIu64
At runtime, vsnprintf (and android::base::StringPrintf which calls it)
call a mingw version of vsnprintf, not the vsnprintf from MSVCRT.DLL.
The mingw version properly understands %zd and PRIu64 (the latter,
provided that you #include <inttypes.h>).

The problem was that android::base::StringPrintf was causing
compile-time errors saying that %zd and PRIu64 were not recognized. It
seems that this was because the attribute on the function prototypes
specified `printf' instead of `gnu_printf'. Once that was fixed to match
vsnprintf's attribute, the warnings went away.

This uses similar preprocessor techniques as <android/log.h>.

Also restore a %zd usage to avoid a static_cast<>, and make
print_transfer_progress()'s format string compile-time checkable (and
tweak some types and %llu => PRIu64).

Change-Id: I80b31b9994858a28cb7c6847143b86108b8ab842
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-13 19:30:30 -07:00
Alan Jeon
4af3c40c4a adb: Do not share memory between multiple thread
When multiple client try to connect to other hosts, it failed because
memory corruption. Allocate memory for each thread like other command did.

Change-Id: I79959ce3dbfd11c7553736cd3f5a899815873584
Signed-off-by: Alan Jeon <skyisle@gmail.com>
2015-05-11 16:28:04 -07:00
Spencer Low
d396dc93a7 adb: win32: fix daemon acknowledgement
The daemon failed to startup because main.cpp was changed from calling
WriteFile() to android::base::WriteStringToFd(), the later which calls
write() in the C Runtime which by default has stdout in textmode which
does \n to \r\n translation.

The quick fix is to change stdout's mode from text to binary since right
after it is reopened to redirect to the daemon log file anyway.

Change-Id: I322fc9eae5d6abbf63f3d5917b0beb2171b5a15c
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-11 15:57:43 -07:00
Elliott Hughes
a51d8b9a1c Failure to find an oem partition should not be a remount failure.
Many devices don't have an /oem partition, so find_mount should be
expected to fail, but shouldn't cause the overall remount to fail.

Also clean up all the error handling and reporting, and remove the
dead int* globals.

Bug: http://b/21024141
Change-Id: Ie31021b03c9cab8e972269d7d1ffe383cd30ee9e
(cherry picked from commit 9aa4fda4e6)
2015-05-11 13:36:13 -07:00
Elliott Hughes
9aa4fda4e6 Failure to find an oem partition should not be a remount failure.
Many devices don't have an /oem partition, so find_mount should be
expected to fail, but shouldn't cause the overall remount to fail.

Also clean up all the error handling and reporting, and remove the
dead int* globals.

Bug: http://b/21024141
Change-Id: Ie31021b03c9cab8e972269d7d1ffe383cd30ee9e
2015-05-11 13:28:22 -07:00
Dan Albert
c89e0ccd40 Revert "Revert "Split adb_main.cpp into client and daemon.""
This reverts commit 218dbccefa.

Change-Id: I74088db34983dc99e316a07c6ddc294340e0eb71
2015-05-08 17:33:21 -07:00
Dan Albert
218dbccefa Revert "Split adb_main.cpp into client and daemon."
This reverts commit cf07494ac2.
2015-05-08 16:08:57 -07:00
Dan Albert
3e1cb6d98d Revert "Probably fix the Mac build."
This reverts commit 49513cbcc7.
2015-05-08 16:08:53 -07:00
Dan Albert
49513cbcc7 Probably fix the Mac build.
This was throwing an unused variable warning for kWorkaroundBug6558362
on Darwin.

Change-Id: I1cbf381708e9884180a37f3246af36795d07dfc2
2015-05-08 12:45:15 -07:00
Elliott Hughes
207ddb20ac Fix "adb remount" for devices without an oem partition.
On a device without an oem partition, we now have an /oem directory
anyway. This causes find_mount to fail, and that was returning nullptr
from a std::string-returning function. Boom!

Also clean up the bits of code I had to trace through between "adb remount"
on the host to the crash on the device as I debugged this.

The only other meaningful change is the error checking in
adb_connect_command --- adb_connect can also return -2.

Bug: http://b/20916855
Change-Id: I4c3b7858e13f3a3a8bbc7d30b3c0ee470bead587
(cherry picked from commit 5677c23e8d)
2015-05-08 10:49:31 -07:00
Elliott Hughes
ee5ce0d14f Merge "Fix "adb remount" for devices without an oem partition." 2015-05-08 17:49:11 +00:00
Benson Leung
c33e62bdc6 Merge "Be tolerant of devices that don't report serials." into mnc-dev 2015-05-08 17:37:10 +00:00
Dan Albert
cf07494ac2 Split adb_main.cpp into client and daemon.
The name "client" is somewhat misleading as it also contains the host
side adb server, but it's a part of the client binary.

Change-Id: I128b7bab213e330eb21b5010cd1fec5f7a62c8af
2015-05-08 10:20:26 -07:00
Elliott Hughes
02418b3e09 Try to include the SHA in a ddmslib-compatible way.
Bug: http://b/20918202
Change-Id: I0c1a48459372b0d28aaf9d09d82540e44b438c9c
(cherry picked from commit f3bbfa6a21)
2015-05-08 09:03:12 -07:00
Elliott Hughes
f85f111620 Merge "Try to include the SHA in a ddmslib-compatible way." 2015-05-08 16:02:04 +00:00
Elliott Hughes
5677c23e8d Fix "adb remount" for devices without an oem partition.
On a device without an oem partition, we now have an /oem directory
anyway. This causes find_mount to fail, and that was returning nullptr
from a std::string-returning function. Boom!

Also clean up the bits of code I had to trace through between "adb remount"
on the host to the crash on the device as I debugged this.

The only other meaningful change is the error checking in
adb_connect_command --- adb_connect can also return -2.

Bug: http://b/20916855
Change-Id: I4c3b7858e13f3a3a8bbc7d30b3c0ee470bead587
2015-05-08 08:43:10 -07:00
Elliott Hughes
f3bbfa6a21 Try to include the SHA in a ddmslib-compatible way.
Bug: http://b/20918202
Change-Id: I0c1a48459372b0d28aaf9d09d82540e44b438c9c
2015-05-07 21:56:31 -07:00
Elliott Hughes
aee80fb67b Add some missing 'const's.
Change-Id: I5bd26d4366e10fc8c6bc255b7ddb174a7a8b82a5
2015-05-07 21:38:41 -07:00
Spencer Low
9b9603148b adb: win32: fix key files reading/writing
The issue is that adb uses fopen() with "e" (presumably to open the file
with O_CLOEXEC), but that flag causes MSVCRT.DLL to return an error. So
when adb_auth_host.cpp goes to read or write the adbkey files, it fails.

The quick fix is to not use the "e" option on adb host code since it
isn't necessary there, compared to adbd.

An alternative fix would be to have a fopen() wrapper on Windows that
filters out the "e" option.

Change-Id: I7d8ba2847dab0ed558ffe156e79093251eb253c9
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-07 19:08:29 -07:00
Dan Albert
6043e15311 Be tolerant of devices that don't report serials.
The USB spec explicitly says this is optional, so we shouldn't be
relying on it.

Bug: http://b/20883914
Change-Id: Icf38405b00275199bcf51a70c47d428ae7264f2b
2015-05-07 15:56:03 -07:00
Spencer Low
142ec75cf8 adb: win32: fix adb emu command
The adb emu command was never working because the socket connection to
the emulator was closed without reading all of the data that the
emulator sent. On Windows, this caused the emulator's recv() call to
error-out, so it never got the command that was sent.

Before settling on this fix, I also experimented changing the arguments
to the socket shutdown() call and that didn't seem to help. I also tried
removing the call to shutdown() and that didn't help. So that should
rule out shutdown() as the problem. One experiment that helped was
delaying before calling adb_close(), but that is of course fragile and
doesn't address the real issue, which is not closing the socket until
the commands have been read.

https://code.google.com/p/android/issues/detail?id=21021

Change-Id: I8fa4d740a2faa2c9922ec50792e16564a94f6eed
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-05-06 18:54:08 -07:00
Dan Albert
d99d902abd Be tolerant of devices that don't report serials.
The USB spec explicitly says this is optional, so we shouldn't be
relying on it.

Bug: http://b/20883914
Change-Id: Icf38405b00275199bcf51a70c47d428ae7264f2b
2015-05-06 16:48:52 -07:00
Dan Albert
c1cfbd304a Include the git sha in the adb version.
Also add --version to adbd to display the same thing.

Change-Id: I47dfbad16c892c42ea938aedd085ba77492791ba
(cherry picked from commit 1ba1d7c1ee)
2015-05-06 09:11:16 -07:00
Elliott Hughes
3edd54b3a8 Add some missing 'static's.
Change-Id: Id76bb1e954e8fa36a11a38b5445c87f4a64af799
2015-05-05 18:26:10 -07:00
Dan Albert
1ba1d7c1ee Include the git sha in the adb version.
Also add --version to adbd to display the same thing.

Change-Id: I47dfbad16c892c42ea938aedd085ba77492791ba
2015-05-05 18:04:37 -07:00
Dan Albert
3f05fb5d97 Merge "Disable adb tests for Windows." 2015-05-05 22:11:01 +00:00
Dan Albert
a7a67c3079 Disable adb tests for Windows.
The tests will need some massaging before they're ready to go for
Windows, so just disable them to unblock people trying to mm in adb.

Change-Id: I67f2cd3af1a2444dea9cbb61c0553989442ba44b
2015-05-05 14:50:09 -07:00
Elliott Hughes
2e4a2eeaf3 _beginthread returns uintptr_t.
64-bit Windows is a thing, and we'll have to support it some day...

Change-Id: Ib9e2da1a5625e95a0ffadfee8501825dfd4f9594
2015-05-05 14:34:41 -07:00
Elliott Hughes
9b0f354fa2 Simplify adb_thread_create.
Change-Id: I36d6021ef8fbc23e8bcd4ddbe1dac0eba467cc70
2015-05-05 13:41:21 -07:00
Elliott Hughes
3bd73c12c0 Give enum types CamelCase names for clarity.
Change-Id: I1c89f1cc155ee839f372fb14d972a288183b8bcd
2015-05-05 13:10:43 -07:00
Elliott Hughes
32687beaf2 Remove non-functional "adb persist".
It isn't documented, it doesn't work, and it was only hacked into
"adb shell" anyway. (It's not a bad idea, though, but if we do it
we should do it properly.)

Change-Id: I930a5c6dd1d2850bfdf131f2e989ae04100f7db9
2015-05-05 12:50:26 -07:00
Elliott Hughes
aceb9c08df Implement the ssh(1) escaping rules.
The first rule of ssh(1) escaping is that there is no escaping.

This doesn't undo any of my recent security fixes because they're all
calling escape_arg themselves.

This fixes "adb shell rm /data/dalvik-cache/arm/*".

Also remove do_cmd which caused concern during code review.

Bug: http://b/20564385
Change-Id: I4588fd949d51e2a50cff47ea171ed2d75f402d0d
(cherry picked from commit 2b10111d25)
2015-05-05 12:45:42 -07:00
Elliott Hughes
f25752dcfa Merge "Implement the ssh(1) escaping rules." 2015-05-05 19:42:50 +00:00
Elliott Hughes
2b10111d25 Implement the ssh(1) escaping rules.
The first rule of ssh(1) escaping is that there is no escaping.

This doesn't undo any of my recent security fixes because they're all
calling escape_arg themselves.

This fixes "adb shell rm /data/dalvik-cache/arm/*".

Also remove do_cmd which caused concern during code review.

Bug: http://b/20564385
Change-Id: I4588fd949d51e2a50cff47ea171ed2d75f402d0d
2015-05-05 11:17:03 -07:00
Elliott Hughes
2e57163f53 Make test_track_devices.cpp output easier to read.
Change-Id: I2d85cdbe591a6ee9763e742805f281cb26d7b122
2015-05-04 15:51:50 -07:00
Elliott Hughes
e1a55004e9 Add WriteFdFmt and clean up more code.
Also say *which* device wasn't found.

Bug: http://b/20666660
Change-Id: I50e234ad89e39ae0a8995083c0b642c61275c5a3
(cherry picked from commit ab52c181fa)
2015-05-01 17:37:28 -07:00
Elliott Hughes
ab52c181fa Add WriteFdFmt and clean up more code.
Also say *which* device wasn't found.

Bug: http://b/20666660
Change-Id: I50e234ad89e39ae0a8995083c0b642c61275c5a3
2015-05-01 17:36:46 -07:00
Elliott Hughes
92af733ee2 More adb buffer fixes.
This patch factors out a lot of the basic protocol code: sending OKAY,
sending FAIL, and sending a length-prefixed string.

ADB_TRACE has been non-optional for a long time, so let's just remove
the #ifs.

Also actually build the device tracker test tool (and remove its duplicate).

Bug: http://b/20666660
Change-Id: I6c7d59f18707bdc62ca69dea45547617f9f31fc6
(cherry picked from commit e67f1f87d9)
2015-05-01 17:09:34 -07:00
Elliott Hughes
e67f1f87d9 More adb buffer fixes.
This patch factors out a lot of the basic protocol code: sending OKAY,
sending FAIL, and sending a length-prefixed string.

ADB_TRACE has been non-optional for a long time, so let's just remove
the #ifs.

Also actually build the device tracker test tool (and remove its duplicate).

Bug: http://b/20666660
Change-Id: I6c7d59f18707bdc62ca69dea45547617f9f31fc6
2015-05-01 15:55:37 -07:00
Elliott Hughes
f1a58f8f33 More fixed-length buffer removal.
Bug: http://b/20666660
Change-Id: I0c738e9fed2defed48a9cf2d0a4f7b99c08dcf3d
(cherry picked from commit 6452a89aa8)
2015-04-30 12:31:11 -07:00
Elliott Hughes
6452a89aa8 More fixed-length buffer removal.
Bug: http://b/20666660
Change-Id: I0c738e9fed2defed48a9cf2d0a4f7b99c08dcf3d
2015-04-30 11:25:05 -07:00
Elliott Hughes
0156589846 Add missing 'else' to fix all devices showing up as "host".
Bug: http://b/20705355
Change-Id: I4f7830278f0c2bc87d95d148d85455b8da894645
(cherry picked from commit 3ce9575af7)
2015-04-29 22:44:47 -07:00
Elliott Hughes
3ce9575af7 Add missing 'else' to fix all devices showing up as "host".
Bug: http://b/20705355
Change-Id: I4f7830278f0c2bc87d95d148d85455b8da894645
2015-04-29 22:37:25 -07:00
Elliott Hughes
2e06d3057e Fix Win32 build.
(cherry-pick of 1b600a902cc0b3a6065c962293292a5ac689fafe.)

Change-Id: Icf2c8df99b4b88bbf85a4097731733c5795fba44
2015-04-29 12:37:33 -07:00
Elliott Hughes
1b600a902c Fix Win32 build.
Change-Id: Icf2c8df99b4b88bbf85a4097731733c5795fba44
2015-04-29 12:36:06 -07:00
Elliott Hughes
71aeb79815 Move __adb_error to std::string, and improve various errors.
Also remove an sprintf. Also fix various bits of code that were
reporting stale adb_error values when they meant strerror.

(cherry-pick of 078f0fcf4c63b8d8e8c10a18855eae04ca321e06.)

Bug: http://b/20666660
Change-Id: Ibeb48b7bc21bb0ec30ba47889d1d671ee480e1b7
2015-04-29 11:42:13 -07:00
Elliott Hughes
078f0fcf4c Move __adb_error to std::string, and improve various errors.
Also remove an sprintf. Also fix various bits of code that were
reporting stale adb_error values when they meant strerror.

Bug: http://b/20666660
Change-Id: Ibeb48b7bc21bb0ec30ba47889d1d671ee480e1b7
2015-04-29 11:28:37 -07:00
Elliott Hughes
d81f75ae41 Remove strtok from adb.
Also fix android::base::Split to behave like Java, Python, and google3.

(cherry picked from commit 8d5fa6da44)

Change-Id: I9388ae37ee8dd4a4a6c2a9a19f068b70d9a78353
2015-04-28 10:55:24 -07:00
Elliott Hughes
8d5fa6da44 Remove strtok from adb.
Also fix android::base::Split to behave like Java, Python, and google3.

Change-Id: Ifbffd4e92950a79e7aea5d153c95fe0980648417
2015-04-27 19:42:20 -07:00
Elliott Hughes
03a90d6633 Support the full length of USB serial numbers.
Two bugs: we couldn't report the serial number correctly if it was long
enough, and it wasn't possible to connect to a device whose serial number
was long enough to overflow a different fixed-length buffer.

Bug: http://b/20317730

(cherry picked from commit 9309ecbcec)

Change-Id: I04c160a215418a57bd4fb27b7f63060c8be6f12e
2015-04-27 17:19:01 -07:00
Elliott Hughes
9309ecbcec Support the full length of USB serial numbers.
Two bugs: we couldn't report the serial number correctly if it was long
enough, and it wasn't possible to connect to a device whose serial number
was long enough to overflow a different fixed-length buffer.

Bug: http://b/20317730
Change-Id: Ic9cf3c847066449ac78069bd1718184935098ac7
2015-04-27 14:52:17 -07:00
Elliott Hughes
ce6363bbbc Improve logging of USBDEVFS_CLAIMINTERFACE failures.
Bug: https://code.google.com/p/android/issues/detail?id=170054
Change-Id: I9b11eb019093e3322da0a8e70d6e17de4c25ab75
2015-04-25 14:44:23 -07:00
Elliott Hughes
876881b22a Merge "Add missing null checks after allocations." 2015-04-22 20:05:46 +00:00
Elliott Hughes
dc3b459ff9 Add missing null checks after allocations.
Bug: http://b/20317729
Change-Id: I62bb761d48ee59a1f4ddd0cdd0632432305ca2ca
2015-04-21 19:43:22 -07:00
Elliott Hughes
1555147bc4 Plumb more of the error reporting through.
This doesn't fix the bug, but it does flatten the bug to the well-known
and long-standing "adb shell" doesn't return exit statuses, so when we
fix that, this one will fix itself.

Bug: http://b/20423886
Change-Id: I48351e46f05dd3f2f6e57f0df1d851333458d0ef
2015-04-21 17:58:55 -07:00
Elliott Hughes
8e6edc0d89 Add a couple more adb shell regression tests.
Bug: http://b/15479704
Change-Id: Id3e7f0df101ad61db509df313c13210a8bd8b124
2015-04-21 16:25:54 -07:00
Badhri Jagan Sridharan
82b0f7ba92 Merge "adb: set sys.usb.ffs.ready to signal usb pullup" 2015-04-21 19:58:46 +00:00
Badhri Jagan Sridharan
5f97370bab adb: set sys.usb.ffs.ready to signal usb pullup
This change sets sys.usb.ffs.ready to 1 to
trigger configfs based enumeration.

Change-Id: I222495fc667cce59675579069d164b0b484f3653
2015-04-21 12:44:31 -07:00
Elliott Hughes
0053bb3f1a Add a test for shell escaping.
Until I fixed this, we would fail this example:

  $ adb shell sh -c 'echo hello; echo world'
  hello
  /system/bin/sh:  echo world: not found

Bug: http://b/19734868
Change-Id: I11a437cd0c0362303028f23fbaa103611b75707e
2015-04-21 12:15:31 -07:00
Elliott Hughes
d236d071b9 Fix "adb sync" for devices without vendor and oem.
Bug: http://b/20440110
Change-Id: I2481992198890f5ca50412c2b7ca361101961413
2015-04-21 10:17:07 -07:00
Elliott Hughes
e434ad1dd7 Merge "Always explain why bind(2) failed." 2015-04-21 16:52:21 +00:00
Elliott Hughes
14b65736c5 Merge "Use ' quoting to escape arguments." 2015-04-21 16:47:43 +00:00
Colin Cross
dc1e482b20 Fix windows adb build
libc++ is not available on windows yet, but it already defaults to
static libstdc++.

Change-Id: I85a766ead84f71fe1f2f59be6ac739b0b833b6db
2015-04-20 12:43:02 -07:00
Colin Cross
b2b06de5fc Merge "statically link adb and fastboot against libc++" 2015-04-20 18:05:29 +00:00
Elliott Hughes
7b506090e1 Always explain why bind(2) failed.
This has confused several people lately.

Bug: http://b/20219978
Change-Id: I2537ceb83bff0b3166c230c728d4389a983db858
2015-04-20 08:09:20 -07:00
Elliott Hughes
53daee6a2b Fix the Windows adb build.
It looks like we can't use clang on Windows yet because libc++ isn't ready.
So move back to GCC for the Windows host clang. Work around the mingw
printf format string problems that made us want to switch to clang in the
first place, and #include "sysdeps.h" in adb_utils.cpp to work around the
absence of lstat(2) on Windows.

Change-Id: Icd0797a8c0c2d1d326bdd704ba6bcafcbaeb742f
2015-04-19 13:17:01 -07:00
Elliott Hughes
5498adefb0 Use ' quoting to escape arguments.
The specific motivating case is "text;ls;1.apk", but rather than continue
adding individual characters to the list of characters to be escaped, let's
just switch to quote all arguments with ', which only leaves ' itself to be
escaped.

Bug: 20323053
Bug: 19734868
Change-Id: I8bd71db9373bc2d1169fc11e46c889da6638550a
2015-04-17 20:55:04 -07:00
Elliott Hughes
6c34bbaa68 Use escape_arg in "adb backup".
This doesn't fix the injection vulnerability, but it makes "adb backup"
no worse than the other commands, and lets me fix them all at once.

Bug: 20323053
Change-Id: I39843c065d9d738b6b7943b2ffd660e4a031cc36
2015-04-17 20:30:09 -07:00
Elliott Hughes
a7090b94c1 Remove yet more fixed-length buffers (and their overruns).
Bug: 20317724
Change-Id: If137fc96f5f23576ccecd388ac87afefa47337c6
2015-04-17 17:58:35 -07:00
Elliott Hughes
2083fa6b01 Switch adb over to clang.
Change-Id: Ib5511dcba56e80ffce6bc293d99251ccfd61c330
2015-04-17 15:27:13 -07:00
Elliott Hughes
61a004c05f Merge "Fix more buffer overruns." 2015-04-17 22:24:27 +00:00
Elliott Hughes
5830577bd8 Fix more buffer overruns.
Also add some tests.

Bug: 20323050
Change-Id: I9eaf3dc04efd85206663c4cca4f8c1208620a89a
2015-04-17 15:23:31 -07:00
Elliott Hughes
2940ccff86 Use PRI* macros to fix the Windows build.
Change-Id: Icd400be05c2bc726265832875b5a05dba7966847
2015-04-17 14:07:52 -07:00
Elliott Hughes
2baae3a876 Remove various fixed-length buffers (and their overflows).
Bug: 20323052
Bug: 20323051
Bug: 20317728
Bug: 20317727
Bug: 20317726
Bug: 20317725
Change-Id: I57a5e30a5b7867715f55cee7429aa36d7ce21484
2015-04-17 10:59:34 -07:00
Elliott Hughes
0b8ecb3290 Merge "Remove extern "C" barriers to using C++." 2015-04-17 17:31:51 +00:00
Elliott Hughes
2d4121c0dc Remove extern "C" barriers to using C++.
Change-Id: Ic046d6aa540738cb46b54531bc59ba3b47b0136d
2015-04-17 09:47:42 -07:00
Elliott Hughes
7be29c819b Show $ADB_VENDOR_KEYS if authentication fails.
Incorrectly set $ADB_VENDOR_KEYS is the most likely cause of failed
adb connections. Make it easier to debug such problems by including
the value in use in the error message.

Bug: 20165551
Change-Id: I64c1d98ae6d3fb40eea9e1f0ddcfcf4f2d9d7318
2015-04-16 22:54:44 -07:00
Dan Albert
a4802ca08b Merge "Move usb_osx to C++." 2015-04-17 04:37:47 +00:00
Dan Albert
c4f8fa7b36 Merge "Link libraries needed for Darwin adb tests." 2015-04-17 04:37:41 +00:00
Dan Albert
7447dd05bd Move usb_osx to C++.
Change-Id: I21673211a702cc4f31d4311c36e2a4b22e55fac8
2015-04-16 19:20:40 -07:00
Dan Albert
f8d6b9b1ef Link libraries needed for Darwin adb tests.
Change-Id: I1c3c3a7bbd3824f5f3a37ee80c24d1c2a9b98748
2015-04-16 19:13:58 -07:00
Colin Cross
55bf5f0017 statically link adb and fastboot against libc++
libc++.so is not widely available on the host, so we compile against
one built as part of the platform.  This causes problems for adb and
fastboot, which are distributed through a number of channels - the
sdk, distro packages, downloaded from the build server, or manually
copied.  Instead of forcing all users to handle libc++.so too,
statically link against libc++.

Change-Id: I51b75258653a23558c8b598802005f6c1166a439
2015-04-16 17:09:46 -07:00
Elliott Hughes
a2f2e56796 Move sysdeps_win32 to C++.
Change-Id: I27ca41b64d62bb3611b3a39a5c3bb4377d0773bc
2015-04-16 16:47:02 -07:00
Elliott Hughes
2acec9153e Switch usb_linux_client to C++.
Change-Id: I8172e81e6c4665aa16e9e8e0c33b048dbb9ad848
2015-04-16 14:38:37 -07:00
Elliott Hughes
1a4d85a5e8 Move get_my_path_darwin to C++.
As long as we have C in here, we can't use C++ in our headers.

Change-Id: Ibccaa77a5af506dc504aa9c39c8dca5dcdbeccab
2015-04-16 13:24:58 -07:00
Sami Tolvanen
284c5cb2a1 Merge "Set verity mode as the verified property value" 2015-04-07 08:45:24 +00:00
Alistair Buxton
dfa09fd635 Disable CR/LF translation for adb interactive shell.
adb shell uses termios to disable canonical input processing in order to
get raw control codes but it does not disable CR/LF translation. The default
for Linux terminals is to convert CR to LF unless the running program
specifically asks for this to be disabled. Since adb does not, there is no
way to send a CR to any program run on adb shell. Many programs do in fact
differentiate and so are broken by this behaviour, notably nano. This patch
sets the termios flags to disable all line ending translation.

Change-Id: I8b950220f7cc52fefaed2ee37d97e0789b40a078
Signed-off-by: Alistair Buxton <a.j.buxton@gmail.com>
2015-04-05 10:02:34 -07:00
Elliott Hughes
09a45a1927 Fix "adb devices -l".
Change 055f1aa4ff switched to using isalnum(3)
but didn't take into account that isalnum has the opposite sense to the
function it replaced, so the tests should have been inverted.

Bug: http://b/20056546
Change-Id: I90630c0bea69ddbb4a95dc09f79f49d23fd497de
2015-04-03 16:12:15 -07:00
Elliott Hughes
bcc2b5f44a Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it's not needed.
Change-Id: I720b8ef1050da45a7833adef8219b6acb2cf3a38
2015-04-02 14:31:07 -07:00
Sami Tolvanen
454742392f Set verity mode as the verified property value
Set the verity mode as the value for partition.%s.verified to make it
easier for userspace to determine in which mode dm-verity was started.

Change-Id: Icc635515f8a8ede941277aed196867351d8387cb
2015-03-31 09:12:00 +01:00
Tao Bao
175b7bbfb4 adb: Add option to reboot into sideload mode in recovery
Currently it requires manual key press to enter the sideload mode. This
CL adds 'adb reboot sideload' to reboot the device into sideload mode
directly with text display on. With 'adb reboot sideload-auto-reboot',
it will reboot after the sideload regardless of the installation result,
unless interrupted by user.

Since it needs to write to /cache/recovery/command file, 'adb root' is
required before calling 'adb reboot sideload' and the one with
'-auto-reboot'.

Also it requires the matching CL in bootable/recovery.

Change-Id: Ib7bd4e216a1efc01e64460659c97c6005bbaec1b
2015-03-31 00:19:52 +00:00
Dan Albert
868402e5bf Revert "Remove the emulator special case from the "adb root" code."
adb root doesn't work on the emulator, so this prevents root access
to a userdebug emulator.

Since the emulator has always been root even on userdebug builds, it
may be that adb root has never worked on the emulator.

Bug: 19974213

This reverts commit abd6773b41.
2015-03-28 19:04:15 +00:00
Spencer Low
50184062b8 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>
2015-03-26 12:26:08 -07:00
Dan Albert
8743ef9841 Additional cleanup of start_device_log.
Addresses nnk's post commit review comments on
https://android-review.googlesource.com/#/c/139381/

Remove unneeded code for creating /data/adb.

Add an O_CLOEXEC.

Move the closing of stdin out to main().

Append the pid of the current process to the log file to avoid
clobbering the log if the process crashes and restarts within the same
second.

Change-Id: Ide0be86b4b33256486634c29ba02efaf10cf913d
2015-03-20 09:49:15 -07:00
Dan Albert
ea2175ab6b Use text based trace masks for adbd.
Previously the adbd trace mask had to be set as raw hex rather than
with the colon separated list. We all have better things to do than
memorize bitmasks, so make adbd use the same trace mask setting code
as adb.

Change-Id: I0bf0ab61c070d06d1cc2acf1ed90b2b77ccd261b
2015-03-19 21:50:10 -07:00
Dan Albert
a16b0f4c3a Merge "The generic failure case disappeared..." 2015-03-20 03:50:36 +00:00
Dan Albert
28f07697eb Merge "File header cleanup." 2015-03-20 03:14:28 +00:00
Dan Albert
08f66bc771 The generic failure case disappeared...
Was manifesting as a write to a full disk hanging indefinitely.

Bug: 19846181
Change-Id: Ia581e0bbbb331c221bdb68882c238d0cb9f8a0b3
2015-03-19 20:10:30 -07:00
Dan Albert
3313426fad File header cleanup.
* sysdeps.h should always be included first.
 * TRACE_TAG needs to be defined before anything is included.
 * Some files were missing copyright headers.
 * Save precious bytes on my SSD by removing useless whitespace.

Change-Id: I88980e6e00b5be1093806cf286740d9e4a033b94
2015-03-19 15:32:33 -07:00
Dan Albert
683238c3c4 Fix clang-format file for correct indent settings.
Change-Id: I8786baf33c0b84e3614e9d40c404eeef94b91236
2015-03-19 13:27:20 -07:00
Dan Albert
b4ebc475e6 Merge "Fix memory leak on jdwp_process_free()" 2015-03-19 16:53:57 +00:00
Pavel Labath
64d9adcea8 Fix file descriptor leakage in adbd
adb_auth_init in adb_auth_client.cpp sets FD_CLOEXEC on the control
socket, which prevents the leakage. However if ro.adb.secure
property is unset (as it is on the emulator), adb_auth_init is not
invoked, which results in the control socket fd leaking into any
process started by the deamon (specifically, any command executed
through adb shell).

Split the fd cleanup into a separate function that is called
unconditionally.

Change-Id: I73ea84977542ddfc4ac20599593ecf3745ae9108
2015-03-17 11:24:34 -07:00
Elliott Hughes
ec7a667131 Revert "Revert "adb: support /oem partition""
This reverts commit 6084a0124f.

The original build breakage is fixed by (a) building the verity
code for eng builds as well as userdebug builds and (b) moving
the exported remount service functions into a new header file.

Change-Id: Ice0c4f97d4db38ab7eb333c7a6e56bbd11123f5b
2015-03-16 20:05:21 -07:00
Dan Albert
6084a0124f Revert "adb: support /oem partition"
This is broken on userdebug builds, and it isn't completely clear why. The declaration for make_block-device_writable in adb.h wasn't updated to match the definition (which uses a std::string instead of a char*). adb.h is currently extern "C", and it isn't clear why this is only broken for userdebug, so I'd like to revert while we investigate.

This reverts commit 81416fdb18.

Change-Id: I47f321574f9f21052e2c7332e8b0f6ef9ab98277
2015-03-16 21:35:53 +00:00
Mårten Kongstad
81416fdb18 adb: support /oem partition
Add support for /oem partition in commands 'adb remount' and 'adb sync'.

Change-Id: I5defc74ccaa37feaef74b9268e22b4075f98a59f
2015-03-16 11:17:13 -07:00
Dan Albert
98ff77204c Create libbase.
Move StringPrintf and the string based file I/O from libutils to
libbase.

Change-Id: I0297a6063874b9d92100e0dd5123fddfbda932fe
2015-03-14 16:36:18 -07:00
Elliott Hughes
46270d233a adb doesn't actually use libzipfile.
Change-Id: Ia7d22214bc8422c88edaaf9bb716d7e12e0bb381
2015-03-13 09:40:45 -07:00
Dan Albert
83ca56ac98 Fix build from -Werror=maybe-uninitialized.
This won't actually ever be uninitialized because the code will take a
failure path if the code that initializes it fails. The goto seems to
thwart this check though.

Not sure why this is only firing on userdebug builds yet. I'll look in
to it tomorrow.

Change-Id: Ie9d837d6baea255d2a4d169355b53dfd775eacce
2015-03-09 18:29:07 -07:00
Dan Albert
bac3474a82 Move adb to C++.
I keep trying to clean things up and needing std::strings. Might as
well just do this now.

usb_linux_client.c is going to stay as C because GCC isn't smart
enough to deal with the designated initializers it uses (though for
some reason it is in C mode).

The Darwin files are staying as C because I don't have a way to test
that they build.

The Windows files are staying as C because while I can actually build
for them, it's slow and painful.

Change-Id: I75367d29205a9049d34460032b3bb36384f43941
2015-03-09 14:06:11 -07:00
Dan Albert
9b1fd969a7 Merge "Fix a writex transcription error." 2015-03-09 20:29:07 +00:00
Dan Albert
f3519a8747 Fix a writex transcription error.
Change-Id: I71b11127d41ebac6caf68926089c5a3b99d8c21e
2015-03-09 13:22:02 -07:00
Dan Albert
857d7db69d Make the root/unroot test more robust.
* Check the current adb user to choose the order of root/unroot.
* Re-root the device when finished.

Change-Id: I47a14b89e2c405bd63722e4d2043fcc629fb5e58
2015-03-09 10:45:50 -07:00
SungHyun Kwon
abb80e0f95 Fix memory leak on jdwp_process_free()
if many jdwp connection are created(), the memory will be leaked.

When it deletes heap memory on jdwp_process_free(),
the proc->fde just set to null.

so it need to free() in fdevent_destory().
2015-03-03 17:56:18 +09:00
Nick Kralevich
268eb4f384 check if uid=0 before attempting remount
If "adb remount" is done without having done "adb root" first,
scary looking SELinux denials are emitted before the operation
eventually fails. Avoid the scary looking messages by refusing
remount attempts if we're not running with privileges.

Change-Id: I298621251a10e38345ef77875003a97c8b5a0270
2015-02-25 16:27:31 -08:00
Dan Albert
cc731cc767 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
2015-02-25 15:07:57 -08:00
Dan Albert
7fd821e907 Remove _(GNU|XOPEN)_SOURCE makefile cruft.
None of the functions that require these are used.

Change-Id: I10cffab127795b94340131f8737f7924b9138f9e
2015-02-25 11:08:21 -08:00
Dan Albert
055f1aa4ff Add some basic tests to adb.
Change-Id: I946b5b1e5650540db3b4f75892214c4218b3baf3
2015-02-25 10:57:26 -08:00
Dan Albert
dc0f8ecb24 Fix the mac build.
Change-Id: Ieb6f2650ce5f39f1d8c938d0ca8cbec459d8e2fd
2015-02-25 10:26:17 -08:00
Dan Albert
72bf2a7100 Merge "Move transport declarations into transport.h." 2015-02-25 05:33:35 +00:00
Dan Albert
7664901a35 Move transport declarations into transport.h.
There are a few cloexec issues in here as an added bonus.

Change-Id: I1699d719d733f47878bdba0454230cf5ab6a60b6
2015-02-24 21:30:22 -08:00
Dan Albert
103c1be03f Add .clang-format file.
Not going to format the whole world just yet, but this helps for `git
clang-format`.

Change-Id: I482819419647e4c752d3b044bde8d637e1fae1e5
2015-02-24 16:56:39 -08:00
Dan Albert
5329d3fd54 Merge "Add a project wide clang switch." 2015-02-25 00:20:39 +00:00
Dan Albert
9697ce520d Add a project wide clang switch.
I'll probably make this the default soon, but I'm not brave enough to
do that without checking the recovery image first.

Change-Id: I9cde687b08a588e3797645a308f381e4ec553447
2015-02-24 15:54:34 -08:00
Elliott Hughes
70385f3017 Merge "Remove the emulator special case from the "adb root" code." 2015-02-24 23:53:55 +00:00
Dan Albert
b2e57b738f Make Python tests only check the current device.
In practice testing all connected devices is a pain, since it's
probably each device is running a different build. It would probably
make sense to just move this functionality up into a higher level test
runner (which could just live in main).

Also rename test_devices to test_shell, since it doesn't really test
`adb devices`.

Change-Id: Ie96d3e83b30acfac4e3bcbd9821690c0ad4d2f7e
2015-02-24 14:36:03 -08:00
Dan Albert
fdf8722491 Fix Mac build.
Prior to https://android-review.googlesource.com/#/c/134253/ the
makefile had assumed !Windows was the same as Linux, so the Mac was
actually getting all the Linux sources as well. I mistakenly didn't
add fdevent.cpp to the Darwin sources in that change.

Change-Id: I4e12a394e9a2baf7c1e3c711a01a6b5fccbf79d9
2015-02-24 14:27:33 -08:00
Elliott Hughes
abd6773b41 Remove the emulator special case from the "adb root" code.
The emulator is essential an "eng" build, so the regular properties
should suffice.

Change-Id: Id63b3918f9b0b04b0d887ed886535b9976a9cc85
2015-02-24 14:10:51 -08:00
Dan Albert
88cf1c8c4a Fix Windows SDK build.
Change-Id: I9c0f9c92c28867ff17f1ec83aac935d18348c335
2015-02-24 14:08:03 -08:00
Elliott Hughes
3b967f52f2 Add missing <stdlib.h> to adb_listeners.c.
Change-Id: If9505880a33131b27bfaa19f3efd45c83a6810ed
2015-02-24 12:37:13 -08:00
Dan Albert
a75b4935a4 Merge "Move more into libadb and libadbd." 2015-02-24 19:44:34 +00:00
Dan Albert
9f3540d017 Merge "Oops. Fix make variable name. Thanks again, make." 2015-02-24 19:44:12 +00:00
Dan Albert
8ef39424e8 Merge "Ignore another stupid lint warning." 2015-02-24 19:44:05 +00:00
Nanik Tolaram
b627a0e2ed Add more logging message and dead code
* Add more logging message to aid in easier debugging

* Remove unnecessary dead/commented code

Change-Id: I9c7fe8f6b674cab41601001458010ab176b89776
Signed-off-by: Nanik Tolaram <nanikjava@gmail.com>
2015-02-23 22:38:39 +00:00
Dan Albert
3c43858986 Move more into libadb and libadbd.
None of this needs to be shared with minadbd, but these sources are
still needed for anything linking libadb (such as tests).

Change-Id: I3024f714da42364bf27a991986f00676e2bbbf2c
2015-02-20 17:24:30 -08:00
Dan Albert
bf10647b61 Oops. Fix make variable name. Thanks again, make.
Change-Id: Iecbb41acc835bb8eb20b668c89a3ff065470fcb7
2015-02-20 17:20:37 -08:00
Dan Albert
f1591691ee Ignore another stupid lint warning.
Change-Id: I8e586e472a139cc3039f1371f8a99935d20aa0f0
2015-02-20 17:19:22 -08:00
Dan Albert
7e84308b74 Merge "Lose adb.c and sockets.c to libadb." 2015-02-19 23:47:18 +00:00
Dan Albert
e1ca623faa Lose adb.c and sockets.c to libadb.
Also kill the device side libadb. This was added for the now dead
device side adb, and is no longer used.

Bug: 17626262
Change-Id: I3b28915641fd5b4f16fc86cf1f4f4e9711093001
2015-02-19 13:49:35 -08:00
Dan Albert
18daa159ec Merge "Document the behavior of props affecting adb root." 2015-02-19 20:33:31 +00:00
Dan Albert
13f9c406d7 Document the behavior of props affecting adb root.
Change-Id: Icfdc3ba696556d6db64835e61dde6f40b491d1a7
2015-02-19 12:29:01 -08:00
Dan Albert
6795cd8db5 Fix Windows adb build.
Change-Id: I560bedfcf77556b36acadc19f5dac71b3628ea2b
2015-02-19 11:36:53 -08:00
Dan Albert
bd0b750897 Move adb_main to its own file.
Change-Id: If6e98c089b39f73bd8f4a878a82669bfeee367f3
2015-02-18 18:32:54 -08:00
Dan Albert
e9fca14c9e Move the listener code into its own file.
Change-Id: I7332455ed1a213daedeaa4a81260edf08b2fd131
2015-02-18 18:22:52 -08:00
Dan Albert
ba3a251749 Move the adb auth code into its own file.
Change-Id: I84cf0bd7777f0147119e7c6afc4096c2e93156a2
2015-02-18 18:22:52 -08:00
Dan Albert
1403aa36b2 Merge "Move emulator tracing into its own file." 2015-02-19 02:10:10 +00:00
Dan Albert
21c3eaf4cc Move emulator tracing into its own file.
adb.c is far too monolithic.

Change-Id: I4a9ee97927e4a96a38ea5859d84efac86bfdfc35
2015-02-18 17:21:17 -08:00
Elliott Hughes
4c9d24a3ed Fix build.
Change-Id: I31fc562068ebbba5e9872ee91694feb611fc957f
2015-02-18 16:57:30 -08:00
Elliott Hughes
8e16a7e2a3 Merge "adb: add "adb unroot" to restart adb in non-root mode" 2015-02-19 00:18:38 +00:00
Dan Pasanen
9885881d06 adb: add "adb unroot" to restart adb in non-root mode
Change-Id: Ice6b94a71a62648ac073d129914a07372411fb25
2015-02-18 12:37:11 -08:00
Dan Albert
9449376328 Move USB transport code to libadb.
Also note that we need both a libadb and a libadbd (for now) to
differentiate between code using ADB_HOST=1 and ADB_HOST=0.

Bug: 17626262
Change-Id: I873a8fb442a8a69258fe39af17781714a8fae4f6
2015-02-18 10:55:28 -08:00
Dan Albert
1ac334ec66 Merge "Add extern "C" to all the adb headers." 2015-02-18 17:52:40 +00:00
Dan Albert
818fb4b448 Add extern "C" to all the adb headers.
Change-Id: Iaefa3e18d6ee2e065eb97271a796613b2a8e7d6e
2015-02-18 00:21:16 -08:00
Dan Albert
54ac73aa34 Ignore useless cpplint messages in adb.
Change-Id: I6411eb3963d215b228e50cd967a2174e5036ed73
2015-02-18 00:20:37 -08:00
eric.yan
a859219fec fix bug that passing invalid fd to fstats on win32 builds
lfd returned by adb_open is not the actual file desc.
on win32 builds. calling through fstat with invalid fd
will lead to crash, using stat instead.

Change-Id: I7fdc8b825162eaa42efe8755265842c300b00e39
Signed-off-by: eric.yan <eric.yan@yulong.com>
Signed-off-by: severecold <severecold@gmail.com>
2015-02-09 13:41:27 +00:00
Elliott Hughes
187eade127 Remove netcfg's unused options.
Only "netcfg" for a list of interfaces and "netcfg <interface> dhcp" still
seem to be used.

Change-Id: I9f0b580474258fa648deb5287f98d8ec5533ca6f
2015-02-03 11:59:22 -08:00
Elliott Hughes
c463025a19 Revert "Remove netcfg's unused options."
This reverts commit f8e83054cb.

Change-Id: Iede772f96ff9008277df433dcbb5f6603de65283
2015-02-03 19:56:35 +00:00
Elliott Hughes
f8e83054cb Remove netcfg's unused options.
Only "netcfg" for a list of interfaces and "netcfg <interface> dhcp" still
seem to be used.

Change-Id: Iaf499c06b09ffe5e0925339b9cd6e502f3234a86
2015-02-03 11:08:07 -08:00
Elliott Hughes
506aea4361 The bsddroid project has been dead since 2010.
And even if it wasn't, they should probably keep this stuff in their own
repository.

Change-Id: If9fa2e47ee2700098d8a99f6986f7e89fc6dfdf3
2015-01-31 11:24:14 -08:00
Sami Tolvanen
9c4c5a6ed9 Merge "Verify token length before adb signs it" 2015-01-28 14:32:52 +00:00
Elliott Hughes
a034362be4 Merge "Make server port option work on windows" 2015-01-28 03:29:06 +00:00
Spencer Low
0de77ffec6 adb: tracing: don't make strings if runtime tracing is disabled
If tracing was not enabled (the ADB_TRACE environment variable was not
set specially), writex() and readx() would still call dump_hex() which
would construct hex tracing strings, which would be immediately
discarded and not printed (because tracing is not enabled).

The fix is to only call dump_hex() if ADB_TRACING evalutes to true, the
same way that dump_packet() is only called if ADB_TRACING evaluates to
true.

Change-Id: I1651680da344389475ebdeea77ba1982960d5764
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-01-27 15:42:14 -08:00
Sami Tolvanen
7b9c20d3b2 Verify token length before adb signs it
Currently, a host running adb will sign a token of any length passed
to it by a device, effectively acting as a signing oracle. If the
ADB_VENDOR_KEYS environment variable is used to specify an additional
key to use, this behavior is not only unexpected, but probably also
unwanted. Further discussion can be found from this thread:

  http://www.metzdowd.com/pipermail/cryptography/2015-January/024423.html

This change adds a check to ensure token length matches TOKEN_SIZE
before it's signed, which prevents an attacker from signing longer
messages.

Change-Id: I7b2cc1f051941bf9b66e1c02980850bede501793
2015-01-27 17:19:35 +00:00
Spencer Low
f055c193b8 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>
2015-01-26 21:56:26 -08:00
Dan Albert
1f09bdaf59 Protect from eng vs userdebug build breaks.
Using a const bool rather than an ifdef means the compiler can still
protect us from breaking code paths that aren't included in every
build variant.

Change-Id: Ic45c8fb52cd66c3ce090d760cdb92104e31265f5
2015-01-26 17:49:17 -08:00
Dan Albert
fe68578716 Merge "Fix userdebug build." 2015-01-27 01:30:24 +00:00
Dan Albert
030b76fc1d Fix userdebug build.
Apparently this code I thought was unused is just unused for eng
builds...

Bug: 17626262
Change-Id: I2e5f411a2ead7f23d9f5822935de66c992750a03
2015-01-26 17:14:23 -08:00
Dan Albert
4626b71057 Fix win_sdk build.
Hadn't caught this in the previous submission because I tested the
build with another change on top of it that also fixes this.

Bug: 17626262
Change-Id: Ia40127618a5466e382081760d614ff7fc09d50a3
2015-01-26 17:07:47 -08:00
Dan Albert
630b9afeb0 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
2015-01-26 16:45:34 -08:00
Christopher Ferris
fb538fb13d Merge "Fix the v2 descriptor handling." 2015-01-26 21:28:06 +00:00
Christopher Ferris
c49f51c451 Fix the v2 descriptor handling.
There was a misinterpretation of how the v2 header works. The flags
in the header indicate what is in the rest of the structure.

Bug: 19127803

Change-Id: I5fa0dae6da51522c9afc4c94838eb6f462208683
2015-01-26 12:50:35 -08:00
Spencer Low
943ef23b3d adbd: tcpip command uses port number from uninitialized memory
If you run `adb tcpip`, adbd tries to process a string of 'tcpip:' using
this code:

    } else if(!strncmp(name, "tcpip:", 6)) {
        int port;
        if (sscanf(name + 6, "%d", &port) == 0) {
            port = 0;
        }
        ret = create_service_thread(restart_tcp_service, (void *) (uintptr_t) port);

If a zero-length string is passed to sscanf(), it returns EOF (-1) which
causes the if statement to skip the block, leaving the port variable
uninitialized.

I found this by running `adb tcpip` and sometimes getting 'invalid port'
and sometimes a device would start listening on a random port number.

The fix is to check the sscanf() return value for the success case (the
number of items successfully parsed), as is already done in other parts
of the adb code. I also fixed-up another instance of the same
code-pattern in services.c.

Change-Id: I8c9c33485ad076828da0ac74f048fdad561669d3
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-01-25 17:38:36 -08:00
David 'Digit' Turner
1bc38a4cdc Merge "adb: Fix 'adb forward --no-rebind'." 2015-01-23 16:45:46 +00:00
David 'Digit' Turner
f0e0c2e458 adb: Fix 'adb forward --no-rebind'.
Due to a typo, the --no-rebind option never worked (it always failed).
The root of the problem was that the client was sending on the wire
a command like:

  host:forward:norebind::tcp:<port>;tcp:<port>
                       ^^
Instead of:

  host:forward:norebind:tcp:<port>;tcp:<port>
                       ^

Note the erroneous double-column.

The fix is local to the adb client and thus doesn't require a new
version of the server or guest adbd on the device-side.

This also fixes 'adb reverse --no-rebind'.

See https://code.google.com/p/chromium/issues/detail?id=451109

Change-Id: I680fd432b5470072f6a9968ca32a7f90c600ac68
2015-01-23 10:02:58 +01:00
Riley Andrews
d83a9c55f4 Python unit test for adb.
Change-Id: I1b2b8004f47b708e6a1d6a4ad20816e7beb21a0f
2015-01-13 15:08:56 -08:00
Elliott Hughes
0a049b1d8d Clean up adb Win32 symlink #ifdefs.
Change-Id: I83ef30e82d820f91960c29f6b737e6e900caaca6
2015-01-12 17:00:09 -08:00
Yabin Cui
fdb3da5953 Merge "Use getmntent when accessing /proc/mounts." 2015-01-06 17:41:40 +00:00
Yabin Cui
d6bd9bf459 Use getmntent when accessing /proc/mounts.
Bug: 18887435
Change-Id: I6d7f95bbdb976428d4722bd640745e73c9839160
2015-01-05 20:28:36 -08:00
Sami Tolvanen
13449cd714 Fix disable-verity when the underlying block device is RO
If verity is enabled and the underlying block device is marked
read-only, disable-verity fails. We cannot use the existing code
for enable-verity to make the device writable as the device in
/proc/mounts will be the verity device instead of the underlying
device we want to change. This change makes the correct device
writable when altering verity state.

Change-Id: I423ee50fb34d78cff2fe843318b9081c03c5142d
2015-01-05 20:31:25 +00:00
Bernhard Rosenkränzer
2bd4124259 Fix build with clang
Remove 2 unused functions and 1 unused label in the
!ALLOW_ADBD_DISABLE_VERITY case

Change-Id: Id6b29f57bcb95e54f5a4014021d47d8ca6e4556e
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-12-12 15:48:52 -08:00
Riley Andrews
4d04d24b9e fix memory leak in copy_remote_dir_local
Bug https://code.google.com/p/android/issues/detail?id=82436


Change-Id: I4bfa865638742e1b7cedd17f5b33dcc10c7f711c
2014-12-12 22:03:14 +00:00
Chih-Hung Hsieh
058932c4ff Remove unused local variable.
Clang compiler gives it a warning and error.

Change-Id: Id35b740e265b393b5e31e05bd83544f391d8ff08
2014-12-10 14:14:09 -08:00
Riley Andrews
98f58e83c0 Fix some style issues in adb_commandline().
Change-Id: I8ed7899e7e137405594b3f3cbb0a87eae411dfc9
2014-12-09 17:25:39 -08:00
Riley Andrews
c8514c886e Refactor the host adb argument parsing loop to remove a goto
Change-Id: I3412ac473abc4efa51a6275658e65f7191b5439d
2014-12-09 17:25:39 -08:00
Paul Lawrence
1d931bca26 Fix build
(cherry-pick of 731136ca36bb7af1490856373d463e3a6c4df1c8.)

Change-Id: I9b493fd5fc5c5f62f02bc5234ccca2a5118380b4
2014-12-09 17:06:00 -08:00
Paul Lawrence
982089d838 Add adb enable-verity
Note that it is *easy* to break your phone with this feature. It is
not a bug that reenabling verity after changing one byte of the system
partition stops the device booting.

(cherry-pick of 7c442e1700e6312727283db402dec6f666f1b55a.)

Bug: 18529433
Change-Id: I632e91281884471a362960f1ba30312d2669b8ff
2014-12-09 17:04:43 -08:00
Paul Lawrence
ec900bba20 Revert "Revert "Enable verity on userdebug, and add disable-verity to adb""
This reverts commit 152d2d4234.

Fixed build error, and also fixed memory leak spotted from warning.

(cherry-pick of bbb36319119edde9377fb80015235893c30d2bc9.)

Bug: 17691572
Change-Id: I23b5ba537f7b557432041d4338b38b9be434e981
2014-12-09 17:02:17 -08:00
Paul Lawrence
34637555c2 adb warns on remount when verity is enabled
(cherry-pick of f643beced1d154726dca7115014d2d1fdfcca993.)

Bug: 18119147
Change-Id: I75e5edf83fa01dbf2495e24df4597dce41f13654
2014-12-09 16:32:26 -08:00
Badhri Jagan Sridharan
ab3446dd34 adbd & fastbootd: Support for new f_fs descriptor format
The patch "[RFC] usb: gadget: f_fs: Add flags
to  descriptors block" marks the current
usb_functionfs_descs_head format deprecated
and introduces support for sending SuperSpeed
descriptors.

This CL makes adbd to send Descriptors in the
new format. Adbd would fall back to the old
format, if kernel is not able to recognize
the new format. This is done to prevent
adbd from breaking in the older versions
of the kernel.

(cherry-pick of fad60336daa5a7adf82d8140cbddd1c735770e71.)

Bug: 17394972
Change-Id: I05095ccdcc74bf6953cbef847d7583eab137e12e
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
2014-12-09 16:20:15 -08:00
leozwang
298b6c70a0 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
2014-12-09 16:12:51 -08:00
leozwang
cbf0267f5b 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
2014-12-09 16:08:24 -08:00
Christopher Ferris
67a7a4ae27 Fix adb/fastboot windows compilations.
Many of the windows files where not including stdlib.h even though they
are using malloc/free calls.

(cherry-pick of ae7bf0959bd3f79afbf365e41f015ed1c304afdc.)

Change-Id: If6959df9909d9d9928e9f4a2a96018166361cf3c
2014-12-09 16:03:29 -08:00
Elliott Hughes
02ef15f1d7 Merge "Introduce "adb keygen"" 2014-12-10 00:01:06 +00:00
Elliott Hughes
dbb7c46d68 Merge "ADB on linux: Handle USB SuperSpeed extra Descriptors" 2014-12-08 22:35:41 +00:00
Nick Kralevich
bea3f9c345 Introduce "adb keygen"
Introduce the "adb keygen" command.

  Usage: adb keygen <filename>

This command creates an adb public/private key pair in a user
specified file. This can be used to create new adb keys, or rotate
existing keys.

Modify adb's key generation routines to use the HOSTNAME/LOGNAME
environment variables if available. This allows someone to override
the username/hostname embedded within the adb public key file if
desired. Fallback to the old mechanisms if those environment
variables aren't available.

Bug: 18342715
Change-Id: Ibccee6088d4609aa05ad6687d3a1d8a8689d3e8a

(cherry picked from commit af782b9f2a)

Change-Id: Ic76ffc9412171dddc879af0bbf6e20fbe1a8f057
2014-12-08 13:44:39 -08:00
Elliott Hughes
a5e9b065ef Merge "adb: enable superspeed support" 2014-12-08 19:23:30 +00:00
Zhuang Jin Can
d6ee9f26a5 adb: enable superspeed support
Change-Id: I5a350bfa5641365d7a0939d89c6f477c335e948a
Signed-off-by: Zhuang Jin Can <jin.can.zhuang@intel.com>
Signed-off-by: Robert Chiras <robert.chiras@intel.com>
2014-12-08 16:31:18 +02:00
Trevor Drake
b79a2d55f7 Clean up adb/Android.mk
Removed redundant LOCAL_C_INCLUDES.
Switch from using libunz to libz

Change-Id: Ic90c582fa56453bbac09561158e73f240dd47503
2014-12-07 15:13:29 +00:00
Elliott Hughes
023bc0a426 Merge "Fix deadlocks." 2014-12-03 18:38:05 +00:00
Elliott Hughes
97ac0e1bb4 Kill HAVE_BIG_ENDIAN, HAVE_ENDIAN_H, and HAVE_LITTLE_ENDIAN.
Change-Id: I9e25ac9d27e95b04fb8bf7a66c619af0139d8b8f
2014-11-21 23:10:45 -08:00
Ajay Dudani
8432ddc822 system/core: Remove AID_GRAPHICS from adb groups
Remove AID_GRAPHICS from adb access groups to limit framebuffer
access.

Change-Id: I7fc6dca8b02a45d67d1ecc4a4daf6c38741ffb94
2014-11-21 18:08:05 -08:00
Elliott Hughes
c66aed8a14 Remove the adb usb vendor id whitelist.
If there are bad vendors, we should blacklist them. Whitelisting the entire
world is crazy.

Change-Id: I1f4c27fd34fc420e2a3b4b2c8749198030db69f1
2014-11-21 10:44:10 -08:00
Elliott Hughes
97e1e17042 Merge "Disable vendor id filtering for OS X." 2014-11-21 18:42:28 +00:00
Elliott Hughes
0750f78659 Merge "Remove explict use of ASCII encoding" 2014-11-21 18:37:19 +00:00
Elliott Hughes
01d49e854f Merge "adb: Add USB vendor ID for Ubiquiti Networks, Inc." 2014-11-21 17:44:06 +00:00
Al Sutton
2a4b5f9e80 Remove explict use of ASCII encoding
Replace the use of CFStringGetCString with kCFStringEncodingASCII specified
with CFStringGetFileSystemRepresentation which will ensure the correct
character encoding is used to conver the CFString into a NULL terminated
char array suitable for use with POSIX APIs.

Change-Id: Ibab1dc05c4f4db8604d329a493b4241992b8e69d
2014-11-21 15:56:59 +00:00
Al Sutton
8e01cc6e0b Disable vendor id filtering for OS X.
Companion patch for change I2bf583a27f9a3f98ef006ea62b906a4f89960507.

Due to the use of USB class 0xff it's not possible to register a listener
which uses the OS methods for filtering notifications, so this patch
also introduces a check in the notification listener which checks the
class, subclass, and protocol for the interface each notification relates 
to.

Change-Id: I380cc80f96addc5057660efb2179b35f9378886a
2014-11-21 14:14:58 +00:00
Elliott Hughes
aa3e17e1b6 Merge "Return path including executable instead of without" 2014-11-20 18:35:12 +00:00
Al Sutton
26b53bb75e Return path including executable instead of without
The previous implementation returned the path the executable was in instead
of returning the path including the executable (i.e. it returned ...bin
instead of ...bin/executable). This is not what the original methods did
and caused the process forking of adb to fail.

This patch corrects the implementation.

Change-Id: Ib58497cab35706041f170c1bc97c31fd5d965f90
2014-11-20 13:33:57 +00:00
Elliott Hughes
55664906a8 Disable vendor id filtering for Linux.
It's time we switched to blacklisting any problematic devices rather than
slowly whitelisting the entire world. This seems to work for me, but let's
see how other people get on before coming back to actually remove the list.

We'll also need to find a Mac to test the equivalent Mac change.

Change-Id: I2bf583a27f9a3f98ef006ea62b906a4f89960507
2014-11-19 22:07:34 -08:00
Al Sutton
f456d47c50 Fix building on modern versions of Xcode and OS X.
Recent versions of XCode fail to compile the adb and fastboot binaries due to
two functions being deprecated in 10.9 (GetCurrentProcess and
ProcessInformationCopyDictionary), and the use of -Werrror.

This patch replaces the method implementations which use calls to methods
deprecated in the 10.9 SDK with versions which only call non-deprecated methods.

Change-Id: I855bf26aff45093ca9022924f3ecd1b80f2305a8
2014-11-19 19:50:48 +00:00
Jeremy Chang
868cf42557 adb: Add USB vendor ID for Ubiquiti Networks, Inc.
Change-Id: Iedb86b9ff8dc55aea5d0df201a98c96418002207
Signed-off-by: Jeremy Chang <jeremy@ubnt.com>
2014-11-19 22:13:24 +08:00
Elliott Hughes
0655d38b0c Merge "Revert "adb: Add USB vendor ID for Honeywell"" 2014-11-18 21:15:44 +00:00
Elliott Hughes
3e01bb85d6 Revert "adb: Add USB vendor ID for Honeywell"
This reverts commit 8c4c8e8988.

Change-Id: Ia1cad862f42e5bea3174ed2cc0eea5232fc0a858
2014-11-18 21:15:28 +00:00
Yabin Cui
d325e866c4 kill HAVE_TERMIO_H
Bug: 18398307
Change-Id: Idbb89a074cdf16869cae3f667e89472781f37a5f
2014-11-17 18:19:11 -08:00
Yabin Cui
e77b6a0862 kill HAVE_FORKEXEC
Bug: 18317407
Change-Id: I4eecb3c9d745e3dabfc46fa595aac7f94f6d93e3
2014-11-12 17:06:27 -08:00
Elliott Hughes
2655256570 am 452f08a0: Merge "Add razer usb vid for future use with adb"
* commit '452f08a0b78e65cbd7e4cddac133e59f94d5db4c':
  Add razer usb vid for future use with adb
2014-11-05 02:42:04 +00:00
Stuart Wells
3410d33dc4 Add razer usb vid for future use with adb
Change-Id: I6b76c297de900da050473b764517cfd15c64b838
Signed-off-by: Stuart Wells <stuart.wells@razerzone.com>
2014-11-03 09:32:30 -08:00
JP Abgrall
cb3739b545 am 7e38ab47: am 951c48c5: Merge "adb: Add USB vendor ID for TrekStor GmbH"
* commit '7e38ab476f808f84f0755ccbceb4cd7d8a1982a3':
  adb: Add USB vendor ID for TrekStor GmbH
2014-10-20 18:38:24 +00:00
Thorsten Koroscha
4fa99e542f adb: Add USB vendor ID for TrekStor GmbH
Change-Id: I1d7fc14e691b4ab504c5205b21c93939499cdff9
Signed-off-by: Thorsten Koroscha <t.koroscha@trekstor.de>
2014-10-20 10:26:20 +02:00
Stephen Hines
f17c42f68a am 2f431a8d: Fix windows-specific error without messing up Makefile flags.
* commit '2f431a8d5a1c2029af470a7336751a555131ee51':
  Fix windows-specific error without messing up Makefile flags.
2014-10-02 00:53:27 +00:00
Stephen Hines
2f431a8d5a 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
2014-10-01 17:37:06 -07:00
Stephen Hines
d2ee707586 am 3ea87c33: Fix build breakage for missing -Wcpp option on old GCC versions.
* commit '3ea87c33a1c6e940322f5436cf0dd70a0bdadd75':
  Fix build breakage for missing -Wcpp option on old GCC versions.
2014-10-02 00:31:50 +00:00
Stephen Hines
3ea87c33a1 Fix build breakage for missing -Wcpp option on old GCC versions.
Bug: 14416410
Change-Id: Ib30c3739d50d6122b3b4643051c72f2fa4985686
2014-10-01 17:16:37 -07:00
Stephen Hines
1e95e0b19c am 64f44b84: Merge "Remove obsolete reference to ddk; Fixes for -Werror" into lmp-dev
* commit '64f44b8444dabd69cf391d42e10d44e8e926a79d':
  Remove obsolete reference to ddk; Fixes for -Werror
2014-10-01 23:21:09 +00:00
Stephen Hines
64f44b8444 Merge "Remove obsolete reference to ddk; Fixes for -Werror" into lmp-dev 2014-10-01 22:53:51 +00:00
Vince Harron
43aecc5436 am c75dac39: Merge "fix for adbd pinning CPU" into lmp-dev
* commit 'c75dac394e3fcd9760841a820d8a0c93dd0c276e':
  fix for adbd pinning CPU
2014-09-30 14:56:25 +00:00
Andrew Hsieh
b75d6f1429 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
2014-09-30 02:24:07 -07:00
Alex Klyubin
1f88f8ef32 am 9005ec37: am e3d3016d: Merge "Switch from using base64 BIOs to encoding funcs."
* commit '9005ec378ecd281f52945b5baca87245543bbfbf':
  Switch from using base64 BIOs to encoding funcs.
2014-09-26 21:58:52 +00:00
Alex Klyubin
e3d3016d46 Merge "Switch from using base64 BIOs to encoding funcs." 2014-09-26 21:51:36 +00:00
Vince Harron
af436b1e10 fix for adbd pinning CPU
adbd was spinning between select & read (0 bytes) for an adb_auth
socket.  The read documentation states: "On success, the number of
bytes read is returned (zero indicates end of file)" so the code has
been modified to close the connection (like the read error case).

BUG=17419868

Change-Id: I1d8fb70c8e1876225ba8d47ea0a2b6265a7d182b
2014-09-25 21:51:15 -07:00
Dan Albert
736fd4a870 am 8e1e5415: am 5b4a1767: Merge "Revert "Switch adb to epoll(2).""
* commit '8e1e54154bc7a5e9dee206735474186c2276b111':
  Revert "Switch adb to epoll(2)."
2014-09-25 22:32:18 +00:00
Dan Albert
45741ae2ea Revert "Switch adb to epoll(2)."
This reverts commit 67de1557b0.
2014-09-25 15:10:34 -07:00
Elliott Hughes
0ab784d470 am 790e7c0a: am 3772545c: Merge "Switch adb to epoll(2)."
* commit '790e7c0ac46bca5ad511ba8764bbb0e9646c6f2a':
  Switch adb to epoll(2).
2014-09-23 18:57:33 +00:00
Elliott Hughes
67de1557b0 Switch adb to epoll(2).
Bug: 17588403
Change-Id: I2590f5e7dd4e178ff4f743609c5ef0155b1015a1
2014-09-23 10:40:51 -07:00
Doug Zongker
edda73d0c8 fix windows build
(cherry-picked from commit 4b39c6aca9)

Change-Id: Ia7b236f1a915630fe85d488072efb9784ba10dad
2014-09-16 10:59:49 -07:00
Kenny Root
d372c5c365 Merge changes I11e84a7b,I5adaedd8
* changes:
  adb: fix 64-bit build
  add sideload-host mode to adb
2014-09-16 17:36:13 +00:00
Colin Cross
52e0b61999 adb: fix 64-bit build
strlen returns a size_t, but the * modifier in printf expects an int.
On arm64 size_t != int.

(cherry-picked from commit 6d6a898b0c)

Change-Id: I11e84a7b62c935162abc0aba910d14e63d11efd3
2014-09-16 10:31:30 -07:00
Doug Zongker
8e49ae4bb8 add sideload-host mode to adb
The sideload-host mode turns the host into a server capable of sending
the device various pieces of the file on request, rather than
downloading it all in one transfer.  It's used to support sideloading
OTA packages to devices without the need for them to hold the whole
package in RAM.

If the connected device doesn't support sideload-host mode, we fall
back to the older sideload connection.

(cherry-picked from commit 71fe584a1a)

Change-Id: I5adaedd8243dc3b76414bba0149879ca2bbf35fa
2014-09-16 10:27:38 -07:00
Esteban de la Canal
a5ab96eb50 74602: Fixes adb not seeing connected devices on Mac.
Every alternate time an adb server was started already connected devices were
not being seen. This was caused by opened usb connections being "stalled".
See this thread for more information: http://lists.apple.com/archives/usb/2011/Jun/msg00050.html

Change-Id: Ic35b7a66c3f14a837b960066557f44e105609dcb
Fixes: https://code.google.com/p/android/issues/detail?id=74602
2014-09-15 15:46:13 -07:00
Esteban de la Canal
da5b2d67fa am 99bb69c1: am f41ee3d5: Merge "74602: Fixes adb not seeing connected devices on Mac."
* commit '99bb69c1cee678382bf5e48962aa444469b3310e':
  74602: Fixes adb not seeing connected devices on Mac.
2014-09-12 21:43:43 +00:00
Esteban de la Canal
f41ee3d5a1 Merge "74602: Fixes adb not seeing connected devices on Mac." 2014-09-12 21:11:14 +00:00
Esteban de la Canal
9dd83dc96e 74602: Fixes adb not seeing connected devices on Mac.
Every alternate time an adb server was started already connected devices were
not being seen. This was caused by opened usb connections being "stalled".
See this thread for more information: http://lists.apple.com/archives/usb/2011/Jun/msg00050.html

Change-Id: Ic35b7a66c3f14a837b960066557f44e105609dcb
Fixes: https://code.google.com/p/android/issues/detail?id=74602
2014-09-11 11:36:50 -07:00
Elliott Hughes
8fa75e44f1 am 6608a46c: am c4ff0389: Merge "adb: Add USB vendor ID for Alco Digital Devices Limited"
* commit '6608a46c59abd72bd42a5104937fb276b6b0ccbd':
  adb: Add USB vendor ID for Alco Digital Devices Limited
2014-09-10 18:26:35 +00:00
DanielMo
553630e423 adb: Add USB vendor ID for Alco Digital Devices Limited
Change-Id: I50d343d583e688e9f8a72d1c61618b384e310fe1
Signed-off-by: DanielMo <DanielMo@fih-foxconn.com>
2014-09-10 13:58:32 +08:00
Jeff Sharkey
84e533d7b0 am 228f8261: Merge "delete_file() should force removal." into lmp-dev
* commit '228f8261fd778e1c03184b5f79f979d1a25abf50':
  delete_file() should force removal.
2014-09-09 21:56:14 +00:00
Jeff Sharkey
41b3cfa296 delete_file() should force removal.
It's a shell command with a pty, but it's not really interactive,
so force the removal to avoid giving users dead-end prompts.

Bug: 17339227
Change-Id: Iaf5d95c49f032066aa741a711a2c45557d93c598
2014-09-09 12:38:30 -07:00
Christopher Ferris
fb849bd46e am fc8e16bf: am 2c805883: Merge "Add -Wno-deprecated-declarations to makefiles."
* commit 'fc8e16bfc59fcebaf554e266aae808eed5f2d078':
  Add -Wno-deprecated-declarations to makefiles.
2014-09-06 17:25:48 +00:00
Christopher Ferris
2c80588340 Merge "Add -Wno-deprecated-declarations to makefiles." 2014-09-06 16:56:46 +00:00
Chih-Hung Hsieh
6d94763b2f am 379ca94d: am 299a32c8: Merge "Include ADB_HOST only code in #if ADB_HOST."
* commit '379ca94d00cab91a77ad8991cc92e2b4d4236d56':
  Include ADB_HOST only code in #if ADB_HOST.
2014-09-05 23:58:09 +00:00
Chih-Hung Hsieh
299a32c803 Merge "Include ADB_HOST only code in #if ADB_HOST." 2014-09-05 23:38:07 +00:00
Chih-Hung Hsieh
f787b381b6 Include ADB_HOST only code in #if ADB_HOST.
BUG: 17409892
Change-Id: Ic1199dd745191aba718fdb18343e87c0ccbe530b
2014-09-05 16:34:02 -07:00
Elliott Hughes
709569febf am 0dcc3f65: am 9c814648: Merge "Add USB Vendor ID for Micromax Informatics Ltd."
* commit '0dcc3f65b1ff5fa771618436ee4bfdd44cd2f672':
  Add USB Vendor ID for Micromax Informatics Ltd.
2014-09-05 23:31:15 +00:00
Abhishek Karmakar
4d10523be8 Add USB Vendor ID for Micromax Informatics Ltd.
Signed-off-by: Abhishek Karmakar <abhishek.karmakar@micromaxinfo.com>
Change-Id: I63462eb15575cc953ac0246ee5d4c883d3678c08
2014-09-05 16:06:25 -07:00
Adam Langley
179d9d6587 Switch from using base64 BIOs to encoding funcs.
The OpenSSL base64 BIO is going away in BoringSSL. This change switches
to using the explicit base64 functions which are availible in both
OpenSSL and BoringSSL. The BoringSSL helper functions (i.e. for
calculating the size of the base64 encoding) are wrapped in #ifdefs so
that this change isn't coupled with the switch to BoringSSL. Once that
switch is complete, the #ifdefs can be removed.

Bug: 17409664
Change-Id: I42bac3bc93a1fb39feed39a8917d8e38d97629d3
Signed-off-by: Adam Langley <agl@google.com>
2014-09-05 15:54:30 -07:00
Christopher Ferris
51448eb39e Add -Wno-deprecated-declarations to makefiles.
This is in preparation for an update to the uapi v3.16.1
kernel headers that marks the structure usb_functionfs_descs_head
as deprecated.

Change-Id: I25d2f32ce8e95e038e6df201ce2f8126f5a8b6fa
2014-09-04 16:13:42 -07:00
Ying Wang
0c3d98b02b am 87ad7cdc: am e1ba39aa: Merge "Fix 64-bit host build."
* commit '87ad7cdc590aa4033f0b7ae23d83e2fbc119d07a':
  Fix 64-bit host build.
2014-08-14 23:20:06 +00:00
Ying Wang
42a809ba06 Fix 64-bit host build.
Bug: 13751317
Change-Id: Ibf62935b7d12a55ffc57242a26a2581b52796847
2014-08-14 15:52:54 -07:00
Elliott Hughes
e772705a59 am 771f6f29: am 29c5a78f: Merge "Fix build of adb with gcc-4.9."
* commit '771f6f299f16704b251d6adb8fb185c8fb517d07':
  Fix build of adb with gcc-4.9.
2014-08-06 18:06:33 +00:00
Alexander Ivchenko
678bd2e822 Fix build of adb with gcc-4.9.
Without this patch we get:

system/core/adb/commandline.c:1629:16: error: array subscript is above
array bounds [-Werror=array-bounds]

Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>

(cherry picked from commit 5372333885)

Change-Id: I920c1de933ce5ba0a0d57eb8a9b557325a767a2a
2014-08-06 10:59:53 -07:00
Brian Carlstrom
8a01917da1 am 46a8ffe8: Fix Windows adb build by avoiding "bool"
* commit '46a8ffe87f3cba070fb18a90e3c5c1f73468f99c':
  Fix Windows adb build by avoiding "bool"
2014-08-06 12:57:22 +00:00
Brian Carlstrom
46a8ffe87f Fix Windows adb build by avoiding "bool"
Change-Id: I9ca59e400c199d497a1a18d5e64c2cafe628097b
2014-08-05 22:51:18 -07:00
Jeff Sharkey
8c9b155ea1 am 43d65b69: Merge "Escape single quotes in arguments." into lmp-dev
* commit '43d65b6903249a409031b081bb6175b9ad3e5c2a':
  Escape single quotes in arguments.
2014-08-06 01:23:28 +00:00