Commit Graph

1537 Commits

Author SHA1 Message Date
David Pursell 9046c23ed6 Merge "adb: add help text for USB permission errors." am: 663e949b2b am: e37325defc
am: 4542b62cca

* commit '4542b62ccafb749542bddaf0b442db554e7210e3':
  adb: add help text for USB permission errors.
2015-12-08 16:22:44 +00:00
David Pursell 663e949b2b Merge "adb: add help text for USB permission errors." 2015-12-08 16:12:22 +00:00
Nick Kralevich e042ff867c Merge "adb: Make HOME=/data/local/tmp" am: 5358093225 am: 65ab87dd9b
am: b87df11678

* commit 'b87df11678c22d56d02c776f8f91031bf81a963d':
  adb: Make HOME=/data/local/tmp
2015-12-08 05:06:19 +00:00
Nick Kralevich 5358093225 Merge "adb: Make HOME=/data/local/tmp" 2015-12-08 04:56:05 +00:00
Erik Kline 79a3210eda Merge "Switch from using sockaddr to sockaddr_storage." am: 46b0b1c694 am: 4c1b3840f0
am: cbc6f68e32

* commit 'cbc6f68e320bd30d0cd7fbe73847deacbd54e073':
  Switch from using sockaddr to sockaddr_storage.
2015-12-08 04:54:05 +00:00
Erik Kline 46b0b1c694 Merge "Switch from using sockaddr to sockaddr_storage." 2015-12-08 01:41:38 +00:00
Nick Kralevich 173eb396c7 adb: Make HOME=/data/local/tmp
Make the home directory for adb shell be /data/local/tmp and
automatically change into that directory.

Change-Id: Ib5cc6e1ecdd31a37e986cf03836f7589ebd40868
2015-12-07 16:56:12 -08:00
Elliott Hughes ef119a14b8 Merge "Track rename of base/ to android-base/." am: 912ed3d8ca am: e2a9563be1
am: 3608ee5e90

* commit '3608ee5e903689ea7c433587be664649689816e1':
  Track rename of base/ to android-base/.
2015-12-07 23:59:44 +00:00
Erik Kline 7e16cc15b5 Switch from using sockaddr to sockaddr_storage.
This is to ensure sufficient space is always available.

Change-Id: Ifa87b93ecdc90dcacbfb24446c872344da6703d3
2015-12-07 16:07:46 +09:00
Elliott Hughes 4f71319df0 Track rename of base/ to android-base/.
Change-Id: Idf9444fece4aa89c93e15640de59a91f6e758ccf
2015-12-04 22:00:26 -08:00
Josh Gao 02025afe2b Merge "adbd: split up writes longer than 16k." am: 1c6cd21c43 am: eb4426f2b4
am: 8e7bde369b

* commit '8e7bde369b8cdd8b65a3e91bf77d60c1c5ed308c':
  adbd: split up writes longer than 16k.
2015-12-03 23:02:51 +00:00
Josh Gao 1c6cd21c43 Merge "adbd: split up writes longer than 16k." 2015-12-03 22:50:11 +00:00
Josh Gao 6b531c4e6d adbd: split up writes longer than 16k.
Also, inline the bulk_read and bulk_write functions which were only
being used by one other function.

Bug: http://b/25847115
Change-Id: I218a869030219f606577a5529601c542488115e0
2015-12-03 14:40:03 -08:00
David Pursell d2acbd1931 adb: add help text for USB permission errors.
The current permission messages can be confusing for users who don't
know about udev and USB access permissions. This CL adds some checks to
try to identify common udev problems, and adds a link to online
documentation.

Example messages:

1) adb server is in plugdev group but access is still denied:
$ adb devices
List of devices attached
082f59270073e1e3  no permissions (verify udev rules); see [developer.android.com/tools/device.html]

2) plugdev group exists but adb server is not in it:
$ adb shell
error: USB permission failure: udev requires plugdev group membership.
See [developer.android.com/tools/device.html] for more information.

3) plugdev group does not exist:
$ adb shell
error: USB permission failure.
See [developer.android.com/tools/device.html] for more information.

Bug: http://b/25777880
Change-Id: I536565adc12ab657c75151309795674181205db0
2015-12-03 11:00:47 -08:00
Josh Gao f681478787 Merge "adb: don\'t divide by zero" am: 1702f427b5 am: e53fadf4b3
am: 9f941b96f5

* commit '9f941b96f52e975e97f3f3c41bc5d931fe8fb0e6':
  adb: don't divide by zero
2015-12-02 22:09:56 +00:00
Josh Gao 1702f427b5 Merge "adb: don't divide by zero" 2015-12-02 21:56:04 +00:00
Elliott Hughes b69320e215 Merge "Fix "adb sync" (and "adb push") error reporting." am: d0d87f78e5 am: 59021ad415
am: fa454c1faa

* commit 'fa454c1faab102458d18fc07d1f8211bd89da80b':
  Fix "adb sync" (and "adb push") error reporting.
2015-12-02 19:06:39 +00:00
Elliott Hughes d0d87f78e5 Merge "Fix "adb sync" (and "adb push") error reporting." 2015-12-02 18:53:28 +00:00
Josh Gao 68e26811f0 Merge changes I25bdcbc5,I12314da5,I055b0821 am: a3892504ac am: 81d3447fa9
am: fd3770a5a2

* commit 'fd3770a5a26b23303d49686cd24bab2939e5776b':
  adb: don't pull symlinks when pulling a directory
  adb: remove extraneous newline from skip message
  adb: correctly count skipped files in push/pull
2015-12-01 02:52:46 +00:00
Josh Gao b0e039f4ca adb: don't divide by zero
If we stat a file and get a size of 0, and then successfully read bytes
from that file, we would previously divide by zero when calculating the
percentage completion of the file. This case happens either when we're
racing against something else writing to the file, or when we're pulling
magical files such as the ones in /dev/cpuctl/ that lie about their
size.

Bug: http://b/25925733
Change-Id: I980b9c14f44a1eb4a42bc8736c94fa6db06c08d1
2015-11-30 12:03:12 -08:00
Josh Gao 7b284b2f22 adb: don't pull symlinks when pulling a directory
The previous change to do this (f96dc73b) only skipped individually
named symlinks, not symlinks inside of a directory that was being
pulled.

Bug: http://b/25601283
Change-Id: I25bdcbc546a9d3a0dbd8dacdb065fb134d96022b
2015-11-30 11:02:44 -08:00
Josh Gao d3266e058e adb: remove extraneous newline from skip message
Change-Id: I12314da589bf0db14b37ae4c1f526665182f4776
2015-11-30 11:02:21 -08:00
Josh Gao dd6cc4d7ee adb: correctly count skipped files in push/pull
Bug: http://b/25650207
Change-Id: I055b08216938640c4f7c5e96a7ea3719bf90ba70
2015-11-30 10:42:37 -08:00
Elliott Hughes cc65c3b9f8 Fix "adb sync" (and "adb push") error reporting.
This patch ensures that we read any error response from the server if the
server closes the connection. Unfortunately, that's not sufficient to ensure
that we always see the server's error message --- sometimes the data just
gets thrown away because we keep writing without reading. Setting SO_LINGER
avoids this.

Bug: http://b/25230872
Change-Id: I96c019cc72bd139198de79bf29e6536cc462c20f
2015-11-20 22:01:06 -08:00
Elliott Hughes e68e3f458c Merge "Move SendLargeFile into SyncConnection." am: ddf41f1ad0 am: 49f4f575f9
am: d88988970c

* commit 'd88988970c72434eda97319882436b40fe348a6b':
  Move SendLargeFile into SyncConnection.
2015-11-21 01:55:27 +00:00
Elliott Hughes 6aab58c499 Move SendLargeFile into SyncConnection.
Just a trivial refactor. Code change comes later.

Change-Id: If9e509a8c44649e5be4daaca57972939b037b8db
2015-11-20 17:35:17 -08:00
Elliott Hughes 159b455fcb Merge "Avoid SIGPIPE in adb." am: 8c5511c692 am: 1146ae0205
am: bd9a852e10

* commit 'bd9a852e10c7af3f2eddd6c3b9401849b792a808':
  Avoid SIGPIPE in adb.
2015-11-20 20:28:48 +00:00
Elliott Hughes 65433da1cb Avoid SIGPIPE in adb.
We're now able to send packets faster than the device can handle them,
meaning that sometimes we're several packets through before the device
says "hey, wait, I can't write" and closes the connection. At best this
led to us reporting that we couldn't sync because "Connection reset";
at worst we'd get SIGPIPE because we were still streaming to a connection
that had already been closed.

This change renames adb_main adb_server_main, and moves the ignoring of
SIGPIPE into adb_commandline so it applies to both client and server (but
not adbd).

This change doesn't address the "wrong error message" part of the problem,
but at least it means you'll get *an* error message.

Bug: http://b/25230872
Change-Id: Ic60e4d13ed03fdcdf0d5cbc97201ebd1097c16ed
2015-11-20 09:42:23 -08:00
Elliott Hughes 25092744d9 Merge "Don\'t send screen unless we\'re talking to a new adbd." am: 9f90368701 am: 5e3589da14
am: 7a2f48eb01

* commit '7a2f48eb01a64886fdf0064041daafe29a07289e':
  Don't send $TERM unless we're talking to a new adbd.
2015-11-19 05:46:53 +00:00
Elliott Hughes c2252df25a Don't send $TERM unless we're talking to a new adbd.
I put the conditional in the wrong place, not realizing that even the
old shell system allowed one 'argument'.

Bug: http://b/25765657
Change-Id: I2752fb838d6377bf24e5b4cf959462557a196c87
2015-11-18 12:45:48 -08:00
Josh Gao 00be90244d Merge "adb: don\'t use adb_dirname in between getting and printing errno." am: 44901f1147 am: 975c9a6863
am: 01f7f6fb03

* commit '01f7f6fb0323187a413dda937b9b893964fca5c9':
  adb: don't use adb_dirname in between getting and printing errno.
2015-11-18 19:18:23 +00:00
Josh Gao b5d763b053 Merge changes Ice07f892,Ie1f082a0 am: 74a33fbcef am: 053eba0bc1
am: cb601eb981

* commit 'cb601eb981f70d395e9bac5c1bf39c7773141eca':
  libcutils: don't build for Windows.
  adb: don't link against libcutils on Windows.
2015-11-18 19:17:39 +00:00
Josh Gao 44901f1147 Merge "adb: don't use adb_dirname in between getting and printing errno." 2015-11-18 00:44:05 +00:00
Elliott Hughes 9a373a160c Merge "Pass screen to the device." am: c40f213b67 am: 1fd0ea9e0e
am: cc1ef0afae

* commit 'cc1ef0afae0ebbd818232e0252454d5591847f85':
  Pass $TERM to the device.
2015-11-18 00:25:05 +00:00
Josh Gao f6e65e3f80 adb: don't use adb_dirname in between getting and printing errno.
adb_dirname might trample over the errno value we want to print. Move
the adb_dirname call out to a local to prevent this.

Change-Id: I8a62cb2e1be8704225a9c3b72dd01259c7eaaae4
2015-11-17 14:41:57 -08:00
Josh Gao a629e2e578 adb: don't link against libcutils on Windows.
Bug: http://b/25693157
Change-Id: Ie1f082a094371124b4d66c87c7ab1a0706271b9d
2015-11-16 16:17:16 -08:00
Elliott Hughes 18ddf5c6a2 Pass $TERM to the device.
Unfortunately, this isn't backwards-compatible with the current shell
protocol because we made unknown shell: arguments errors. We could try
to commit the change to make them just warnings first, but how would
we know when everyone was running adbd with that change? Bumping the
protocol version doesn't help because that only affects the code running
on the host. And although we could add another feature to the reported
features, since shell_v2 is still in development, that doesn't seem
worthwhile.

Bug: http://b/25601436
Change-Id: I12b81aa656cd25b91d14ef691dcbd2b7dab49535
2015-11-16 10:55:34 -08:00
Josh Gao 4fde9d5698 Merge "adb: don\'t pull symlinks." am: 29843cf141 am: e01de06892
am: b5706b5f08

* commit 'b5706b5f0830fa87244e3bf1685050a9b1da5703':
  adb: don't pull symlinks.
2015-11-13 23:34:33 +00:00
Josh Gao f96dc73b9f adb: don't pull symlinks.
Pulling symlinks was broken for directories, and it doesn't seem like
there's a good way to make it not broken, given that the protocol doesn't
have readlink (and we don't want to create symlinks on Windows, anyway).
The behavior for files doesn't seem to be especially useful, either.

Bug: http://b/25601283
Change-Id: Ie1d27e93dd09cbc0c178623b390041d1cb11f726
2015-11-13 15:17:02 -08:00
Elliott Hughes 28f2388938 Merge "Improve adb help text and adb backup error reporting." am: 82a2b2441c am: da2319bf4d
am: 7274d3fdc7

* commit '7274d3fdc70dc6abb5780f110c113f078a195cf3':
  Improve adb help text and adb backup error reporting.
2015-11-13 20:36:29 +00:00
Elliott Hughes 56e6813e27 Improve adb help text and adb backup error reporting.
Bug: https://code.google.com/p/android/issues/detail?id=188220
Bug: http://b/25677893
Change-Id: If174049e86d65d95db93a6e071c089dcd1d7cd4f
2015-11-13 11:04:10 -08:00
Elliott Hughes 846ba16767 Merge "adb: win32: Unicode USB device names" am: 76aefd5f9b am: 01f5c3afc8
am: 84a2145033

* commit '84a214503382d9bb335a12872aa404c4a643ec12':
  adb: win32: Unicode USB device names
2015-11-13 16:51:54 +00:00
Spencer Low bb2900098a adb: win32: Unicode USB device names
Cleanup TODO and instead of (poorly) converting the device name from
wchar_t to char, just retrieve and store it as wchar_t, simplifying the
code.

This probably isn't necessary since device names are probably always
ASCII, but this cleans things up.

Change-Id: Ib780dcdc1e0e06b97b61e25d29a23874b35d7800
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-11-12 20:13:21 -08:00
Elliott Hughes dd6543e4e8 Merge "adb: win32: remove widen()/narrow() in favor of UTF8ToWide()/WideToUTF8()" am: 61a560aeb1 am: 187858496b
am: 395156a270

* commit '395156a270f43eaf4f489b5ef76af6d0f1ddaf06':
  adb: win32: remove widen()/narrow() in favor of UTF8ToWide()/WideToUTF8()
2015-11-13 03:14:54 +00:00
Spencer Low d21dc825bb adb: win32: remove widen()/narrow() in favor of UTF8ToWide()/WideToUTF8()
Now that we have a more standardized API (also available in Chromium),
switch to it. Another benefit is real error handling instead of just
killing the process on invalid Unicode.

Make UTF8ToWide()/WideToUTF8() set errno to EILSEQ on bad input. This is
the same error code that wcsrtombs(3) uses.

Update the unittest to check for EILSEQ.

Change-Id: Ie92acf74d37adaea116cf610c1bf8cd433741e16
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-11-12 17:13:08 -08:00
Josh Gao 80a9bc872c Merge changes Ic124ecb9,I94de55d2 am: 26f2e1fd4f am: 9a3f299ec0
am: 33bc6f38e7

* commit '33bc6f38e7946108ff2fba947e2a2be0c8d62d7f':
  libbase: remove exit-time destructors.
  adb: remove exit-time destructors.
2015-11-12 23:12:24 +00:00
Josh Gao 3bcdde6286 Merge "adb: properly handle path separators on Windows." am: 8591f719d0 am: 82f9eef468
am: 55e1c43714

* commit '55e1c4371402f202988fd961ab30e66167918588':
  adb: properly handle path separators on Windows.
2015-11-12 23:12:10 +00:00
Josh Gao 26f2e1fd4f Merge changes Ic124ecb9,I94de55d2
* changes:
  libbase: remove exit-time destructors.
  adb: remove exit-time destructors.
2015-11-12 22:50:03 +00:00
Josh Gao 8591f719d0 Merge "adb: properly handle path separators on Windows." 2015-11-12 21:25:00 +00:00
Josh Gao b7b1edf974 adb: remove exit-time destructors.
On exit, these destructors get invoked while other threads might
still be using them, potentially causing a crash, and definitely
causing tsan to report a race condition.

Bug: http://b/23384853
Change-Id: I94de55d22f97f4edd1d7cc1f34e8c1f8dfd56a5a
2015-11-12 11:20:19 -08:00