Commit Graph

12658 Commits

Author SHA1 Message Date
Nick Kralevich 178299fd45 Merge "init: don't double mount /proc and /sys" 2015-04-25 23:11:27 +00:00
Nick Kralevich f8b0743ef4 Merge "init: fix write_file checkreqprot logic error" 2015-04-25 23:09:08 +00:00
Elliott Hughes 47a9ef2f11 Merge "Improve logging of USBDEVFS_CLAIMINTERFACE failures." 2015-04-25 23:05:28 +00:00
Nick Kralevich 9dec93bfeb init: don't double mount /proc and /sys
The first stage init mounts /proc and /sys, and then the second
stage init also mounts /proc and /sys on top of the existing mount.
Only mount these two directories once, in the first stage init.

Not yet fixed: the double mounting of /dev. Removing the double
mounting doesn't work right now because both init stages are trying
to create a property space, and if the double mount of /dev goes away,
the property service in the second stage init fails to work.

Change-Id: I13719027a47526d074390c2b1a605ad99fb43a8f
2015-04-25 15:50:03 -07:00
Nick Kralevich eedbe81f75 init: fix write_file checkreqprot logic error
write_file() returned -errno on error, not -1. Callers who check for
-1 would falsely believe that the write was successful when it wasn't.
Fixup write_file so that it return -1 on error consistent
with other functions.

Change-Id: Ic51aaf8678d8d97b2606bd171f11b3b11f642e39
2015-04-25 15:36:13 -07:00
Elliott Hughes ce6363bbbc Improve logging of USBDEVFS_CLAIMINTERFACE failures.
Bug: https://code.google.com/p/android/issues/detail?id=170054
Change-Id: I9b11eb019093e3322da0a8e70d6e17de4c25ab75
2015-04-25 14:44:23 -07:00
Nick Kralevich 8929c77ab9 Merge "init: remove mkdir /dev /proc /sys" 2015-04-25 21:08:12 +00:00
Nick Kralevich a1f6a4b139 init: remove mkdir /dev /proc /sys
These directories are already present in the initial ramdisk, and
these mkdir calls are no-ops.

Change-Id: I528f9e96a3471de904845a2f9e09c1b6ff83a708
2015-04-25 13:48:26 -07:00
Elliott Hughes 6ce5625d58 Merge "Improve toolbox SIGPIPE behavior." 2015-04-25 19:14:54 +00:00
Elliott Hughes 5976018b4a Improve toolbox SIGPIPE behavior.
None of our tools -- except for top, which I'd fixed previously --
handles SIGPIE correctly. Let's just handle SIGPIPE in the driver.

Bug: https://code.google.com/p/android/issues/detail?id=157920
Change-Id: I322ea411f53c71585a64118c217d54389f675d4e
2015-04-25 12:03:41 -07:00
Elliott Hughes 9798023e9f Merge "Add ReadFully and WriteFully to libbase." 2015-04-25 05:01:21 +00:00
Elliott Hughes 2899c94b9d Merge "Switch init to epoll." 2015-04-25 05:01:03 +00:00
Elliott Hughes 56085edbf8 Add ReadFully and WriteFully to libbase.
Change-Id: I6b7aa2a93398e7acdd1d74c71d9abed08a72b3c4
2015-04-24 21:57:16 -07:00
Elliott Hughes 929f407076 Switch init to epoll.
Not just because it's what the cool kids are doing --- it also lets us
simplify the inner loop and decouple it from whatever systems want to
be woken to perform some activity if there's data to be read on some fd.

Currently this is just used to clean up the existing signal handling,
keychord, and property service code.

Change-Id: I4d7541a2c4386957ad877df69e3be08b96a7dec5
2015-04-24 21:13:44 -07:00
Elliott Hughes df5d448207 Merge "Clean up property service initialization." 2015-04-25 02:36:46 +00:00
Elliott Hughes c6c26ed781 Clean up property service initialization.
All the code that was being delayed does is create a socket. We can
do that straight away, avoid the overhead, and simplify our main loop.

The keychord fd, on the other hand, seems a little tricky. It looks
like /dev/keychord isn't immediately available, at least not on N9;
we have to wait for ueventd to set us up the bomb.

Change-Id: I020e75b8e4b233497707f0a3cbbb6038b714161f
2015-04-24 19:15:20 -07:00
Elliott Hughes b749be0bc3 Merge "Clean up init signal handling a little." 2015-04-25 01:10:58 +00:00
Elliott Hughes 9042cae40b Clean up init signal handling a little.
We can set it up earlier, and error reporting like this helped me find
the SELinux problem with the last change to this code.

Change-Id: If0f38bc5ff0465c4030e2d39d34f31f49b2d8487
2015-04-24 17:43:21 -07:00
Elliott Hughes 662baefbb7 Merge "Setup signal handler before any exec command" 2015-04-25 00:24:55 +00:00
Mark Salyzyn 05c92d2b4f Merge "liblog: Add BM_is_loggable benchmark" 2015-04-24 21:42:47 +00:00
Elliott Hughes a5669861c1 Merge "Revert "Revert "Remove now-unusable 'setcon' command.""" 2015-04-24 20:31:19 +00:00
Elliott Hughes c7ca9dd6c8 Revert "Revert "Remove now-unusable 'setcon' command.""
This reverts commit b862bd00a4.

This change was fine but an earlier change it depended on was broken.
That change has been fixed and resubmitted.

Bug: http://b/19702273
Change-Id: I17e565721026e48e2a73526f729f2481d4d6edb5
2015-04-24 12:41:47 -07:00
Elliott Hughes 132440b087 Merge "Revert "Revert "Make init re-exec itself for its SELinux domain transition.""" 2015-04-24 19:33:21 +00:00
Elliott Hughes f65730e620 Revert "Revert "Make init re-exec itself for its SELinux domain transition.""
This reverts commit 4217374611.

It turns out that the kernel passes any unrecognized arguments on to init,
and (at least) N6 and N9 have such arguments. My lazy check of argc was
thus insufficient to recognize what stage of init we were in, so we'd
skip to stage 2 and not set up SELinux. And apparently you can get a
very long way with SELinux off... We'll fix that in a later change.

Bug: 19702273
Change-Id: I43b3fb722fed35dd217cb529cbcac9a29aff4e4b
2015-04-24 12:26:05 -07:00
Elliott Hughes 34dd04dbb5 Merge "Improve bad error reporting seen in shamu SELinux boot failures." 2015-04-24 18:36:55 +00:00
Elliott Hughes 5e7dd4454f Improve bad error reporting seen in shamu SELinux boot failures.
Explain why mount failed, and explicitly say that the umount fixed it.

Change-Id: I13b0927a36517f2fc9f9580945ba6ebefc4882df
2015-04-24 11:05:48 -07:00
Tom Cherry 10936d1fdb Merge "init: consider all platform devices for find_platform_device" 2015-04-24 17:34:32 +00:00
Nick Kralevich 46fee19cb2 Merge "Revert "Make init re-exec itself for its SELinux domain transition."" 2015-04-24 16:58:01 +00:00
Nick Kralevich 4217374611 Revert "Make init re-exec itself for its SELinux domain transition."
shamu isn't booting.

This reverts commit adf0d1bbfa.

Change-Id: I89d568838cebbe14cc4a8ae3843f0f1ac54987af
2015-04-24 16:57:21 +00:00
Nick Kralevich f0b4792017 Merge "Revert "Remove now-unusable 'setcon' command."" 2015-04-24 16:56:44 +00:00
Nick Kralevich b862bd00a4 Revert "Remove now-unusable 'setcon' command."
Temporarily revert because device isn't booting.

This reverts commit 7b15ac99f3.

Change-Id: Ice986bac62e20c70f7bedf1744a617b97392ae8c
2015-04-24 16:55:16 +00:00
Mark Salyzyn 1ac79cbd89 liblog: Add BM_is_loggable benchmark
- On a N9 64-bit benchmark, the __android_log_is_loggable overhead
  is roughly 500ns (1/2 of a syscall?)

Bug: 19544788
Bug: 17760225
Bug: 20416721
Change-Id: Ib9e4d06d96e1b19ca5d459e569ead451ef47a9c0
2015-04-24 07:59:44 -07:00
Elliott Hughes 659b7d633a Merge "Remove now-unusable 'setcon' command." 2015-04-24 04:01:59 +00:00
Elliott Hughes fa66b4e136 Merge "Remove long-obsolete file." 2015-04-24 03:59:05 +00:00
Elliott Hughes 2a87d2b155 Remove long-obsolete file.
Change-Id: I728cc13b4a7ac93f9c923d2fc9bda2bb65ffe99d
2015-04-23 20:57:12 -07:00
Elliott Hughes 7b15ac99f3 Remove now-unusable 'setcon' command.
Bug: http://b/19702273
Change-Id: Icd340c80ba074476dcc63f1c1dd5c61a5c768893
2015-04-23 20:54:46 -07:00
Elliott Hughes 1a39a994d9 Merge "Correct magic number on umount2" 2015-04-24 03:21:43 +00:00
Elliott Hughes d46567848b Merge "Make init re-exec itself for its SELinux domain transition." 2015-04-24 03:10:16 +00:00
William Roberts 4555b69f26 Correct magic number on umount2
The umount2 call was using the magic constant 2 which is
has a defined and proper macro in mount.h as MNT_DETATCH.

Change-Id: I4ca4a6d31cbf5495c545088e3d90a8894a9f912f
2015-04-24 01:13:35 +00:00
Mark Salyzyn 765207524f Merge "rootfs: init.rc start logd parse error" 2015-04-23 22:25:30 +00:00
Elliott Hughes adf0d1bbfa Make init re-exec itself for its SELinux domain transition.
Change-Id: I38adabe5789d671e3f7d21936071a758ec8cea8a
2015-04-23 15:20:51 -07:00
Tom Cherry 1225a61f0a init: consider all platform devices for find_platform_device
Certain platforms list their platform devices with a path other than
the current /devices or /devices/platform.  Additionally, sometimes
these paths are a platform device themselves.  An example are devices
with a path /devices/soc.0/... where /devices/soc.0 is also a platform
devices.

Instead of continuing to special case these path prefixes, we can
consider the entire path, given that no mmc or usb devices create
platform devices as subdevices, which they should not by their very
nature.

This keeps the symlinks for block devices named identically for
current platform devices and places them in /dev/block/<full path to
device> for devices in locations other than /devices or
/devices/platform, eg /dev/block/platform/soc.0/7824900.sdhci

This keeps the symlinks for character deviced named identically for
all cases.

Change-Id: Ifc8eedf1086db1826dbc8f7e96cdfcfa5da876b3
2015-04-23 15:04:06 -07:00
Mark Salyzyn 2ce1d81fd4 Merge "liblog: __android_log_is_loggable support Developer Options" 2015-04-23 21:06:31 +00:00
Mark Salyzyn 653f9581bf Merge "logd: per UID less aggressive 12.5% threshold" 2015-04-23 14:41:48 +00:00
Mark Salyzyn 40502e1a70 Merge "logd: ratelimit drop messages to 1/sec" 2015-04-23 14:30:44 +00:00
Elliott Hughes 876881b22a Merge "Add missing null checks after allocations." 2015-04-22 20:05:46 +00:00
Mark Salyzyn e06a6e0f26 logd: ratelimit drop messages to 1/sec
Bug: 20334069
Bug: 20370119
Change-Id: I6f850aec46c4df1c99a5b1f28db75d071e134ad5
2015-04-22 11:58:37 -07:00
Mark Salyzyn d717d805d4 logd: per UID less aggressive 12.5% threshold
Per-UID quota has a threshold of 12.5% of the total log size.
If less than that space is taken by the UID, then we
will not engage the pruning based on worst UID.

Change-Id: I9f15c9a26938f1115eb75e9c28ddb073e7680e06
2015-04-22 11:53:29 -07:00
Mark Salyzyn 1f028b2fdf liblog: __android_log_is_loggable support Developer Options
- If logd.tag.<tag> is not found, check if persist.logd.tag.<tag> is available
- Do not turn off the isLoggable functionality on "user" builds

Bug: 19544788
Bug: 17760225
Change-Id: I3fec67b547aa431438965519507033798398e1e1
2015-04-22 10:39:39 -07:00
Richard Uhler f75f16a1dd Merge "Fix typos in comments" 2015-04-22 16:07:22 +00:00