Commit graph

4246 commits

Author SHA1 Message Date
Eric Biggers
5a1e03f705 Merge "MetadataCrypt: remove unnecessary retry loop" am: 80fdc5a4e3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1462708

Change-Id: Id26dbda854480c74d07fcec87f1d045325bf625a
2020-10-19 16:26:15 +00:00
Eric Biggers
4d0d21e69d Merge "Silence useless LOOP_GET_STATUS64 warnings" am: 6f70c92aee
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1462709

Change-Id: I75d169008b857848c314598cac4d87f27d6919b1
2020-10-19 16:26:06 +00:00
Eric Biggers
3e0e53dbe5 Merge changes Idc575106,Id6457a2b
* changes:
  IdleMaint: skip swap space, bind mounts, and virtual filesystems
  IdleMaint: use fstab_default from VoldUtil
2020-10-19 16:08:02 +00:00
Eric Biggers
80fdc5a4e3 Merge "MetadataCrypt: remove unnecessary retry loop" 2020-10-19 16:05:53 +00:00
Eric Biggers
6f70c92aee Merge "Silence useless LOOP_GET_STATUS64 warnings" 2020-10-19 16:05:17 +00:00
Eric Biggers
9a3dc8c709 IdleMaint: skip swap space, bind mounts, and virtual filesystems
When the idle maintenance task runs on Cuttlefish, there are several
warnings printed to logcat after the expected messages:

    D vold    : Starting trim of /data
    I vold    : Trimmed 0 bytes on /data in 36ms
    D vold    : Starting trim of /cache
    I vold    : Trimmed 58662912 bytes on /cache in 0ms
    D vold    : Starting trim of /metadata
    I vold    : Trimmed 7725056 bytes on /metadata in 12ms
    D vold    : Starting trim of none
    W vold    : Failed to open none: No such file or directory
    D vold    : Starting trim of /sdcard
    W vold    : Failed to open /sdcard: Not a directory
    D vold    : Starting trim of /mnt/vendor/shared
    W vold    : Trim failed on /mnt/vendor/shared: Inappropriate ioctl for device

This is because vold gathers the filesystems to trim from the fstab, but
it fails to exclude some entries that aren't appropriate to trim:

    /dev/block/zram0 none swap defaults zramsize=75%
    /tmp /sdcard none defaults,bind recoveryonly
    shared /mnt/vendor/shared virtiofs nosuid,nodev,noatime nofail

These should be excluded because they are swap space, a bind mount, and
a virtual filesystem respectively.

Fix addFromFstab() to exclude the above cases.

Afterwards, the messages on Cuttlefish are:

    D vold    : Starting trim of /data
    I vold    : Trimmed 0 bytes on /data in 39ms
    D vold    : Starting trim of /cache
    I vold    : Trimmed 58662912 bytes on /cache in 0ms
    D vold    : Starting trim of /metadata
    I vold    : Trimmed 9822208 bytes on /metadata in 12ms

Change-Id: Idc575106fe6f81c737f684429d58dba4bd5478ad
2020-10-15 16:56:16 -07:00
Eric Biggers
019d5163cc IdleMaint: use fstab_default from VoldUtil
vold already reads the default fstab into memory when starting up, and
the default fstab isn't allowed to change later.  So in IdleMaint.cpp,
just use 'fstab_default' instead of reading it again.

This also has the advantage that fstab entries for "logical partitions"
now get a properly updated blk_device, which is needed in order to start
using blk_device to exclude virtual filesystems in addFromFstab().

Change-Id: Id6457a2b7972d01dde4bca0c5f2da86374d930af
2020-10-15 16:54:38 -07:00
Eric Biggers
10724d93a1 Silence useless LOOP_GET_STATUS64 warnings
When vold starts up, there are lots of warnings like:

    W vold    : Failed to LOOP_GET_STATUS64 /dev/block/loop30: No such device or address
    W vold    : Failed to LOOP_GET_STATUS64 /dev/block/loop29: No such device or address
    W vold    : Failed to LOOP_GET_STATUS64 /dev/block/loop28: No such device or address

vold is iterating through all loop devices and unbinding the file from
any vold-managed ones.

It's expected that not all loop devices have a file bound to them,
however.  On these, LOOP_GET_STATUS64 fails with ENXIO.

Don't print a warning in such cases.

Change-Id: I91755259dc2c09b1869627259d1e59d5edd6f145
2020-10-15 15:26:27 -07:00
Eric Biggers
836b51bf26 MetadataCrypt: remove unnecessary retry loop
As per the discussion at http://aosp/1456266, the retry loop in
create_crypto_blk_dev() doesn't appear to be needed.  Remove it.

For now don't bother removing the same retry loop in cryptfs.cpp, since
the FDE code isn't really being updated anymore and eventually will be
removed entirely.

Change-Id: Iba0b046f9cdd9723ea1a2ae70f4d4aed4355b97b
2020-10-15 14:46:35 -07:00
Yo Chiang
0af25a3a98 Add IVold::destroyDsuMetadataKey()
destroyDsuMetadataKey() / destroy_dsu_metadata_key() calls
android::gsi::GetDsuMetadataKeyDir() to query the DSU metadata
encryption key dir and destroy the key.
This releases the resource and allows consecutive DSU installations to
use the same key *directory*, but not the same key *blob*.

Bug: 168571434
Test: 1. Install a DSU system.
  2. Boot the DSU system and reboot back to the host system.
  3. Wipe the DSU installation.
  4. DSU metadata key dir /metadata/vold/metadata_encryption/dsu/dsu is
     destroyed.
Change-Id: Ib851177315a5a266807f46ccfd446de1848232cf
2020-10-13 16:00:43 +08:00
Martijn Coenen
7da18c97ef Merge "Use dm.CreateDevice() with a timeout." am: e9023dc7bb
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1456266

Change-Id: Id232a623d6aa3beaa3fdb5b31c722e96da6d75c9
2020-10-12 18:46:02 +00:00
Martijn Coenen
e9023dc7bb Merge "Use dm.CreateDevice() with a timeout." 2020-10-12 18:07:39 +00:00
Martijn Coenen
e0c38eba26 Use dm.CreateDevice() with a timeout.
Using the regular CreateDevice() variant with getDmDeviceByName() has a
race-condition that is documented in libdm/dm.h; instead, use the
variant with a timeout, which guarantees that the block device exists
when it returns.

Test: atest AdoptableHostTest
Bug: 150935323
Change-Id: Ic06cad9af7c44e23359d95b262f68dba27ddfb3a
2020-10-12 16:59:50 +02:00
Xin Li
fd4abc5e72 Skip ab/6749736 in stage.
Merged-In: I876aaf6bba933c964a3573d8053cc60829b3a5fa
Change-Id: I4c8616d3c17e3b9818bde3299fcc79f5444a95f5
2020-10-08 17:24:08 -07:00
Alan Stokes
cfc66f28b1 Merge "Enable vold to set level from user." am: dd66de13ea
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1437215

Change-Id: I4e09204e7b0e2a0c3028ba38238bf65636144ad2
2020-10-05 08:38:49 +00:00
Alan Stokes
dd66de13ea Merge "Enable vold to set level from user." 2020-10-05 08:23:08 +00:00
Alan Stokes
be3db7b7ae Enable vold to set level from user.
We want various per-user directories to have their SELinux MLS level
set to restrict access from other users, as an improvement to user
isolation.

We extend vold_prepare_subdirs to implement this if a flag is
set. vold itself then sets the flag based on a new property,
ro.vold.level_from_user. This is to allow testing of further
incremental work to ensure system apps correctly handle the new
restriction on different devices rather than causing immediate
breakage. Eventually this will go away and the restriction will apply
everywhere.

Bug: 141677108
Test: Manual, with and without propery set.
Change-Id: I8e2207bd94b487bdcc09fd4d80b031027dfea1e3
2020-10-02 14:49:25 +01:00
Treehugger Robot
3c11d4611a Merge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab am: 406cabf717 am: 93f0960cba
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1434595

Change-Id: I51672944372d24483679d6f81df4e80869d3fd99
2020-09-24 17:37:59 +00:00
Treehugger Robot
93f0960cba Merge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab am: 406cabf717
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1434595

Change-Id: Ibb68550d81667178461c4ac990228fcb02a2a8a4
2020-09-24 17:22:32 +00:00
Treehugger Robot
406cabf717 Merge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1434595

Change-Id: I41c720b7260e7fa2b4d0c460df630c7fce8bd135
2020-09-24 16:54:24 +00:00
Treehugger Robot
27a747b8ab Merge "vold: remove unused stop() methods" am: d70e2b4ea9
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1434595

Change-Id: Ifb529e76791d98c76c549bfb93c5abcf4096e685
2020-09-24 16:25:43 +00:00
Treehugger Robot
d70e2b4ea9 Merge "vold: remove unused stop() methods" 2020-09-24 16:06:58 +00:00
Eric Biggers
adba2fcc36 vold: remove unused stop() methods
NetlinkManager::stop() and VolumeManager::stop() are never called, so
remove them.

Change-Id: I868aa2ad24066d2830816984afcc10000cbabad1
2020-09-23 10:02:25 -07:00
Treehugger Robot
62b0fe38c3 Merge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe561129 am: c0eded67a6 am: c888251127
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1429775

Change-Id: I8d1ea5c7c896f8ad59d671a61e37f071e562f7cd
2020-09-21 11:35:29 +00:00
Treehugger Robot
c888251127 Merge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe561129 am: c0eded67a6
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1429775

Change-Id: Ic736a201f65a83ce82495177e26313d44bce15c8
2020-09-21 11:17:39 +00:00
Treehugger Robot
c0eded67a6 Merge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe561129
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1429775

Change-Id: I6ec04c8a1f8f4e1c6a6a96fb7e7b38813a0add3b
2020-09-21 10:26:38 +00:00
Treehugger Robot
2cfe561129 Merge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1429775

Change-Id: I6bd94ca9e8ec62660b716d319ae949cdc578f6a3
2020-09-21 10:07:55 +00:00
Treehugger Robot
5a99d3cfbb Merge "bench: Add fail-fast error path to inodeop_bench" 2020-09-21 09:44:03 +00:00
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
483e71b2f0 Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am: c9548b9d9e am: 48b6b1c767 am: 1bb7e2a438
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1427711

Change-Id: I492bb5a2e9727164db1e856d0c12677517039ea1
2020-09-16 03:42:32 +00:00
Treehugger Robot
1bb7e2a438 Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am: c9548b9d9e am: 48b6b1c767
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1427711

Change-Id: I8704dc372c1deebd87f2e5e52c781fbe3f46978b
2020-09-16 03:14:02 +00:00
Treehugger Robot
48b6b1c767 Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am: c9548b9d9e
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1427711

Change-Id: I65c09190aa8f6e61bda750980bfdcc06e0306d4b
2020-09-16 02:26:57 +00:00
Treehugger Robot
c9548b9d9e Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1427711

Change-Id: I0254ee7e493f98a78476f2e939884185b04d10c0
2020-09-16 02:04:55 +00:00
Treehugger Robot
4e6e7e6c70 Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" 2020-09-16 01:24:16 +00:00
Eric Biggers
b67708361f vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION
Nothing defines CONFIG_HW_DISK_ENCRYPTION, so remove the unused code
that's conditional on it being defined.

Change-Id: Ie435e138686eb4eac47d9aa762ae06f1645a117f
2020-09-15 11:57:30 -07:00
Daeho Jeong
b1f6599ae4 Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01 am: 58383d92c6 am: 79dfe789d9 am: 49c53ff16f
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1420895

Change-Id: Ia5ebe80acee98a90e2cb097766b3a98d10cd14c8
2020-09-15 01:32:02 +00:00
Daeho Jeong
49c53ff16f Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01 am: 58383d92c6 am: 79dfe789d9
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1420895

Change-Id: Ie7763c4b57b5e4d78eb5e5e8f31a7dd78f550aae
2020-09-15 01:13:08 +00:00
Daeho Jeong
79dfe789d9 Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01 am: 58383d92c6
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1420895

Change-Id: I51b4ca860a8222a2a978ea96cbd68d53262ac2e3
2020-09-15 00:45:22 +00:00
Daeho Jeong
58383d92c6 Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1420895

Change-Id: I84cf17d8dd07c72a67beba46a814f51969a159ac
2020-09-15 00:13:38 +00:00
Daeho Jeong
c5ff520a01 Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" 2020-09-14 23:50:17 +00:00
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
f2c76a04a9 [automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1 am: 5724e15454 -s ours am: 95177aab00 -s ours am: db1154a8f5 -s ours
am skip reason: Change-Id Id3c4bbc9149ba7c3e0a0d728026f02f60cb17424 with SHA-1 44b2f954be is in history

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

Change-Id: I7f72ed45082e2e5f84e18f30cadc511bd68fda9b
2020-09-11 10:54:23 +00:00
Treehugger Robot
db1154a8f5 [automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1 am: 5724e15454 -s ours am: 95177aab00 -s ours
am skip reason: Change-Id Id3c4bbc9149ba7c3e0a0d728026f02f60cb17424 with SHA-1 44b2f954be is in history

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

Change-Id: If5b9d639b35b8c3017fb3b3dc316fb648951a737
2020-09-11 10:14:30 +00:00
Treehugger Robot
95177aab00 [automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1 am: 5724e15454 -s ours
am skip reason: Change-Id Id3c4bbc9149ba7c3e0a0d728026f02f60cb17424 with SHA-1 44b2f954be is in history

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

Change-Id: Iba1f2ef22059f905091e742f8041e675a6f76d77
2020-09-11 09:29:33 +00:00
Treehugger Robot
5724e15454 Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1400407

Change-Id: I44aea35571e4dff7f9f1010325f51d0e98dc01f1
2020-09-11 08:40:46 +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
6167310291 [automerger skipped] Merge "Merge Android R" am: 141c2027e2 -s ours am: 789d1d0866 -s ours am: a56f7d2608 -s ours am: 2866b9d5a8 -s ours
am skip reason: Change-Id I477d2dfba05718c829fdb2099248a8baba1125ab with SHA-1 8743ef4ea6 is in history

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

Change-Id: I75d342cc233eb58a2a2ba0c1f47979c6df484d87
2020-09-11 03:59:05 +00:00
Xin Li
2866b9d5a8 [automerger skipped] Merge "Merge Android R" am: 141c2027e2 -s ours am: 789d1d0866 -s ours am: a56f7d2608 -s ours
am skip reason: Change-Id I477d2dfba05718c829fdb2099248a8baba1125ab with SHA-1 8743ef4ea6 is in history

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

Change-Id: Ib0d73f9b471d4cb9834da5c25aaeae2a53ade075
2020-09-11 03:33:34 +00:00
Xin Li
a56f7d2608 [automerger skipped] Merge "Merge Android R" am: 141c2027e2 -s ours am: 789d1d0866 -s ours
am skip reason: Change-Id I477d2dfba05718c829fdb2099248a8baba1125ab with SHA-1 8743ef4ea6 is in history

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

Change-Id: Ic319ade87dab6280b771d6f8d91d7bfde3a056fe
2020-09-11 02:02:43 +00:00