Commit graph

1337 commits

Author SHA1 Message Date
Paul Crowley
d9b9295b8c Fix memory leak in generate_key wrapper. Other fixes.
- catch errors in looking for the keyring
- static_assert to prevent a buffer overrun
- remove obsolete, misleading comment
- dial down priority of some log messages
- explain why we ignore some errors
- idiomatic C++11

Bug: 27552432
Change-Id: Ic3ee05b41eae45e7c6b571a459b326a483663526
2016-03-08 14:31:49 -08:00
Yu Ning
942d4e830b Support emulator's virtio-blk based SD card
Currently, vold only supports MMC (for SD cards) and SCSI (for USB
drives) devices. It does not recognize any device whose major number is
not one of those used by MMC and SCSI. Unfortunately, virtio-blk is one
such device. It is used by the new Android emulator (a.k.a. qemu2,
featuring the "ranchu" virtual board) for SD card emulation.

In order to make this virtio-blk based SD card device appear in Android
and appear as an SD card (rather than a USB drive), changes have to be
made to both vold (wherever the device major number is checked) and
ranchu's storage configuration. This CL implements former.

This is a stop-gap solution for emulator in nyc.
A longer term solution in-tune with upstream kernel is in the pipes.

Updated from aosp/master version.

BUG:27431753

Change-Id: I5014edec73be7c5b565d91542464c82cbe58992c
Signed-off-by: Yu Ning <yu.ning@intel.com>
(cherry picked from commit 5b1d1c7dfa13b4dca75213581dc8351b841b76c8)
2016-03-08 12:19:41 -08:00
George Burgess
972c545f7e Merge "Cleanup uses of sprintf, add modes to open() with O_CREAT." 2016-03-03 00:07:39 +00:00
George Burgess IV
605d7ae18d Cleanup uses of sprintf, add modes to open() with O_CREAT.
Change-Id: Iaed2538831b19ada26005bbef33cff28209c6512
2016-03-02 22:42:22 +00:00
Paul Crowley
b7f28dcb4b Merge "Use a proper key length for the mode." into nyc-dev am: ad8e26297b
am: 2227b35945

* commit '2227b35945f8e5dcc30f05719d60cfae7fea5d18':
  Use a proper key length for the mode.
2016-03-02 20:05:55 +00:00
Calin Juravle
23c51597ca Prepare profile directories only for the internal storage am: d1ee944f08
am: c0c305fbcf

* commit 'c0c305fbcf0427aba9ddecb81015cdc0d4790dc1':
  Prepare profile directories only for the internal storage
2016-03-02 20:05:30 +00:00
Paul Crowley
2227b35945 Merge "Use a proper key length for the mode." into nyc-dev
am: ad8e26297b

* commit 'ad8e26297b07f26376bd3125b11ae280304c22e8':
  Use a proper key length for the mode.
2016-03-02 19:09:01 +00:00
Calin Juravle
c0c305fbcf Prepare profile directories only for the internal storage
am: d1ee944f08

* commit 'd1ee944f0839d60b014722c7facbb4a66bd4f2c3':
  Prepare profile directories only for the internal storage
2016-03-02 19:08:54 +00:00
Paul Crowley
ad8e26297b Merge "Use a proper key length for the mode." into nyc-dev 2016-03-02 18:59:58 +00:00
Paul Crowley
2199069aca Use a proper key length for the mode.
Bug: 27440526
Change-Id: I818450252dcd39f21948fc2e70856659eba5f50f
2016-03-02 10:39:53 -08:00
Calin Juravle
d1ee944f08 Prepare profile directories only for the internal storage
Bug: 27444691
Change-Id: I0d30e8883fe655c90cda47ab167a878764ea0802
2016-03-02 18:36:50 +00:00
Calin Juravle
ed4800064c Create profile folder for foreign dex markers. am: 493f5aa160
am: 29593a8128

* commit '29593a8128513863bed1c9f863787d5309bd24ce':
  Create profile folder for foreign dex markers.
2016-03-01 21:49:43 +00:00
Calin Juravle
29593a8128 Create profile folder for foreign dex markers.
am: 493f5aa160

* commit '493f5aa16075eec6948f476b3fe0d29de063ee85':
  Create profile folder for foreign dex markers.
2016-03-01 21:43:43 +00:00
George Burgess IV
170d8dae27 Add mode flags to open calls with O_CREAT.
Change-Id: Ib9fb61155d15ed9eb54942959af965df2fe21b71
2016-02-26 11:48:57 -08:00
Calin Juravle
493f5aa160 Create profile folder for foreign dex markers.
This is a special profile folder where apps will leave profile markers
for the dex files they load and don't own. System server will read the
markers and decide if the apks should be fully compiled instead of
profile guide compiled.

Bug: 27334750
Bug: 26080105
Change-Id: Ib18f20cf78a8dbfc465610ec6ceec52699c5420a
2016-02-25 23:31:50 +00:00
Calin Juravle
8f1913d479 Prepare user profile folder
am: 79f55a461f

* commit '79f55a461f1edf90b769824c6a69dcb520614d83':
  Prepare user profile folder
2016-02-22 11:49:06 +00:00
Calin Juravle
79f55a461f Prepare user profile folder
Bug: 26719109
Bug: 26563023
Change-Id: I4737b7f73df74b2b787a62db2e231f136115b359
2016-02-19 13:43:02 +00:00
Bill Yi
c191423cd5 Merge commit \'9b5db9bcbe333b677ca18d2c1c398c8751cd0fd2\' into HEAD
am: e7af39dc4b

* commit 'e7af39dc4b616f6a37c6ab691c48ad745f2a428b':
2016-02-17 20:46:47 +00:00
Bill Yi
e7af39dc4b Merge commit '9b5db9bcbe333b677ca18d2c1c398c8751cd0fd2' into HEAD 2016-02-17 09:51:20 -08:00
Dimitry Ivanov
708950bde8 Merge "Add missing liblog dependency"
am: 6e8a931d54  -s ours

* commit '6e8a931d54c4d67e39cf0a22bf496bd4ab9822f7':
  Add missing liblog dependency
2016-02-13 01:31:49 +00:00
Dimitry Ivanov
6e8a931d54 Merge "Add missing liblog dependency" 2016-02-13 00:37:27 +00:00
Dimitry Ivanov
01f86a521d Add missing liblog dependency
Bug: http://b/27171986
Change-Id: I03c5f9375ca46a81250ac00493a4f3f1eebf3156
2016-02-12 16:10:22 -08:00
Paul Crowley
ad2eb64413 Log a warning if old creds passed to change_user_key don't work.
Bug: 26948053
Change-Id: I8c117bfe5e85e73af72b6ecafea39924f3561c7c
2016-02-10 17:56:05 +00:00
Paul Crowley
63c18d3ba9 Add scrypt-based password stretching.
Bug: 27056334
Change-Id: Ifa7f776c21c439f89dad7836175fbd045e1c603e
2016-02-10 14:07:59 +00:00
Paul Lawrence
58e9c2a4aa Merge "Fix encryption on non-default devices" into nyc-dev 2016-02-09 19:32:44 +00:00
Paul Lawrence
42b2837cfa Fix encryption on non-default devices
Bug: 27061863
Change-Id: Id998bb4534f657079e95718ef52af3f23100fb10
2016-02-09 11:24:28 -08:00
Paul Crowley
76107cb3f4 Prefer bool returns to int throughout
Change-Id: Ib3592b598ee07bc71a6f9507570bf4623c1cdd6a
2016-02-09 10:11:42 +00:00
Paul Crowley
38132a1f66 Refactor now that global DE has been reworked
Change-Id: I4d6156332cfc847e25e7c8863fd6a50fa325fb87
2016-02-09 10:11:42 +00:00
Paul Crowley
57eedbf8cb Fix some "false" returns to be "-1" where appropriate in e4crypt_enable
Also fix a PLOG that should be a LOG.

Change-Id: Ic5ae288c37b6e236172f9e38349c2d0d530bfd4d
2016-02-09 10:11:42 +00:00
Jeff Sharkey
695d928286 e4crypt_unlock_user_key no longer likes nullptr.
Bug: 27075797
Change-Id: I835d17d02ea50a88ef0a5322a30e04f3d0237019
2016-02-08 18:10:34 -07:00
Paul Crowley
f7a0d007d2 Add new argument to unlock_user_key, fixing merge-caused error.
Change-Id: Ic51f375e500cd61bda926e3b039126a840ed89f0
2016-02-08 22:40:34 +00:00
Paul Crowley
5c025bd9a5 Merge "Password security for FBE disk encryption keys" into nyc-dev 2016-02-08 21:45:46 +00:00
Paul Crowley
0572080814 Password security for FBE disk encryption keys
Added a new call change_user_key which changes the way that disk
encryption keys are protected; a key can now be protected with a
combination of an auth token and a secret which is a hashed password.
Both of these are passed to unlock_user_key.

This change introduces a security bug, b/26948053, which must be fixed
before we ship.

Bug: 22950892
Change-Id: Iac1e45bb6f86f2af5c472c70a0fe3228b02115bf
2016-02-08 20:03:57 +00:00
Jeff Sharkey
0754a45539 Emulation fixes: mics dirs, recover after disable.
Add new misc directories to list of paths that we lock/unlock in
emulation mode.  When booting a device without native-FBE and without
emulation, make sure we "unlock" any emulated settings on user 0;
MountService handles this for secondary users later during boot.

Bug: 27069522
Change-Id: I15c7cf00a7231ce99b2e4e11a25106d7b87e70cc
2016-02-08 12:45:16 -07:00
Daichi Hirono
1ab7349e49 Merge "Add context mount option for appfuse." 2016-02-07 04:01:24 +00:00
Jeff Sharkey
47695b29af Allow callers to prepare CE/DE user storage.
Give callers the option of preparing CE and/or DE storage.  The
framework will only prepare CE storage after the CE keys have been
unlocked for that user.

When init is calling enablecrypto, kick off the work in a thread so
that we can make other calls back into vold without causing
deadlock.  Leaves blocking call intact for framework callers.

Clean up 'vdc' tool to send useful transaction numbers, and
actually watch for the matching result to come back.  This fixes
race conditions when there are multiple 'vdc' callers.

Also add other system and misc directories to match spec.

Bug: 25796509
Change-Id: Ie4f853db6e387916b845d2b5fb92925d743b063d
2016-02-05 13:03:52 -07:00
Daichi Hirono
1c419e000e Add context mount option for appfuse.
BUG=26147865

Change-Id: I1812c46d0f80eaea9a9a3fa944bc4d0126ae8ba1
2016-02-05 16:09:24 +09:00
Paul Lawrence
f10544df96 Remove unencrypted_properties
Change-Id: I5728f03dbde6621e410efcda1d93054915793407
2016-02-04 12:48:41 -08:00
Paul Lawrence
5a06a6481b Fix minor issues with previous change
New style logging
Remove set/get field from e4crypt
Save keys to temp file then rename

See https://googleplex-android-review.git.corp.google.com/#/c/858922/

Change-Id: I454c3f78489b491ffc1230a70dce64935e4e0f8a
2016-02-03 13:39:13 -08:00
Paul Lawrence
aec34dfb1d Use consistent method for device key
Change-Id: I420f548115c1b55e62b193c60d569fdda518af1a
2016-02-03 10:52:41 -08:00
Paul Lawrence
7b6b565fa0 Remove support for non-default root passwords in FBE
Change-Id: Ie179cb09f9f24382afd0fe0f3aa2a1ad943a7f5d
2016-02-02 12:47:52 -08:00
Daichi Hirono
dac436f1fe Merge "Mount appfuse in process namespace." 2016-02-02 10:14:29 +00:00
Daichi Hirono
10d34887b3 Mount appfuse in process namespace.
BUG=26148108

Change-Id: I2297fd227a4c607054e0403e73bd9c857f580a1c
2016-02-02 18:56:19 +09:00
Jeff Vander Stoep
75fc83bac8 resolve merge conflicts of 2b6f9ce823 to master.
Change-Id: I69f36f560334b11b099f2eb15999603dd2469d4f
2016-02-01 15:24:58 -08:00
Jeffrey Vander Stoep
2b6f9ce823 Merge "cryptfs: run e2fsck/fsck.f2fs in fsck domain"
am: 6f69ee094c

* commit '6f69ee094cabcd052a4742089fcae8e92cf7f924':
  cryptfs: run e2fsck/fsck.f2fs in fsck domain
2016-02-01 23:10:31 +00:00
Jeffrey Vander Stoep
6f69ee094c Merge "cryptfs: run e2fsck/fsck.f2fs in fsck domain" 2016-02-01 23:05:55 +00:00
Jeff Vander Stoep
df72575862 cryptfs: run e2fsck/fsck.f2fs in fsck domain
e2fsck and fsck.f2fs must run in the fsck domain. Add call to
setexeccon() to tell selinux to run in the fsck domain on exec.

Addresses:
avc: denied { execute_no_trans } for path="/system/bin/e2fsck" dev="mmcblk0p41" ino=241 scontext=u:r:vold:s0 tcontext=u:object_r:fsck_exec:s0 tclass=file

Bug: 26872236
Change-Id: Ib2a583aeefc667f8aa67532e0ac0ff9619b65461
2016-02-01 12:59:59 -08:00
Paul Crowley
b92f83c051 Add support for per-user DE keys.
FBE devices need a factory reset after this change.

Bug: 26704408
Change-Id: I150b82a13a4a007d9a8997ef6a676e96576356b2
2016-02-01 17:17:41 +00:00
Paul Crowley
b1f3d242dd Refactor of Ext4Crypt.cpp in preparation for DE keys
Mainly a refactor, but with a substantive change: Keys are created in
a temporary location, then moved to their final destination, for
atomicity.

Bug: 26704408
Change-Id: I0b2dc70d6bfa1f8a65536dd05b73c4b36a4699cf
2016-02-01 17:06:49 +00:00
Paul Crowley
8fb12fd835 Add init_user0 command.
Change-Id: Icf746ec1968a073fde707ecc788b648f5803fd38
2016-02-01 15:19:07 +00:00