Commit Graph

647 Commits

Author SHA1 Message Date
Paul Crowley ee923139c3 Merge "Set up user directory crypto in init." into mnc-dr-dev 2015-07-13 20:52:45 +00:00
Paul Lawrence 948410a493 Change init sequence to support file level encryption
File level encryption must get the key between mounting userdata and
calling post_fs_data when the directories are created. This requires
access to keymaster, which in turn is found from a system property.

Split property loaded into system and data, and load in right order.

Bug: 22233063
2015-07-07 13:23:19 -07:00
Paul Lawrence 8104616696 Merge "Revert "Change init sequence to support file level encryption"" into mnc-dev 2015-07-07 17:29:00 +00:00
Paul Lawrence 437bc5dcec Revert "Change init sequence to support file level encryption"
This reverts commit d815178b75.

Change-Id: I7e3f55d3092fcd04ea9f62f1971c9d42570f096c
2015-07-07 17:05:58 +00:00
Andres Morales 833f142d20 Merge "[init] start gatekeeperd after device decryption" into mnc-dev 2015-07-06 23:00:09 +00:00
Andres Morales 4dd2982dd3 [init] start gatekeeperd after device decryption
gatekeeperd depends on having /data to determine whether
to call setup routines for qcom HALs.

Bug: 22298552
Change-Id: I6c552016dc863bbb04bd5a949a2317a720c8263f
2015-07-06 12:00:22 -07:00
Paul Lawrence d815178b75 Change init sequence to support file level encryption
File level encryption must get the key between mounting userdata and
calling post_fs_data when the directories are created. This requires
access to keymaster, which in turn is found from a system property.

Split property loaded into system and data, and load in right order.

Bug: 22233063
Change-Id: I8a6c40d44e17de386417a443c9dfc3b4e7fe59a5
2015-07-06 07:52:06 -07:00
Jeff Sharkey f38f29c87d Let's reinvent storage, yet again!
Now that we're treating storage as a runtime permission, we need to
grant read/write access without killing the app.  This is really
tricky, since we had been using GIDs for access control, and they're
set in stone once Zygote drops privileges.

The only thing left that can change dynamically is the filesystem
itself, so let's do that.  This means changing the FUSE daemon to
present itself as three different views:

/mnt/runtime_default/foo - view for apps with no access
/mnt/runtime_read/foo - view for apps with read access
/mnt/runtime_write/foo - view for apps with write access

There is still a single location for all the backing files, and
filesystem permissions are derived the same way for each view, but
the file modes are masked off differently for each mountpoint.

During Zygote fork, it wires up the appropriate storage access into
an isolated mount namespace based on the current app permissions.  When
the app is granted permissions dynamically at runtime, the system
asks vold to jump into the existing mount namespace and bind mount
the newly granted access model into place.

Bug: 21858077
Change-Id: I5a016f0958a92fd390c02b5ae159f8008bd4f4b7
2015-06-25 22:27:04 -07:00
Paul Crowley 749af8c08f Set up user directory crypto in init.
(cherry-picked from commit b94032b79c)

Bug: 19704432
Change-Id: Ife4928ffbee39c8ae69e6ba66d9ce5ef5a0beb76
2015-06-23 15:21:51 +00:00
Pavlin Radoslavov 8175bb2352 Fix the file permissions of /data/misc/bluedroid/bt_config.conf
Fix the file access permissions and group ownership of
"/data/misc/bluedroid/bt_config.conf" so the file can be reused when
switching users on the device.
For that purpose, we need to do the following:

1. Set the set-group-ID (bit 02000) flag for directory "/data/misc/bluedroid"
   so the files created in that directory will have group-id of
   "net_bt_stack" .

2. Change the file's permissions of file "/data/misc/bluedroid/bt_config.conf"
   to Read/Write by User and Group.

Bug: 21493919
Change-Id: Ie00ab4695198ef2aa299b484ef9d4f17bd41b98a
2015-06-22 10:19:30 -07:00
Tim Murray b769c8d24f add cpuset support to libcutils
bug 21782794

Change-Id: I249531754fb29442dc3c7434d77dbb103f4220a7
2015-06-11 18:35:46 -07:00
Paul Lawrence 3678a5fb8d Merge "Move crypt commands to a different listener in vold" into mnc-dev 2015-06-04 21:32:44 +00:00
Paul Lawrence 37fcc5d73e Move crypt commands to a different listener in vold
In order to prevent this bug from happening, we must allow vold cryptfs
commands to complete while a long running mount is underway.

While waiting for vold to be changed to a binder interface, we will simply
create two listeners, one for cryptfs and one for everything else.

Bug: 19197175
Change-Id: Ie3d9567819ced7757b0a8f391547f27db944153c
2015-06-03 14:19:29 -07:00
Nick Kralevich 32512e7167 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.

(cherrypicked from commit 221fca7ddd)

Change-Id: I89464f2bd218c7d6e8db08aa6bed2b62ec6dad2a
2015-06-03 13:36:24 -07:00
Mark Salyzyn 49ed105fd9 init.rc: logd: Add logpersistd (nee logcatd)
(cherry pick from commit 100658c303)

- 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:28:36 -07:00
Paul Lawrence 0a423d994a DO NOT MERGE Securely encrypt the master key
(chery-picked from commit 806d10be23)

Move all key management into vold
Reuse vold's existing key management through the crypto footer
to manage the device wide keys.

Use ro.crypto.type flag to determine crypto type, which prevents
any issues when running in block encrypted mode, as well as speeding
up boot in block or no encryption.

This is one of four changes to enable this functionality:
  https://android-review.googlesource.com/#/c/148586/
  https://android-review.googlesource.com/#/c/148604/
  https://android-review.googlesource.com/#/c/148606/
  https://android-review.googlesource.com/#/c/148607/

Bug: 18151196

Change-Id: I6a8a18f43ae837e330e2785bd26c2c306ae1816b
2015-05-29 17:39:16 +00:00
Tao Bao 6484f3d1cb Merge "Change pre-recovery into two services" into mnc-dev 2015-05-28 21:48:16 +00:00
Than McIntosh b37c45e90a Move perfprofd to late_start class.
Bug: http://b/19483574
Change-Id: I88649b50b95cbddb7d0671a5499232cbef156c48
(cherry picked from commit e8efd0d6bf)
2015-05-28 11:58:31 -04:00
Tao Bao e48aed0f0a 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
Change-Id: If67fe1e9ee6279593d2788452febcd3f0fe714c2
2015-05-19 10:04:56 -07:00
Dehao Chen ac725c12da Add /data/misc/perfprofd to store perf profile.
BUG: 19483574

(cherry picked from commit 30c401fa92)

Change-Id: Ibf96db9f7e5db625b395db20b73572acc240b1f9
2015-05-06 15:09:23 -07:00
Than McIntosh 7d678d8d78 Invoke perfprofd daemon (only for userdebug/eng builds).
Change-Id: Ifaabe32dda6db249efc62c5db3760e32295eb1a9
(cherry picked from commit d6544d2a40)
2015-05-04 11:50:27 -07:00
Mark Salyzyn 5cb4c8796c Revert "STOPSHIP: WifiStateMachine logging temporarily disabled"
This reverts commit 15ae6c2e7c.

Change-Id: I281a65209a5118a6c73ddec65ed40d149c23bf0b
2015-04-24 21:32:17 +00:00
Mark Salyzyn b2beaf7b20 Merge "Revert "STOPSHIP: Additional Wifi logging temporarily disabled"" 2015-04-24 21:30:22 +00:00
Elliott Hughes 03c9267865 am a8088f38: am ec389902: am 132440b0: Merge "Revert "Revert "Make init re-exec itself for its SELinux domain transition."""
* commit 'a8088f380932d873a39fafdd816f96328f7caa9c':
  Revert "Revert "Make init re-exec itself for its SELinux domain transition.""
2015-04-24 21:09:34 +00:00
Mark Salyzyn ea782d327a Revert "STOPSHIP: Additional Wifi logging temporarily disabled"
This reverts commit 18b1da2033.

Change-Id: I86cde061a36a9a9e43c8a5df2df1e853ed32b7a0
2015-04-24 20:28:27 +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 d6069e21ee am b706a8ac: am 2db3cd3e: am 46fee19c: Merge "Revert "Make init re-exec itself for its SELinux domain transition.""
* commit 'b706a8acff9c62da7b4045374b93a8739671a8a0':
  Revert "Make init re-exec itself for its SELinux domain transition."
2015-04-24 17:37:42 +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
Elliott Hughes 45a2329b2d am 77434ab3: am ef68fd3f: am d4656784: Merge "Make init re-exec itself for its SELinux domain transition."
* commit '77434ab362b3234accf16499aaf2a5340d568553':
  Make init re-exec itself for its SELinux domain transition.
2015-04-24 03:51:12 +00: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 7076796cab am 44f1356e: am 85a9566f: am 76520752: Merge "rootfs: init.rc start logd parse error"
* commit '44f1356e42a64fefb194b5c74b62402f4ec2881e':
  rootfs: init.rc start logd parse error
2015-04-23 23:16:39 +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
Mark Salyzyn 18b1da2033 STOPSHIP: Additional Wifi logging temporarily disabled
Bug: 20416721
Change-Id: I1be1c742f47f0e673eef6a8d391246f47c35c336
2015-04-21 23:09:58 +00:00
Mark Salyzyn 15ae6c2e7c STOPSHIP: WifiStateMachine logging temporarily disabled
Bug: 20416721
Change-Id: Id60eb6ab77589ab50800532de0d2877adef1d5b7
2015-04-21 22:39:09 +00: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
Andres Morales 4e9da84be1 Merge "Implement SID API" 2015-04-16 22:16:58 +00:00
Andres Morales 6a49c2fa43 Implement SID API
Change-Id: Id11632a6b4b9cab6f08f97026dd65fdf49a46491
2015-04-16 13:17:54 -07:00
Vinit Deshpande b63190fda8 am b4ef85c..b4ef85c from mirror-m-wireless-internal-release
b4ef85c Add Bluetooth SAP UIM socket
2015-04-14 15:06:55 -07:00
Neil Fuller 13859d1230 am 90014d61: am 532d0a11: am 9b83b623: Merge "Executable to run on boot that removes old tzdata if needed"
* commit '90014d61c83ef5105881c171481a50f21fd4dd57':
  Executable to run on boot that removes old tzdata if needed
2015-04-13 12:18:34 +00: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
Dheeraj Shetty b4ef85c636 Add Bluetooth SAP UIM socket
Change-Id: I1445e51f613ac3e21cf818c0b1364c334579593e
2015-04-12 22:16:35 -07:00
Andres Morales 2d08dce0be GateKeeper proxy service
Until we have SELinux support for gating access
to individual TEE services, we will proxy TEE requests
to GateKeeper via this daemon.

Change-Id: Ifa316b75f75bff79bdae613a112c8c3c2e7189a8
2015-04-08 15:20:22 -07:00
Mark Salyzyn 6abe429588 am 4122304d: am 07e3ed46: am c19572fa: Merge "rootfs: init start logd in post-fs"
* commit '4122304de3990ca1fca2790468fb8e9ddcca11f2':
  rootfs: init start logd in post-fs
2015-04-08 16:56:04 +00: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 bd3212fd92 am 5056cdcd: am 01190672: am de957955: Merge "Create /data/system/heapdump for system_server"
* commit '5056cdcdde4901fe667522cfebf3e1f9e1af3b3b':
  Create /data/system/heapdump for system_server
2015-04-08 01:06:59 +00:00
Nick Kralevich 9c0437fba7 Create /data/system/heapdump for system_server
Bug: 20073185
Change-Id: I6fd83d33da33d048fdd6b07fa1f675ecb4f4eb2c
2015-04-07 16:44:43 -07:00
Jeff Sharkey ae0a5acc0e Mount point for expanded storage.
Managed by vold.

Bug: 19993667
Change-Id: I7957b44d37d6a1f572cbec515d03856a8ed54391
2015-04-06 17:42:14 -07:00