Commit Graph

21819 Commits

Author SHA1 Message Date
Yurii Zubrytskyi 049ebb810f [adb] Followup CL to clean up adb_auth_host.cpp
Get rid of unused includes + replace a fixed-size buffer with an
std::string

Change-Id: I4f9927b900a79a012b5d52908b9d22ac3d2a401c
2016-05-26 18:12:15 -07:00
Yurii Zubrytskyi a9e2b99a7f [adb] Issue the "auth" emulator command before any other one
Emulator console now requires authentication; this means
'adb emu ...' commands silently fail because of it.
This CL adds an 'auth <token>' command to each user command,
making sure it won't be silently ignored.

Bug: https://code.google.com/p/android/issues/detail?id=211233
Change-Id: Id9ca4999fd2e6393cc88278eaf444243e13c0ec0
2016-05-26 18:11:59 -07:00
Elliott Hughes 1265fd4934 resolve merge conflicts of f0d4f38 to nyc-dev
Change-Id: Ibce10a3c66560c10c67bd51f5b568552f43825f2
2016-05-24 17:22:51 -07:00
Elliott Hughes f0d4f38773 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6 am: 1a98776aee am: ad0c2bf5f3 am: a17f2802b1 am: 20b1e79563 am: c443a447b2
am: 5538f8bb63

* commit '5538f8bb63c79d1b9de6e809e085bd78b1027f9c':
  Fix scanf %s in lsof.

Change-Id: I09d37fb2798e6038bb00fb8e210b9d3c5348a4e4
2016-05-24 23:11:36 +00:00
Elliott Hughes 5538f8bb63 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6 am: 1a98776aee am: ad0c2bf5f3 am: a17f2802b1 am: 20b1e79563
am: c443a447b2

* commit 'c443a447b2f6e950b03fe472c5f7cb6c54e9ba61':
  Fix scanf %s in lsof.

Change-Id: Ia66e81641532cf7bca669fb52095aeca90158807
2016-05-24 23:08:36 +00:00
Elliott Hughes c443a447b2 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6 am: 1a98776aee am: ad0c2bf5f3 am: a17f2802b1
am: 20b1e79563

* commit '20b1e795637686d3a18c79413cccbba16881e295':
  Fix scanf %s in lsof.

Change-Id: Ic63528dee82e3045020b527c093b9b4fffaf5530
2016-05-24 23:05:55 +00:00
Elliott Hughes 20b1e79563 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6 am: 1a98776aee am: ad0c2bf5f3
am: a17f2802b1

* commit 'a17f2802b153b2ee361fea9a6cc37da0613a2e55':
  Fix scanf %s in lsof.

Change-Id: I088944d9c376de58705698bfe7d417a10c708909
2016-05-24 23:02:26 +00:00
Elliott Hughes a17f2802b1 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6 am: 1a98776aee
am: ad0c2bf5f3

* commit 'ad0c2bf5f345a4cdb53a3e4f690db842e8df1685':
  Fix scanf %s in lsof.

Change-Id: I51f630de4cb5ce667ac856a1848206c368816aea
2016-05-24 22:59:18 +00:00
Elliott Hughes ad0c2bf5f3 resolve merge conflicts of 7f5da85 to lmp-dev am: de529e72b6
am: 1a98776aee

* commit '1a98776aee4d02c33d922bbbe3ffdd54099840a9':
  Fix scanf %s in lsof.

Change-Id: I1af0d93d03631f257b1372a08aad158508f652ea
2016-05-24 22:56:38 +00:00
Elliott Hughes 1a98776aee resolve merge conflicts of 7f5da85 to lmp-dev
am: de529e72b6

* commit 'de529e72b63c135053711ceb27a043f8d80e308c':
  Fix scanf %s in lsof.

Change-Id: I4dc617bbe052059b04296e4213fb778fbf3cf8eb
2016-05-24 22:53:55 +00:00
Elliott Hughes de529e72b6 resolve merge conflicts of 7f5da85 to lmp-dev
Change-Id: I7a7547426a229ac99d187ec8bfabd49c4da51907
2016-05-24 15:23:48 -07:00
Elliott Hughes 7f5da85015 Fix scanf %s in lsof. am: 008efb756f
am: 491dfb11b7

* commit '491dfb11b762f44dc9848496d5d30514082aab64':
  Fix scanf %s in lsof.

Change-Id: Ife17fa56f125dfec08d0d4b0c5c368bdae51106e
2016-05-24 22:13:03 +00:00
Elliott Hughes 491dfb11b7 Fix scanf %s in lsof.
am: 008efb756f

* commit '008efb756fea8a9e66a1825b546e9dc392c72bec':
  Fix scanf %s in lsof.

Change-Id: I608ae2094649617308b45571df1b649724ec8ac3
2016-05-24 22:10:19 +00:00
TreeHugger Robot 07f46c84e6 Merge "Remove target_sdk_version parameter" into nyc-dev 2016-05-24 16:59:12 +00:00
Dimitry Ivanov 94ee4e690d Remove target_sdk_version parameter
Since linker-namespaces are enabled for all target_sdk_versions
and there is no longer need in workarounds in libnativeloader -
remove unused target_sdk_version parameter for internal calls.

This also brings libnativeloader closer to aosp/master

Bug: http://b/26040253
Change-Id: I7d6f6ac31be0dca5f3c3f6ea20e6cc87ce3a3c7f
2016-05-24 08:40:38 -07:00
Hans Boehm 5668b84f99 Merge "Fix SharedBuffer. Remove aref." into nyc-dev 2016-05-24 04:10:29 +00:00
Yabin Cui fcab9a8507 Merge "adb: close ep0 on disconnection." into nyc-dev 2016-05-24 00:15:27 +00:00
Hans Boehm 54828dc739 Fix SharedBuffer. Remove aref.
Add comment that SharedBuffer is deprecated.

Both aref and SharedBuffer had memory ordering bugs.  Aref has no
clients.

SharedBuffer had several bugs, which are fixed here:

mRefs was declared neither volatile, not atomic, allowing the
compiler to, for example, reuse a stale previously loaded value.

It used the default android_atomic release memory ordering, which
is insufficient for reference count decrements.

It used an ordinary memory read in onlyOwner() to check whether
an object is safe to deallocate, without any attempt to ensure
memory ordering.

Comments claimed that SharedBuffer was exactly 16 bytes, but
this was neither checked, nor correct on 64-bit platforms.

This turns mRef into a std::atomic and removes the android_atomic
dependency.

Bug: 28826227
Change-Id: I39fa0b4f70ac0471b14ad274806fc4e0c0802e78
(cherry picked from commit 3e4c076ef2)
2016-05-23 15:19:53 -07:00
Hans Boehm 70a46d674a Fix memory order and race bugs in Refbase.h & RefBase.cpp
Convert to use std::atomic directly.

Consistently use relaxed ordering for increments, release ordering
for decrements, and an added acquire fence when the count goes to
zero.

Fix what looks like another race in attemptIncStrong:
It seems entirely possible that the final adjustment for
INITIAL_STRONG_VALUE would see e.g. INITIAL_STRONG_VALUE + 1,
since we could be running in the middle of another initial
increment.

Attempt to somewhat document what this actually does, and
what's expected from the client. Hide the documentation in
the .cpp file for now.

Remove a confusing redundant test in decWeak. OBJECT_LIFETIME_STRONG
and OBJECT_LIFETIME_WEAK are the only options, in spite of some
of the original comments.

It's conceivable that either of these issues has resulted in
actual crashes, though I would guess the probability is small.
It's hard enough to reason about this code without the bugs.

Bug: 28705989
Change-Id: I4107a56c3fc0fdb7ee17fc8a8f0dd7fb128af9d8
(cherry picked from commit e263e6c633)
2016-05-19 16:18:26 -07:00
Josh Gao d4af0d64de Merge changes I40a11748,I5e56f17f,Ie3748b6c,I4e1d56a8 into nyc-dev
* changes:
  adb: use asocket's close function when closing.
  adb: switch the socket list mutex to a recursive_mutex.
  adb: clang-format sockets.cpp.
  adb: add implementations of mutex, recursive_mutex.
2016-05-19 19:36:36 +00:00
Josh Gao 014b01706c adb: use asocket's close function when closing.
close_all_sockets was assuming that all registered local sockets used
local_socket_close as their close function. However, this is not true
for JDWP sockets.

Bug: http://b/28347842
Change-Id: I40a1174845cd33f15f30ce70828a7081cd5a087e
(cherry picked from commit 53eb31d87c)
2016-05-18 17:20:30 -07:00
Josh Gao 268068f256 adb: switch the socket list mutex to a recursive_mutex.
sockets.cpp was branching on whether a socket close function was
local_socket_close in order to avoid a potential deadlock if the socket
list lock was held while closing a peer socket.

Bug: http://b/28347842
Change-Id: I5e56f17fa54275284787f0f1dc150d1960256ab3
(cherry picked from commit 9b587dec6d)
2016-05-18 17:20:30 -07:00
Josh Gao 63760409ad adb: clang-format sockets.cpp.
Bug: http://b/28347842
Change-Id: Ie3748b6c803d4e8056e9d7abd065a8b99d945a5b
(cherry picked from commit 52bd8526aa)
2016-05-18 17:20:30 -07:00
Josh Gao 6e106990cf adb: add implementations of mutex, recursive_mutex.
Our version of mingw doesn't support std::mutex or
std::recursive_mutex, so implement our own using the Windows primitives.

Bug: http://b/28347842
Change-Id: I4e1d56a89bc5fcb5f859bf5014343697a4a85b77
(cherry picked from commit 903b749f78)
2016-05-18 17:20:30 -07:00
Elliott Hughes 847d963598 Remove a dead header (<netutils/dhcp.h>).
9c07eb9dd8 removed the implementation, but
missed the header file.

Bug: http://b/27192644
Change-Id: I809a3eb0081b05783b70dbca0274cdde6b1b31a6
2016-05-18 14:22:15 -07:00
Dimitry Ivanov ade364b456 Set parent namespace for linker-namespaces
This change allows applications to share RTLD_GLOBAL
native libraries between namespaces associated with
different classloaders.

The rule is - if a library is GLOBAL within namespace
associated with parent classloader, it is shared
with namespace associated with this classloader

Note that the sharing happens on create_namespace
event, which is tied to createClassloader in case of
application classloaders created by the framework, for
custom application classloaders it is tied to first
loadLibrary() event.

Bug: http://b/28560538
Bug: https://code.google.com/p/android/issues/detail?id=208458
Change-Id: I7ee701166f8ec5eff033b7acc0f80c7aa4ec5bda
(cherry picked from commit 24db75c1ce)
2016-05-17 15:58:56 -07:00
Ruchi Kandoi 6e394f0f6c healthd: Check if battery device exists instead of charger drivers before setting fake properties. am: 9cb3d3ccf4
am: f2ca669e80

* commit 'f2ca669e80078254ad3aceac800161b3266d3195':
  healthd: Check if battery device exists instead of charger drivers before setting fake properties.

Change-Id: I8115836dbd81264634dd7ab84bc360ac610a030b
2016-05-17 18:23:04 +00:00
Ruchi Kandoi f2ca669e80 healthd: Check if battery device exists instead of charger drivers before setting fake properties.
am: 9cb3d3ccf4

* commit '9cb3d3ccf49bf0fd484563fbf611c68789d5b8a9':
  healthd: Check if battery device exists instead of charger drivers before setting fake properties.

Change-Id: I521f7a7d097da915e40a273d73a655aa01ea397e
2016-05-17 18:20:14 +00:00
Michael Wright a34a383607 Merge "Fix strstr16." into nyc-dev 2016-05-17 17:18:49 +00:00
Dimitry Ivanov 25df4bff44 Pass permitted_path to the linker as is.
Now that we have the fixed list of whitelisted libraries
there is no longer need to check if java_permitted_path is nullptr.
In fact checking it prevents custom classloaders created by apps
from loading libraries using absolute path.

Bug: http://b/28659864
Change-Id: I1bfc16a573b090f70f078ecccd0e4016939a5dc0
(cherry picked from commit b31caa95ec)
2016-05-16 18:09:15 -07:00
Michael Wright 0fd60eb9b4 Fix strstr16.
strcmp needs a limit, otherwise it will compare the null terminator
with the next character in the haystack, which results in the compare
failing for all searches except where the needle is found at the very
end.

Bug: 28663748
Change-Id: I1939dc4037c2f2a75d617943b063d2d38a8c5e3a
2016-05-16 21:23:07 +01:00
Ruchi Kandoi 9cb3d3ccf4 healthd: Check if battery device exists instead of charger drivers before
setting fake properties.

healthd used to check for registered charger drivers to determine if the
device is an always-plugged device with no battery. This patch changes
it to check for battery instead.

Change-Id: Ie4ff5d3f21dc1a83a780a41eb0c929f66b86d631
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
(cherry picked from commit fabd490f58)
2016-05-16 08:58:35 -07:00
TreeHugger Robot 8b452b876b Merge "Add String16#contains and strstr16 methods." into nyc-dev 2016-05-16 13:21:11 +00:00
Dimitry Ivanov c337cae9ad Move linker-namespace functions declarations
They are intended for platform use only and we shouldn't have them
in the public header file. This CL moves them to libnativeloader
private header file.

Bug: http://b/28174921
Change-Id: I01cf446d2d8d7cf6f9e31130aa3d4e54fbbbb9fc
(cherry picked from commit 6796522256)
2016-05-11 14:20:12 -07:00
Dimitry Ivanov 6edd0c3a68 Merge "nativeloader: Ignore empty java_permitted_path" into nyc-dev 2016-05-11 04:58:17 +00:00
Dimitry Ivanov d0b1531929 nativeloader: Ignore empty java_permitted_path
Passing empty permitted path should result in no-op.
This addresses review comment on CL with commit
f334cbf0e1

Bug: http://b/28639227
Change-Id: I4a4540e522e90a145a374939921932c86f35e88d
2016-05-10 17:32:38 -07:00
Paul Crowley 8a59fa8524 Merge "Wipe device on policy error" into nyc-dev 2016-05-10 22:12:49 +00:00
Paul Crowley af8be58ca2 Wipe device on policy error
If we fail to set a crypto policy on a system-DE directory, this is a
serious and unrecoverable condition; the only way forward is to erase
the entire device. In a future commit we will also allow users the
option of booting again.

Bug: 28318405
Change-Id: Iff1e52c5bbee1beed29dc4b609d24bfeb7d138da
2016-05-10 11:04:39 -07:00
Dimitry Ivanov f334cbf0e1 Extend white-listed directories to include /mnt/expand
Apps on sdcard live under /mnt/expand and therefore
this directory should be under linker namespaces
permitted_path.

Bug: http://b/28639227
Change-Id: I462f9f23656c95d9c2a48bb3f513abcd9d08f340
2016-05-10 10:39:48 -07:00
Dimitry Ivanov cf9892b6d1 nativeloader: Fix the case of search_path == null
When user creates custom classloader which does not extend
BaseDexClassLoader the librarySearchPath gets set to null
by java.lang.Runtime.doLoad().

This patch makes nativeloader correctly handle it.

Bug: http://b/28659864
Change-Id: I1b61c6bc952984d7c49775a9178fc3270948e62a
(cherry picked from commit 8a0425b86a)
2016-05-09 12:21:55 -07:00
Michael Wright 5bacef33c9 Add String16#contains and strstr16 methods.
These are needed for aapt to find javadoc comments that contain
"@removed" in order to skip them when printing styleable docs.

Bug: 28663748
Change-Id: I8866d2167c41e11d6c2586da369560d5815fd13e
2016-05-09 19:45:07 +01:00
Rubin Xu 08660a811e Return correct length from pmsgRead()
Bug: 28610769
Change-Id: I38cac786ca43ef8d9530f4e2e5a0bdd4cc3bccef
2016-05-09 16:53:30 +00:00
TreeHugger Robot ea41a18c93 Merge "Add public libs from an environment variable" into nyc-dev 2016-05-06 21:57:11 +00:00
Josh Gao 72e47300fb Merge "adb: search for a maximum of 16 emulators." into nyc-dev 2016-05-06 21:23:28 +00:00
Dimitry Ivanov 7d02829636 Add public libs from an environment variable
This is enabled only for builds with ro.debuggable=1
It is intended for use only in tests using dalvikvm
and needing access to platform libraries.

Bug: http://b/28449304
Change-Id: I402457d0da542996ccf265aeaa305f09881e4333
(cherry picked from commit 4ddabd01bf)
2016-05-06 13:16:45 -07:00
Josh Gao 9fe742684c adb: search for a maximum of 16 emulators.
Android Wear has unfortunately been using port 5601 for years, which
falls into the range of ports we were previously polling for Android
emulators. Reduce the maximum number of emulators we can support so
that 5601 no longer falls within our range.

Bug: http://b/26468076
Change-Id: I931809cfa412122f4781eebe0164facab12c95f0
2016-05-06 11:27:19 -07:00
Christopher Ferris fd1eee58f9 Merge "Set groups before dropping privileges." into nyc-dev 2016-05-05 21:49:43 +00:00
Christopher Ferris dac26a76c3 Merge "Fix null pointer dereference." into nyc-dev 2016-05-05 21:19:52 +00:00
Christopher Ferris 039976e553 Fix null pointer dereference.
In the function dump_thread_info, if /proc/<PID>/comm is unreadable, then
threadname will be used in a strncmp causing a crash. The fix is to
avoid the check if threadname is null.

Bug: 28615417
Change-Id: I54eda86404c927dbf5a987f5dd2108487df9f16c
2016-05-05 11:21:11 -07:00
Christopher Ferris edc2380109 Set groups before dropping privileges.
The code for dumping tombstones tries to read the log data. This was
silently failing after the change to drop root privileges. Fix this
by explicitly setting the groups allowed before dropping privileges.

Bug: 28590884
Change-Id: Iaccb1d2928268fc9fc855f6e3814c31ce019badf
2016-05-05 11:13:50 -07:00