Commit graph

4888 commits

Author SHA1 Message Date
Paul Crowley
94a55ae9c0 [automerger skipped] Detect factory reset and deleteAllKeys am: 0f74bd4811 -s ours am: 2160b23d14 -s ours
am skip reason: Merged-In I9c5c547140e8b1bbffb9c1d215f75251f0f1354e with SHA-1 1e6a5f5106 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/15517876

Change-Id: Id349576b4c4bdb2c98961d45f24c21cdfac812f8
2021-08-11 22:16:01 +00:00
Paul Crowley
2160b23d14 [automerger skipped] Detect factory reset and deleteAllKeys am: 0f74bd4811 -s ours
am skip reason: Merged-In I9c5c547140e8b1bbffb9c1d215f75251f0f1354e with SHA-1 1e6a5f5106 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/15517876

Change-Id: Idcba5a41ce50b3c043a8b80b74d90de0aef50f18
2021-08-11 22:00:38 +00:00
Paul Crowley
96b31a40b7 Merge "Detect factory reset and deleteAllKeys" am: 407b2c2386 am: 85961f7a9c am: c248576dad
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1789528

Change-Id: I85671247354c4bbfb5b8d35cac3780331ac0bcf1
2021-08-11 18:28:39 +00:00
Paul Crowley
c248576dad Merge "Detect factory reset and deleteAllKeys" am: 407b2c2386 am: 85961f7a9c
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1789528

Change-Id: I7608e0cccc2c145f722e0fa85b922af9b1d2d8d6
2021-08-11 18:13:25 +00:00
Paul Crowley
85961f7a9c Merge "Detect factory reset and deleteAllKeys" am: 407b2c2386
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1789528

Change-Id: Ibc05df1c5ceede35fdca6d1e6a5abd67e70519f5
2021-08-11 17:52:00 +00:00
Paul Crowley
0f74bd4811 Detect factory reset and deleteAllKeys
Where metadata encryption is enabled, if there is no metadata encryption
key present and we are generating one anew, then there has been a
factory reset, and this is the first key to be generated. We then call
deleteAllKeys to ensure data from before the factory reset is securely
deleted.

This shouldn't really be necessary; the factory reset call itself
should be doing this. However there are currently three factory reset
paths (settings, recovery, fastboot -w) and it is not clear that all
three are doing this correctly on all devices. Obviously an attacker
can prevent this code from being run by running a version of the OS
that does not include this change; however, if the bootloader is
locked, then keys will be version bound such that they will only work
on locked devices with a sufficiently recent version of the OS. If
every sufficiently recent signed version of the OS includes this change
the attack is defeated.

Bug: 187105270
Test: booted Cuttlefish twice, checked logs
Ignore-AOSP-First: no merge path to this branch from AOSP.
Merged-In: I9c5c547140e8b1bbffb9c1d215f75251f0f1354e
Change-Id: I9c5c547140e8b1bbffb9c1d215f75251f0f1354e
2021-08-11 10:43:58 -07:00
Paul Crowley
407b2c2386 Merge "Detect factory reset and deleteAllKeys" 2021-08-11 17:39:55 +00:00
Paul Crowley
1e6a5f5106 Detect factory reset and deleteAllKeys
Where metadata encryption is enabled, if there is no metadata encryption
key present and we are generating one anew, then there has been a
factory reset, and this is the first key to be generated. We then call
deleteAllKeys to ensure data from before the factory reset is securely
deleted.

This shouldn't really be necessary; the factory reset call itself
should be doing this. However there are currently three factory reset
paths (settings, recovery, fastboot -w) and it is not clear that all
three are doing this correctly on all devices. Obviously an attacker
can prevent this code from being run by running a version of the OS
that does not include this change; however, if the bootloader is
locked, then keys will be version bound such that they will only work
on locked devices with a sufficiently recent version of the OS. If
every sufficiently recent signed version of the OS includes this change
the attack is defeated.

Bug: 187105270
Test: booted Cuttlefish twice, checked logs
Change-Id: I9c5c547140e8b1bbffb9c1d215f75251f0f1354e
2021-08-11 10:29:59 -07:00
Treehugger Robot
ff366fab5f Merge "Remove ndk_platform backend. Use the ndk backend." am: 85705f6c86 am: e66b2b4015
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1778413

Change-Id: I3bf1a2b23581bb543ec1496bb60f5d8052076fce
2021-07-28 12:49:02 +00:00
Treehugger Robot
e66b2b4015 Merge "Remove ndk_platform backend. Use the ndk backend." am: 85705f6c86
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1778413

Change-Id: Ic80a30be678fd7427ee7239f8cdb758dfd483940
2021-07-28 12:35:52 +00:00
Treehugger Robot
85705f6c86 Merge "Remove ndk_platform backend. Use the ndk backend." 2021-07-28 12:26:13 +00:00
Nikita Ioffe
78c9cba6a5 Merge "Remove vold logs related to block devices" am: cbf82ffa29 am: 9bf8553f8d
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1779986

Change-Id: I0f5f606384ccebf21e618617a2dd7e12cc4db7b6
2021-07-28 11:26:30 +00:00
Nikita Ioffe
9bf8553f8d Merge "Remove vold logs related to block devices" am: cbf82ffa29
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1779986

Change-Id: I81accecbb47c158de761df31fe078aaa27332006
2021-07-28 11:15:08 +00:00
Nikita Ioffe
cbf82ffa29 Merge "Remove vold logs related to block devices" 2021-07-28 11:01:01 +00:00
Nikita Ioffe
b881fc4feb Remove vold logs related to block devices
Since every APEX requires at least one loop device, now most of the
block devices on a device are not managed by vold. This change removes
some log statements around block devices that vold is not aware of.

Test: device boots
Test: adb logcat
Change-Id: I8efa22023c1f888e75f40178fac464af4457df3c
2021-07-28 02:58:57 +01:00
Jiyong Park
973e05938d Remove ndk_platform backend. Use the ndk backend.
The ndk_platform backend will soon be deprecated because the ndk backend
can serve the same purpose. This is to eliminate the confusion about
having two variants (ndk and ndk_platform) for the same 'ndk' backend.

Bug: 161456198
Test: m
Change-Id: I87554ce86da0f862568c5aa84a21e6613655eb25
2021-07-27 12:21:11 +09:00
Keith Mok
a3f7a54366 Merge "Add command for setting the key binding seed" am: 2d76731968 am: 7aec273c8d
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1757970

Change-Id: If53ae63a91b702e09297c1d916394aee99eee8d2
2021-07-15 21:35:55 +00:00
Keith Mok
7aec273c8d Merge "Add command for setting the key binding seed" am: 2d76731968
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1757970

Change-Id: I4fe8e883754c0c8322fb8223cdb64904da516972
2021-07-15 21:26:35 +00:00
Keith Mok
2d76731968 Merge "Add command for setting the key binding seed" 2021-07-15 20:47:42 +00:00
Sean Keys
8452f41d4a Add command for setting the key binding seed
The seed value is passed to vold early in startup so that the
key-encryption keys are bound to the seed. This is useful for systems
like auto, in which the Android device may not require credentials to
use. In that case, the device should be bound to the rest of the system
(the car, in the case of auto) to guard against theft.

Test: manual
Change-Id: I2e16387b0752a30ef226b5ddf32ebf955aa9610a
2021-07-13 23:41:50 +00:00
Eric Biggers
3746f5a475 [automerger skipped] Ignore too-early earlyBootEnded on FDE devices am: 2ddc1338d7 -s ours
am skip reason: Merged-In I03f816db194a8276ad19ca99b3c8894e8a5fed23 with SHA-1 4859e0ca0f is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/15109082

Change-Id: I0f1cde2384d1848bd4c5da8764dc5a350a56b1bd
2021-06-25 21:06:58 +00:00
Eric Biggers
9f749bcb19 Merge "Ignore too-early earlyBootEnded on FDE devices" am: a3bd31c170 am: 979429e6c3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1747633

Change-Id: Iff37e24d06efedebf682c37b79fdc8ec868b0739
2021-06-25 20:11:40 +00:00
Eric Biggers
979429e6c3 Merge "Ignore too-early earlyBootEnded on FDE devices" am: a3bd31c170
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1747633

Change-Id: Ida62bd5cdab40ce459ba45d20a13c09545b4d938
2021-06-25 19:57:37 +00:00
Eric Biggers
2ddc1338d7 Ignore too-early earlyBootEnded on FDE devices
Don't call IKeystoreMaintenance::earlyBootEnded() too early on FDE
devices, so that keystore2 doesn't have to be restarted.

Bug: 192090857
Test: Tested FDE on Cuttlefish, both first and non-first boots.
      Verified via log that earlyBootEnded is now called only when it
      should be, and that keystore2 no longer has to be restarted.
Change-Id: I03f816db194a8276ad19ca99b3c8894e8a5fed23
(cherry picked from commit 4859e0ca0f)
Merged-In: I03f816db194a8276ad19ca99b3c8894e8a5fed23
2021-06-25 12:44:08 -07:00
Eric Biggers
a3bd31c170 Merge "Ignore too-early earlyBootEnded on FDE devices" 2021-06-25 19:43:02 +00:00
Eric Biggers
4859e0ca0f Ignore too-early earlyBootEnded on FDE devices
Don't call IKeystoreMaintenance::earlyBootEnded() too early on FDE
devices, so that keystore2 doesn't have to be restarted.

Bug: 192090857
Test: Tested FDE on Cuttlefish, both first and non-first boots.
      Verified via log that earlyBootEnded is now called only when it
      should be, and that keystore2 no longer has to be restarted.
Change-Id: I03f816db194a8276ad19ca99b3c8894e8a5fed23
2021-06-25 12:40:21 -07:00
Treehugger Robot
7bff55552f Merge "Replace writepid with task_profiles command for cgroup migration" am: 73a54f653b am: 545957abfe
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1740142

Change-Id: Iedea33f82eb260baa60fdb65bc6de3b849e0c579
2021-06-23 22:03:08 +00:00
Treehugger Robot
545957abfe Merge "Replace writepid with task_profiles command for cgroup migration" am: 73a54f653b
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1740142

Change-Id: I323edcd23a26ffdef59a45e9cd19574c19514ce1
2021-06-23 21:51:39 +00:00
Treehugger Robot
73a54f653b Merge "Replace writepid with task_profiles command for cgroup migration" 2021-06-23 21:32:20 +00:00
Suren Baghdasaryan
d7d3010c45 Replace writepid with task_profiles command for cgroup migration
writepid command usage to join a cgroup has been deprecated in favor
of a more flexible approach using task_profiles. This way cgroup path
is not hardcoded and cgroup changes can be easily made. Replace
writepid with task_profiles command to migrate between cgroups.

Bug: 191283136
Test: build and boot
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I9e89fc0f3dc1b4e970cf3a5982ed7f177d2c392c
2021-06-23 18:40:55 +00:00
Paul Crowley
8b6b626be7 Merge "Remove wait_for_keymaster and all references" am: a236ff87b9 am: f267642932
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1736579

Change-Id: If6bbdf4c3ae08f8d372afbd635353b47c131fbdd
2021-06-17 18:58:11 +00:00
Paul Crowley
f267642932 Merge "Remove wait_for_keymaster and all references" am: a236ff87b9
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1736579

Change-Id: I163f07ec1d3f62423d233da7bf225579f9d0894f
2021-06-17 18:40:40 +00:00
Paul Crowley
a236ff87b9 Merge "Remove wait_for_keymaster and all references" 2021-06-17 18:18:28 +00:00
Treehugger Robot
a1c6ce6f2f Merge "No using inside header files" am: 17e1a0919d am: 23aaf5a7a6
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1285212

Change-Id: I9299b2f0762c02dae28b4dad8a6ee67fd03ad1a1
2021-06-16 10:31:29 +00:00
Treehugger Robot
23aaf5a7a6 Merge "No using inside header files" am: 17e1a0919d
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1285212

Change-Id: Ifb5136466ac04777988d14e3db63578a66384d29
2021-06-16 10:14:44 +00:00
Treehugger Robot
17e1a0919d Merge "No using inside header files" 2021-06-16 09:56:52 +00:00
Paul Crowley
604abdd0cb Remove wait_for_keymaster and all references
No longer needed now init listens for property changes on a
separate thread.

Bug: 186580823
Test: Cuttlefish boots successfully
Change-Id: I7dd1f85a73df6c2160ef8778703709e90309b9b4
2021-06-15 15:54:51 -07:00
Paul Crowley
f4430387d2 No using inside header files
I thought it was OK to use "using" in a header file so long as it was
inside a "namespace" block, but it just imports symbols from one
namespace into another, so things that shouldn't work do.

Test: Treehugger
Change-Id: I4d43d35339636af7e95761cada7120b4db638c01
2021-06-15 15:20:44 -07:00
Eric Biggers
23638cfcb3 Merge "Replace most references to Keymaster with Keystore" am: ec78a94586 am: 087a2952db
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1737853

Change-Id: Ic1b3d004e7d999e934cf47f987899c4ab378c12e
2021-06-15 22:10:10 +00:00
Eric Biggers
087a2952db Merge "Replace most references to Keymaster with Keystore" am: ec78a94586
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1737853

Change-Id: Ic27ef7ebf2817da0a1a302ae77186ce3973368a1
2021-06-15 21:50:06 +00:00
Eric Biggers
ec78a94586 Merge "Replace most references to Keymaster with Keystore" 2021-06-15 21:35:16 +00:00
Eric Biggers
d86a8abec7 Replace most references to Keymaster with Keystore
Now that vold uses Keystore2 rather than the Keymaster HAL directly, and
also the new version of Keymaster is called "KeyMint" instead, replace
most of the references to Keymaster in vold with Keystore.

(I decided not to include the "2" in most places, as it seemed
unnecessarily precise in most places, and it would be something that
might need to keep being updated.  Only Keystore.{cpp,h} really need to
care about the version number.)

I didn't rename many things in cryptfs.cpp, as that file will be going
away soon anyway.  I also left "wait_for_keymaster" and "vdc keymaster
earlyBootEnded" as-is for now, as those are referenced outside vold.

Bug: 183669495
Change-Id: I92cd648fae09f8c9769f7cf34dbf6c6e956be4e8
2021-06-15 12:07:15 -07:00
Eric Biggers
148960c4da Merge "cryptfs: log beginning/end of each unmount attempt" am: e33bd41f49 am: d535dc6846
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735012

Change-Id: I6ae1f131ef7b29dc220531dfc619e846c704fb1e
2021-06-14 22:27:49 +00:00
Eric Biggers
d535dc6846 Merge "cryptfs: log beginning/end of each unmount attempt" am: e33bd41f49
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735012

Change-Id: Id6caea9e59a5b65a594c3545ca8d3e90a0558a7c
2021-06-14 22:15:18 +00:00
Eric Biggers
e33bd41f49 Merge "cryptfs: log beginning/end of each unmount attempt" 2021-06-14 22:00:00 +00:00
Xin Li
640c6943a8 Merge "DO NOT MERGE - Merge ab/7272582" am: 12e48a85fb am: 35c828e5ae
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735803

Change-Id: Ia5d30ca70429742ba2f59ced83db5f6ba8d8d75b
2021-06-14 03:32:25 +00:00
Xin Li
a63ab5e7e0 DO NOT MERGE - Merge ab/7272582 am: 1c79e144d5 am: 0bd6aa1328
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735803

Change-Id: I9501c4abe503d3f6e362949e863f8c619bd85087
2021-06-14 03:32:15 +00:00
Xin Li
35c828e5ae Merge "DO NOT MERGE - Merge ab/7272582" am: 12e48a85fb
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735803

Change-Id: Iad13ce7ee56cf7d85a896f48d4b5af0c5df29220
2021-06-14 03:14:01 +00:00
Xin Li
0bd6aa1328 DO NOT MERGE - Merge ab/7272582 am: 1c79e144d5
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1735803

Change-Id: I6b77a17874d042c6ec322b7a770149e75340a915
2021-06-14 03:13:51 +00:00
Xin Li
12e48a85fb Merge "DO NOT MERGE - Merge ab/7272582" 2021-06-14 03:02:53 +00:00