Commit graph

129 commits

Author SHA1 Message Date
Spencer Low
d9de068a8a Merge "adb: win32: fix Unicode console output"
am: 52126a414b

Change-Id: I7b4cdacb43d8a1ef03572caa315c72afcb4b4122
2018-07-31 22:35:44 -07:00
Treehugger Robot
52126a414b Merge "adb: win32: fix Unicode console output" 2018-08-01 05:25:09 +00:00
Josh Gao
eded388d64 Merge changes Ib55d304d,I6fa078ea,I18e9213d,Ife58f0aa,Iccc55557
am: 24f9fc7fee

Change-Id: Ie8289b0df453c3326a12ae8959724ece738024f3
2018-07-31 21:23:58 -07:00
Josh Gao
258d4a91c9 adb: fix error message for adb {forward,reverse}
Test: `adb reverse`
Change-Id: I6fa078ea7a0e019df5c6309df99ffdf2a3219194
2018-07-31 15:57:52 -07:00
Spencer Low
771ba0c057 adb: win32: fix Unicode console output
commandline.cpp includes commandline.h which defines
StandardStreamsCallbackInterface which calls fwrite(). In the
compilation unit for commandline.cpp, fwrite is getting remapped to
adb_fwrite (good), but the compilation unit for bugreport.cpp includes
sysdeps.h pretty late, which prevents fwrite from getting remapped to
adb_fwrite.

Apparently when linking, the version of StandardStreamsCallbackInterface
that gets used is the one from bugreport.cpp's compilation unit, which
doesn't call adb_fwrite().

And it's necessary to call adb_fwrite() to get Unicode console output on
Windows.

The fix is to #include "sysdeps.h" earlier in bugreport.cpp. I searched
the other object files for other unremapped calls to printf/fwrite/etc.
and didn't find any.

Bug: https://issuetracker.google.com/issues/111972753
Test: mma, manual test on Windows 10 x64

Change-Id: I322dff75a878397f5e10227e746e77b0024129d0
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2018-07-30 19:53:23 -07:00
Josh Gao
b272ccfd1b Merge changes Ic90fac0b,Id9c12303,I2d9bdcb1,I9d699af1,Ia4d03f9e, ...
am: 46f281edf5

Change-Id: I58222a24da5d67526b8c9f492427d8420923f6c3
2018-07-26 13:19:14 -07:00
Josh Gao
86acb863ff adb: split shell_service.h into client/daemon/protocol parts.
Test: treehugger
Change-Id: I67042f6b29a8a07619b8d56e7376d49b956a840c
2018-07-25 18:08:44 -07:00
Josh Gao
edec033b26 adb: split file_sync_service.h into client and daemon parts.
Test: treehugger
Change-Id: I648c7001903a91448c69986e08a6cd2dd76ed793
2018-07-25 18:08:32 -07:00
Luis Hector Chavez
0314aa7c9a Merge changes Iccfe3bd4,I6380245b,I20d9f2fe
am: c23280a1e3

Change-Id: Ifbd8d9d41e69087f421cd1288bfc1337277d6b0d
2018-07-20 11:47:43 -07:00
Luis Hector Chavez
6150a37dbe adb: Remove most C-style allocations
This change gets rid of most malloc/calloc/free calls. The future is
now!

Bug: None
Test: test_device.py
Change-Id: Iccfe3bd4fe45a0319bd9f23b8cbff4c7070c9f4d
2018-07-19 09:41:40 -07:00
Jerry Zhang
a515d5bd27 Merge changes I31e444f3,If07ff05f,If3ba190d
am: cb140c04c9

Change-Id: I1fd605920a444413498322ba6810aa5b6a018a20
2018-07-17 15:46:26 -07:00
Jerry Zhang
cb140c04c9 Merge changes I31e444f3,If07ff05f,If3ba190d
* changes:
  adb: Add io size and zero packet to usb_handle
  adb: Have device usb_handle return io size
  adb: Expose device usb_handle through libadbd
2018-07-17 22:35:36 +00:00
Jerry Zhang
16b78db945 adb: Have device usb_handle return io size
Previously, read and write would return 0
on success. Now it will return the number
of bytes read/write. This is more consistent
with other usb handles and is needed in order
to handle partial packets (for fastbootd).

Update usb_write in other usb handles
to return amount written.

Change transport_usb accordingly.

Test: adb works
Bug: 78793464
Change-Id: If07ff05fbc8120343f20661475d34f4e5ff805de
2018-07-17 11:53:30 -07:00
Yi Kong
6705b6c7cd Merge "[adb] Modernize codebase by replacing NULL with nullptr"
am: a63b3309ff

Change-Id: I7183b79b8210e15986418187b0dcc13233bed294
2018-07-17 10:55:17 -07:00
Yi Kong
aed415cc47 [adb] Modernize codebase by replacing NULL with nullptr
Fixes -Wzero-as-null-pointer-constant warning.

Test: m
Bug: 68236239
Change-Id: Ia8c4deacafed2f3b7dbc3d4c3c77c6c632e3de81
2018-07-13 18:21:00 -07:00
Josh Gao
8cba284079 Merge "adb: work around adbd push bug."
am: 3eb5d77913

Change-Id: Icd6d88c26322c5bc4b18bfb1848b8dce98c4dd91
2018-07-11 12:10:23 -07:00
Josh Gao
0cee7ccc59 adb: work around adbd push bug.
We shipped (well, are about to ship) an adbd that spuriously fails to
create directories upon push. Work around this in the adb client by
running a mkdir on all of the directories we would have otherwise
created.

On devices where we perform the workaround, this coincidentally fixes
a historic bug where we failed to push empty directories.

Bug: http://b/25566053
Bug: http://b/110953234
Test: python test_device.py
Change-Id: I690ec356c206fed4e5ab2c681c5570c8b231e26b
2018-07-10 13:20:40 -07:00
Elliott Hughes
1f40b2c171 Merge "Simplify __attribute__((__printf__)) use."
am: 2aa50ff56d

Change-Id: Idbbad879ce10878aef55c4ead9ecaee40a4c1a71
2018-06-26 17:17:48 -07:00
Elliott Hughes
d8a4c60276 Simplify __attribute__((__printf__)) use.
We don't need this now everyone's using clang...

Bug: http://b/69933068
Test: ran tests
Change-Id: I88f0cf03981ade47e210387fd6f3a2706dfeb9b8
2018-06-26 13:07:21 -07:00
Josh Gao
a21afda733 Merge changes Ibfa5e7e6,I706b57a9,I53d21134,I69d4d585
am: 9674bcbd23

Change-Id: Ibfec0e2581ec6ec6167d63e05deeed1263f0f458
2018-06-18 19:52:02 -07:00
Josh Gao
172d0d44bc adb: add adb raw to connect to an arbitrary service.
Add a command to connect to an arbitrary service, for debugging
purposes.

Test: `adb raw shell:ls`
Change-Id: I69d4d585e5ecfa7cb8c7a543a2a27df7033b26c7
2018-06-18 14:51:56 -07:00
Elliott Hughes
e6df12e68c Merge "Fix adb logcat return code."
am: 5587aba58d

Change-Id: I7b79c9d5d938a3104613cf063658af3ad8f9858c
2018-06-14 13:07:00 -07:00
Elliott Hughes
31f0f1bcee Fix adb logcat return code.
`adb shell logcat` works, and `adb logcat` should too.

Bug: http://b/110202648
Test: suspended the logd process and manually removed the socket
Change-Id: If14de7c2eb178c7b4210d6bdb44df084615db33a
2018-06-14 10:47:00 -07:00
Pirama Arumuga Nainar
7d2fc04d1b Merge "Fix exit-time-destructor warning" am: ae74e42d25
am: a40b43eb45

Change-Id: I949f06ec7335a9f0fd6b285885b214d0cbe038b9
2018-06-06 18:58:32 -07:00
Treehugger Robot
ae74e42d25 Merge "Fix exit-time-destructor warning" 2018-06-06 23:28:07 +00:00
Pirama Arumuga Nainar
8b47d316d2 Fix exit-time-destructor warning
By initializing the global handle_list on the heap.

Test: Run Clang-built adb_test.exe under wine
Change-Id: I2326011b7e44c6d0cb4721d4b68fde7188b87c38
2018-06-06 14:41:26 -07:00
Josh Gao
78f50689f1 Merge changes I465804fd,Ib5a684bb,If5e66570,I8471cc00,I8ba0a70a am: 7a223584c5
am: 3f111c8963

Change-Id: I77c0ecc49a10148feb752d7afdf9bf5a192bef9f
2018-05-23 18:36:05 -07:00
Josh Gao
7a223584c5 Merge changes I465804fd,Ib5a684bb,If5e66570,I8471cc00,I8ba0a70a
* changes:
  adb: convert fdevent over to unique_fd.
  adb: move towards using unique_fd.
  adb: delete FDEVENT_DONTCLOSE.
  adb: remove fdevent_install, fdevent_remove.
  adb: fix uninitialized variable in AsyncServiceRef.
2018-05-23 00:01:29 +00:00
Josh Gao
71f775a944 adb: remove fdevent_install, fdevent_remove.
Remove fdevent_install and fdevent_remove in favor of using
fdevent_create and fdevent_destroy, so that we can put RAII types (i.e.
unique_fd) into fdevent without worrying about -Wexit-time-destructors
or structs that are freed instead of deleted.

Bug: http://b/79786774
Test: python test_device.py
Change-Id: I8471cc00574ed492fe1b196944976cdaae8b7cff
2018-05-22 14:54:49 -07:00
Luis Hector Chavez
c52d7d387e Merge changes I4d6da40d,I91c7ced5,I7b9f6d18 am: 2fa9770c3a
am: 2571b1f0a7

Change-Id: If8e98b0f9aca81245ecb15a1e1e65dcbd1f3b87d
2018-05-21 15:55:32 -07:00
Luis Hector Chavez
454bc7c0be adb: Add a way to reconnect TCP transports
This change adds a reconnect handler that tracks all TCP transports that
were connected at some point, but became disconnected. It does so by
attempting to reconnect every 10s for up to a minute.

Bug: 74411879
Test: system/core/adb/test_adb.py
Test: adb connect chromebook:22  # This runs with sslh
Test: CtsBootStatsTestCases
Test: emulator -show-kernel ; adb -s emulator-5554 shell

Change-Id: I7b9f6d181b71ccf5c26ff96c45d36aaf6409b992
2018-05-16 15:20:48 -07:00
Josh Gao
2744084981 adb: fix uninitialized variable in AsyncServiceRef.
Bug: none
Test: treehugger
Change-Id: I8ba0a70a772f88bfd701730a48d4eb32c6677b9e
2018-05-15 23:43:50 -07:00
Josh Gao
6f29036721 Merge "adb: add authorizing, connecting states to transport." am: c97cea0d20
am: ec0dd9b71f

Change-Id: I838bac019ac460bbb8ede63ce84c39723638f1a5
2018-05-09 13:54:06 -07:00
Josh Gao
c97cea0d20 Merge "adb: add authorizing, connecting states to transport." 2018-05-09 20:43:31 +00:00
android-build-prod (mdb)
15d36ded11 Merge "Documented adb install --instant" am: 53248e47f4
am: 936a41acc8

Change-Id: I9769a391a7a2d4c5cd636db0529ca62d904e598c
2018-05-09 11:40:36 -07:00
Felipe Leme
807be77c25 Documented adb install --instant
Test: m -j32 adb && ./out/host/linux-x86/bin/adb help 2>&1 | grep instant
Bug: 79422318

Change-Id: I2830a9e3cf81becac1a6334670d8dc487fe72322
2018-05-09 09:33:38 -07:00
Josh Gao
704494b070 adb: add authorizing, connecting states to transport.
Add two states: connecting and authorizing, to disambiguate the offline
and unauthorized states, respectively.

Previously, devices would transition as follows:

  offline -> unauthorized -> offline -> online
  offline -> unauthorized (when actually unauthorized)

With this patch:

  connecting -> authorizing -> online
  connecting -> authorizing -> unauthorized (when actually unauthorized)

This allows test automation and the like to distinguish between offline
devices, unauthorized devices, and working devices without having to
do retry loops with arbitrary sleeps on their end.

Bug: http://b/79257434
Test: adb_test
Test: adbd_test
Test: manually plugging in a device with `while true; do adb shell echo foo; done`
Change-Id: I036d9b593b51a27a59ac3fc57da966fd52658567
2018-05-04 18:05:18 -07:00
Josh Gao
8abec3c2f0 Merge changes Ida272d21,If3f29f9e,I7dc5258d,I55258c15,Ibad79770 am: cd71fd5109
am: f1cf3868b4

Change-Id: Iea7ef597253ab702aba281b267c5deb092d8f5ee
2018-04-13 14:09:49 -07:00
Josh Gao
1ce99576f0 adb: switch apacket payload to a type that doesn't initialize its contents.
Switch from using std::string as the type we use to hold our payload in
apacket to a custom reimplementation that doesn't zero initialize. This
improves bulk transfer throughput in the adb_benchmark microbenchmark
on walleye by ~20%.

Test: adb shell taskset f0 /data/benchmarktest64/adb_benchmark/adb_benchmark
Change-Id: Ibad797701eb1460c9321b0400c5b167b89b2b4d0
2018-04-11 12:54:07 -07:00
Josh Gao
647043365b Merge "adb: properly calculate packet size on Mac." am: ee63d74b6c
am: 994a47cc98

Change-Id: I61aa194b43d50625edf3b8be84f65b5a2dbef709
2018-04-10 17:42:22 -07:00
Treehugger Robot
ee63d74b6c Merge "adb: properly calculate packet size on Mac." 2018-04-11 00:27:36 +00:00
Josh Gao
2ea46521f3 adb: properly calculate packet size on Mac.
OS X reports maxPacketSize as wMaxPacketSize * (bMaxBurst + 1) in the
deprecated GetPipeProperties function. Use the also-deprecated
GetPipePropetiesV2 API to get bMaxBurst and figure out what
wMaxPacketSize is. (This file is going to go away eventually, so don't
bother with switching to the recommended GetPipePropertiesV3, since
it would be a substantially larger charge.)

libusb is unaffected.

Bug: http://b/77733422
Test: python test_device.py
Change-Id: I66517d699a4f39b93ba5eb7882bd8ee6c70f3672
2018-04-10 14:46:34 -07:00
Elliott Hughes
a5f2f7cc5e Merge "Support /odm and /product in "adb remount" and "adb sync"." am: 6eb9248cb3
am: 9b0d281c4f

Change-Id: Icb2a0362e320f988aae20f7766f2fb39b85569c6
2018-04-05 19:49:11 -07:00
Elliott Hughes
57e97cb7aa Support /odm and /product in "adb remount" and "adb sync".
Bug: http://b/77587036
Test: `adb remount` and `adb sync` still work on hikey
Change-Id: I960ae75099edf147f857a67d906b6bc133f817a7
2018-04-04 13:14:59 -07:00
Josh Gao
48aa138ac6 Merge changes I99b85f07,If28f6c8d am: 6156420fb7
am: 0204f8c2f2

Change-Id: I20b80d869279af82393c382ea837197633e4757c
2018-03-19 20:36:53 +00:00
Josh Gao
31b5be69f4 adb: implement std::make_unique, start using it.
Add an implementation of std::make_unique for Windows, where we're
currently stuck with C++11, and switch some uses of new over to it.

Test: treehugger
Change-Id: I99b85f07754adda7c525243480c3e0bce9a25ce7
2018-03-16 15:35:52 -07:00
Josh Gao
360cf3703b Merge changes from topic "adb_bp" am: 9ee373ac2c
am: ca6ec5c48b

Change-Id: I1a9a4bc92bf48d1d0af6bf74f6f84d20d43d10c9
2018-03-06 01:36:57 +00:00
Josh Gao
9ee373ac2c Merge changes from topic "adb_bp"
* changes:
  adb: remove meaningless const.
  adb: convert Connection to a nonblocking interface.
  adb: use soong version stamping.
  adb: switch over to Android.bp.
2018-03-05 23:45:27 +00:00
George Burgess IV
657db00e3d Add a NOLINT for the memory leak we added
Added by I7255d45335fa009dc9e5de99dff67af52bd70e06

Bug: None
Test: Ran the analyzer. Complaint is gone.
Change-Id: Id9b8debd8b9690210f5a8e19154ee3a5095b8fbd
2018-03-01 18:59:50 +00:00
Josh Gao
2776845aa5 adb: switch over to Android.bp.
Rearrange some files while we're doing this.

Bug: http://b/71721338
Test: manually ran adb on windows
Change-Id: Ie47bda82279e4b9521505ad0353bf9ef649fc7d7
2018-02-28 15:29:50 -08:00