Commit graph

29847 commits

Author SHA1 Message Date
Robert Benea
c638569c2e cgroups used by init must be mounted before any services start
init uses /acct and optionally /dev/memcg for tracking services and
therefore these must be started before any services start.

Test: check that cgroups are mounted appropriately.

Change-Id: Ice095287963181fe687dbe6b7d291076e674d1cc
2017-05-31 16:12:23 -07:00
Treehugger Robot
f2c1ef53ff Merge "logcat: logcatd: make logcatd killable" 2017-05-31 22:24:06 +00:00
Jin Qian
4a335829da fastboot: use filename instead of fd to generate filesystem image
mke2fs tool takes a filename and has its own open function to handle
output file. Change fastboot in preparation to switch from make_ext4
to mke2fs.

Test: fastboot format:ext4 userdata
Bug: 35219933
Change-Id: I7a31cb215f443a4a7cb0bfc23ec28c121a6101e6
2017-05-31 21:23:12 +00:00
Josh Gao
0b13c89f7a adb: reunregress waiting for device on start-server.
Move the invocation of adb_notify_device_scan_complete to
the end of device_connected, where we decrement connecting_devices.
Also, create a dedicated thread for handling hotplug events, instead of
reusing the main thread for this, since the main thread blocks until
device scan is complete.

Test: `adb kill-server; adb devices`
Change-Id: Ia73b1a57538174282a48ef73ab0a3e58152d6f83
2017-05-31 12:13:59 -07:00
Mark Salyzyn
30ea96e14e logcat: logcatd: make logcatd killable
Near last resort kill logcatd, set /proc/self/oom_score_adj to -600.

Can kill to keep system_server, telephony and bluetooth.

Test: manual, start logpersist, runs
Bug: 62147352
Change-Id: I3723761bf1d2b79ce6a9557d2e78f91cc5497e96
2017-05-31 11:27:22 -07:00
Treehugger Robot
b46fd68653 Merge "logging: make LOG(FATAL) always run with the static analyzer." 2017-05-31 16:41:15 +00:00
George Burgess IV
6466ced8f6 logging: make LOG(FATAL) always run with the static analyzer.
::android::base::GetMinimumLogSeverity() is defined externally, so the
static analyzer was allowed to assume that we continue executing after a
LOG(FATAL).

I manually audited all of the code I have access to, and the only
"change the minimum log severity" statements I can see keep FATAL
enabled (...and continuing after a FATAL is highly sketchy to me
anyway).

(I'm sure I tested this at some point in making the previous patch. I
probably broke it in a refactor before sending it out for review; my
bad. :) )

Bug: None
Test: m without the static-analyzer builds; m with it yields fewer
false positives.

Change-Id: I216cd2034e1daa8d6f6c5e776f64b4cce88bb938
2017-05-31 14:41:22 +00:00
Narayan Kamath
1e63347425 Merge "tombstoned: allow intercepts for java traces." 2017-05-31 11:55:50 +00:00
Narayan Kamath
a73df601b7 tombstoned: allow intercepts for java traces.
All intercept requests and crash dump requests must now specify a
dump_type, which can be one of kDebuggerdNativeBacktrace,
kDebuggerdTombstone or kDebuggerdJavaBacktrace. Each process can have
only one outstanding intercept registered at a time.

There's only one non-trivial change in this changeset; and that is
to crash_dump. We now pass the type of dump via a command line
argument instead of inferring it from the (resent) signal, this allows
us to connect to tombstoned before we wait for the signal as the
protocol requires.

Test: debuggerd_test

Change-Id: I189b215acfecd08ac52ab29117e3465da00e3a37
2017-05-31 10:35:32 +01:00
Treehugger Robot
68599f5759 Merge "adb: fix deadlock." 2017-05-31 02:03:42 +00:00
Josh Gao
d1a3e8f1ab adb: fix deadlock.
libusb hotplug callbacks are called with the libusb lock taken, and we
call into libusb with our local mutex, so we need to enforce an ordering
between the two. Instead of calling device_connected or
device_disconnected directly, enqueue them onto the main thread.

Bug: http://b/62200735
Test: manually hotplugged a device
Change-Id: Ic5d55db83b47f4bb60f124ce94ddfe06f5f1a0c6
2017-05-30 17:09:42 -07:00
Treehugger Robot
45d0cbf00b Merge "bootstat: Log factory_reset_boot_complete separately from ota_*." 2017-05-30 23:56:34 +00:00
Tom Cherry
af95ecdb04 Merge "init: allow ':' in property names" 2017-05-30 23:43:28 +00:00
James Hawkins
0bc4ad479a bootstat: Log factory_reset_boot_complete separately from ota_*.
Bug: 37164359
Test: none
Change-Id: I7ed68e299846050fdffa58db8d2bd35fe4599dbb
2017-05-30 15:03:15 -07:00
Tom Cherry
1369379e33 init: allow ':' in property names
Bug: 62114389
Test: boot bullhead, get/set properties with ':' via command line
Test: trigger an init trigger with a property containing a ':'
Change-Id: Ib51853a1ef9d4f79d510c8175c0d9684e2025e23
2017-05-30 13:45:28 -07:00
Treehugger Robot
f8e96ea2d1 Merge "add a performance benchmark for libziparchive" 2017-05-30 19:44:52 +00:00
Treehugger Robot
ea043a1d43 Merge "Respect that status property when parsing fstab from device tree" 2017-05-30 19:11:08 +00:00
Treehugger Robot
8418634e70 Merge "init.rc: import /vendor/etc/init/hw/init.${ro.hardware}.rc" 2017-05-30 18:33:08 +00:00
Sebastian Pop
0a94c56463 add a performance benchmark for libziparchive
This patch adds two benchmarks that measure the performance of some
operations of libziparchive.

Both benchmarks are creating a temporary zip file containing file
names of uniformly distributed lengths.  The creation of the zip
file is not timed in the benchmarks.

- FindEntry_no_match tries to find an inexisting entry in the files
  of the zip archive, in order to force the code to examine all the
  files in the archive.

- Iterate_all_files uses the iterate function to list all the files
  in the archive.

Bug: N/A
Test: adb shell /data/ziparchive-benchmarks
Change-Id: Ibdb524ba1c5ae55caddf0416ebbc09f8b6df0021
2017-05-30 10:50:14 -07:00
Sandeep Patil
02a5108308 Respect that status property when parsing fstab from device tree
For an fstab entry in device tree, fs_mgr now honors the status property
as done by linux. i.e. the node (in this case, the fstab entry) is
enabled if status is not set, "ok" or "okay". For every other value, the
node is considered as disabled.

Merged-In: I5ff8f710de2c54afc76b4af28108ca9075357ad1
Bug: 62127741
Test: Test sailfish w/ no status property, result: boots
Test: Test with status = "disabled", result: skips mounting /vendor
Test: Test with status = "ok", result: boots

Change-Id: I5ff8f710de2c54afc76b4af28108ca9075357ad1
Signed-off-by: Sandeep Patil <sspatil@google.com>
(cherry picked from commit be4302bf58)
2017-05-30 10:25:58 -07:00
Treehugger Robot
844940d751 Merge "logging: always enable DCHECK for the static analyzer" 2017-05-26 21:16:49 +00:00
George Burgess IV
7e771de38f logging: always enable DCHECK for the static analyzer
This helps us have less false-positives.

We do this instead of `#undef NDEBUG`, since undefing NDEBUG actually
gave us more false-positives (...and build breakages) than simply
leaving it defined.

Bug: None
Test: Ran the static analyzer across internal master. 213 fewer warnings
(15 Medium, 2 Low, the remainder are 'Analyzer'). All of the dropped
warnings I audited were false-positives. It adds ~3 Tidy warnings.
Change-Id: Ibedab60ca7e9d2b0772896222b83d2e7ab064afe
2017-05-26 11:04:48 -07:00
Tom Cherry
c495e059b7 Merge "ueventd: Break devices.cpp into discrete classes" 2017-05-25 23:51:49 +00:00
Tom Cherry
ed506f7356 ueventd: Break devices.cpp into discrete classes
devices.cpp handles too many things for creating one class.  This
change breaks it up into various files and classes.

* Parsing is moved to ueventd_parser.cpp
* Reading from the uevent socket and Cold booting is moved to a
  UeventListener class, in uevent_listener.cpp
* Firmware handling is moved to firmware_handler.cpp
* The remaining contents form a DeviceHandler class within devices.cpp

Bug: 33785894

Test: boot bullhead x40, observe no major differences in /dev and /sys
Test: boot sailfish x40, observe no major differences in /dev and /sys
Test: init unit tests

Change-Id: I846a2e5995fbb344c7a8e349065c18a934fa6aba
2017-05-25 16:17:19 -07:00
Treehugger Robot
7b45384a7a Merge "Fix warning on the build servers" 2017-05-25 21:21:45 +00:00
Dan Willemsen
ac98aac43f Fix warning on the build servers
ANDROID_BUILD_TOP is only defined if envsetup.sh is sourced, the current
directory in make is the top of the source tree.

Test: <fresh terminal> make -j nothing
Change-Id: I24834a6eeb6ac11de0cc19d84650daa086995d99
2017-05-25 12:35:40 -07:00
Yueyao Zhu
f97d96b8f4 init.rc: import /vendor/etc/init/hw/init.${ro.hardware}.rc
/init.${ro.hardware}.rc would sometime rely on being parsed before other
.rc files. In this case all vendors are still able to have a .rc file
included before all the ones in /vendor/etc/init.

Merged-In: I3fb6df13a39204a516874ea94f5e5ad84bca42c6
Bug: 38301110
Change-Id: I3fb6df13a39204a516874ea94f5e5ad84bca42c6
(cherry picked from commit f7c34ad4bf)
2017-05-25 12:02:32 -07:00
Treehugger Robot
f653eaa322 Merge "Load vendor public libraries to sphal namespace" 2017-05-25 19:00:11 +00:00
Elliott Hughes
f9259b59e8 Merge "Revert "Load {default,build}.prop from /{system,vendor,odm}/etc/"" 2017-05-25 18:05:39 +00:00
Mark Salyzyn
34cfb3cbc6 Merge "liblog: test: CTS: enoent does not qualify" 2017-05-25 17:44:50 +00:00
Dimitry Ivanov
882cad2d87 Load vendor public libraries to sphal namespace
Load vendor public libraries to sphal namespace
if it exists - preserve old behavior of loading
these libraries to default namespace if sphal
namespace is not present on the device.

Bug: http://b/37410104
Test: cts-tradefed run singleCommand cts --skip-preconditions -m CtsJniTestCases
      on marlin (with enabled sphal configuration) and on angler where ld.config.txt
      is not present.

Change-Id: Iaa3fa437ba2900acc2e5b9c78039fe1553e4c9dd
(cherry picked from commit af0264bbe9)
2017-05-25 10:30:55 -07:00
Jayant Chowdhary
102eb90837 Merge "Mark libdiskconfig vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
e5bc59b5e0 Merge "Add vendor_available:true to libmemunreachable" 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
457ae84df7 Merge "Mark libprocinfo vendor_avaialable." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
6e2d24ab5a Merge "Mark libsuspend vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
7d5c86c0fc Merge "Mark libnetutils vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
b538f96fe1 Merge "Mark libion vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
52d43ce5ab Merge "Mark libsysutils vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
db2e0d4981 Merge "Mark libmetricslogger vendor_available." 2017-05-25 17:08:41 +00:00
Jayant Chowdhary
e0ee6d31fd Merge "Mark libziparchive vendor_available." 2017-05-25 17:08:41 +00:00
GuangHui Liu
9c0a541f08 Merge "Create build target to pull adb test scripts." 2017-05-25 16:48:19 +00:00
Hung-ying Tyan
3346338919 Revert "Load {default,build}.prop from /{system,vendor,odm}/etc/"
This reverts commit 723f1a2b31.

Bug: 62075509
2017-05-25 19:18:17 +08:00
Treehugger Robot
a9aa77d259 Merge "Load {default,build}.prop from /{system,vendor,odm}/etc/" 2017-05-25 02:32:37 +00:00
Hung-ying Tyan
723f1a2b31 Load {default,build}.prop from /{system,vendor,odm}/etc/
/default.prop may be moved to /system/etc/ and renamed as prop.default.
/{system,vendor,odm}/build.prop may be moved to /{system,vendor,odm}/etc/
and renamed as prop.build.
This patch makes property_service load prop.* from the new locations
first. Also replaces NULL with nullptr for C++ cleanup.

Bug: 37815285
Test: Booted pixel phones, checked the locations of prop.*, verified
      symlinks, checked a few properties (via adb shell getprop)
      and manually tested a few apps (Camera, Maps etc).
      ODM is not tested as it does not exist on the tested device.
Change-Id: Id8eeb3c1a5728dd04005dfad4733b8e6336f9093
2017-05-25 08:41:08 +08:00
Mark Salyzyn
067e8a0725 liblog: test: CTS: enoent does not qualify
Eliminate liblog@enoent CTS test as it is bypassed on "user" builds
in commit "liblog: test: enoent requires userdebug or eng to run".
This prevents time wasted running a test that bypasses during CTS.

Test: CtsLiblogTestCases_list --gtest_list_tests |
      (grep enoent && echo FAILED)
Bug: 62030441
Change-Id: Ia440db3e74dacdc5c311c640aab3a11844cc195a
2017-05-24 15:30:07 -07:00
Mark Salyzyn
f71d718906 Merge "liblog: test: android_logger_get_ "kernel" log buffer can be empty" 2017-05-24 22:02:48 +00:00
Jayant Chowdhary
e37259ec8b Mark libsuspend vendor_available.
libsuspend belongs to vndk-cap. Mark it vendor_available to enable vndk
abi stability checks on it.

Details: https://android-review.googlesource.com/368372

Test: mm -j64

Bug: 38244611

Change-Id: I2243c6d8710b6b2f80375849e82afba28a735507
2017-05-24 14:44:30 -07:00
Vijay Venkatraman
52eaeb4825 Add vendor_available:true to libmemunreachable
Bug: 38244611
Test: build sailfish
Change-Id: Ieb7fdcae4b96a1e1622ba98a7cfb56a95b798452
2017-05-24 14:32:28 -07:00
Jayant Chowdhary
4362e5b0f8 Mark libprocinfo vendor_avaialable.
libprocinfo belongs to vndk-cap. Mark it vendor_available to enable vndk
abi stability checks on it.

Details: https://android-review.googlesource.com/368372

Test: mm -j64

Bug: 38244611

Change-Id: Ib79c7e3bdde1c7d3cd9f2bb95c284b4690a22ebb
2017-05-24 14:28:22 -07:00
Jayant Chowdhary
2e31a8c4f9 Mark libion vendor_available.
libion belongs to vndk-cap. Mark it vendor_available to enable vndk
abi stability checks on it.

Details: https://android-review.googlesource.com/368372

Test: mm -j64

Bug: 38244611

Change-Id: I8ac290d435b7c4dc5e669bfccb4562495ce92516
2017-05-24 14:25:08 -07:00