Commit graph

35761 commits

Author SHA1 Message Date
Jin Qian
1e0df16e20 fastboot: bail out if failed to generate fs image
we don't want to continue fastboot process if failed to
generate fs image. Print an error message and exit early.

Bug: 64915319
Change-Id: I5506d2a7a5063c188685633d6c3890239f9d658e
2017-08-23 13:43:15 -07:00
dimitry
b6ba817de4 Define current ABI string in android-base/macros.h
Test: make
Change-Id: I8200d7b3232edba43a583c5ff1e1b0f78c768f69
2017-08-23 20:46:38 +02:00
Tom Cherry
68f2a46145 init: enable error reporting of builtin functions
Enable error reporting when builtin functions fail.  These errors are
now reported with full context including the source file and line
number, e.g.

init: Command 'write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug}' action=early-boot (/init.bullhead.rc:84) took 0ms and failed: cannot expand '${persist.sys.ssr.enable_debug}'

There are two small caveats:
1) There are nearly 200 reports of builtins failure due to "No such
   file or directory".  Many of these are due to legacy paths included
   in rootdir/init.rc.  Until they are cleaned up, reporting of these
   failures is disabled.
2) Similarly, symlink is often used to create backwards compatible
   symlinks.  By their very nature, these calls are expected to fail
   on newer systems that do already use the new path.  Due to this,
   failures of symlink due to EEXIST are not reported.

Bug: 38038887
Test: boot bullhead, only see true errors reported from builtins.
Change-Id: I316c13e3adc992cacc6d79ffee987adc8738fca0
2017-08-23 11:05:37 -07:00
Tom Cherry
76af7e6a0c init: log Service failures via Result<T>
Log Service failures via Result<T> such that their context can be
captured when interacting with services through builtin functions.

Test: boot bullhead
Change-Id: I4d99744d64008d4a06a404e3c9817182c6e177bc
2017-08-23 11:05:37 -07:00
Tom Cherry
130e3d7204 init: pass errors from one Result<T> to another better
Result<T> currently has two problems,
1) A failing Result<T> cannot be easily constructed from a Result<U>'s
error.
2) errno is lost when passing .error() through multiple Result<T>'s

This change fixes both problems having Result<T>::error() return a
ResultError class that contains the std::string error message and int
errno.

It additionally has ostream operators to continue to allow printing
the error string directly to an ostream and also to pass the errno
through to another Result<T> class via Error() creation.

Lastly, it provides a new constructor for Result<T> for ResultError,
such that a Result<T> can be constructed from Result<U>::error().

Test: boot bullhead, init unit tests
Change-Id: Id9614b727cdabd2f5498b0da0e598e9aff7d9ae0
2017-08-23 11:04:32 -07:00
Tom Cherry
6de21f1112 init: cleanup environment handling
Init keep its own copy of the environment that it uses for execve when
starting services.  This is unnecessary however as libc already has
functions that mutate the environment and the environment that init
uses is clean for starting services.  This change removes init's copy
of the environment and uses the libc functions instead.

This also makes small clean-up to the way the Service class stores
service specific environment variables.

Test: boot bullhead
Change-Id: I7c98a0b7aac9fa8f195ae33bd6a7515bb56faf78
2017-08-23 10:09:21 -07:00
Justin Yun
9ca92458e2 Mark the modules as VNDK-SP in Android.bp
As a VNDK-SP module, Android.bp must have 'vndk' tag as well as
'vendor_available: true'.

The 'vndk' tag for VNDK-SP formated as follows:
vndk: {
    enabled: true,
    support_system_process: true,
},

VNDK-SP modules will be installed both in system/lib(64) as normal
and in system/lib(64)/vndk-sp as a vendor variant.

Bug: 63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Merged-In: I51fe0859f63ad58b7b91909e7d7d4206443228cd
Change-Id: I51fe0859f63ad58b7b91909e7d7d4206443228cd
(cherry picked from commit aeb68e86e4)
2017-08-23 17:56:13 +09:00
Wei Wang
9478eaa5a0 Merge "init: add log to time spent in waiting for file" am: 7f16cad877 am: 78f06df7b1
am: 9d4dc02f95

Change-Id: Iaca5c0efc5fcd9ba9810846f3862faf610599337
2017-08-22 23:54:45 +00:00
Wei Wang
9d4dc02f95 Merge "init: add log to time spent in waiting for file" am: 7f16cad877
am: 78f06df7b1

Change-Id: I0833d0007980d65a95fb7c96c00a0e16718b7fda
2017-08-22 23:39:47 +00:00
Wei Wang
78f06df7b1 Merge "init: add log to time spent in waiting for file"
am: 7f16cad877

Change-Id: Ie9eab8e63a1f391c9cac608c6db64abcf50d19a1
2017-08-22 23:33:47 +00:00
Treehugger Robot
7f16cad877 Merge "init: add log to time spent in waiting for file" 2017-08-22 23:23:25 +00:00
Felipe Leme
589523b7c3 Merge "Don't preserve file attributes when pulling bugreport file..." am: 8570d1db70 am: 009c2ddadc
am: 6d6ff64360

Change-Id: I4cec50a7ec2c76f355e1f1821564308d88ef5e2a
2017-08-22 23:10:58 +00:00
Felipe Leme
6d6ff64360 Merge "Don't preserve file attributes when pulling bugreport file..." am: 8570d1db70
am: 009c2ddadc

Change-Id: I3e283d7dfa29b42902c7470ca3489593ef7f7e25
2017-08-22 23:03:58 +00:00
Felipe Leme
009c2ddadc Merge "Don't preserve file attributes when pulling bugreport file..."
am: 8570d1db70

Change-Id: I5ef7737f08462af3b572d4995ee59dfe0ec2d51b
2017-08-22 22:47:55 +00:00
Treehugger Robot
8570d1db70 Merge "Don't preserve file attributes when pulling bugreport file..." 2017-08-22 22:41:26 +00:00
Wei Wang
4cea121872 init: add log to time spent in waiting for file
Bug: 64925999
Test: boot and take log
Change-Id: I7d37906708b5a4a195fb1ba1113641656d419e62
2017-08-22 14:09:11 -07:00
Josh Gao
d879c171a0 Merge changes I2270cc0a,I55e5dc5a am: 2066e0585e am: 46244a6497
am: 40b849f88a

Change-Id: Iee1c51f4b0d78f47afc5f2c1c057f6cf9110dba8
2017-08-21 23:53:22 +00:00
Josh Gao
40b849f88a Merge changes I2270cc0a,I55e5dc5a am: 2066e0585e
am: 46244a6497

Change-Id: Iaf21dda5cc0bba2d46d092c7e53892388ec4cc28
2017-08-21 23:47:51 +00:00
Josh Gao
46244a6497 Merge changes I2270cc0a,I55e5dc5a
am: 2066e0585e

Change-Id: I72f3a3272bcce4f0e4f24050e5035810be040ec9
2017-08-21 23:41:53 +00:00
Treehugger Robot
2066e0585e Merge changes I2270cc0a,I55e5dc5a
* changes:
  adb: add track-devices-l service.
  adb: allow selection of a specific transport.
2017-08-21 23:34:30 +00:00
Josh Gao
b0c1802615 adb: add track-devices-l service.
Add a way to get the full `devices -l` output on a continuous basis.

Test: manual
Change-Id: I2270cc0a0d7e1384ce19631724ddf2462d963ade
2017-08-21 14:15:07 -07:00
Josh Gao
b122b17555 adb: allow selection of a specific transport.
Extend device selection to allow selecting a specific transport via
monotonically increasing identifier (visible in devices -l).

This is useful when using multiple devices (like hikey960...) that
have identical bogus serial numbers like 0123456789ABCDEF.

Bug: http://b/37043226
Test: adb -t {1, 2, 9999999} {get-serialno, shell, features}
Change-Id: I55e5dc5a406a4eeee0012e39b52e8cd232e608a6
2017-08-21 14:15:06 -07:00
Josh Gao
3cf521b16e Merge "fastboot: gracefully handle failure to open a USB device on OS X." am: 11be3e54bd am: 9a1e060dc6
am: 4a84cce540

Change-Id: I1ce89755f815cf81833308279b3a69398fe25787
2017-08-21 18:54:31 +00:00
Josh Gao
4a84cce540 Merge "fastboot: gracefully handle failure to open a USB device on OS X." am: 11be3e54bd
am: 9a1e060dc6

Change-Id: I4cef93d371b3327d063a6a16eb6ae7f6a64f740d
2017-08-21 18:47:32 +00:00
Josh Gao
9a1e060dc6 Merge "fastboot: gracefully handle failure to open a USB device on OS X."
am: 11be3e54bd

Change-Id: I366df52af24947a746fee515a8d16ff728a01deb
2017-08-21 18:42:01 +00:00
Treehugger Robot
11be3e54bd Merge "fastboot: gracefully handle failure to open a USB device on OS X." 2017-08-21 18:29:22 +00:00
Andreas Huber
99ca20c708 Merge "Fix use-after-free of stack-allocated temporary string." am: 4bcccdf998 -s ours am: 7ec963f00b -s ours
am: 3cb9fc6b74  -s ours

Change-Id: I477e4e79a369707f6518a0d9793b9881c7622154
2017-08-21 17:51:59 +00:00
Andreas Huber
3cb9fc6b74 Merge "Fix use-after-free of stack-allocated temporary string." am: 4bcccdf998 -s ours
am: 7ec963f00b  -s ours

Change-Id: I7d2e0c1a96db2bd6d93463258486c25d233e6bcd
2017-08-21 17:45:28 +00:00
Andreas Huber
dbd2ac1202 Fix use-after-free of stack-allocated temporary string. am: c41b838baa
am: a5efddda90

Change-Id: Ic0871bfae738d3b1854a7543843c0a9cc72c049d
2017-08-21 17:40:57 +00:00
Andreas Huber
7ec963f00b Merge "Fix use-after-free of stack-allocated temporary string."
am: 4bcccdf998  -s ours

Change-Id: I719a6b2af7dae5d5a2dffffc7309f6adfb687456
2017-08-21 17:39:58 +00:00
Andreas Huber
a5efddda90 Fix use-after-free of stack-allocated temporary string.
am: c41b838baa

Change-Id: I3eac4b22b885e7991256e5a7df8f37e6b9a10cce
2017-08-21 17:33:56 +00:00
Andreas Huber
4bcccdf998 Merge "Fix use-after-free of stack-allocated temporary string." 2017-08-21 17:31:02 +00:00
Andreas Huber
c41b838baa Fix use-after-free of stack-allocated temporary string.
Bug: 64848081
Test: built and successfully booted again
Merged-In: I93c899249bf2cc5ab8d880c0eaff471518e73121

Change-Id: I93c899249bf2cc5ab8d880c0eaff471518e73121
2017-08-21 09:44:56 -07:00
Andreas Huber
f5e0464683 Fix use-after-free of stack-allocated temporary string.
Bug: 64848081
Test: built and successfully booted again
Merged-In: I93c899249bf2cc5ab8d880c0eaff471518e73121

Change-Id: I93c899249bf2cc5ab8d880c0eaff471518e73121
2017-08-21 09:05:13 -07:00
Josh Gao
7f0ced6a19 Merge "crash_dump: print the identity of tracers." am: e67c7b94c2 am: 68f92308ec
am: fa31094545

Change-Id: Ibcaca038f3efd97249b66cd7566c30129ec37dcb
2017-08-19 01:30:53 +00:00
Josh Gao
fa31094545 Merge "crash_dump: print the identity of tracers." am: e67c7b94c2
am: 68f92308ec

Change-Id: Ib4f54ffe1496cbb5195761846bf1be4361e68b60
2017-08-19 01:27:51 +00:00
Josh Gao
f806a3c303 fastboot: gracefully handle failure to open a USB device on OS X.
High Sierra restricts opening some USB devices (e.g. the touchbar)
to processes that have specific entitlements. Ignore devices that we
can't open.

Bug: http://b/64292422
Test: manual
Change-Id: I6074b53a365b8d936610bafea60244f8bba1a33f
2017-08-18 18:25:44 -07:00
Josh Gao
68f92308ec Merge "crash_dump: print the identity of tracers."
am: e67c7b94c2

Change-Id: Ic926e668cee9163a3caadcd6313ff4bc76c2768f
2017-08-19 01:25:21 +00:00
Treehugger Robot
e67c7b94c2 Merge "crash_dump: print the identity of tracers." 2017-08-19 01:20:24 +00:00
Josh Gao
fd13bf0dcd crash_dump: print the identity of tracers.
Instead of printing a useless "ptrace attach failed: strerror(EPERM)"
message, print the name and pid of a competing tracer when we fail to
attach because a process is already being ptraced.

Bug: http://b/31531918
Test: debuggerd_test32, debuggerd_test64 on aosp_angler
Test: strace -p `pidof surfaceflinger`; debuggerd -b surfaceflinger
Change-Id: Ifd3f80fe03de30ff38c0e0068560a7b12875f29d
2017-08-18 16:16:58 -07:00
Tom Cherry
bc4a6c49d9 Merge "init: only set ro.boottime.<service> properties once." am: fe0607575d am: a1a6826c59
am: a82cc92437

Change-Id: Id7cda0d04382c78a3978ceb79e087b37da38cd4a
2017-08-18 20:18:10 +00:00
Tom Cherry
a82cc92437 Merge "init: only set ro.boottime.<service> properties once." am: fe0607575d
am: a1a6826c59

Change-Id: I7ed7631167f0d65c2a72efe26a727c18007c1c78
2017-08-18 20:12:10 +00:00
Josh Gao
f91a9f98ae Merge "adb: fix deadlock in kick_all_transports." am: c2449e871e am: b43479c764
am: 4fd1f04a82

Change-Id: Iacdf180f5315b5436724433cc65ad6419aebea1e
2017-08-18 20:11:46 +00:00
Tom Cherry
a1a6826c59 Merge "init: only set ro.boottime.<service> properties once."
am: fe0607575d

Change-Id: I1ef16e0a09803a4b3681227135ce2f1ec17b6401
2017-08-18 20:05:45 +00:00
Josh Gao
4fd1f04a82 Merge "adb: fix deadlock in kick_all_transports." am: c2449e871e
am: b43479c764

Change-Id: Ic7b0b8bcc877f0a482b82280091f60b2f7ec673c
2017-08-18 20:05:45 +00:00
Tom Cherry
a74ad8d256 Merge "ueventd: fix subsystem list logic issues" am: edf03e23bb am: 6698195d64
am: b843ae51a4

Change-Id: I2f4002ba13d747db9ee8713b7bb59caaebd36033
2017-08-18 20:05:44 +00:00
Josh Gao
b43479c764 Merge "adb: fix deadlock in kick_all_transports."
am: c2449e871e

Change-Id: I2dd6e22a8ad1d819ed47b54071a394f5b64e1ce7
2017-08-18 20:00:19 +00:00
Tom Cherry
b843ae51a4 Merge "ueventd: fix subsystem list logic issues" am: edf03e23bb
am: 6698195d64

Change-Id: I4b8e3285645ee956f313e3904c16825460b350e2
2017-08-18 20:00:14 +00:00
Tom Cherry
fe0607575d Merge "init: only set ro.boottime.<service> properties once." 2017-08-18 19:59:29 +00:00
Tom Cherry
6698195d64 Merge "ueventd: fix subsystem list logic issues"
am: edf03e23bb

Change-Id: I4ce43385af2376bc7246f25057dd3d7d76ec5dc8
2017-08-18 19:53:48 +00:00