Commit Graph

21573 Commits

Author SHA1 Message Date
Dimitry Ivanov 4b0e963872 Move list of public libraries to a config file
This list contains libraries that should directly or indirectly
be accessible to apps for the platform. Note that this list is
not device specific but rather device class specific.

For now we have 2 separate lists; one for Android Phones and Tablets,
and another one for Android Wear devices.

Bug: http://b/27546414
Bug: http://b/22548808
Change-Id: I83de5e3cf67392d0e9af66f70123898bd5997146
2016-03-17 09:45:52 -07:00
Dimitry Ivanov 9c0a202977 Revert "libnativeloader: Make webviewchromium so file optional"
This reverts commit 75dda7551f.

Bug: http://b/27546414
2016-03-16 13:54:33 -07:00
Prashant Malani 75dda7551f libnativeloader: Make webviewchromium so file optional
Not all android devices ship with Webview. The requirement of
libwebviewchromium_plat_support.so to be loaded while initializing the
android namespace is therefore liable to cause a crash on devices that
don't support or use Webview. Therefore, this patch makes this
requirement conditional, but enabled by default.

To remove the dependency, device make files should add the following:

TARGET_IGNORE_WEBVIEW_CHROMIUM := true

Bug: 27336841
Bug: 27546414
Change-Id: Iaec1b58236356d981504ea8f716413ea334ca4f4
2016-03-16 13:03:12 -07:00
Mark Salyzyn 53263ffa00 liblog: test: security buffer is allowed to be denied
(cherry pick from commit 29e70a98fe)

Bug: 27405083
Change-Id: I7cbc8fda326a2aea3bef5dabee9d3290cc818b24
2016-03-16 09:05:15 -07:00
Mark Salyzyn a6f2f81d1e liblog: test: do not LOG in signal handler
(cherry pick from commit 50af7f8b1d)

- We actually are logging in a signal handler, the title is bluster
  to remind developers. It is not a reliable path though as it can
  lock up. Our goal is to minimize the chances of a lockup regardless
  in the name of stability only. The test remains to catch regression
  in the name of code quality and reliability. Expected to be
  >99.999% reliable.
- Add a new _correct_ duplicate test that uses signal to release a
  semaphore to a thread that performs the task. This path is expected
  to be 100% reliable.

Bug: 27405083
Change-Id: Ibb7cf4b13e34ebfac2db2af8724b7db7a27f81a8
2016-03-16 09:04:30 -07:00
Sami Tolvanen 05d2a9002e mkbootimg: add os_version
Adds operating system version and security patch level to the boot
image header. This change take into use one of the existing unused
fields to preserve compatibility.

Note: All information is packed into a single field, because there
are a lot of existing devices that break if the first unused field
is set to a non-zero value.

Bug: 27498078
Bug: 22914603
Change-Id: I24953129e06019b95014a050e916fe4f5c199286
(cherry picked from commit d162828814)
2016-03-15 10:37:52 -07:00
James Hawkins eef069acc5 bootstat: Disambiguate boot time on encrypted devices.
This change introduces new metrics to discern boot time on encrypted devices:
* post_decrypt_time_elapsed
* boot_decryption_complete
* boot_complete_post_decrypt
* boot_complete_no_encryption

Bug: 27497357
Change-Id: I8d3a411029bd6a45f80589ff67c408593e133a87
(cherry picked from commit c08e996ac8)
2016-03-14 14:27:35 -07:00
Mark Salyzyn 73207ce139 liblog: truncate logtags that overflow prefixBuf
(cherry pick from commit 2f83d679dd)

Bug: 27585978
Change-Id: If2f45e8787b05b46491a771702746cfc248b9ccd
2016-03-14 10:08:06 -07:00
Sami Tolvanen 1338dc40ca Merge "Revert "mkbootimg: add version and patch level"" into nyc-dev 2016-03-14 15:49:15 +00:00
Sami Tolvanen 3b87395032 Revert "mkbootimg: add version and patch level"
This reverts commit dcdf300a1f.

Bug: 27580174
Change-Id: I49780dc522b5d1c4939749fe0d38124821f67c12
2016-03-14 15:47:25 +00:00
Brian Carlstrom e71b914775 system/core: Make Thread::run threadName argument required
Bug: 27557176
Change-Id: Iae83a1e5489c86c2858fc8481f246b8480f0eec4
2016-03-12 21:32:52 -08:00
Elliott Hughes 1ef5bf839e Fix buffer overrun in adb wait-for-device.
Bug: http://b/27444063

(cherry picked from commit 34e560b9a1)

Change-Id: Ic71cb2070f509d76fb4208dbab6711c5dd5e1f62
2016-03-11 08:55:01 -08:00
James Hawkins 87c4210a86 Merge "bootstat: Add more debug logging metrics to RecordFactoryReset." into nyc-dev 2016-03-11 16:39:15 +00:00
Mark Salyzyn 6d753faaf8 liblog: audit declare LIBLOG_ABI_PUBLIC
(cherry pick from commit be1d3c21b5)

- replace <sys/cdefs.h> with local "log_cdefs.h" which
  fortifies and expands definitions, adding LIBLOG_ABI_PUBLIC,
  LIBLOG_HIDDEN, LIBLOG_ABI_PRIVATE and LIBLOG_WEAK.
- clearly tag each interface as LIBLOG_ABI_PUBLIC, LIBLOG_HIDDEN,
  LIBLOG_ABI_PRIVATE, LIBLOG_WEAK or static depending on scope
- Add -fvisibility=hidden to ensure nothing else leaks
- some code standard adjustments

Bug: 27566046
Change-Id: Ic14033c4e6d833d973beb035ddc1c6134fb35a3f
2016-03-10 14:44:27 -08:00
Mark Salyzyn 029c737380 liblog: document fakeLogClose never to be called
(cherry pick from commit bc81b17e06)

Bug: 27107691
Change-Id: Ia699646ec2e83ca46f8b62b5d4f144e533b36074
2016-03-10 14:44:22 -08:00
Mark Salyzyn 8edbbe1dc1 fake_log_device: long lived allocations
(cherry pick from commit 0085a135b9)

Use static space for long lived allocations as they
will appear to act like a memory leak. Resort to a
larger on-stack iovec to reduce the chances of an
allocation. Fix bug in writer where not enough size
was available for "security" buffer name. Minor
transitions to more consistent coding style.

Bug: 27107691
Change-Id: I68c918e7b916b1ae3b04829d48b3eddaa0a7e739
2016-03-10 14:44:16 -08:00
Josh Gao 48972c80d9 Merge "debuggerd: make sure that we kill the process after dumping." into nyc-dev 2016-03-10 22:32:34 +00:00
Christopher Ferris c463ba45c4 Add error reporting mechanism for failing Unwind.
Remove the logging of an error if a thread disappears before the unwind
can begin. This can happen, so allow the caller to determine if this
is really a problem worth logging.

Bug: 27449879

(cherry picked from commit 206a3b9798)

Change-Id: If9e7cfeb6eb7b122679a734c1a9eacee8354ef18
2016-03-10 14:14:43 -08:00
James Hawkins 6b930bf060 bootstat: Add more debug logging metrics to RecordFactoryReset.
In an effort to track down the source of some wonky data being reported.

Bug: 27550578
Change-Id: I1f08447c0203e7982d1b44bc04b531e96358c223
(cherry picked from commit 0660b307b8)
2016-03-10 11:49:44 -08:00
Prathmesh Prabhu 01d76eb1ec Merge "emulator: Use distinct serial names for simultaneous qemu pipes." into nyc-dev 2016-03-10 17:13:26 +00:00
Adam Lesinski b1911401e0 libziparchive: ensure ReadAtOffset is atomic
ag/880725 modified ReadAtOffset to seek then read from the open
file descriptor. Previously pread64 was used to provide atomic
behaviour.

This causes races when multiple threads are trying to access data from
the file. This is supported, so this change reverts the relevant parts
of the above CL to restore the old behaviour.
Bug:27563413

Change-Id: I7bffd78da8c558745dfc3c072ba9691b1b15bb5b
2016-03-09 17:17:19 -08:00
Josh Gao c6348f4e7f debuggerd: make sure that we kill the process after dumping.
Bug: http://b/27367422
Change-Id: Icd704b1effd558904975cfc524714b51917a653f
(cherry picked from commit f0c8723bdd)
2016-03-09 16:23:44 -08:00
Prathmesh Prabhu 251d46e68a emulator: Use distinct serial names for simultaneous qemu pipes.
ADB local transport for the emulator based on qemu pipes uses a socket
transport. Before this CL, multiple connection requests accepted by the
qemu pipe device would result in ADB transport with the same serial.
The register function would fail as a result, and all subsequent
connections would fail.

Test:
while true; do adb kill-server; adb devices; done
Doesn't fail for > 10 minutes.

This CL replaces an earlier CL
(I0fdcf2694516151c5f8f8e1580648b940679c981) that was unsafe for real
devices.

BUG=27441661

Change-Id: I7d801b175f3bee10fc7e0ab1b12d5623984371b9
2016-03-09 13:51:30 -08:00
Sami Tolvanen dcdf300a1f mkbootimg: add version and patch level
Adds operating system version and security patch level to the boot
image header. This change takes over two existing unused fields to
preserve compatibility with existing devices.

Bug: 27498078
Bug: 22914603
Change-Id: I57682611e0c27fec5ed284da7d9a788383ff98b1
(cherry pick from commit 3edc43234a)
2016-03-08 08:19:41 -08:00
Bernhard Rosenkränzer 9c41490ca7 Allow building with Python 3.x
Allow the scripts to run with both python 2.x and 3.x

Bug: 27498078
Bug: 22914603
Change-Id: I911118bcf370d09bdb2fb46afa21af64257f1ffb
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
(cherry pick from commit c434cf82d5)
2016-03-08 08:18:34 -08:00
Colin Cross 8a1d0a446f Merge "Fix mac build" into nyc-dev 2016-03-08 01:20:55 +00:00
Colin Cross e33686b7ca Fix mac build
Disable memunreachable_test for mac.

Change-Id: Ie9594b6e5dfc661c4d709b419dbcb7b610434a84
2016-03-07 17:19:28 -08:00
Colin Cross c69bd61591 Merge changes I2e050a37,Ia2bf2ccf,I4e4db704,Ifbfd14e2,Ib46fcfa3 into nyc-dev
* changes:
  Add ABI to leak report
  Combine leaks with same stacktrace
  Fix allocator::map template argument ordering
  Fold leaks that are referenced by other leaks
  Compile some tests for the host
2016-03-07 23:42:47 +00:00
James Hawkins a69e45f93a Merge "bootstat: Gate boot time metrics logging on an encrypted device being decrypted." into nyc-dev 2016-03-07 23:24:17 +00:00
James Hawkins bed422f575 Merge "bootstat: Don't log time_since_factory_reset on device reset." into nyc-dev 2016-03-07 23:24:08 +00:00
Yabin Cui b2a770042e libziparchive: port unit tests to darwin and windows.
Also use ReadFully to replace read, because read can
return reading bytes less than requested. And use
WriteFully to replace write.

Bug: 26962895
Change-Id: Iff0b2bc6d925619a537f7fef682c2a7ad89a2dc2
(cherry picked from commit 8e6f722764)
2016-03-07 11:21:24 -08:00
Alex Deymo d2e6c59b5b Merge "Add /postinstall partition when using the A/B updater." into nyc-dev 2016-03-07 19:03:39 +00:00
Paul Lawrence 72d2e06f4e Merge "Distinguish between unencrypted and unencryptable" into nyc-dev 2016-03-07 16:48:47 +00:00
Colin Cross 11185af983 Add ABI to leak report
Add the ABI to the leak report so that it can be piped through
development/scripts/stack.

Bug: 27208635
Change-Id: I2e050a377305d48d2f904f34ea921f64e13dd00e
2016-03-04 22:40:34 -08:00
Colin Cross 7a22e81c20 Combine leaks with same stacktrace
Combine similar leaks (those with identical stack traces) into a single
leak report, and sort the resulting leaks by total leak size across all
similar leaks and their references.

Bug: 27208635
Change-Id: Ia2bf2ccf3fcbc110d1c7ba60e3b77348d1c63d8d
2016-03-04 22:40:34 -08:00
Josh Gao 8238dd8499 adbd: fix spurious close of uninitialized fd.
forkpty only returns an fd on the master side; trying to keep track of
it on both sides is incorrect.

Bug: http://b/27504427
Change-Id: Ia4a454d8490c77738f9c3350a4236b3d99c8758b
(cherry picked from commit fcb063ce37)
2016-03-04 19:15:11 -08:00
Josh Gao 5767d0dd5a adb: wait for restore to complete before returning.
If we return before waiting for the other side to finish, it'll get sent
SIGHUP.

Bug: http://b/27414382
Change-Id: I93514d2242ed0d7aa93a6ec6836270dc0783506d
(cherry picked from commit d26abed750)
2016-03-04 19:15:11 -08:00
Josh Gao 06c73ae942 adb: wait for adbd to die and respawn in root/unroot.
Bug: http://b/19749057
Change-Id: I57dbc113803b6fd3016c1801410be0f4023245d9
(cherry picked from commit d26212207d)
2016-03-04 19:15:11 -08:00
Josh Gao a9eb38d6a5 adb: make ScopedFd universally accessible and useful.
Change-Id: I707ffbd10958e7449b4c95dff48638480c746939
(cherry picked from commit f0d3b4fc11)
2016-03-04 19:15:11 -08:00
James Hawkins 7763bcb1b8 bootstat: Gate boot time metrics logging on an encrypted device being decrypted.
This prevents double-counting boot metrics for encrypted devices.

Bug: 27454346
Change-Id: If63dd421e4f91a01b43d730d59896544a26d138a
(cherry picked from commit 5e655f02c5)
2016-03-04 17:55:43 -08:00
James Hawkins e501044c46 bootstat: Don't log time_since_factory_reset on device reset.
The zero value is meaningless and skews the histogram buckets.

Bug: 27477664
Change-Id: Idd641aa3005819905a2ecf664d2a5781dbbff59b
(cherry picked from commit 3bf9b147f2)
2016-03-04 17:53:57 -08:00
Colin Cross 4c5bccdd86 Fix allocator::map template argument ordering
allocator::map reversed Key and T from std::map

Bug: 27208635
Change-Id: I4e4db704539d01b060cb948aa573cb674da48c7d
2016-03-04 16:40:02 -08:00
Colin Cross 8e8f34c558 Fold leaks that are referenced by other leaks
Find leaks that have no references at all, or are only referenced by
other leaks in the same strongly connected component, and hide all
referenced leaks.

Bug: 27208635
Change-Id: Ifbfd14e24e2ba0f8af7c1b887e57f34362720f2d
2016-03-04 16:39:59 -08:00
Colin Cross b8e20f557f Compile some tests for the host
Compile some tests for the host to ease debugging with valgrind or gdb.

Bug: 27208635
Change-Id: Ib46fcfa333ceb721f26efca00b2fa60b9fba44e6
2016-03-04 16:39:51 -08:00
Paul Lawrence 1098aacde4 Distinguish between unencrypted and unencryptable
Set ro.crypto.state flag to unencrypted and unsupported accordingly

Bug: 18002358
Change-Id: I1f88ce9704c5505d7b63256e2ebe5f8441c79ad0
2016-03-04 15:52:33 -08:00
Alex Deymo e120b471ac Add /postinstall partition when using the A/B updater.
The new top level directory /postinstall is used by the A/B updater to
mount the new partition and run a post-install program before rebooting
into that new system.

init.rc was extended to label this new directory since the initrd has
no extended attributes.

Bug: 27177071
TEST=`ls -laZ /` shows the /postinstall directory on edison-eng

(cherry picked from commit bb968fb04d)

Change-Id: Iff993135c7ce3a1a0f6450892ef7382da408fd5e
2016-03-04 15:45:52 -08:00
Dimitry Ivanov 5f28b8460d Handle the case when libart.so is not in use
In the case when libartd.so is used libart.so does not have
to be included in the public namespace.

Bug: http://b/27496326
Change-Id: I464bafec1d9da5c3f3f03fef02af3f34bf377297
2016-03-04 15:02:16 -08:00
Josh Gao a996c2963a adb: clean up quotes in test_device.py.
Change-Id: I7fe7724578ad89a004665d1bbff0d5c02c34c35e
(cherry picked from commit 255c5c8077)
2016-03-03 15:46:51 -08:00
Josh Gao 379612b128 adb: mkdir the correct directory name when pulling.
The directory name should be based off of the local path, not the remote
path.

Change-Id: I75b089b8734e9dbf8e466b1e00ea18549fd101bb
(cherry picked from commit 89ec3a8d0f)
2016-03-03 15:46:51 -08:00
Josh Gao 48bc0d7853 adb: cleanup file skipping logic.
Bug: http://b/26355212
Change-Id: Iafa250ce6c5ea8da9f5f00125165e5b67ef1013f
(cherry picked from commit a31ea55c55)
2016-03-03 15:46:51 -08:00