Commit graph

3736 commits

Author SHA1 Message Date
Stefano Duo
0014019b8c bench: Add fail-fast error path to inodeop_bench
If one of the repeated operations specified by a command fails, report
the error to the user and don't export its metric.

Test: Manual run on physical device
Bug: 165903680
Signed-off-by: Stefano Duo <stefanoduo@google.com>
Change-Id: I3a8caeb6d878b004d89e425bc166c8505fda938a
2020-09-18 15:50:04 +00:00
Treehugger Robot
f7794b5dc1 Merge "Add '-unstable' to solve ODR violation" 2020-09-11 08:19:44 +00:00
Jeongik Cha
f8f374a381 Add '-unstable' to solve ODR violation
The interface which is imported by an unstable interface is 'unstable'
as well. Until now, the ODR violation checker in aidl has omitted an
interface imported, but it will be checked, accordingly, fix the current
problem

Bug: 146436251
Test: m nothing
Change-Id: Id3c4bbc9149ba7c3e0a0d728026f02f60cb17424
Merged-In: Id3c4bbc9149ba7c3e0a0d728026f02f60cb17424
Exempt-From-Owner-Approval: cp from internal
2020-09-11 06:49:21 +00:00
Xin Li
141c2027e2 Merge "Merge Android R" 2020-09-10 17:22:31 +00:00
Xin Li
1ef819d16a Merge Android R
Bug: 168057903
Merged-In: I477d2dfba05718c829fdb2099248a8baba1125ab
Change-Id: Ib60b99425dc79ca4c5b23772f32036f4e17ad11f
2020-09-09 20:21:28 -07:00
Treehugger Robot
8743ef4ea6 Merge "bench: Add inodeop_bench benchmark" am: e804806d79
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1421048

Change-Id: I477d2dfba05718c829fdb2099248a8baba1125ab
2020-09-09 13:34:41 +00:00
Treehugger Robot
e804806d79 Merge "bench: Add inodeop_bench benchmark" 2020-09-09 13:03:12 +00:00
Stefano Duo
046c854ae9 bench: Add inodeop_bench benchmark
Add new benchmark capable of generating specific inode operations
workloads. Currently, it supports create, delete, move, hardlink and
symlink.

Test: Manual run on cuttlefish and physical device
Bug: 165903680
Signed-off-by: Stefano Duo <stefanoduo@google.com>
Change-Id: Ia47f259b7ccea5fe1665b272c3cbc9ec1bf2eb56
2020-09-08 16:21:14 +00:00
Xin Li
24ae202734 Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: Id417587a550b0f4abf5a6a3e4b4535011b21f627
Change-Id: Ibb5e8cf5f36dad408cf047dd0498aba24249b695
2020-08-27 10:17:42 -07:00
Treehugger Robot
3d1b6ac7c0 Merge "Add maco@ to vold OWNERS." am: 157a08bb92
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1396467

Change-Id: I0d0a8048465e190105f03dfe76fbf5c8393a4198
2020-08-11 10:56:15 +00:00
Treehugger Robot
157a08bb92 Merge "Add maco@ to vold OWNERS." 2020-08-11 10:34:17 +00:00
Martijn Coenen
494b67bfcb Add maco@ to vold OWNERS.
Bug: N/A
Test: N/A
Change-Id: Ib00991eccbd33e719a64d55da932f7f2bfab7b71
2020-08-11 09:13:58 +02:00
Eric Biggers
c6f47996d6 Merge "vold: use __ANDROID_API_Q__ instead of pre_gki_level" am: ee1a70c129
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1395128

Change-Id: Iacb41f3dba6c2a57943f766b749d87efe6f4e4b3
2020-08-10 22:53:51 +00:00
Eric Biggers
ee1a70c129 Merge "vold: use __ANDROID_API_Q__ instead of pre_gki_level" 2020-08-10 22:35:21 +00:00
Eric Biggers
72d07130ac vold: use __ANDROID_API_Q__ instead of pre_gki_level
The name "pre_gki_level" is causing some confusion because not all
devices launching with Android R are subject to the GKI requirement.
(See b/161563110#comment11.)  E.g., devices that use a 4.14-based kernel
are exempt from GKI.  However, the encryption requirements still apply.

Just use __ANDROID_API_Q__ directly instead.

No change in behavior.

Change-Id: Id02ae1140845ac1ae7cf78be4e57fe34da028abf
2020-08-10 11:45:08 -07:00
Eric Biggers
5acfc3e8d5 Merge "EncryptInPlace: ensure that backup superblocks get encrypted" am: 213dbe30a1
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1385029

Change-Id: I29e6eab9571d4556883594049f4abc33d9ffa674
2020-08-10 18:04:57 +00:00
Eric Biggers
213dbe30a1 Merge "EncryptInPlace: ensure that backup superblocks get encrypted" 2020-08-10 17:52:39 +00:00
Will Shiu
4ac43f0e16 EncryptInPlace: ensure that backup superblocks get encrypted
Block groups with EXT4_BG_BLOCK_UNINIT still have backup superblocks
(and backup block group descriptors).  Fix EncryptInPlace to encrypt
these backup superblocks rather than leave them unencrypted.

Previously leaving the backup superblocks unencrypted didn't cause any
problems, but due to system/core commit 72abd7b246f7 ("Try to recover
corrupted ext4 /data with backup superblock") it is causing problems.

Bug: 162479411
Bug: 161871210
Change-Id: Ic090bf4e88193b289b04c5254ddf661ef40b037e
2020-08-06 11:05:45 -07:00
Treehugger Robot
dd8b695c61 Merge "vold: restore -D__ANDROID_DEBUGGABLE__" am: 5de675c93b am: bb92ff6591
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365586

Change-Id: Id417587a550b0f4abf5a6a3e4b4535011b21f627
2020-07-17 19:02:45 +00:00
Treehugger Robot
bb92ff6591 Merge "vold: restore -D__ANDROID_DEBUGGABLE__" am: 5de675c93b
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365586

Change-Id: Ibb6947f1fad7a31cf2a42c3604c76fcf45a7082a
2020-07-17 18:38:05 +00:00
Treehugger Robot
5de675c93b Merge "vold: restore -D__ANDROID_DEBUGGABLE__" 2020-07-17 18:24:51 +00:00
Mark Salyzyn
865086debe vold: restore -D__ANDROID_DEBUGGABLE__
Regression introduced by
commit 7ebcc2bcfd
("Revert "[Vold] Conditional dependency to ARC++ ObbVolume"")
errantly removed the product_variables support for
-D__ANDROID_DEBUGGABLE__ when built for userdebug builds.

Restore stanza.

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 161454607
Test: adb-remount-test no longer reports a problem
Change-Id: Ia7e55d1174fa7fac2d934d4aac06d15e8be388af
2020-07-17 08:20:00 -07:00
Eric Biggers
d0b2751e8f Merge "KeyUtil: use static local variable in isFsKeyringSupported()" am: 256b23b1c5 am: 350b5ae900
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365220

Change-Id: Ia7fca6e61c58317002271c8338bb01a12e8223a5
2020-07-17 01:50:24 +00:00
Eric Biggers
6b36554b38 Merge "vold: drop local fscrypt UAPI definitions" am: 47425d05a9 am: 83a3eecc03
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365221

Change-Id: Iffa50e4c549469de6425134369e609856f1d7813
2020-07-17 01:50:07 +00:00
Eric Biggers
350b5ae900 Merge "KeyUtil: use static local variable in isFsKeyringSupported()" am: 256b23b1c5
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365220

Change-Id: I94b778955b2ee5cd8c462050e94c39ce05c96179
2020-07-17 01:38:51 +00:00
Eric Biggers
83a3eecc03 Merge "vold: drop local fscrypt UAPI definitions" am: 47425d05a9
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1365221

Change-Id: If47e4ced3b37e44772d802fb8ebe2d9ad51c03e2
2020-07-17 01:38:44 +00:00
Eric Biggers
256b23b1c5 Merge "KeyUtil: use static local variable in isFsKeyringSupported()" 2020-07-17 01:20:43 +00:00
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
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
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
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
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
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
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
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
David Anderson
f1353b9ec4 [automerger skipped] Merge "Add an isCheckpointing() binder call for adb remount." into rvc-dev am: f87198e025 -s ours
am skip reason: Change-Id I33a691da3b99343acfc1e8ddf68a14504c3bfbe1 with SHA-1 23850d30f6 is in history

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

Change-Id: I324e156e155f361491f963518f69a956ac23dd7f
2020-06-19 20:21:48 +00:00
David Anderson
f87198e025 Merge "Add an isCheckpointing() binder call for adb remount." into rvc-dev 2020-06-19 20:04:54 +00:00