Commit graph

4242 commits

Author SHA1 Message Date
Eric Biggers
47425d05a9 Merge "vold: drop local fscrypt UAPI definitions" 2020-07-17 01:19:39 +00:00
Eric Biggers
e0217d7b9e vold: drop local fscrypt UAPI definitions
Now that Bionic's copy of <linux/fscrypt.h> has been updated, there's no
need for vold to carry its own fscrypt_uapi.h.

Test: build
Change-Id: I61581ac74f7cf77bc8a835e64d96553a9d0c517a
2020-07-16 16:34:07 -07:00
Eric Biggers
7604eb97bc KeyUtil: use static local variable in isFsKeyringSupported()
Use C++'s built-in mechanism for one-time initialization rather than
implement it ourselves in a way that isn't thread-safe.

(It doesn't *actually* need to be thread-safe, since all callers of this
run under ACQUIRE_CRYPT_LOCK.  But that's not easy to verify.)

Test: booted Cuttlefish and checked log for the one-time message
      "Detected support for FS_IOC_ADD_ENCRYPTION_KEY"
Change-Id: I6ca5b143ca305fa95144e388efc9657e3507bf05
2020-07-16 16:17:16 -07:00
Eric Biggers
02c65ccdc6 Merge "vold: remove checkEncryption" am: 2d9777bfbf am: 15c0d3e5d0 am: 4cd238b900 am: c36d0e23bb
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1363339

Change-Id: I20509d10a0534c9c2a6795c73809f02461e03b67
2020-07-16 21:31:56 +00:00
Eric Biggers
c36d0e23bb Merge "vold: remove checkEncryption" am: 2d9777bfbf am: 15c0d3e5d0 am: 4cd238b900
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1363339

Change-Id: I862a51b219b0151c24d009921fa6cd509afa18b0
2020-07-16 21:16:12 +00:00
Eric Biggers
4cd238b900 Merge "vold: remove checkEncryption" am: 2d9777bfbf am: 15c0d3e5d0
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1363339

Change-Id: I23b9a01632b61a92896ae83e2152fa047dd85c48
2020-07-16 21:00:33 +00:00
Eric Biggers
15c0d3e5d0 Merge "vold: remove checkEncryption" am: 2d9777bfbf
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1363339

Change-Id: I4ffa4a351292c18dce51247d926ffe7efdbd5bea
2020-07-16 20:45:57 +00:00
Eric Biggers
2d9777bfbf Merge "vold: remove checkEncryption" 2020-07-16 20:30:35 +00:00
Treehugger Robot
a6c4780d7d Merge "Revert "[Vold] Conditional dependency to ARC++ ObbVolume"" am: 6e6fc6b8d3 am: 11757842a3 am: 9afa4c65d8 am: d4b94d95ab
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1320919

Change-Id: I11db3a962dbe88092f37604d91f844db31275efa
2020-07-16 12:27:09 +00:00
Treehugger Robot
d4b94d95ab Merge "Revert "[Vold] Conditional dependency to ARC++ ObbVolume"" am: 6e6fc6b8d3 am: 11757842a3 am: 9afa4c65d8
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1320919

Change-Id: Idf5736b15c3d1cd2d2dc994e7c5298605d45412a
2020-07-16 12:16:19 +00:00
Treehugger Robot
9afa4c65d8 Merge "Revert "[Vold] Conditional dependency to ARC++ ObbVolume"" am: 6e6fc6b8d3 am: 11757842a3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1320919

Change-Id: Iec0c1190443f1366a0f105bb3eba3967635ff544
2020-07-16 12:03:40 +00:00
Treehugger Robot
11757842a3 Merge "Revert "[Vold] Conditional dependency to ARC++ ObbVolume"" am: 6e6fc6b8d3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1320919

Change-Id: I6fb0ca30c54791549923099c1acf74667e06ae5b
2020-07-16 11:51:01 +00:00
Treehugger Robot
6e6fc6b8d3 Merge "Revert "[Vold] Conditional dependency to ARC++ ObbVolume"" 2020-07-16 11:04:04 +00:00
Eric Biggers
b7a14053c3 vold: remove checkEncryption
The testing-only "checkEncryption" command has been replaced with
VtsKernelEncryptionTest [1].  In particular, the metadata encryption
documentation [2] no longer mentions checkEncryption but rather
recommends running VtsKernelEncryptionTest.  Also, checkEncryption
hasn't really been maintained, and it has some known bugs; it's unclear
that many people ever really used it.

So, just remove it.

[1] https://android.googlesource.com/platform/test/vts-testcase/kernel/+/refs/heads/master/encryption/
[2] https://source.android.com/security/encryption/metadata#tests

Bug: 155037012
Change-Id: I258829c60768fd11aafdf2faad956cecc1ae9826
2020-07-15 11:21:33 -07:00
Satoshi Niwa
7ebcc2bcfd Revert "[Vold] Conditional dependency to ARC++ ObbVolume"
This reverts commit aedae617fe.

Reason for revert: ArcObbVolume is not needed by ARCVM R and above.

Bug: 157885448
Test: trybot
Change-Id: I16395ac8b6902cedea263f51e306b297d719043f
2020-07-13 05:07:18 +00:00
Automerger Merge Worker
b6967c15df Merge "[automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a -s ours am: 09b9cae24d -s ours" into rvc-d1-dev-plus-aosp am: ee0e304091 -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 006eed8e3a is in history

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

Change-Id: I5321840d6beb6cd57eaa06a5babb4c8da57a3d4a
2020-07-08 00:52:08 +00:00
Eric Biggers
4313aa7057 [automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a am: 65aa48c810 -s ours am: 784638461d -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 006eed8e3a is in history

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

Change-Id: I871c728b23ecf0f22b01f3f95336e4a7b07a0f5b
2020-07-08 00:51:31 +00:00
Eric Biggers
3e34ce2c43 [automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a am: 65aa48c810 am: 1f6e9af5b1 -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 eb566d0a7c is in history

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

Change-Id: I0fe158134f8aa7841997b6f91926a66f74a53d92
2020-07-08 00:51:12 +00:00
Automerger Merge Worker
ee0e304091 Merge "[automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a -s ours am: 09b9cae24d -s ours" into rvc-d1-dev-plus-aosp 2020-07-08 00:37:31 +00:00
Eric Biggers
7d5ee69e0f [automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a -s ours am: 09b9cae24d -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 eb566d0a7c is in history

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

Change-Id: I7d8f6f3fd29595721ee7dfbd7a2fcabf69bc041f
2020-07-08 00:37:22 +00:00
Eric Biggers
784638461d [automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a am: 65aa48c810 -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 eb566d0a7c is in history

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

Change-Id: Ifce40a4998e3fd5a116df5ed8b3ac3433eb6b83e
2020-07-08 00:37:21 +00:00
Eric Biggers
1f6e9af5b1 vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a am: 65aa48c810
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12098822

Change-Id: I8c417d6e1a66f987717624afbea64608c65e7980
2020-07-08 00:37:08 +00:00
Eric Biggers
65aa48c810 vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12098822

Change-Id: Ib8656b4dbd8b39a594147aace686a3fcbd3bd0d4
2020-07-08 00:23:19 +00:00
Eric Biggers
09b9cae24d [automerger skipped] vold: only allow emmc_optimized on eMMC storage am: 006eed8e3a -s ours
am skip reason: Change-Id Ie27b80658db53b1a4207b3cbb4e309d05130812e with SHA-1 eb566d0a7c is in history

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

Change-Id: Id8c90f1833a171c12936a5f4aa2bf80574f5cb64
2020-07-08 00:22:58 +00:00
Eric Biggers
6e650513b0 Merge "vold: only allow emmc_optimized on eMMC storage" am: 428ae6e90a am: 7a1c4ccb96 am: 09f789e227 am: 4903027a20
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1356175

Change-Id: I6f8316c1eadfa2256bf515a96a45860a021ab088
2020-07-07 18:15:55 +00:00
Eric Biggers
4903027a20 Merge "vold: only allow emmc_optimized on eMMC storage" am: 428ae6e90a am: 7a1c4ccb96 am: 09f789e227
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1356175

Change-Id: I277065540c289ff3a7633ebd7b0326da2da4e5a4
2020-07-07 17:59:57 +00:00
Eric Biggers
09f789e227 Merge "vold: only allow emmc_optimized on eMMC storage" am: 428ae6e90a am: 7a1c4ccb96
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1356175

Change-Id: Ie124c2cec8e4235ae999463d5c03615880e0c01e
2020-07-07 17:37:34 +00:00
Eric Biggers
7a1c4ccb96 Merge "vold: only allow emmc_optimized on eMMC storage" am: 428ae6e90a
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1356175

Change-Id: I95f471e6a2a96929b1ff854cac195b68e86309f3
2020-07-07 17:24:35 +00:00
Eric Biggers
006eed8e3a vold: only allow emmc_optimized on eMMC storage
The emmc_optimized encryption flag is specifically designed for the
limitations of inline encryption hardware that follows the eMMC
standard.  It isn't appropriate to use on other types of storage.
So, make vold enforce that it's not used on other types of storage.

Bug: 160639344
Test:
  - Enabled emmc_optimized on Cuttlefish and verified it no longer boots
  - Using a modified version of this change, verified that
    IsEmmcStorage() works as expected on various devices including
    Cuttlefish, Cuttlefish booted in GSI image mode, a device with eMMC
    storage, and a device with UFS storage.
  - Verified that VtsKernelEncryptionTest still passes
Change-Id: Ie27b80658db53b1a4207b3cbb4e309d05130812e
Merged-In: Ie27b80658db53b1a4207b3cbb4e309d05130812e
2020-07-07 10:08:22 -07:00
Eric Biggers
428ae6e90a Merge "vold: only allow emmc_optimized on eMMC storage" 2020-07-07 17:07:58 +00:00
Eric Biggers
eb566d0a7c vold: only allow emmc_optimized on eMMC storage
The emmc_optimized encryption flag is specifically designed for the
limitations of inline encryption hardware that follows the eMMC
standard.  It isn't appropriate to use on other types of storage.
So, make vold enforce that it's not used on other types of storage.

Bug: 160639344
Test:
  - Enabled emmc_optimized on Cuttlefish and verified it no longer boots
  - Using a modified version of this change, verified that
    IsEmmcStorage() works as expected on various devices including
    Cuttlefish, Cuttlefish booted in GSI image mode, a device with eMMC
    storage, and a device with UFS storage.
  - Verified that VtsKernelEncryptionTest still passes
Change-Id: Ie27b80658db53b1a4207b3cbb4e309d05130812e
2020-07-06 19:11:43 -07:00
Martijn Coenen
8fe09fd13e Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: bb8a543e43 am: cf0499038f
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I136973c26c66eae2f582885e19749753cdbff7e5
2020-06-30 10:29:54 +00:00
Automerger Merge Worker
0ff981d47f Merge "Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: 5ed648d098 am: 6589ae36c3" into rvc-qpr-dev-plus-aosp 2020-06-30 10:29:46 +00:00
Martijn Coenen
68bfed23cb Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: 5ed648d098 am: c980b5387a
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I49bec11d9aa1328d5cd7b45da098d4421af6f961
2020-06-30 10:29:41 +00:00
Martijn Coenen
18183cd899 Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: 5ed648d098 am: 6589ae36c3
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I20555c69735747460b0ffe137a116b566ef5b158
2020-06-30 10:29:37 +00:00
Martijn Coenen
cf0499038f Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: bb8a543e43
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I3ea6c81e33206ef2010af0d91456b0f78437c0ba
2020-06-30 10:16:24 +00:00
Martijn Coenen
c980b5387a Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: 5ed648d098
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I98b748487dc4d517da2008dc0299f14b505273fa
2020-06-30 10:16:07 +00:00
Martijn Coenen
6589ae36c3 Configure backing device max_ratio for FUSE filesystems. am: a485006ab1 am: 5ed648d098
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: Id662a2e471b5e9f11d801a51c3495ee283f9e2bc
2020-06-30 10:16:05 +00:00
Martijn Coenen
bb8a543e43 Configure backing device max_ratio for FUSE filesystems. am: a485006ab1
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I5cd116bfb01b0fe98dfdcd7d4b8005819ccfeb11
2020-06-30 09:57:21 +00:00
Martijn Coenen
5ed648d098 Configure backing device max_ratio for FUSE filesystems. am: a485006ab1
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/12024019

Change-Id: I13d40a73f02bec902fe94ca64d825dffb7c8790a
2020-06-30 09:57:17 +00:00
Martijn Coenen
a485006ab1 Configure backing device max_ratio for FUSE filesystems.
By default FUSE filesystems have a max_ratio of 1%, meaning only 1% of
dirty pages on the system can belong to a FUSE filesystem before we
start writing back pages (and throttling, if writeback can't keep up).
This limit is useful for untrusted filesystems, but in our case, we
trust the FUSE filesystem. Since FUSE writes result in writes to the
lower filesystem, FUSE should take at most 50%. Let's start with
changing max_ratio to 40%, to avoid needless throttling.

Bug: 159254170
Bug: 159770752
Test: inspect /sys/class/bdi manually after boot
Change-Id: I467e3770fc4afba0a08fa480c0b86aa054c8b875
2020-06-30 10:16:55 +02:00
Zim
526499eb97 Unmount public volume if FUSE mount fails am: f71707916f am: 0f9690e391 am: 96832d4ef8
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: I6c17bc5c5214c5a2e9573e96999f9edd4357798c
2020-06-22 17:23:24 +00:00
Zim
2e4db39ba0 Unmount public volume if FUSE mount fails am: f71707916f am: 0f9690e391 am: a09ee4ff8f
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: I30749224177d33b8e5138a227115afd7b0468503
2020-06-22 17:21:22 +00:00
Zim
6343f2dc12 Unmount public volume if FUSE mount fails am: f71707916f am: c1f45db6e1 am: 3875f982dc
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: I55d927eb0b7067aea68287dd5d89383ca4a45d9b
2020-06-22 17:21:12 +00:00
Zim
96832d4ef8 Unmount public volume if FUSE mount fails am: f71707916f am: 0f9690e391
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: Ib1ac130a2a4cb24c4154a43c6f989b32defb474f
2020-06-22 17:08:58 +00:00
Zim
3875f982dc Unmount public volume if FUSE mount fails am: f71707916f am: c1f45db6e1
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: Ia2a497e993ed5302f527840ed0b74fec58e994a1
2020-06-22 17:07:12 +00:00
Zim
a09ee4ff8f Unmount public volume if FUSE mount fails am: f71707916f am: 0f9690e391
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: I5217a28692f87a407e776d5c764cf53a4c18d55e
2020-06-22 17:06:45 +00:00
Zim
0f9690e391 Unmount public volume if FUSE mount fails am: f71707916f
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: Ia3c372428ad1098785f422befac0ba833d56d6a7
2020-06-22 16:54:44 +00:00
Zim
c1f45db6e1 Unmount public volume if FUSE mount fails am: f71707916f
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/11900947

Change-Id: Ie390d39ede3dbd63012b0c5acdbcac57e0143145
2020-06-22 16:53:26 +00:00
Zim
f71707916f Unmount public volume if FUSE mount fails
Sometimes, during early boot, a public volume may be created before
the user is unlocked and the mount may fail. This mount failure does
not revert the lower fs mounts (sdcardfs and vfat). Subsequent
mount attempts will then fail because we'd attempt to mount vfat on
already mounted /mnt/media_rw/<volname>

Bug: 158489548
Test: Resilient to an artificial sleep in
StorageManagerService#completeUnlockUser to
delay user unlock longer than public volume mount

Change-Id: I9a1574596434a2eb6b2553c0c9220c2118c7e4fd
2020-06-22 14:26:57 +01:00