No description
Find a file
Eric Biggers 1eddb7cb6d Evict adoptable storage CE and DE keys when possible
Adoptable storage CE and DE keys were not being explicitly evicted,
resulting in the benefits of key eviction not being fully realized on
devices that use adoptable storage.  Fix this by evicting the adoptable
storage keys when the corresponding internal storage keys are evicted:

- In lockUserKey, evict the CE keys for adoptable storage volumes, not
  just the CE key for internal storage as was done before.

- In destroyUserKey, evict the user's CE and DE keys for adoptable
  storage, not just the internal storage keys as was done before.

To make this possible, starting keeping track of the EncryptionPolicy of
each currently installed adoptable storage key.

(This CL is reworked from https://r.android.com/2660878,
 original author Arnab Sen <arnabse@amazon.com>)

Test: On Cuttlefish with config_multiuserMaxRunningUsers changed to 1:
    sm set-virtual-disk true
    sm partition disk:7,416 private
    pm create-user 10
    am start-user 10
    am stop-user 10
    # Verified that this fails with "Required key not available".
    touch /mnt/expand/f1ad173b-d6d9-4948-8eb7-ccdd7b053b22/misc_ce/10/foo.txt
    am start-user 10
    pm remove-user 10
    # Checked for all the expected "Evicted fscrypt key" messages.
    # 2 from when user was stopped, and 4 from when user was removed.
    adb logcat | grep Evicted

Change-Id: I7f11a135d8550618cd96013f834cebd54be5ef84
Merged-In: I7f11a135d8550618cd96013f834cebd54be5ef84
(cherry picked from commit 68fd3689a1)
2023-10-06 15:30:16 +00:00
bench [LSC] Add LOCAL_LICENSE_KINDS to system/vold 2021-02-14 10:37:25 -08:00
binder/android/os Merge Android U (ab/10368041) 2023-08-17 16:51:54 -07:00
fs Handle errors corrected exit status returned by fsck 2023-07-07 11:32:01 +08:00
model Adding public volume mounts for clone user. 2023-08-29 10:38:43 +00:00
tests Adding corpus for vold fuzzer 2023-09-06 21:20:16 +00:00
.clang-format vold: use system-clang-format 2019-09-16 12:00:40 -07:00
Android.bp Do not read ro.apex.updatable. 2023-08-25 15:38:12 +09:00
AppFuseUtil.cpp AppFuseUtil: Call ForceUnmount before PrepareDir. 2019-04-09 18:45:32 +01:00
AppFuseUtil.h Extract AppFuse as a util 2018-11-14 07:28:06 +00:00
Benchmark.cpp vold: Use Wakelock::tryGet() 2021-02-22 17:24:51 -05:00
Benchmark.h clang-format many files. 2018-09-18 15:41:22 -07:00
BenchmarkGen.h Abort long-running benchmarks, report progress. 2017-11-07 09:57:12 -07:00
Checkpoint.cpp Check bounds on dm-bow checkpoint restore 2023-02-06 09:40:51 -08:00
Checkpoint.h Add an isCheckpointing() binder call for adb remount. 2020-06-10 23:52:25 -07:00
CleanSpec.mk Add an empty CleanSpec.mk 2010-03-08 18:05:25 -08:00
cryptfs.cpp cryptfs: Update the size of dm-crypt device according to sector size 2022-09-28 17:44:44 +08:00
cryptfs.h Remove CRYPT_FOOTER_OFFSET 2021-11-10 14:03:48 -08:00
CryptoType.cpp Generalize CryptoType infrastructure 2020-02-14 00:48:27 -08:00
CryptoType.h Generalize CryptoType infrastructure 2020-02-14 00:48:27 -08:00
EncryptInplace.cpp Remove progress property support from encrypt_inplace() 2022-03-09 21:03:52 +00:00
EncryptInplace.h Remove progress property support from encrypt_inplace() 2022-03-09 21:03:52 +00:00
FileDeviceUtils.cpp Remove excess logging in secdiscard 2019-03-21 19:13:51 +00:00
FileDeviceUtils.h clang-format many files. 2018-09-18 15:41:22 -07:00
FsCrypt.cpp Evict adoptable storage CE and DE keys when possible 2023-10-06 15:30:16 +00:00
FsCrypt.h Defer CE key fixations to checkpoint commit 2022-11-14 17:45:32 +00:00
IdleMaint.cpp Correct reserved blocks to segments 2023-08-31 12:54:01 -07:00
IdleMaint.h Introduce target dirty segment ratio tunable parameter 2022-07-04 21:23:46 +00:00
KeyBuffer.cpp clang-format many files. 2018-09-18 15:41:22 -07:00
KeyBuffer.h Add a ZeroingAllocator::rebind<Other> for Other==char 2023-07-24 21:36:32 -07:00
KeyStorage.cpp Merge "Avoid error message when destroying key w/o secdiscardable file" am: dc262c27f0 am: 60c71b9950 am: 2ef1832ac4 2023-03-04 07:49:59 +00:00
KeyStorage.h Defer CE key fixations to checkpoint commit 2022-11-14 17:45:32 +00:00
Keystore.cpp Switch to C23's memset_explicit(). 2022-08-15 23:10:28 +00:00
Keystore.h Detect factory reset and deleteAllKeys 2021-08-11 10:29:59 -07:00
KeyUtil.cpp Revert "Introduce ro.crypto.uses_fs_ioc_add_encryption_key property" 2023-08-11 20:27:44 +00:00
KeyUtil.h No using inside header files 2021-06-15 15:20:44 -07:00
Loop.cpp Remove vold logs related to block devices 2021-07-28 02:58:57 +01:00
Loop.h clang-format many files. 2018-09-18 15:41:22 -07:00
main.cpp Check for SELinux labelling errors 2023-03-01 22:11:29 +00:00
MetadataCrypt.cpp Remove dead code from fs_mgr 2023-06-23 09:28:18 -07:00
MetadataCrypt.h Support zoned device with dm-default-key 2022-06-07 18:43:54 -07:00
MoveStorage.cpp vold: Use Wakelock::tryGet() 2021-02-22 17:24:51 -05:00
MoveStorage.h clang-format many files. 2018-09-18 15:41:22 -07:00
NetlinkHandler.cpp vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkHandler.h vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkManager.cpp vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
NetlinkManager.h vold: remove unused stop() methods 2020-09-23 10:02:25 -07:00
OWNERS OWNERS: add alan and jeff, alphabetize 2020-12-10 13:08:28 +01:00
PREUPLOAD.cfg vold should be fully developed in AOSP. 2018-09-11 12:08:43 -06:00
Process.cpp Show names of processes killed by KillProcessesWithOpenFiles() 2021-05-10 17:34:11 +00:00
Process.h Only kill apps with storage app data isolation enabled 2021-04-30 13:58:07 +00:00
secdiscard.cpp Don't use a secdiscardable file for keys encrypted by SP 2022-10-07 16:26:29 +00:00
sehandle.h clang-format many files. 2018-09-18 15:41:22 -07:00
TEST_MAPPING Add vold to hwasan-postsubmit 2022-03-18 14:25:02 -07:00
Utils.cpp Log reason for fuse-bpf being enabled/disabled 2023-04-14 21:59:05 +00:00
Utils.h Merge changes from topic "deny-create-user-dirs" am: 9fb8825578 am: 65f0713d14 2022-05-12 19:57:49 +00:00
vdc.cpp Merge "Add vdc volume getStorageSize" into main 2023-08-15 14:51:08 +00:00
vold.rc Explicit init .rc user. 2023-04-10 20:54:26 +00:00
vold_prepare_subdirs.cpp Use /data/misc/apexdata for the list of APEXes 2023-08-12 01:05:53 +09:00
VoldNativeService.cpp Call fscrypt_destroy_volume_keys() under mCryptLock 2023-10-06 15:30:13 +00:00
VoldNativeService.h Merge Android U (ab/10368041) 2023-08-17 16:51:54 -07:00
VoldNativeServiceValidation.cpp [vold] Check incremental paths before mounting 2022-01-31 22:13:14 +00:00
VoldNativeServiceValidation.h [vold] Check incremental paths before mounting 2022-01-31 22:13:14 +00:00
VoldUtil.cpp Move over to the C++ Fstab class 2019-01-31 12:34:39 -08:00
VoldUtil.h Remove unused code in VoldUtil.h 2020-02-18 10:48:16 -08:00
VolumeManager.cpp Call fscrypt_destroy_volume_keys() under mCryptLock 2023-10-06 15:30:13 +00:00
VolumeManager.h Call fscrypt_destroy_volume_keys() under mCryptLock 2023-10-06 15:30:13 +00:00