Commit graph

1622 commits

Author SHA1 Message Date
David Pursell
7fd384bf77 Merge "adb: fix subprocess termination for legacy shell." am: a9352202dd
am: 4c0a6a1677

* commit '4c0a6a16772700146c4edb894af46f90138e9170':
  adb: fix subprocess termination for legacy shell.
2016-01-29 22:20:40 +00:00
David Pursell
a9352202dd Merge "adb: fix subprocess termination for legacy shell." 2016-01-29 22:14:46 +00:00
Josh Gao
f74da513c8 Merge "adb: SIGWINCH support for Windows" am: c1eb5ba0fb
am: 41b04cf896

* commit '41b04cf89677836dba14903226df5c7a3d39adcd':
  adb: SIGWINCH support for Windows
2016-01-29 22:08:22 +00:00
Spencer Low
2e02dc630f adb: SIGWINCH support for Windows
- Introduces unix_read_interruptible() which is like unix_read() except
  that it can return EINTR.

- The big idea is that the Windows ReadConsoleInput() API will return an
  event on window resize and then we return EINTR from
  unix_read_interruptible() just like Unix.

- Only handles horizontal resize since Windows doesn't seem to give an
  event for vertical resize when no special screen buffer is used. This
  should be sufficient for the primary use case of adb on Windows
  (people are not running vi in the first place).

Change-Id: Id8d1710b559834c8098f2d7fbecedf2d0ade4b88
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2016-01-28 23:01:56 -08:00
Rubin Xu
8c43666958 Merge "ADB security logging" am: 8dfe21eaad
am: e37103a375

* commit 'e37103a375de00d0300b49d2af3550db663f2f2e':
  ADB security logging
2016-01-28 20:07:13 +00:00
Rubin Xu
8dfe21eaad Merge "ADB security logging" 2016-01-28 19:50:58 +00:00
David Pursell
57dd5ae1e3 adb: fix subprocess termination for legacy shell.
http://r.android.com/166419 changed `adb shell` behavior to not
allocate a remote PTY for non-interactive commands, but adbd relied on
having a PTY to properly terminate the subprocess.

One impact of this is that when using older versions of adb or passing
the -x flag, `adb screenrecord` wasn't properly terminating and closing
out the video file.

This CL restores the old behavior for legacy shell connections: always
use a PTY, but put it in raw mode if the client is doing local PTY
input/output processing itself.

Bug: http://b/26742824
Change-Id: I9ee630c0ff0d2d6a0db367387af7123deea79676
2016-01-27 17:13:41 -08:00
David Pursell
aa8af387d3 Merge "adb: fix GetFeatureSet() to indicate failure." am: 921b8e19ee
am: ff81cd2727

* commit 'ff81cd2727a8abbbad7754ffdbea5783120769e7':
  adb: fix GetFeatureSet() to indicate failure.
2016-01-22 18:47:05 +00:00
David Pursell
b5a43c4590 Merge "base: add network address parsing function from adb." am: 7fc87c9bc2
am: cee5418fe4

* commit 'cee5418fe413ce966b20ed4e6f9c6de45629dece':
  base: add network address parsing function from adb.
2016-01-22 18:46:59 +00:00
David Pursell
0aacbbe9f3 adb: fix GetFeatureSet() to indicate failure.
Previously GetFeatureSet() on an invalid target would just return an
empty feature set, leading to some invalid assumptions, e.g. if there
isn't exactly one device connected this happens:

$ adb shell -t
error: target doesn't support PTY args -Tt

This CL adds a success/failure return value to GetFeatureSet(), and
also adds an option to print errors to stderr since that's the most
common behavior.

This will cause a slight difference in behavior for install/uninstall.
Previously they would block until the device was available, now they
print an error and quit immediately, which seems to be the more common
behavior for adb functions.

Bug: http://b/26387641
Change-Id: I0ea6ffaec922e04b9946e84f05c3870e5b549fde
2016-01-22 08:49:15 -08:00
David Pursell
706955ff0d base: add network address parsing function from adb.
This CL moves the network address parsing function from adb to libbase
so that it can be used by fastboot as well as adb.

libbase seemed like the right choice because:
  1. It already has some parsing functions (parseint)
  2. The net address parsing function uses the libbase string
     functions so we have a libbase dependency anyway.

The parsing function has been modified slightly to make the canonical
address optional, and debug logging on success has been removed.

For adb the only functional difference is that parsing a network
address will no longer print the result to the debug log, which seemed
unnecessary.

Bug: http://b/26236380
Change-Id: Ife6df02937225fc66de87884d3572d79c092c522
2016-01-21 20:03:33 -08:00
Rubin Xu
d61a25c172 ADB security logging
Log adb shell, pull and push operations to the security log.

Bug: 22860162
Change-Id: I5d24e9d51040ae05a41d9fcb079e84351a217bd3
2016-01-21 15:57:02 +00:00
Josh Gao
870c10cd4f Merge "adbd: use pty to determine whether a session is interactive." am: 7e923fb3c5
am: 43568a558d

* commit '43568a558d8ce9a27d47e7be1d840440ba8e7649':
  adbd: use pty to determine whether a session is interactive.
2016-01-21 00:04:34 +00:00
Josh Gao
b5028e46b0 adbd: use pty to determine whether a session is interactive.
Bug: http://b/26236990
Change-Id: I8baa4009a2fbe9a4c93f6ef5350ce61161b7237d
2016-01-20 15:32:56 -08:00
Josh Gao
6176298929 Merge "adbd: don\'t leave zombies when subprocess creation fails." am: fb494eb40d
am: da0678946c

* commit 'da0678946c771f0cae418f866cbb9d2f0b2a4276':
  adbd: don't leave zombies when subprocess creation fails.
2016-01-20 20:54:13 +00:00
Josh Gao
c65fae9ef5 adbd: don't leave zombies when subprocess creation fails.
Bug: http://b/26660675
Change-Id: I8e65d51af73f409c30be47575f76bc6b0f227c54
2016-01-20 11:40:31 -08:00
Josh Gao
3ed4d4d47b Merge "adb: tag fatal, fatal_errno with printf attribute." am: 7db2cb67be
am: a05fbcff42

* commit 'a05fbcff42427e9f8597391157942d81aba8fd36':
  adb: tag fatal, fatal_errno with printf attribute.
2016-01-15 23:58:19 +00:00
Josh Gao
c93cf8a75e Merge "Increase the maximum shell command length to 4096ish." am: 3472410eac
am: 2783126cab

* commit '2783126cab5ca2a1aae5779c988a84abff97cb19':
  Increase the maximum shell command length to 4096ish.
2016-01-15 23:58:13 +00:00
Dan Albert
2dd90a20a0 Merge "Fix a couple sign-comparison warnings." am: 422359aad4
am: b2d312749e

* commit 'b2d312749efe6b46dc0faf67f72d3a4b40434934':
  Fix a couple sign-comparison warnings.
2016-01-15 23:58:08 +00:00
Josh Gao
7db2cb67be Merge "adb: tag fatal, fatal_errno with printf attribute." 2016-01-15 23:51:05 +00:00
Josh Gao
56e9bb9bd6 adb: tag fatal, fatal_errno with printf attribute.
Also, fix bugs that this uncovered. In particular, the sysdeps_win32
FATAL macro would only print __FUNCTION__.

Change-Id: I6307ec9749edec21b4fee192e135a86ec445c84b
2016-01-15 15:25:31 -08:00
Josh Gao
3472410eac Merge "Increase the maximum shell command length to 4096ish." 2016-01-15 23:06:37 +00:00
Josh Gao
7e6683ce40 Increase the maximum shell command length to 4096ish.
The actual maximum length will depend on the version of the shell
protocol being used, and any additional parameters being passed through
(e.g. TERM=xterm-256color). This should be able to be raised to 64K for
devices with commit 3d2904c (L-MR1 and above), but that'll require some
plumbing.

Bug: http://b/20467103
Change-Id: Idf0c46af5b18b854110aba58df13a53297d2475f
2016-01-15 15:02:19 -08:00
Dan Albert
bac7bb5c16 Fix a couple sign-comparison warnings.
Bug: http://b/26523949
Change-Id: Id33146b5544147945fee3f14f7f72f39bae449f6
2016-01-15 12:18:14 -08:00
Jorge Lucangeli Obes
c76e2a8dad Merge "adbd: Depend only on libminijail." am: 6fe9930722
am: 3cdfb3b0aa

* commit '3cdfb3b0aa6ae36663fb80a628ceda388da95cd6':
  adbd: Depend only on libminijail.
2016-01-09 00:17:58 +00:00
Elliott Hughes
81a70ac08e Merge "Improve dumb terminal support (emacs is dumb)." am: 46798ecd17
am: ec97cb8b50

* commit 'ec97cb8b509f06e658cfa2a2fb86e0fbe8e28e25':
  Improve dumb terminal support (emacs is dumb).
2016-01-09 00:13:09 +00:00
Jorge Lucangeli Obes
6fe9930722 Merge "adbd: Depend only on libminijail." 2016-01-08 23:59:32 +00:00
Elliott Hughes
d68ad69d1d Improve dumb terminal support (emacs is dumb).
Bug: http://b/26444032
Change-Id: Iaff4b09b613fd30ab7c4c73e096da34f37e0de07
2016-01-08 15:47:07 -08:00
Jorge Lucangeli Obes
4fc0c3d92a Merge "adbd: Remove check for set_supplementary_gids." am: fd3c12d224
am: 7356218161

* commit '7356218161220848920d5e117d304d442b79f44f':
  adbd: Remove check for set_supplementary_gids.
2016-01-08 23:06:21 +00:00
Jorge Lucangeli Obes
218eb7c820 adbd: Depend only on libminijail.
With https://android-review.googlesource.com/#/c/195460,
adbd can depend only on libminijail, without having to include its
dependencies.

Bug: 26099611
Change-Id: I2312d8584dda88b4a4619d3100d0983fa2833ba5
2016-01-08 13:33:01 -08:00
Jorge Lucangeli Obes
fd79a5d9c1 adbd: Remove check for set_supplementary_gids.
With https://android-review.googlesource.com/#/c/195400, Minijail will
check for this failure so there's no need to do it here, which allows
to simplify the code.

Bug: 26099611
Change-Id: I7c876fdcab874ed403f82bdd5a4048c0f1e5db58
2016-01-08 10:56:20 -08:00
Josh Gao
62d65862a4 Merge "WA: Fix adb wait-for-device command" am: bf867cac7e
am: 4da27b1014

* commit '4da27b101499c59eb85e9650a97a7b2f980a2dee':
  WA: Fix adb wait-for-device command
2016-01-07 01:27:03 +00:00
Leo Sartre
94e0776eb8 WA: Fix adb wait-for-device command
Without -s argument, adb wait-for-device will make a call to
acquire_one_transport() with sinfo->serial.c_str() == "".
Waiting for acquire_one_transport() to be reworked to use std::string
rather than const char * for serial, work around this by passing NULL
when sinfo->serial is not initialized in host_service_to_socket().

Change-Id: Ifef53e0e82850364f5029ee36560376f2a4a5104
Signed-off-by: Leo Sartre <leox.sartre@intel.com>
2016-01-05 12:13:24 +01:00
Dan Willemsen
2b787e2b78 Merge "Limit adb_test to first multilib" am: 3fb7d97689
am: 03e6f710bc

* commit '03e6f710bc5263cbaf53149dac1d7f775a9ab051':
  Limit adb_test to first multilib
2015-12-22 22:20:42 +00:00
Dan Willemsen
1e20e0aa1d Limit adb_test to first multilib
It uses libadb, which is also only compiled for the primary
architecture. BUILD_HOST_NATIVE_TEST is changing the default
LOCAL_MULTILIB to match BUILD_NATIVE_TEST.

Change-Id: Ia9c002e641125eb996a7f198af1f182d0d6171c6
2015-12-21 16:17:24 -08:00
Elliott Hughes
ee5910c3ee Merge "Give adb a proper progress bar." am: 0e6a23c7d5
am: 91c228f1ef

* commit '91c228f1ef6845535e7e490f0d938cf5e4271f11':
  Give adb a proper progress bar.
2015-12-19 09:20:36 -08:00
Elliott Hughes
a00e6ef1ff Give adb a proper progress bar.
This factors out the duplication in the single-file progress, and adds a
whole-sync progress percentage to the front of the line. A number that's
both more interesting and easier to read.

This also fixes the >100 percentage reporting for files of unknown size.

Bug: http://b/26189482
Change-Id: I51501ccef6ae1f52425db0eb0862d87e90947a6c
2015-12-18 14:43:31 -08:00
Elliott Hughes
f6e7622aea Merge "adb host: add device state in "adb wait-for-*"" am: 82509e7925
am: ba7a198c29

* commit 'ba7a198c2976baf9574dd01d7719ec0443caba47':
  adb host: add device state in "adb wait-for-*"
2015-12-18 18:40:17 +00:00
Josh Gao
3f165e8d5b Merge "adb: extract USB FFS read/write limit constants." am: 1ff73936a7
am: 67a6d861ce

* commit '67a6d861ce47b2d555a0e6d4288f3c3d35a9155b':
  adb: extract USB FFS read/write limit constants.
2015-12-18 18:39:54 +00:00
Elliott Hughes
c85c7e84cc Merge "Improve "adb install"\'s error message slightly." am: d361582dc0
am: 79abeb68f2

* commit '79abeb68f26c3ff9b99929fe15b25fd202225ffc':
  Improve "adb install"'s error message slightly.
2015-12-18 18:39:33 +00:00
Jorge Lucangeli Obes
135405fd20 Merge "adb: Use Minijail for privilege dropping." am: 297a8381b5
am: f733d6acad

* commit 'f733d6acad6582fb7d816ef65bbeecfd745af5ec':
  adb: Use Minijail for privilege dropping.
2015-12-18 01:52:10 +00:00
Tom Cherry
065c723db2 Merge "Use selinux_android_setcon() instead of setcon()" am: 64cc0825a6
am: 4692984e92

* commit '4692984e92de83299f4c03ec176c9a4b4dcb0292':
  Use selinux_android_setcon() instead of setcon()
2015-12-18 01:48:52 +00:00
Elliott Hughes
82509e7925 Merge "adb host: add device state in "adb wait-for-*"" 2015-12-17 22:44:15 +00:00
Josh Gao
1ff73936a7 Merge "adb: extract USB FFS read/write limit constants." 2015-12-17 22:29:12 +00:00
Josh Gao
ae72b5aa4b adb: extract USB FFS read/write limit constants.
Change-Id: I5e9fb7959a1c4744cb8d53ece4634138239d4e49
2015-12-17 14:28:24 -08:00
Elliott Hughes
d361582dc0 Merge "Improve "adb install"'s error message slightly." 2015-12-17 22:17:38 +00:00
Elliott Hughes
fe01885c9b Improve "adb install"'s error message slightly.
We still don't really have a clue what went wrong, but "Failed to write"
made it sound like we did.

Change-Id: Ic58b13202e2d8ea6b095f7046db9d0771d77ce65
2015-12-17 14:04:38 -08:00
Jorge Lucangeli Obes
683dc4817f adb: Use Minijail for privilege dropping.
By using Minijail we avoid writing the same priv-dropping code over
and over again. This also enables future hardening opportunities.
We're already using Minijail for priv-dropping on Brillo.

Minijail is unit- and integration-tested on the
Chrome OS CI infrastructure (pulling from the same repo, see
https://wmatrix.googleplex.com/security?tests=security_Minijail0).
Once CI comes to Android, it will be continuously tested there as well.

Both 'adb root' and 'adb unroot' still work.

Bug: 26099611
Change-Id: I52c456ea272d27bd6fbc71200f4fdd928a592158
2015-12-17 10:49:53 -08:00
Tom Cherry
64cc0825a6 Merge "Use selinux_android_setcon() instead of setcon()" 2015-12-17 17:54:05 +00:00
Leo Sartre
1fbc9dbd0f adb host: add device state in "adb wait-for-*"
The current implementation of the host commands "adb wait-for-*" allows
to specify only the transport layer (local, usb or any).
This patch allows the specification of the expected device state
(bootloader, recovery, device or sideload), this is usefull for
scripting purposes.

Use case:
$ adb reboot sideload-auto-reboot
$ adb wait-for-usb-sideload && adb sideload package.zip

Change-Id: I276a6be4d82f8b7901f74e1e5395b86d16548e8f
Signed-off-by: Leo Sartre <leox.sartre@intel.com>
2015-12-16 18:11:18 -08:00