Commit graph

786 commits

Author SHA1 Message Date
Evgenii Stepanov
1cbe3d944a SANITIZE_TARGET: set global ASAN_OPTIONS
allow_user_segv_handler=1 is required to run ART under ASan
detect_odr_violation=0 and alloc_dealloc_mismatch=0 suppress some of
the existing bug reports during boot.

Bug: 21951850, 21785137
Change-Id: I4d36967c6d8d936dacbfdf1b94b87fa94766bd3e
2015-06-19 11:15:51 -07:00
Tao Bao
04b10b9aa3 Change pre-recovery into two services
/system/bin/uncrypt needs to be triggered to prepare the OTA package
before rebooting into the recovery. Separate pre-recovery (uncrypt)
into two services: uncrypt that does the uncryption work and
pre-recovery that actually reboots the device into recovery.

Also create /cache/recovery on post-fs in case it doesn't exist.

Bug: 20012567
Bug: 20949086
(cherry picked from commit e48aed0f0a)
Change-Id: I9877cd6ac9412ea6a566bb1ec0807940c7a38ce5
2015-06-09 14:52:43 -07:00
Nick Kralevich
221fca7ddd tzdatacheck: don't hard code SELinux domain name
An automatic domain transition is already defined by SELinux
policy. Avoid having redundant information on the exec line.

This commit depends on commit 17fff893c0
which made the SELinux process label optional.

Change-Id: I89464f2bd218c7d6e8db08aa6bed2b62ec6dad2a
2015-06-03 13:08:49 -07:00
Mark Salyzyn
100658c303 init.rc: logd: Add logpersistd (nee logcatd)
- logpersistd is defined as a thread or process in the context of the
  logd domain. Here we define logpersistd as logcat -f in logd domain
  and call it logcatd to represent its service mechanics.
- Use logcatd to manage content in /data/misc/logd/ directory.
- Only turn on for persist.logd.logpersistd = logcatd.
- Add logpersist.start, logpersist.stop and logpersist.cat debug
  class executables, thus only in the eng and userdebug builds.

ToDo: Wish to add Developer Options menu to turn this feature on or
off, complicated by the fact that user builds have no tools with
access rights to /data/misc/logd.

Bug: 19608716
Change-Id: I57ad757f121c473d04f9fabe9d4820a0eca06f31
2015-06-02 15:17:59 -07:00
Mark Salyzyn
89357d23a1 rootdir: init.trace.rc too early
debugfs is mounted on boot

Bug: 21566233
Change-Id: I2ba106fbb1e8164ff3d8b2d5b16a16d7926c2732
2015-06-02 12:51:42 -07:00
Than McIntosh
e8efd0d6bf Move perfprofd to late_start class.
Bug: http://b/19483574
Change-Id: I88649b50b95cbddb7d0671a5499232cbef156c48
2015-05-27 14:02:11 -04:00
Paul Lawrence
2e24bcfdce Revert "Set up crypto for user directories in init."
Causes a boot loop in Shamu

This reverts commit ce6f716096.

Bug: 21396871
Change-Id: I9709053c589807d4530a3a99bd84e5b3177316cd
2015-05-22 18:32:45 +00:00
Paul Crowley
ce6f716096 Set up crypto for user directories in init.
Depends on https://android-review.googlesource.com/#/c/147911/

Bug: 19704432
Change-Id: Ie59c6b67f73c1cadd86e69d3c9673ddaddb49a7e
2015-05-20 08:28:21 +01:00
Nick Kralevich
577c1245aa Merge "Add /data/misc/perfprofd to store perf profile." 2015-05-06 21:49:51 +00:00
Nick Kralevich
f3b554fc61 rootdir: make sure the /oem mountpoint is always available
The /oem mount point is used to mount semi-trusted data, and
many Android One devices depend on it. Make sure it's guaranteed
to always be available.

Bug: 20816563
Change-Id: Ib5272f025d14d4da6125d753879054b3faeae696
2015-05-05 17:19:14 -07:00
Dehao Chen
30c401fa92 Add /data/misc/perfprofd to store perf profile.
BUG: 19483574

Change-Id: Ib5eb9e789c063bd76d24181c4c03652f9ef12cb7
2015-05-05 15:06:21 -07:00
Than McIntosh
d6544d2a40 Invoke perfprofd daemon (only for userdebug/eng builds).
Change-Id: Ifaabe32dda6db249efc62c5db3760e32295eb1a9
2015-04-28 14:32:35 -04:00
Paul Lawrence
9234b169e6 Merge "Securely encrypt the master key" 2015-04-27 20:08:53 +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
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
Elliott Hughes
2a87d2b155 Remove long-obsolete file.
Change-Id: I728cc13b4a7ac93f9c923d2fc9bda2bb65ffe99d
2015-04-23 20:57:12 -07:00
Elliott Hughes
d46567848b Merge "Make init re-exec itself for its SELinux domain transition." 2015-04-24 03:10:16 +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
Paul Lawrence
4bf1887c78 Securely encrypt the master key
Remove unencrypted link since it is easier to manage directly
Move creation of key to vold
Start vold early so this is possible in a timely fashion

This is one of four changes to enable this functionality:
  https://android-review.googlesource.com/#/c/144586/
  https://android-review.googlesource.com/#/c/144663/
  https://android-review.googlesource.com/#/c/144672/
  https://android-review.googlesource.com/#/c/144673/

Bug: 18151196
Change-Id: Idb17d1f1a724c6ec509d181ae4427113e9d3b5e6
2015-04-23 10:23:03 -07:00
Mark Salyzyn
5c39e0ada8 rootfs: init.rc start logd parse error
init: /init.rc: 490: invalid option 'start'

Change-Id: Ica985e45d4652dab0ebd434803344f14cc73d834
2015-04-20 15:56:14 +00:00
Nick Kralevich
1450586ffd create /data/misc/gatekeeper
Change-Id: I7631401ac21b60a22f6fd4052814186bf3bc2b05
2015-04-20 08:55:12 -07:00
Neil Fuller
08913228e1 Executable to run on boot that removes old tzdata if needed
tzdatacheck is exec'd from init.rc early in boot just after /data is
mounted. It checks to make sure that the tz rule data in /data
is newer than the version in /system. If the data is older it is
deleted. This is to address problems with earlier tz rule updates
that occurred: after an OTA upgrade previous updates in /data
would override newer versions in the system partition.

Includes change to init.rc neccessary to run it at boot time. Other
changes are in external/selinux.

Bug: 19941636
Bug: https://code.google.com/p/android/issues/detail?id=35730
Change-Id: I7cc61e058424c856da88f11ff9b259f34cb39dc7
2015-04-13 11:38:32 +01:00
Mark Salyzyn
124ff15bca rootfs: init start logd in post-fs
The earliest point we can start logd is after /system is mounted.
Ideally on post-fs-system (does not exist), post-fs will do.
As insurance, we will also make sure logd is started if a
logd-reinit is requested. This results in logd starting at least
4 processes earlier than it does currently, with a tighter
grouping of threads which means we are taking advantage of a
lighter CPU load at the time, rather than taking cycles during
heavy activity during core startup.

Change-Id: If4f0bd3a53bb4c47500a54d741ca635d87c0c330
2015-04-08 09:18:50 -07:00
Nick Kralevich
9c0437fba7 Create /data/system/heapdump for system_server
Bug: 20073185
Change-Id: I6fd83d33da33d048fdd6b07fa1f675ecb4f4eb2c
2015-04-07 16:44:43 -07:00
Paul Lawrence
b8c9d273a0 Revert "Revert "Adding e4crypt support""
Fix build break caused by original change

This reverts commit 84b0bab58f.

Change-Id: I99fbd7c3d1ed92db1f546033c8493bb71a327924
2015-03-31 13:02:13 -07:00
Elliott Hughes
da40c00137 Log more timing information from init.
Also make important events in init's life NOTICE rather than INFO,
and ensure that NOTICE events actually make it to the kernel log.

Also fix the logging so that if you have a printf format string
error, the compiler now catches it.

Also give messages from init, ueventd, and watchdogd distinct tags.
(Previously they'd all call themselves "init", and dmesg doesn't
include pids, so you couldn't untangle them.)

Also include the tag in SELinux messages.

Bug: 19544788
Change-Id: Ica6daea065bfdb80155c52c0b06f346a7df208fe
2015-03-28 00:25:22 -07:00
Elliott Hughes
cc86fb2b29 Switch init over to _PATH_DEFPATH.
Bug: 19564110
Change-Id: I343b4a360b10319dca13ab01f2d411ff940e9052
2015-03-17 20:01:13 -07:00
Mark Salyzyn
48d06069a8 init.rc: logd --reinit on changes to persistent properties
Bug: 19681572
Change-Id: I3187aa348dae79fa5822ffb7ee9566919a7a04e6
2015-03-12 12:24:53 -07:00
Mark Salyzyn
1dd71ae12e am f33c3bc9: Merge "init: drop dontpanic & apanic initialization"
* commit 'f33c3bc9602e4a369c4cc5d28357b8f73a3eed6c':
  init: drop dontpanic & apanic initialization
2015-02-27 19:34:33 +00:00
Mark Salyzyn
1eaba37aae init: drop dontpanic & apanic initialization
Bug: 19050686
Bug: 19525200
Change-Id: Id81abe3b44283b439390b42db7a9da23748dee0a
2015-02-27 07:03:01 -08:00
Nick Kralevich
398ade817b am 7bb72b73: Merge "seclabel use on services out of system partition"
* commit '7bb72b73b0291636721d83a45adad175163361ec':
  seclabel use on services out of system partition
2015-02-26 01:07:12 +00:00
William Roberts
6889007627 seclabel use on services out of system partition
These services can make use of type transitions already
present in the base policy.

Change-Id: Id785c39c4ea44598c64dc499bd943c73bc55ca85
2015-02-23 13:50:37 -08:00
Elliott Hughes
9c1bc6bbc8 am 29576ae8: Merge "/vendor is sometimes on a separate partition now."
* commit '29576ae8901eb95d4c8a34f242a282b2fb73d35f':
  /vendor is sometimes on a separate partition now.
2015-02-14 05:08:42 +00:00
Elliott Hughes
3a5d71ac60 /vendor is sometimes on a separate partition now.
Change-Id: I3217c272ea38ab8212056e0432d0ededacd362f6
2015-02-13 16:59:00 -08:00
Elliott Hughes
0903c13ade am 265df6f5: Merge "bootchart: fix bootchart can not be triggered problem"
* commit '265df6f50c508710f0b717d67650732baa906976':
  bootchart: fix bootchart can not be triggered problem
2015-02-12 20:32:33 +00:00
Yongqin Liu
a197ff12dd bootchart: fix bootchart can not be triggered problem
bootchart uses a file on the data partition to decide if it should collect
data for bootchart, but the data partition will be mounted by the mount_all
command in the "on fs" section, and it will be only added into the action
queue when command "trigger fs" is executed, but that's after the
bootchart_init action (late_init).

This change makes bootchart_init a builtin command of init,
and make it executed as the first command of "on post-fs" section
which will be triggered after the "on fs" section.

This change also refactors the bootchart code to all be in bootchart.cpp.

Change-Id: Ia74aa34ca5b785f51fcffdd383075a549b2a99d9
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
2015-02-12 12:13:24 -08:00
Paul Lawrence
a173891532 am 317b4024: Revert "Make encryption configurable"
* commit '317b4024a2a46b8c57abfa08f2a649df13572bd3':
  Revert "Make encryption configurable"
2015-02-07 00:11:12 +00:00
Paul Lawrence
317b4024a2 Revert "Make encryption configurable"
This reverts commit bda6272446.

The original fix seems to have led to boot failures in QA. Rather than
risk shipping, revert the change. Bug 18764230 reopened.

Requires change
    https://googleplex-android-review.git.corp.google.com/#/c/629764/

Bug: 19278390
Bug: 19199624

Change-Id: I8b6ab585666f2b0f585ffb2a5f61ac2e3462e06e
2015-02-06 17:32:09 +00:00
Greg Hackmann
86cdce1aab am f52338fe: Merge "rootdir: enable armv8_deprecated swp hook"
* commit 'f52338fe1e8f74123a895db591d6a2a53061a2b1':
  rootdir: enable armv8_deprecated swp hook
2015-02-05 23:21:19 +00:00
Greg Hackmann
cee8757f92 rootdir: enable armv8_deprecated swp hook
The upstream kernel now includes support for emulating legacy AArch32
instructions on ARMv8 devices.  By default this framework emulates
deprecated instructions but not obsolete instructions.

Android requires support for the obsolete SWP and SWPB instructions on
all ARM devices, so override this default for the swp emulation hook.

Change-Id: I82b9bdb564413ec7c1a101da75a9928aebe1606b
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-02-05 13:38:58 -08:00
Nick Kralevich
e1f62802f6 am d07555db: Merge "ensure /data/tombstones exists on all Android devices"
* commit 'd07555dba01d64011b0d611dd6d3b197b216c163':
  ensure /data/tombstones exists on all Android devices
2015-01-31 07:49:28 +00:00
Nick Kralevich
0359d778a5 ensure /data/tombstones exists on all Android devices
/data/tombstones is referenced by core platform code, but is not
guaranteed to exist on all Android devices. Move the directory
creation out of device specific files and into the core
init.rc file.

Bug: https://code.google.com/p/android/issues/detail?id=93207
Change-Id: I94ae5199a6a32c4fe555ca994fc4a8345e0c9690
2015-01-30 17:38:06 -08:00
Paul Lawrence
36d0eaecd7 Make encryption configurable
Delay mounting encryptable but unencrypted volumes until we can
check the ro.vold.forceencrypt flag, then optionally encrypt.

Requires matching vold change from
    https://googleplex-android-review.git.corp.google.com/#/c/615309/

Bug: 18764230
Change-Id: If22008be8de6a4f3216b349f81ace49be1730314
2015-01-28 11:41:53 -08:00
Paul Lawrence
7e890a4d32 am bda62724: Make encryption configurable
* commit 'bda6272446454886339841a62daaa1b66c07ad60':
  Make encryption configurable
2015-01-26 16:22:49 +00:00
Paul Lawrence
bda6272446 Make encryption configurable
Delay mounting encryptable but unencrypted volumes until we can
check the ro.vold.forceencrypt flag, then optionally encrypt.

Requires matching vold change from
    https://googleplex-android-review.git.corp.google.com/#/c/615309/

Bug: 18764230
Change-Id: If22008be8de6a4f3216b349f81ace49be1730314
2015-01-21 10:03:29 -08:00
Mark Salyzyn
8c7380b476 am 3802b5d4: Merge "rootdir: add pstore"
* commit '3802b5d4c5cb14864dcdd8820e9140b81a2d7d78':
  rootdir: add pstore
2015-01-14 17:46:46 +00:00
Mark Salyzyn
4b0313e4d3 rootdir: add pstore
/dev/pmsg0 used to record the Android log messages, then
on reboot /sys/fs/pstore/pmsg-ramoops-0 provides a means
to pull and triage user-space activities leading
up to a panic. A companion to the pstore console logs.

Change-Id: Id92cacb8a30339ae10b8bf9e5d46bb0bd4a284c4
2015-01-14 17:15:39 +00:00
Yabin Cui
2cd0563c53 am d3119b19: Merge "Add ip6-localhost to /system/etc/hosts."
* commit 'd3119b1962ef5c0d15b9cc22beb9ded040b44dcb':
  Add ip6-localhost to /system/etc/hosts.
2015-01-13 23:39:26 +00:00