Commit graph

58 commits

Author SHA1 Message Date
Elliott Hughes
ff8fdc955a Address review comment.
Bug: N/A
Test: N/A
Change-Id: I9467286e57522c6ed640a3599cb678ac10d9e2a4
2017-01-09 14:28:42 -08:00
Elliott Hughes
7a890e5cf5 Move to .md files for even trivial documentation.
So it's automatically displayed for folks browsing the source.

Bug: N/A
Test: N/A
Change-Id: Ie9b190072ebdf0faf06cc1fd7b3467c031056753
2017-01-07 12:49:32 -08:00
Rahul Chaudhry
b29f23f7e7 Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap.
static_cast is preferable to reinterpret_cast when casting from void*
pointers returned by malloc/calloc/realloc/mmap calls.

Discovered while looking at compiler warnings (b/26936282).

Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma
Change-Id: Iaffd537784aa857108f6981fdfd82d0496eb5592
Merged-In: I151642d5a60c94f312d0611576ad0143c249ba3d
2016-11-15 23:24:54 -08:00
Josh Gao
acb2a2fa4c minadbd: rename adb_server_main to minadbd_main.
adb_server_main in adb refers to the adb server on the host, not adbd.
Since there doesn't seem to be a good reason to reuse the declaration
from adb's headers, give minadbd a main function of its own.

Change-Id: I748f1a6822dc14c726cb73ef3b533c57a6615608
2016-08-30 13:15:12 -07:00
Elliott Hughes
1675848a39 adb headers now refer to openssl headers.
Change-Id: Icddc4a4f226595338fafbcb14ee9338c58b4a80f
2016-08-09 18:46:57 -07:00
Elliott Hughes
24eb8a0643 Minor minadbd cleanup.
Distinguish our "services.cpp" more clearly from the regular adbd
"services.cpp", and remove a few useless includes of "sysdeps.h".

Change-Id: Ided4945a3ac5916133322ca7e95fa51add9abaa4
2016-06-16 19:57:20 -07:00
Josh Gao
cc07b35565 minadbd: update for adb_thread_create signature change.
Change-Id: Ifa0b4d8c1cf0bb39abac61984ff165e82e41222c
2016-02-12 15:00:52 -08:00
Elliott Hughes
9f4fdb3def Track name change from adb_main to adb_server_main.
Change-Id: I835805348a9817c81639ad8471e3b49cae93c107
2015-11-20 13:03:24 -08:00
Yabin Cui
c8a3c80603 minadbd: use strdup() to create argument for sideload thread.
So sideload thread will not use argument which is to be freed
in the main thread.

Bug: 23968770
Change-Id: I9d6dadc6c33cfbe4b5759382a80fe14cd0d54355
2015-09-29 18:09:34 -07:00
Yabin Cui
7c913e5faa minadbd: move from D() to VLOG().
Change-Id: I542e2ae8f5ef18b2d6b3dbc1888b3ce1e02a7404
2015-09-23 16:04:41 -07:00
David Pursell
c3d4d53546 minadbd: update service_to_fd() signature.
No functional change, just matching the signature to an adb change. See
https://android-review.googlesource.com/#/c/169601/.

Change-Id: Ic826864e126054849b3a4d193ded8acc5ee5269c
2015-09-03 16:41:42 -07:00
Elliott Hughes
faa75006af Fix recovery image build.
A recent adb cleanup changed the signature of adb_main.

Change-Id: I98d084f999966f1a7aa94c63e9ed996b3375096d
2015-08-07 13:21:06 -07:00
Elliott Hughes
9813f5ba57 Allow sideloading without authentication.
Bug: http://b/22025550
Change-Id: I20f09ae442536f924f19ede0abf6a2bcc0a5cedf
2015-06-23 11:12:58 -07:00
Tao Bao
80e46e08de recovery: Switch to clang
And a few trival fixes to suppress warnings.

Change-Id: I38734b5f4434643e85feab25f4807b46a45d8d65
2015-06-03 11:30:03 -07:00
Dan Albert
cc08a90cab Fix build following adb change.
Change-Id: I2e0fb7e880e205b0bca324ff53ffdb5df9e34baf
2015-05-08 10:50:54 -07:00
Elliott Hughes
921431ffc0 Track adb_thread_create API change.
Change-Id: Ia3f30f3ba85c0246d4b667fb7723cfcdce299d4a
2015-05-05 14:37:53 -07:00
Elliott Hughes
dbb20c4863 Fix mips64 minadbd_test build.
Looks like the mips64 linker isn't as good as the others at GCing
unused stuff, which means it needs libcutils.

Change-Id: I5f768e44514350fb81e5360351db3e9cc4201702
2015-05-01 22:29:01 -07:00
Elliott Hughes
4039933c62 Move minadb over to new API.
Change-Id: I889bcf2222245c7665287513669cae8831e37081
2015-05-01 17:07:44 -07:00
Elliott Hughes
ba45ddf37c Stop using adb_strtok, and check argument validity.
Change-Id: I323ffda71b82cc939aed446f9c9fb86ca78df153
2015-04-28 09:40:19 -07:00
Elliott Hughes
20531ef605 Switch minadb over to C++.
Change-Id: I5afaf70caa590525627c676c88b445d3162de33e
2015-04-10 13:59:19 -07:00
Dan Albert
b2f945932c Remove unused libutils references.
Change-Id: I22797643103ce1d4371198433ad9849cc83d3d7c
2015-03-13 22:33:38 -07:00
Dan Albert
ffd6c31a77 Add tests for read_block_adb.
These tests aren't completely representative in that they don't run in
the recovery image. We might want to look in to adding a self-test
option to the recovery UI. Until then, these can be run on a normal
device (which is easier to do anyway).

Bug: 19522788
Change-Id: Idb20feb55d10c62905c2480ab1b61a2e4b5f60d8
2015-02-26 17:00:11 -08:00
Dan Albert
190977157b This read accidentally got turned in to a write.
Too many mechanical changes in a row...

Bug: 19522788
Change-Id: Ic451792aab2700cdbdbb64529b99ff5f567918ad
2015-02-26 13:57:03 -08:00
Dan Albert
432584fccc Fix readx/writex names.
Change-Id: I9556960b8293ea0e81def8b73f88edadb68841e3
2015-02-25 15:08:15 -08:00
Dan Albert
12fa5191e7 Merge "Remove _(GNU|XOPEN)_SORUCE makefile cruft." 2015-02-25 18:04:55 +00:00
Narayan Kamath
017db6d89e Fix LP64 build for minadbd.
services.c:57:12: error: format '%llu' expects argument of type 'long
  long unsigned int', but argument 2 has type 'uint64_t' [-Werror=format=]

Change-Id: Ieba691bf9e7a30c8bb38f4e1f36e86b6ea3f8c80
2015-02-25 15:21:28 +00:00
Dan Albert
2404370589 Remove _(GNU|XOPEN)_SORUCE makefile cruft.
None of the functions needing these are used.

Change-Id: Ibe3ca24d993788bf2f1108bac8417a7094ef386b
2015-02-24 22:41:07 -08:00
Dan Albert
8f6eb5c045 Fix build from implicit declaration.
Turn the warning on by default and turn on -Werror so this doesn't
happen next time.

Change-Id: Id65bf0cb63bbf0ff224655b425463ae2f55435df
2015-02-24 22:07:18 -08:00
Dan Albert
f3a5726919 Kill of most of the remainder of minadbd.
I think everything left now is here to stay (services.c might get
massaged in to libadbd if it gets refactored).

Bug: 17626262
Change-Id: I01faf8b277a601a40e3a0f4c3b8206c97f1d2ce6
2015-02-19 15:41:35 -08:00
Dan Albert
9a894b7ece Move adb_main to its own file.
Change-Id: Ia5150e1ef8be5a8f2d2da0fdca9383e22218f4ac
2015-02-19 10:40:17 -08:00
Dan Albert
3efa676fa6 Remove dead code.
This code doesn't exist in the normal adb, so it just makes it harder
to diff the two.

Change-Id: Ibb21b49bb9944c4245199536cbe88e8a107cf00d
2015-02-18 16:44:24 -08:00
Dan Albert
1ddd350504 Use headers from adb.
adb.h has diverged a bit, so that one will be more involved, but these
three are all trivial, unimportant changes.

Change-Id: Ief8474c1c2927d7e955adf04f887c76ab37077a6
2015-02-18 16:14:16 -08:00
Dan Albert
2b2a14ff35 Remove unused code.
Change-Id: Ie37734e75bc4d1e284dcb5dee4c0512021663dbd
2015-02-18 15:11:29 -08:00
Dan Albert
8f1bfead3f Lose USB transport code to libadb.
Bug: 17626262
Change-Id: If41031ba20a3a75fa510f155c654a482b47e409d
2015-02-18 15:11:29 -08:00
Dan Albert
d808d2194f Add extern "C" to all the headers.
Change-Id: Idc249ff1b199b7c455f90092ff2c8a48b539faf4
2015-02-18 10:21:54 -08:00
Elliott Hughes
cd3c55ab40 Add missing includes.
Change-Id: I06ea08400efa511e627be37a4fd70fbdfadea2e6
2015-01-29 20:50:08 -08:00
Dan Albert
eaeb55f745 Merge "Start losing code to libadb." 2015-01-27 00:51:09 +00:00
Christopher Ferris
3ed8ef02ed 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: I83fd93df1df196300a80ddeb3b49ca7851ffcfb8
2015-01-26 12:53:20 -08:00
Badhri Jagan Sridharan
9e3cce50a3 adbd: 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.

Bug: 17394972

(cherry picked from commit b5b43043fa)

Change-Id: I5af9dc9d4f41ad47d678279054a648f69497b24e
2015-01-26 12:49:13 -08:00
Dan Albert
a01ce3a229 Start losing code to libadb.
Bug: 17626262
Change-Id: I8ce7cff2b7789f39f35a4211d7120d072c05a863
2014-11-25 10:59:42 -08:00
Yabin Cui
678f7d4a36 kill HAVE_FORKEXEC
Bug: 18317407
Change-Id: Idd4e0effa96752e2c0ca959728f80df4d2d34187
2014-11-12 16:51:45 -08:00
Dan Albert
ea5828a24f am 28ffde5e: Merge "Revert "Copy epoll(2) changes to minadb.""
* commit '28ffde5ebd33d5b693906a93087e6eea627cd8d0':
  Revert "Copy epoll(2) changes to minadb."
2014-09-26 16:12:23 +00:00
Dan Albert
f420f8eb63 Revert "Copy epoll(2) changes to minadb."
This reverts commit db8c959049.
2014-09-25 15:12:19 -07:00
Elliott Hughes
78a3027860 am 530b61e0: Merge "Copy epoll(2) changes to minadb."
* commit '530b61e0b5f154e5f38853c10a28e0ea6f41c2ca':
  Copy epoll(2) changes to minadb.
2014-09-23 18:57:39 +00:00
Elliott Hughes
db8c959049 Copy epoll(2) changes to minadb.
Bug: 17588403
Change-Id: Ib3525824ff09330bd9d6f9e96d662e5a55a20ec2
2014-09-23 10:50:55 -07:00
Doug Zongker
18a78e0a16 refactor fuse sideloading code
Split the adb-specific portions (fetching a block from the adb host
and closing the connections) out from the rest of the FUSE filesystem
code, so that we can reuse the fuse stuff for installing off sdcards
as well.

Change-Id: I0ba385fd35999c5f5cad27842bc82024a264dd14
2014-07-10 10:55:07 -07:00
Doug Zongker
075ad800c5 sideload without holding the whole package in RAM
Implement a new method of sideloading over ADB that does not require
the entire package to be held in RAM (useful for low-RAM devices and
devices using block OTA where we'd rather have more RAM available for
binary patching).

We communicate with the host using a new adb service called
"sideload-host", which makes the host act as a server, sending us
different parts of the package file on request.

We create a FUSE filesystem that creates a virtual file
"/sideload/package.zip" that is backed by the ADB connection -- users
see a normal file, but when they read from the file we're actually
fetching the data from the adb host.  This file is then passed to the
verification and installation systems like any other.

To prevent a malicious adb host implementation from serving different
data to the verification and installation phases of sideloading, the
FUSE filesystem verifies that the contents of the file don't change
between reads -- every time we fetch a block from the host we compare
its hash to the previous hash for that block (if it was read before)
and cause the read to fail if it changes.

One necessary change is that the minadbd started by recovery in
sideload mode no longer drops its root privileges (they're needed to
mount the FUSE filesystem).  We rely on SELinux enforcement to
restrict the set of things that can be accessed.

Change-Id: Ida7dbd3b04c1d4e27a2779d88c1da0c7c81fb114
2014-07-02 12:16:36 -07:00
Doug Zongker
5fbb729f3e Merge "exit instead of return if sideload file creation fails" 2014-05-16 17:42:12 +00:00
Mark Salyzyn
f3bb31c32f Recovery 64-bit compile issues
Change-Id: I92d5abd1a628feab3b0246924fab7f97ba3b9d34
2014-03-14 13:51:39 -07:00
Doug Zongker
2f173bde65 Merge "ADB sideload command not work" 2014-02-26 22:17:57 +00:00