Commit graph

30174 commits

Author SHA1 Message Date
Colin Cross
947caff31b Merge "Add a helpful error message if GetUnreachableMemory fails"
am: 72ca50359e

Change-Id: Icc656c40d90649e6060145ea7d3018b487369ecb
2017-06-15 23:16:14 +00:00
Colin Cross
72ca50359e Merge "Add a helpful error message if GetUnreachableMemory fails" 2017-06-15 23:10:16 +00:00
Elliott Hughes
3cd4306ea2 Merge "Add libziparchive-based unzip."
am: 3e67944d2e

Change-Id: Ie45008d880157f7552b47664efecf087b390741b
2017-06-15 21:42:50 +00:00
Elliott Hughes
3e67944d2e Merge "Add libziparchive-based unzip." 2017-06-15 21:30:56 +00:00
Chih-Hung Hsieh
b547153143 Merge "Revert workaround of clang-tidy segmentation fault."
am: 243ab9cc7e

Change-Id: I5019b04384e22b37e809e4c10215bac7f646070f
2017-06-15 19:04:25 +00:00
Treehugger Robot
243ab9cc7e Merge "Revert workaround of clang-tidy segmentation fault." 2017-06-15 18:57:51 +00:00
Colin Cross
72d3881412 Add a helpful error message if GetUnreachableMemory fails
The primary reason for GetUnreachableMemory failing is selinux
blocking system apps from ptracing themselves.  Add a helpful
error message suggesting setenforce 0.

Bug: 27945735
Test: dumpsys meminfo --unreachable com.android.systemui
Change-Id: Ibfa9507860be36dffd514f82027f7a2f8a72ac48
2017-06-15 10:57:37 -07:00
Tom Cherry
8040f8eb82 Merge "init: move killing of process groups to libprocessgroup"
am: fbbb3bd49a

Change-Id: I44ce77f50905b209d24dee592eef28325c2a409d
2017-06-15 17:23:48 +00:00
Tom Cherry
fbbb3bd49a Merge "init: move killing of process groups to libprocessgroup" 2017-06-15 17:17:22 +00:00
Chih-Hung Hsieh
47bd75701b Revert workaround of clang-tidy segmentation fault.
Problem was fixed in new rebased clang-tidy.
Bug: 38002385
Test: build with WITH_TIDY=1
Change-Id: Ic22d016fb2d402c3eee16226be507f5d4cfa2818
2017-06-15 10:05:04 -07:00
Narayan Kamath
ec95719844 Merge "zip_archive: validate data descriptor contents."
am: b001cc5b1c

Change-Id: I54d90a279bb908b9755a4f3100f474a80911a6ec
2017-06-15 10:57:23 +00:00
Narayan Kamath
b001cc5b1c Merge "zip_archive: validate data descriptor contents." 2017-06-15 10:52:33 +00:00
Elliott Hughes
c7624fd6d6 Merge "Remove <sys/mtio.h> workaround."
am: 7bdbe0010c

Change-Id: I394fd6e97ed74f56e51216ba557e84b36ee64ac5
2017-06-15 02:49:28 +00:00
Treehugger Robot
7bdbe0010c Merge "Remove <sys/mtio.h> workaround." 2017-06-15 02:40:35 +00:00
Elliott Hughes
c286f47dd1 Remove <sys/mtio.h> workaround.
Bug: N/A
Test: builds
Change-Id: I4f2f615720639cb6ec4ac8a6b08c5907008f98ee
2017-06-14 17:17:16 -07:00
Mikhail Lappo
34b7617cb7 Merge "Va_end should be used with va_start"
am: 5f4808382e

Change-Id: Ie79756bdc9a34b4d5b90057a74a0f6bd0007b655
2017-06-14 23:08:04 +00:00
Treehugger Robot
5f4808382e Merge "Va_end should be used with va_start" 2017-06-14 23:00:42 +00:00
Adam Lesinski
9244a6b573 Merge "libziparchive: verify that gpb flags match"
am: 04c4f40a82

Change-Id: I767f07b922a89203bf69b5e41c0897f81135759e
2017-06-14 15:28:11 +00:00
Treehugger Robot
04c4f40a82 Merge "libziparchive: verify that gpb flags match" 2017-06-14 15:20:56 +00:00
Narayan Kamath
162b705801 zip_archive: validate data descriptor contents.
- Ensure that the compressed and uncompressed lengths in the data
  descriptor match those in the central directory.

- Calculate CRCs for compressed entries and ensure that those CRCs
  match the information in the central directory / data descriptor.
  This is currently guarded by a flag and will be turned on at a
  later stage.

- Finally, always trust the LFH when it comes to indicating the
  existence of a data descriptor. We no longer require this info to
  match the central directory to bring this in line with other zip
  processing tools. (see NOTE in the included change).

Bug: 62047801
Test: zip_archive_test
Change-Id: Icceea66a8b1937c08a4af9aee97bc77ad7218c0f
2017-06-14 14:29:53 +01:00
Adam Lesinski
1d105aa597 libziparchive: verify that gpb flags match
The Central File Header and Local File Header should
have the same general purpose bit flags set for
consistency.

Bug: 36686974
Test: existing tests pass (ziparchive-tests)

(cherry picked from commit 73b3aa541f)

Change-Id: Ia672a28732154a564ea2f2e3520238bb77924a56
2017-06-14 14:25:55 +01:00
Josh Gao
b3ce850ba2 Merge "Revert "crash_dump: defer pausing threads until we're ready.""
am: 550f3bf328

Change-Id: I0ab3cbe6b43fa650978558870124bc5288a43e8f
2017-06-13 18:33:09 +00:00
Josh Gao
550f3bf328 Merge "Revert "crash_dump: defer pausing threads until we're ready."" 2017-06-13 18:22:01 +00:00
Josh Gao
3407d7c80f Revert "crash_dump: defer pausing threads until we're ready."
This reverts commit 8a2a2d182a.

Bug: http://b/62572585
Change-Id: Ia4278bca52178eb7b7b28b30d0930b292d97f353
2017-06-13 17:21:12 +00:00
Josh Gao
5e84d90791 Merge "tombstoned: log where we're writing the tombstone."
am: 87f5432f52

Change-Id: I29faed29b8245bef13284bb702f5c64e1619962a
2017-06-13 02:52:58 +00:00
Treehugger Robot
87f5432f52 Merge "tombstoned: log where we're writing the tombstone." 2017-06-13 02:47:34 +00:00
Josh Gao
b0b165caf7 Merge changes Id7ab0464,Ic2a212be
am: 66e1a1e3e2

Change-Id: I11b6a8046d524b452aabb062d96d9d38e41d6af3
2017-06-12 23:12:43 +00:00
Josh Gao
2a8ce10cd8 Merge "adb: fix deadlock between transport_unref and usb_close."
am: 6f61a6d9c4

Change-Id: Ib55b681b57298d93123ffaa7e390ea49a76fee23
2017-06-12 23:09:47 +00:00
Treehugger Robot
66e1a1e3e2 Merge changes Id7ab0464,Ic2a212be
* changes:
  crash_dump: defer pausing threads until we're ready.
  crash_dump: add tracing.
2017-06-12 23:08:24 +00:00
Treehugger Robot
6f61a6d9c4 Merge "adb: fix deadlock between transport_unref and usb_close." 2017-06-12 23:03:55 +00:00
Nicolas Norvez
516ee2445d Merge "adbd: optionally use qemud pipe without ro.kernel.qemu"
am: b3c363f32c

Change-Id: Id98add505c45a7e49141d13d535fb3849287ba0e
2017-06-12 21:46:03 +00:00
Treehugger Robot
b3c363f32c Merge "adbd: optionally use qemud pipe without ro.kernel.qemu" 2017-06-12 21:33:00 +00:00
Josh Gao
cb68a0317d tombstoned: log where we're writing the tombstone.
Make it easy to find out where a specific crash's tombstone was written
to by adding a log.

Bug: http://b/62268830
Test: crasher
Change-Id: I1961dfb19f76a42a8448ebafd4be153b73cb6800
2017-06-12 21:00:59 +00:00
Elliott Hughes
316b7334b8 Merge "Fix prctl argument type"
am: 6cc5927e0d

Change-Id: Iee476e7734bde72bdaebf9d1643c4b3e60f2339e
2017-06-12 19:53:57 +00:00
Elliott Hughes
6cc5927e0d Merge "Fix prctl argument type" 2017-06-12 19:48:23 +00:00
Nicolas Norvez
717f15353f adbd: optionally use qemud pipe without ro.kernel.qemu
adbd currently decides to use the QEMUD pipe if ro.kernel.qemu=1, as set
for ranchu. The Android container in Chrome OS doesn't have that
property set and it can't be set to 1 because it's used as equivalent to
"runs inside an emulator" throughout Android and changes the way
graphics are handled, whether Bluetooth is supported, etc., behaviour
that we do not want to trigger in Chrome OS.

adbd now also checks service.adb.transport to decide whether to use the
QEMUD (goldfish) pipe.
adbd still first checks for ro.kernel.qemu to preserve existing
behaviour and will still fallback to TCP if it can't use Goldfish.

Bug: 38497992
Test: tested by jmgao@ -thanks!- on aosp_angler, adb still works.

Change-Id: I8370704145ae7301ac7aeef81c5cbd94cfcb7fd7
2017-06-12 12:22:32 -07:00
Bowgo Tsai
95d78849b4 Merge "fs_mgr_verity: support updating actual block device path in verity table"
am: 4c28ca1ac8

Change-Id: I8f35a15f09518bc1757432004a5126c93d1b96ae
2017-06-10 03:02:21 +00:00
Treehugger Robot
4c28ca1ac8 Merge "fs_mgr_verity: support updating actual block device path in verity table" 2017-06-10 02:57:09 +00:00
Bowgo Tsai
c3eca505cd fs_mgr_verity: support updating actual block device path in verity table
The value of PRODUCT_{SYSTEM,VENDOR}_VERITY_PARTITION will be included
in the verity metadata of an image. For example:

    PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor

This makes the image cannot be shared for devices with different by-name
prefix:
    /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor
    /dev/block/platform/soc.0/7824900.sdhci/by-name/vendor

This change supports using a generic PRODUCT_{SYSTEM,VENDOR}_VERITY_PARTITION to
build image and replace it with the actual path at run time:

    PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/bootdevice/by-name/vendor ==>
    /dev/block/platform/soc.0/7824900.sdhci/by-name/vendor

Bug: 62171170
Test: Boot sailfish with PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/bootdevice/by-name/vendor
Change-Id: I2789d2a025e80a628a1b4e7419818065c209fb7f
2017-06-09 10:02:42 +08:00
Bowgo Tsai
7d491a0a7b Merge "first stage mount: removing the restriction of mount points"
am: 5218d69817

Change-Id: I79fa29cf2cbe899362fb93e69b673725160c2579
2017-06-09 01:56:08 +00:00
Treehugger Robot
5218d69817 Merge "first stage mount: removing the restriction of mount points" 2017-06-09 01:51:50 +00:00
Narayan Kamath
dcb4b80694 Merge "tombstoned: turn on java trace support + unit tests."
am: 3aaf17fc16

Change-Id: I1865c712e1cd96c360bebab4a6ca733255e81fe2
2017-06-08 13:23:11 +00:00
Narayan Kamath
3aaf17fc16 Merge "tombstoned: turn on java trace support + unit tests." 2017-06-08 13:18:48 +00:00
Bowgo Tsai
06ed613e73 first stage mount: removing the restriction of mount points
Current first stage mount only allows three mount points: system, vendor
and/or odm. This was introduced by project Treble to mount those
verified partitions early. However, there might be some other custom
partitions needs to be mounted early as well. This CL removes the
restriction and does first stage mount for whatever specified in
fstab-dt.

Bug: 62423887
Test: first stage mount /vendor with vboot 1.0
Test: first stage mount /vendor with vboot 2.0 (AVB)

Change-Id: I6c146c64e673c35c2823523ccbde193590430c48
2017-06-08 11:30:12 +08:00
Josh Gao
7e197ef833 adb: fix deadlock between transport_unref and usb_close.
Fix a deadlock that happened when a reader/writer thread released a
transport while the hotplug thread attempted  to handle a device
disconnection. Decrementing a transport refcount to zero would hold the
global transport mutex and attempt to take the usb handles mutex, while
the hotplug thread would hold the usb handles mutex and try to call
unregister_usb_transport, which would attempt to take the global
transport mutex.

Resolve this by making transport_unref not take the global transport
mutex.

Bug: http://b/62423753
Test: python test_device.py
Change-Id: Ib48b80a2091a254527f3a7d945b6a11fae61f937
2017-06-07 18:54:09 -07:00
Stephen Crane
f5b8e34660 Fix prctl argument type
Although prctl is declared as a varargs function, in actuality it takes
unsigned long arguments (after the first int argument). This patch
ensures that the slack value passed to prctl is correctly sized.

Without this change, the 32-bit ARM compiler places the 64-bit slack
value in registers r2 and r3, but prctl expects the first argument to be
in r1. For kernel versions < 4.6, set_sched_policy has not been
correctly setting the timer slack value in 32-bit ARM code.

Test: Run on bullhead device. Verified assembly of libcutils.so

Change-Id: Ie0e22cbf74a74ff168b257b2e58d0c252449d6c9
2017-06-07 17:25:00 -07:00
Josh Gao
8a2a2d182a crash_dump: defer pausing threads until we're ready.
Don't pause the threads we're going to dump until after we're about to
fetch their backtraces.

Bug: http://b/62112103
Test: debuggerd_test
Change-Id: Id7ab0464842b35f98f3b3ebc42fb76161d8afbd2
2017-06-07 14:11:28 -07:00
Josh Gao
8bb039073f crash_dump: add tracing.
Add some tracing to figure out where time is going during a dump.

Bug: http://b/62112103
Test: systrace.py sched freq idle bionic
Change-Id: Ic2a212beeb0bb0350b4d9c2cd7a4e70adc97752d
2017-06-07 14:11:06 -07:00
Tom Cherry
70a5ed49ef init: move killing of process groups to libprocessgroup
libprocessgroup kills the cgroup associated with a given pid and uid,
but not the POSIX process group associated with it.  This means that
to kill both, two of the same signals must be sent, which may cause
some issues.

This change kills all POSIX process groups whose group leaders are
found within a cgroup.  It only then kills processes in the cgroup
that are not part of the POSIX process groups that have been killed.

Bug: 37853905
Bug: 62418791
Test: Boot, kill zygote, reboot
Change-Id: Id1d96935745899b4c454c36c351ec16a0b1d3827
2017-06-07 13:20:21 -07:00
Josh Gao
aa3c3fc3be Merge changes Id51dcb18,I2517dcb9
am: 4db472b779

Change-Id: I86c616c6840133a38f8af6b8b9e61b58435bcc32
2017-06-07 20:08:54 +00:00