Commit graph

3367 commits

Author SHA1 Message Date
Daeho Jeong
d1b946ea9f secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard
A new interface, F2FS_IOC_SEC_TRIM_FILE, has been added to F2FS
filesystem to send secure discard command to a specific file,
not to block device. We can use this interface for better discard
command handling on a file basis.

[how to use F2FS_IOC_SEC_TRIM_FILE]
start: start offset in byte (should be aligned with 4096)
len: length in byte (should be aligned with 4096, except designating EOF)
     -1 also means till EOF.
flags: F2FS_TRIM_FILE_DISCARD - sending secure discard command. If the
                                device doesn't support it, send normal
                                discard.
       F2FS_TRIM_FILE_ZEROOUT - overwrite zero data in the file.

Bug: 140759142
Test: execute "secdiscard -- <file_path>" and check the content of file
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Change-Id: I6ee44a047d291274c9d70ae5e4ccccfc06a52f89
2020-09-14 08:43:15 +09: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
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
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
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
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
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
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
Paul Lawrence
53f1d07339 Merge "Don't call block checkpoint functions above dm-default-key" am: 1bb7e8a928
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1330879

Change-Id: Ifa48af749baa5d50c7459dbb5bda1573d847b622
2020-06-18 22:00:47 +00:00
David Anderson
60e41b7084 Merge "Add an isCheckpointing() binder call for adb remount." am: b50480bb96
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1330854

Change-Id: I14674da2b3cf86c09179b94e28e76fec30378e12
2020-06-18 22:00:37 +00:00
Paul Lawrence
1bb7e8a928 Merge "Don't call block checkpoint functions above dm-default-key" 2020-06-18 21:56:10 +00:00
David Anderson
b50480bb96 Merge "Add an isCheckpointing() binder call for adb remount." 2020-06-18 21:45:21 +00:00
Paul Lawrence
3fe931109c Don't call block checkpoint functions above dm-default-key
Bug: 156225476
Test: Build for f2fs and ext4 device, make sure checkpoints roll back
and commit

Change-Id: Ic15fadc67d306463dd0b554f679306d8f9081451
2020-06-12 09:13:42 -07:00
David Anderson
23850d30f6 Add an isCheckpointing() binder call for adb remount.
This is needed so "adb remount" can avoid writing to /data during a
checkpoint.

Bug: 157540389
Test: manual test
Change-Id: I33a691da3b99343acfc1e8ddf68a14504c3bfbe1
2020-06-10 23:52:25 -07:00
Treehugger Robot
d49f8c9eb7 Merge "Record use of metadata encryption in property" am: f20a16575f
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1322598

Change-Id: I7b102707853ea2556c5a24858ae43ea5c2717616
2020-06-02 19:20:44 +00:00
Treehugger Robot
f20a16575f Merge "Record use of metadata encryption in property" 2020-06-02 19:04:12 +00:00
Paul Crowley
7fbd8d4474 Record use of metadata encryption in property
Bug: 152150018
Test: Cuttlefish with and without keydirectory option
Cherry-Picked-From: 94abae03a9
Merged-In: I400873ec207cb63f0407fefc83962bb3a927e294
Change-Id: I400873ec207cb63f0407fefc83962bb3a927e294
2020-06-02 11:16:55 -07:00
Treehugger Robot
d625abfda2 Merge "Handle virtio in private fs mapping" am: e471d11d46
Change-Id: If088b875ff4cbca66fe9c6f9224b437edc85dae8
2020-05-20 07:08:04 +00:00
Treehugger Robot
e471d11d46 Merge "Handle virtio in private fs mapping" 2020-05-20 06:32:43 +00:00
Alistair Delva
ea97154183 Handle virtio in private fs mapping
When the vold core decides if a device is SD or USB, it checks for MMC
or virtio, however when the filesystem type is decided, it does not
check for virtio, only MMC. This causes virtio SD cards to be formatted
with ext4 unconditionally.

This fix is independently correct, but it incidentally gets adopted
storage working on cuttlefish (and Android Emulator) because f2fs can
support fscrypt and casefolding at the same time; ext4 currently cannot.

Bug: 156286088
Change-Id: I0b41670d5f76b2506dad437917c2276f8e0aaccf
Merged-In: I0b41670d5f76b2506dad437917c2276f8e0aaccf
2020-05-20 00:45:02 +00:00
Treehugger Robot
edb596fc36 Merge "Expand virtio_block check to other virtual devices" am: ff9975c04f
Change-Id: Ic604273ddef8ac356e1e23fba050da7d68a24871
2020-05-16 05:13:11 +00:00
Treehugger Robot
ff9975c04f Merge "Expand virtio_block check to other virtual devices" 2020-05-16 04:51:28 +00:00
Alistair Delva
d3c230b5c9 Expand virtio_block check to other virtual devices
The Android Emulator isn't the only virtual device the virtio-block
detection code is useful for, and those platforms might not set any
discriminating properties to indicate that they are virtual.

Rework the virtio-block major detection to use /proc/devices instead
of hardcoding the assumption that any virtual platform can have
virtio-block at any experimental major; the new code permits only the
exact experimental major assigned to virtio-block.

The new code runs everywhere, but it will only run once and could be
expanded later to detect dynamic or experimental majors.

Bug: 156286088
Change-Id: Ieae805d08fddd0124a397636f04d99194a9ef7e5
Merged-In: Ieae805d08fddd0124a397636f04d99194a9ef7e5
2020-05-16 00:02:21 +00:00
Treehugger Robot
4cf8ddeed2 Merge "Revert "ARC++ swap for AppFuseUtil"" am: b6e2c14ed1
Change-Id: I3545346238ddaaec8c1a947f00aaeadd12dfd63b
2020-05-12 12:46:32 +00:00
Treehugger Robot
b6e2c14ed1 Merge "Revert "ARC++ swap for AppFuseUtil"" 2020-05-12 12:30:16 +00:00
Satoshi Niwa
601e7bd4e2 Revert "ARC++ swap for AppFuseUtil"
This reverts commit dcbd4fcad2.

Reason for revert: ARC is migrating to ARCVM on R, which doesn't use AppFuse any more.

Change-Id: Ifd0bf92a79c0ff25d782bea44dd593f9502f1959
2020-05-08 04:50:34 +00:00
Treehugger Robot
3a149b6735 Merge "Acknowledge the 'nofail' fs_mgr flag and skip the expected failure." am: e8acc83d25
Change-Id: I1fb2dbb0de98e3e2deadce25183aa37f2bc7c4ba
2020-05-06 17:22:38 +00:00
Treehugger Robot
e8acc83d25 Merge "Acknowledge the 'nofail' fs_mgr flag and skip the expected failure." 2020-05-06 17:02:43 +00:00
P.Adarsh Reddy
167c2a658a Acknowledge the 'nofail' fs_mgr flag and skip the expected failure.
fs_mgr supports 'nofail' flag, which is used if we do not want to
error-out incase the mounting/setup fails for a partition tagged with
nofail flag in fstab.

Recently added code in vold misses this handling, i.e. it aborts even
for a nofail partition upon encountering an expected failure.

Test: Add a non-existing logical partition fstab entry with 'nofail'
      flag. Init's first stage mount acks this and doesn't crash.
      Vold aborts (as it doesn't handle it), and device doesn't boot.
      With this change, device boots up.

Change-Id: I2b1904a9c648c31bcc05b2e7e77480db236ff66e
2020-05-06 16:45:23 +00:00
Treehugger Robot
d4e75c211d Merge "vold: fix missing has.adoptable" am: 9e2053e185
Change-Id: I3f87b104678fb57c627165fcd5faea846e25d343
2020-04-23 22:36:56 +00:00