OSDN Git Service

android-x86/system-vold.git
3 years agoSet a default ACL on /data/media/userId.
Martijn Coenen [Wed, 16 Dec 2020 08:40:33 +0000 (09:40 +0100)]
Set a default ACL on /data/media/userId.

This directory is used as a root for external storage on adopted storage
devices. It needs to be writable by processes holding the AID_MEDIA_RW
GID permission; in particular, it should be writable by the FUSE daemon.

On devices with sdcardfs, this was ensured automatically, because
sdcardfs presented a view of this directory that was writable, that we
could use for the FUSE daemon. But on devices without sdcardfs, the FUSE
daemon sees the raw filesystem and its permissions. This also means that
files created by the FUSE daemon will have their uid/gid set to the uid
of the FUSE daemon; to ensure these files stay writable to other system
applications that have AID_MEDIA_RW, use a default ACL to make sure the
gid stays AID_MEDIA_RW.

In particular, this fixes an issue with app cloning, where we want the
FUSE daemon of user 0 to be able to access the files of the app clone
user, and vice versa.

Bug: 154057120
Test: inspect uid/gid of /data/media/0 and contents
Change-Id: I6dfae41f9cb6a8283978b2667b02708a000f07c0

3 years agoMerge "OWNERS: add alan and jeff, alphabetize"
Jeffrey Vander Stoep [Thu, 10 Dec 2020 13:59:45 +0000 (13:59 +0000)]
Merge "OWNERS: add alan and jeff, alphabetize"

3 years agoMerge "Enable improved user separation by default."
Alan Stokes [Thu, 10 Dec 2020 12:30:43 +0000 (12:30 +0000)]
Merge "Enable improved user separation by default."

3 years agoOWNERS: add alan and jeff, alphabetize
Jeff Vander Stoep [Thu, 10 Dec 2020 12:07:57 +0000 (13:07 +0100)]
OWNERS: add alan and jeff, alphabetize

Test: n/a
Change-Id: I3b9f18906b72d0a3aed712f6c6990180294d0d2b

3 years agoEnable improved user separation by default.
Alan Stokes [Thu, 10 Dec 2020 09:54:06 +0000 (09:54 +0000)]
Enable improved user separation by default.

This is already on for all Pixel devices with no problems observed.

If this causes issues with a specific device (e.g. vendor apps being
unable to access their data) it can be temporarily disabled by adding

PRODUCT_PROPERTY_OVERRIDES += ro.vold.level_from_user=0

to the device.mk file. Please file a bug if that happens.

Bug: 141677108
Test: presubmits
Change-Id: Ic9da534f1a5f4c9e3bd62ea5c09a3b11ebcb33e7
Merged-In: Ic9da534f1a5f4c9e3bd62ea5c09a3b11ebcb33e7
(cherry picked from commit 763393644a0a6e361f26dfe26f6dc0021579f011)

3 years agoMerge "Follow vdc naming convention: earlyBootEnded" am: e8838a862d
Treehugger Robot [Wed, 2 Dec 2020 08:20:27 +0000 (08:20 +0000)]
Merge "Follow vdc naming convention: earlyBootEnded" am: e8838a862d

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

Change-Id: I7df00e8936fd2185541645594a9633317632fe99

3 years agoMerge "Follow vdc naming convention: earlyBootEnded"
Treehugger Robot [Wed, 2 Dec 2020 07:49:38 +0000 (07:49 +0000)]
Merge "Follow vdc naming convention: earlyBootEnded"

3 years agoFollow vdc naming convention: earlyBootEnded
Paul Crowley [Tue, 1 Dec 2020 22:36:06 +0000 (14:36 -0800)]
Follow vdc naming convention: earlyBootEnded

vdc commands use camelCase, not kebab-case.

Test: EarlyBootKeyTest.CannotCreateEarlyBootKeys
Change-Id: I7be4d3008a731829e5d5e025216cb2ade238a530

3 years agoSkip rvc-qpr-dev-plus-aosp-without-vendor@6881855
Xin Li [Tue, 24 Nov 2020 00:26:04 +0000 (16:26 -0800)]
Skip rvc-qpr-dev-plus-aosp-without-vendor@6881855

Bug: 172690556
Merged-In: I51672944372d24483679d6f81df4e80869d3fd99
Change-Id: Ib64d7c9c68de9058bae79d0de9f9c59341d207c3

3 years agoMerge "Convert to lower fs path for createObb()." am: c237cbc575
Martijn Coenen [Thu, 19 Nov 2020 17:48:44 +0000 (17:48 +0000)]
Merge "Convert to lower fs path for createObb()." am: c237cbc575

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

Change-Id: Ib2cacb3602bc21c5e6d03e15337c188ae2f7bdd5

3 years agoMerge "Unmount pass_through path last." am: 2fb2757c2d
Martijn Coenen [Thu, 19 Nov 2020 17:48:36 +0000 (17:48 +0000)]
Merge "Unmount pass_through path last." am: 2fb2757c2d

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

Change-Id: I16944515f12a656d9b6a2da23a04b7615c9e2f1a

3 years agoMerge "Convert to lower fs path for createObb()."
Martijn Coenen [Thu, 19 Nov 2020 17:31:54 +0000 (17:31 +0000)]
Merge "Convert to lower fs path for createObb()."

3 years agoMerge "Unmount pass_through path last."
Martijn Coenen [Thu, 19 Nov 2020 17:31:45 +0000 (17:31 +0000)]
Merge "Unmount pass_through path last."

3 years agoConvert to lower fs path for createObb().
Martijn Coenen [Thu, 19 Nov 2020 09:49:45 +0000 (10:49 +0100)]
Convert to lower fs path for createObb().

Since /storage/emulated/userId isn't accessible for users != userId,
and vold should anyway try to avoid accessing the FUSE filesystem itself.

Bug: 172078780
Test: atest StorageManagerTest --user-type secondary_user
Change-Id: I98222bf844a6b7d8ec0d9873eddc71f61aa68c90

3 years agoUnmount pass_through path last.
Martijn Coenen [Thu, 5 Nov 2020 09:34:28 +0000 (10:34 +0100)]
Unmount pass_through path last.

There've been reports of issues where, when a volume is ejected, the
MediaProvider process gets killed. This happens because the
MediaProvider has a file open on the volume (eg, during a scan). We do
abort the scan when the volume is ejected, however this could take some
time. So, we give MediaProvider a bit more time before getting killed,
by only looking for files open on the pass_through paths last. This
order anyway seems to make more sense - ideally we kill apps using
external storage before we unmount the pass_through path underlying it.

Bug: 171367622
Test: atets AdoptableHostTest
Change-Id: Ie8eacaa72a80ff8161ecf1e8c0243afcd890ee39

3 years agoMerge "Call earlyBootEnded from vdc." am: 17ebcf7f99
Martijn Coenen [Wed, 18 Nov 2020 08:09:07 +0000 (08:09 +0000)]
Merge "Call earlyBootEnded from vdc." am: 17ebcf7f99

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

Change-Id: Ib084a4c16c790e274232fd4056b3af4b0e39fff7

3 years agoMerge "Call earlyBootEnded from vdc."
Martijn Coenen [Wed, 18 Nov 2020 07:51:31 +0000 (07:51 +0000)]
Merge "Call earlyBootEnded from vdc."

3 years agoMerge "Switch to exfatprogs compatible fsck parameter" am: dfd36fe6b6
Eric Biggers [Thu, 12 Nov 2020 17:48:16 +0000 (17:48 +0000)]
Merge "Switch to exfatprogs compatible fsck parameter" am: dfd36fe6b6

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

Change-Id: Ibd14595638ab5daf7965043d64cc5c06dddd1b7c

3 years agoMerge "Switch to exfatprogs compatible fsck parameter"
Eric Biggers [Thu, 12 Nov 2020 17:33:16 +0000 (17:33 +0000)]
Merge "Switch to exfatprogs compatible fsck parameter"

3 years agoCall earlyBootEnded from vdc.
Martijn Coenen [Thu, 12 Nov 2020 09:59:13 +0000 (10:59 +0100)]
Call earlyBootEnded from vdc.

This allows us to determine the place where early boot ends from init.
It also allows fixing a bug where early boot wasn't ended previously on
devices without metadata encryption.

Bug: 168585635
Bug: 173005594
Test: inspect logs
Change-Id: I78775672a7d3c140e007235a10fb1d1bc816fcee

3 years agoSwitch to exfatprogs compatible fsck parameter
LuK1337 [Tue, 29 Sep 2020 18:36:50 +0000 (20:36 +0200)]
Switch to exfatprogs compatible fsck parameter

exfatprogs accepts 'y' for no interaction repair.

Change-Id: I2c436816a293a36fc9f0cd635cdb9ca3b5f88bfc

3 years agoMerge "KeyStorage: rework key upgrade handling" am: d5de2f22b7
Eric Biggers [Tue, 10 Nov 2020 01:11:13 +0000 (01:11 +0000)]
Merge "KeyStorage: rework key upgrade handling" am: d5de2f22b7

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

Change-Id: Ib6c052565b3fe79eeb928daa564a7431f89aed22

3 years agoMerge "KeyStorage: rework key upgrade handling"
Eric Biggers [Tue, 10 Nov 2020 00:39:24 +0000 (00:39 +0000)]
Merge "KeyStorage: rework key upgrade handling"

3 years agoKeyStorage: rework key upgrade handling
Eric Biggers [Fri, 6 Nov 2020 03:58:26 +0000 (19:58 -0800)]
KeyStorage: rework key upgrade handling

Remove the error-prone 'keepOld' parameter, and instead make begin()
(renamed to BeginKeymasterOp()) do all the key upgrade handling.

Don't handle /data and /metadata differently anymore.  Previously, when
a checkpoint is active, key blob files were replaced on /data
immediately; only the actual Keymaster key deletion was delayed until
checkpoint commit.  But it's easier to just delay the key blob file
replacement too, as we have to implement that for /metadata anyway.

Also be more vigilant about deleting any leftover upgraded keys.

Test: Tested on bramble using an OTA rvc-d1-release => master.  In OTA
      success case, verified via logcat that the keys were upgraded and
      then were committed after the boot succeeded.  In OTA failure
      case, verified that the device still boots -- i.e., the old keys
      weren't lost.  Verified that in either case, no
      keymaster_key_blob_upgraded files were left over.  Finally, also
      tried 'pm create-user' and 'pm remove-user' and verified via
      logcat that the Keymaster keys still get deleted.
Change-Id: Ic9c3e63e0bcae0c608fc79050ca4a1676b3852ee

3 years agoMerge "EncryptInplace: fsync cryptofd before reporting success" am: e244a15f34
Eric Biggers [Thu, 5 Nov 2020 19:09:37 +0000 (19:09 +0000)]
Merge "EncryptInplace: fsync cryptofd before reporting success" am: e244a15f34

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

Change-Id: I10ff2f5cccf00fbd3cbac93059ce7f069911e9c4

3 years agoMerge "EncryptInplace: fsync cryptofd before reporting success"
Eric Biggers [Thu, 5 Nov 2020 18:51:13 +0000 (18:51 +0000)]
Merge "EncryptInplace: fsync cryptofd before reporting success"

3 years agoEncryptInplace: fsync cryptofd before reporting success
Eric Biggers [Thu, 5 Nov 2020 02:38:38 +0000 (18:38 -0800)]
EncryptInplace: fsync cryptofd before reporting success

fsync() the cryptofd when done writing to it.  Without this, any
remaining dirty pages in the crypto_blkdev's page cache (which there
might be a lot of, even as much as all the data that was written) won't
be flushed to disk until the cryptofd is closed, which ignores I/O
errors and is also after we already reported 100% completion.

There wasn't an fsync() in the original version either, so we've been
getting by without it, but it seems it should be there.

Change-Id: Idd1be3ae67ce96ecf3946b9efb9fc57414f5805a

3 years agoMerge changes from topic "encryptinplace-cleanup" am: 91e4f1dd76
Eric Biggers [Wed, 4 Nov 2020 19:15:05 +0000 (19:15 +0000)]
Merge changes from topic "encryptinplace-cleanup" am: 91e4f1dd76

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

Change-Id: I50e47bd1cb102b9013542b0676258a79ac44b6b1

3 years agoMerge changes from topic "encryptinplace-cleanup"
Eric Biggers [Wed, 4 Nov 2020 18:47:05 +0000 (18:47 +0000)]
Merge changes from topic "encryptinplace-cleanup"

* changes:
  Refactor EncryptInplace.cpp
  Correctly calculate tot_used_blocks on ext4 with uninit_bg
  Fix memory leak of f2fs_info
  Remove special handling for missing crypto_blkdev
  Check return value of create_crypto_blk_dev()
  Remove unused support for partial encryption

3 years agoRefactor EncryptInplace.cpp
Eric Biggers [Tue, 3 Nov 2020 22:11:02 +0000 (14:11 -0800)]
Refactor EncryptInplace.cpp

Refactor EncryptInplace.cpp to simplify and improve it a lot.  This is
everything that didn't fit into prior commits, including:

- Share a lot more code between ext4, f2fs, and full encryption.

- Improve the log messages.  Most importantly, don't spam the log with
  huge numbers of messages, and don't log errors in expected cases.
  Note: generate_f2fs_info() is still too noisy, but that's part of
  "system/extras", not vold, so this change doesn't change that.

- When possible, do 32K reads/writes for f2fs and for full encryption,
  not just for ext4.  This might improve performance.

- Take advantage of C++ functionality.

- Be more careful about edge cases.  E.g. if the calculation of the
  number of blocks to encrypt was wrong, don't set vold.encrypt_progress
  to > 99 until we're actually done.

The net change is over 200 lines removed.

Before-after comparison of log when enabling metadata encryption:

ext4 before:
    I vold    : Beginning inplace encryption, nr_sec: 16777216
    D vold    : cryptfs_enable_inplace(/dev/block/dm-8, /dev/block/by-name/userdata, 16777216, 0)
    D vold    : Opening/dev/block/by-name/userdata
    D vold    : Opening/dev/block/dm-8
    I vold    : Encrypting ext4 filesystem in place...
    [omitted 6387 log messages]
    I vold    : Encrypted to sector 822084608
    D vold    : cryptfs_enable_inplace_ext4 success
    I vold    : Inplace encryption complete

ext4 after:
    D vold    : encrypt_inplace(/dev/block/dm-8, /dev/block/by-name/userdata, 16777216, false)
    D vold    : ext4 filesystem has 64 block groups
    I vold    : Encrypting ext4 filesystem on /dev/block/by-name/userdata in-place via /dev/block/dm-8
    I vold    : 50327 blocks (206 MB) of 2097152 blocks are in-use
    D vold    : Encrypted 10000 of 50327 blocks
    D vold    : Encrypted 20000 of 50327 blocks
    D vold    : Encrypted 30000 of 50327 blocks
    D vold    : Encrypted 40000 of 50327 blocks
    D vold    : Encrypted 50000 of 50327 blocks
    D vold    : Encrypted 50327 of 50327 blocks
    I vold    : Successfully encrypted ext4 filesystem on /dev/block/by-name/userdata

f2fs before:
    I vold    : Beginning inplace encryption, nr_sec: 16777216
    D vold    : cryptfs_enable_inplace(/dev/block/dm-8, /dev/block/by-name/userdata, 16777216, 0)
    D vold    : Opening/dev/block/by-name/userdata
    D vold    : Opening/dev/block/dm-8
    E vold    : Reading ext4 extent caused an exception
    D vold    : cryptfs_enable_inplace_ext4()=-1
    [omitted logspam from f2fs_sparseblock]
    I vold    : Encrypting from block 0
    I vold    : Encrypted to block 15872
    I vold    : Encrypting from block 16384
    I vold    : Encrypted to block 16385
    I vold    : Encrypting from block 17408
    I vold    : Encrypted to block 17412
    D vold    : cryptfs_enable_inplace_f2fs success
    I vold    : Inplace encryption complete

f2fs after:
    D vold    : encrypt_inplace(/dev/block/dm-8, /dev/block/by-name/userdata, 16777216, false)
    [omitted logspam from f2fs_sparseblock]
    I vold    : Encrypting f2fs filesystem on /dev/block/by-name/userdata in-place via /dev/block/dm-8
    I vold    : 15880 blocks (65 MB) of 2097152 blocks are in-use
    D vold    : Encrypted 10000 of 15880 blocks
    D vold    : Encrypted 15880 of 15880 blocks
    I vold    : Successfully encrypted f2fs filesystem on /dev/block/by-name/userdata

Test: Booted Cuttlefish with metadata encryption enabled and with the
      userdata filesystem using (1) ext4, (2) f2fs, and (3) f2fs but
      with EncryptInplace.cpp patched to not recognize the filesystem
      and fall back to the "full" encryption case.  Checked that the log
      messages were as expected and that /data was mounted.

      I've had no luck testing FDE yet; it doesn't work even without
      these changes.  Suggestions appreciated...

Change-Id: I08fc8465f7962abd698904b5466f3ed080d53953

3 years agoCorrectly calculate tot_used_blocks on ext4 with uninit_bg
Eric Biggers [Tue, 3 Nov 2020 22:11:01 +0000 (14:11 -0800)]
Correctly calculate tot_used_blocks on ext4 with uninit_bg

The calculated number of blocks to encrypt is too high on ext4
filesystems that have the uninit_bg feature.  This is because the
calculation assumes that all blocks not counted in bg_free_blocks_count
need to encrypted.  But actually, uninitialized block groups have inode
blocks which vold doesn't encrypt since they are uninitialized, but they
are "allocated" and thus reduce bg_free_blocks_count.

Therefore, add a helper function num_base_meta_blocks_in_group() which
returns the number of blocks to encrypt in an uninitialized block group.
Use it both for the encryption and for calculating 'tot_used_blocks'.

Also compute 'tot_used_blocks' additively rather than subtractively, as
this is easier to understand.

Test: see I08fc8465f7962abd698904b5466f3ed080d53953
Change-Id: I4d2cb40291da67dd1bafd61289ccb9e6343bfda3

3 years agoFix memory leak of f2fs_info
Eric Biggers [Tue, 3 Nov 2020 22:11:01 +0000 (14:11 -0800)]
Fix memory leak of f2fs_info

'struct f2fs_info' from system/extras/f2fs_utils is supposed to be
freed using free_f2fs_info(), not just free().

Test: see I08fc8465f7962abd698904b5466f3ed080d53953
Change-Id: If6e75e5c604b40be24538b156a37cc76f4f0d4f7

3 years agoRemove special handling for missing crypto_blkdev
Eric Biggers [Tue, 3 Nov 2020 22:11:01 +0000 (14:11 -0800)]
Remove special handling for missing crypto_blkdev

This logic is no longer necessary, since the code that creates the
crypto_blkdev (create_crypto_blk_dev() in MetadataCrypt.cpp or in
cryptfs.cpp) now waits for the block device to appear before continuing.

It's also worth noting that the retry loop was only present for ext4,
not for f2fs, yet most Android devices are using f2fs these days.

Test: see I08fc8465f7962abd698904b5466f3ed080d53953
Change-Id: I173ca6cc187a810e008990dfa22aede58632db25

3 years agoCheck return value of create_crypto_blk_dev()
Eric Biggers [Tue, 3 Nov 2020 22:11:00 +0000 (14:11 -0800)]
Check return value of create_crypto_blk_dev()

cryptfs_enable_internal() forgot to check the return value of
create_crypto_blk_dev(), so it was continuing to
cryptfs_enable_inplace() when creating the dm-crypt device failed, which
doesn't make sense.

Test: see I08fc8465f7962abd698904b5466f3ed080d53953
Change-Id: If9f20069d0f084150aa887a350f7c0c31a6d80f2

3 years agoRemove unused support for partial encryption
Eric Biggers [Tue, 3 Nov 2020 22:11:00 +0000 (14:11 -0800)]
Remove unused support for partial encryption

Commit 87999173dd79 ("Don't corrupt ssd when encrypting and power
fails") added a lot of code to handle pausing in-place conversion from
unencrypted => FDE when the battery was low, and resuming it later.

It was eventually decided that this wasn't needed, and commit
7e17e2d22678 ("Don't worry about battery levels when encrypting")
removed the checks for low battery.

This made the partial encryption code unused.  So remove it.

Note that this was cluttering up the metadata encryption code too, since
EncryptInplace.cpp is now shared by both FDE and metadata encryption.

Bug: 16868177
Test: see I08fc8465f7962abd698904b5466f3ed080d53953
Change-Id: Ibd2eb08a2aa15938097abcb8a67b5a813c4d76c7

3 years agoMerge changes I8d2bd67d,I704522b2 am: 27f3ab89d0
Eric Biggers [Tue, 3 Nov 2020 17:48:09 +0000 (17:48 +0000)]
Merge changes I8d2bd67d,I704522b2 am: 27f3ab89d0

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

Change-Id: I28ef08b0fe9b3c94b02769f43e21f574e524da57

3 years agoMerge changes I8d2bd67d,I704522b2
Eric Biggers [Tue, 3 Nov 2020 17:02:46 +0000 (17:02 +0000)]
Merge changes I8d2bd67d,I704522b2

* changes:
  FsCrypt: silently skip "." and ".." when loading keys
  Utils: add IsDotOrDotDot() and use it in the appropriate places

3 years agoMerge "KeyUtil: don't use keepOld=true for system DE and volume keys" am: 4a969dba60
Eric Biggers [Tue, 3 Nov 2020 00:08:56 +0000 (00:08 +0000)]
Merge "KeyUtil: don't use keepOld=true for system DE and volume keys" am: 4a969dba60

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

Change-Id: I45f11f64c84b540a27cdc39af493a2ee4e552bce

3 years agoFsCrypt: silently skip "." and ".." when loading keys
Eric Biggers [Mon, 2 Nov 2020 23:11:06 +0000 (15:11 -0800)]
FsCrypt: silently skip "." and ".." when loading keys

Avoid logging useless messages like:

    D vold    : Skipping non-key .
    D vold    : Skipping non-key ..
    D vold    : Skipping non-de-key .
    D vold    : Skipping non-de-key ..

Change-Id: I8d2bd67d554605a5ab9faadd3730870dfe0881f6

3 years agoUtils: add IsDotOrDotDot() and use it in the appropriate places
Eric Biggers [Mon, 2 Nov 2020 23:31:56 +0000 (15:31 -0800)]
Utils: add IsDotOrDotDot() and use it in the appropriate places

Change-Id: I704522b26acfb3e7c423d9a14d69ede513b50482

3 years agoMerge "KeyUtil: don't use keepOld=true for system DE and volume keys"
Eric Biggers [Mon, 2 Nov 2020 23:31:23 +0000 (23:31 +0000)]
Merge "KeyUtil: don't use keepOld=true for system DE and volume keys"

3 years agoKeyUtil: don't use keepOld=true for system DE and volume keys
Eric Biggers [Thu, 29 Oct 2020 19:59:28 +0000 (12:59 -0700)]
KeyUtil: don't use keepOld=true for system DE and volume keys

Commit 77df7f207dce / http://aosp/1217657 ("Refactor to use
EncryptionPolicy everywhere we used to use raw_ref") unintentionally
made fscrypt_initialize_systemwide_keys() start specifying keepOld=true
(via default parameter value) when retrieving the system DE key, and
likewise for read_or_create_volkey() and volume keys.

As a result, if the associated Keymaster key needs to be upgraded, the
upgraded key blob gets written to "keymaster_key_blob_upgraded", but it
doesn't replace the original "keymaster_key_blob", nor is the original
key deleted from Keymaster.  This happens at every boot, eventually
resulting in the RPMB partition in Keymaster becoming full.

Only the metadata encryption key ever needs keepOld=true, since it's the
only key that isn't stored in /data, and the purpose of keepOld=true is
to allow a key that isn't stored in /data to be committed or rolled back
when a userdata checkpoint is committed or rolled back.

So, fix this bug by removing the default value of keepOld, and
specifying false everywhere except the metadata encryption key.

Note that when an affected device gets this fix, it will finally upgrade
its system DE key correctly.  However, this fix doesn't free up space in
Keymaster that was consumed by this bug.

Test: On bramble:
  - Flashed rvc-d1-dev build, with wiping userdata
  - Flashed a newer build, without wiping userdata
  - Log expectedly shows key upgrades:
        $ adb logcat | grep 'Upgrading key'
        D vold    : Upgrading key: /metadata/vold/metadata_encryption/key
        D vold    : Upgrading key: /data/unencrypted/key
        D vold    : Upgrading key: /data/misc/vold/user_keys/de/0
        D vold    : Upgrading key: /data/misc/vold/user_keys/ce/0/current
  - Rebooted
  - Log unexpectedly shows the system DE key being upgraded again:
        $ adb logcat | grep 'Upgrading key'
        D vold    : Upgrading key: /data/unencrypted/key
  - "keymaster_key_blob_upgraded" unexpectedly still exists:
        $ adb shell find /data /metadata -name keymaster_key_blob_upgraded
        /data/unencrypted/key/keymaster_key_blob_upgraded
  - Applied this fix and flashed, without wiping userdata
  - Log shows system DE key being upgraded (expected because due to the
    bug, the upgraded key didn't replace the original one before)
        $ adb logcat | grep 'Upgrading key'
        D vold    : Upgrading key: /data/unencrypted/key
  - "keymaster_key_blob_upgraded" expectedly no longer exists
        $ adb shell find /data /metadata -name keymaster_key_blob_upgraded
  - Rebooted
  - Log expectedly doesn't show any more key upgrades
        $ adb logcat | grep 'Upgrading key'
Bug: 171944521
Bug: 172019387
Change-Id: I42d3f5fbe32cb2ec229f4b614cfb271412a3ed29

3 years agoMerge "Fix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS" am: 569fb8365e
Eric Biggers [Wed, 28 Oct 2020 16:26:09 +0000 (16:26 +0000)]
Merge "Fix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS" am: 569fb8365e

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

Change-Id: I5cb2651ee48ab2a9afb9ec5ded8259cd006ecbfe

3 years agoMerge "Fix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS"
Eric Biggers [Wed, 28 Oct 2020 16:16:26 +0000 (16:16 +0000)]
Merge "Fix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS"

3 years agoFix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS
Eric Biggers [Fri, 23 Oct 2020 23:32:58 +0000 (16:32 -0700)]
Fix argument type for FS_IOC_GETFLAGS and FS_IOC_SETFLAGS

These ioctls take a pointer to an 'int' (or an 'unsigned int', it
doesn't matter), not an 'unsigned long'.  See 'man ioctl_iflags'.
Presumably it happened to work anyway because Android only runs on
little endian platforms.

Bug: 146419093
Bug: 163453310
Change-Id: I73099dafd4ee8d497c0a754149271871a37454f6
Signed-off-by: Eric Biggers <ebiggers@google.com>
3 years agoMerge "Add IVold::destroyDsuMetadataKey()" am: cb581cc8de
Yo Chiang [Mon, 26 Oct 2020 05:49:35 +0000 (05:49 +0000)]
Merge "Add IVold::destroyDsuMetadataKey()" am: cb581cc8de

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

Change-Id: I6241d71e331eebe0222696a052e40d2222a9c537

3 years agoMerge "Add IVold::destroyDsuMetadataKey()"
Yo Chiang [Mon, 26 Oct 2020 05:27:36 +0000 (05:27 +0000)]
Merge "Add IVold::destroyDsuMetadataKey()"

3 years agoMerge "Set media folder +F for adopted storage as well" am: 739ca2c298
Treehugger Robot [Wed, 21 Oct 2020 23:12:51 +0000 (23:12 +0000)]
Merge "Set media folder +F for adopted storage as well" am: 739ca2c298

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

Change-Id: I90d0e56e260094661217dd20135f9fde6da96e98

3 years agoMerge "Set media folder +F for adopted storage as well"
Treehugger Robot [Wed, 21 Oct 2020 22:04:11 +0000 (22:04 +0000)]
Merge "Set media folder +F for adopted storage as well"

3 years agoSet media folder +F for adopted storage as well
Daniel Rosenberg [Thu, 13 Aug 2020 01:31:43 +0000 (18:31 -0700)]
Set media folder +F for adopted storage as well

We previously only set +F for /data/media, but adopted storage needs
this as well. Instead we add support for adding attrs to PrepareDir.

Bug: 163453310
Test: sm set-virtual-disk true
      follow UI setup and confirm +F on /mnt/expand/*/media
Change-Id: I08f13b57a4de3538e88b38eb95b0ac115a5a5ce8
Merged-In: I08f13b57a4de3538e88b38eb95b0ac115a5a5ce8

3 years agoMerge "vold: Generate storage key without rollback resistance" am: 4f5e9c196f
Eric Biggers [Tue, 20 Oct 2020 23:45:41 +0000 (23:45 +0000)]
Merge "vold: Generate storage key without rollback resistance" am: 4f5e9c196f

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

Change-Id: Ibf06476010946d799c4b1fa5143ed4eac96f301a

3 years agoMerge "vold: Generate storage key without rollback resistance"
Eric Biggers [Tue, 20 Oct 2020 23:17:22 +0000 (23:17 +0000)]
Merge "vold: Generate storage key without rollback resistance"

3 years agovold: Generate storage key without rollback resistance
Gaurav Kashyap [Fri, 11 Sep 2020 22:24:01 +0000 (15:24 -0700)]
vold: Generate storage key without rollback resistance

Generate a storage key without rollback_resistance when device doesnt
support the corresponding tag.

Bug: 168527558

Change-Id: Iaf27c64dba627a31c9cbd9178458bf6785d00251

3 years agoMerge changes Idc575106,Id6457a2b am: 3e0e53dbe5
Eric Biggers [Mon, 19 Oct 2020 16:26:21 +0000 (16:26 +0000)]
Merge changes Idc575106,Id6457a2b am: 3e0e53dbe5

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

Change-Id: If01239e184cd19de660fa158d599c9826ea0cf71

3 years agoMerge "MetadataCrypt: remove unnecessary retry loop" am: 80fdc5a4e3
Eric Biggers [Mon, 19 Oct 2020 16:26:15 +0000 (16:26 +0000)]
Merge "MetadataCrypt: remove unnecessary retry loop" am: 80fdc5a4e3

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

Change-Id: Id26dbda854480c74d07fcec87f1d045325bf625a

3 years agoMerge "Silence useless LOOP_GET_STATUS64 warnings" am: 6f70c92aee
Eric Biggers [Mon, 19 Oct 2020 16:26:06 +0000 (16:26 +0000)]
Merge "Silence useless LOOP_GET_STATUS64 warnings" am: 6f70c92aee

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

Change-Id: I75d169008b857848c314598cac4d87f27d6919b1

3 years agoMerge changes Idc575106,Id6457a2b
Eric Biggers [Mon, 19 Oct 2020 16:08:02 +0000 (16:08 +0000)]
Merge changes Idc575106,Id6457a2b

* changes:
  IdleMaint: skip swap space, bind mounts, and virtual filesystems
  IdleMaint: use fstab_default from VoldUtil

3 years agoMerge "MetadataCrypt: remove unnecessary retry loop"
Eric Biggers [Mon, 19 Oct 2020 16:05:53 +0000 (16:05 +0000)]
Merge "MetadataCrypt: remove unnecessary retry loop"

3 years agoMerge "Silence useless LOOP_GET_STATUS64 warnings"
Eric Biggers [Mon, 19 Oct 2020 16:05:17 +0000 (16:05 +0000)]
Merge "Silence useless LOOP_GET_STATUS64 warnings"

3 years agoIdleMaint: skip swap space, bind mounts, and virtual filesystems
Eric Biggers [Thu, 15 Oct 2020 23:54:38 +0000 (16:54 -0700)]
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

3 years agoIdleMaint: use fstab_default from VoldUtil
Eric Biggers [Thu, 15 Oct 2020 23:54:38 +0000 (16:54 -0700)]
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

3 years agoSilence useless LOOP_GET_STATUS64 warnings
Eric Biggers [Thu, 15 Oct 2020 21:52:54 +0000 (14:52 -0700)]
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

3 years agoMetadataCrypt: remove unnecessary retry loop
Eric Biggers [Thu, 15 Oct 2020 21:39:34 +0000 (14:39 -0700)]
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

3 years agoAdd IVold::destroyDsuMetadataKey()
Yo Chiang [Wed, 7 Oct 2020 06:20:00 +0000 (14:20 +0800)]
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

3 years agoMerge "Use dm.CreateDevice() with a timeout." am: e9023dc7bb
Martijn Coenen [Mon, 12 Oct 2020 18:46:02 +0000 (18:46 +0000)]
Merge "Use dm.CreateDevice() with a timeout." am: e9023dc7bb

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

Change-Id: Id232a623d6aa3beaa3fdb5b31c722e96da6d75c9

3 years agoMerge "Use dm.CreateDevice() with a timeout."
Martijn Coenen [Mon, 12 Oct 2020 18:07:39 +0000 (18:07 +0000)]
Merge "Use dm.CreateDevice() with a timeout."

3 years agoUse dm.CreateDevice() with a timeout.
Martijn Coenen [Mon, 12 Oct 2020 11:26:52 +0000 (13:26 +0200)]
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

3 years agoSkip ab/6749736 in stage.
Xin Li [Fri, 9 Oct 2020 00:24:08 +0000 (17:24 -0700)]
Skip ab/6749736 in stage.

Merged-In: I876aaf6bba933c964a3573d8053cc60829b3a5fa
Change-Id: I4c8616d3c17e3b9818bde3299fcc79f5444a95f5

3 years agoMerge "Enable vold to set level from user." am: dd66de13ea
Alan Stokes [Mon, 5 Oct 2020 08:38:49 +0000 (08:38 +0000)]
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

3 years agoMerge "Enable vold to set level from user."
Alan Stokes [Mon, 5 Oct 2020 08:23:08 +0000 (08:23 +0000)]
Merge "Enable vold to set level from user."

3 years agoEnable vold to set level from user.
Alan Stokes [Fri, 7 Feb 2020 09:29:38 +0000 (09:29 +0000)]
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

3 years agoMerge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab am: 406cabf7...
Treehugger Robot [Thu, 24 Sep 2020 17:37:59 +0000 (17:37 +0000)]
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

3 years agoMerge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab am: 406cabf717
Treehugger Robot [Thu, 24 Sep 2020 17:22:32 +0000 (17:22 +0000)]
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

3 years agoMerge "vold: remove unused stop() methods" am: d70e2b4ea9 am: 27a747b8ab
Treehugger Robot [Thu, 24 Sep 2020 16:54:24 +0000 (16:54 +0000)]
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

3 years agoMerge "vold: remove unused stop() methods" am: d70e2b4ea9
Treehugger Robot [Thu, 24 Sep 2020 16:25:43 +0000 (16:25 +0000)]
Merge "vold: remove unused stop() methods" am: d70e2b4ea9

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

Change-Id: Ifb529e76791d98c76c549bfb93c5abcf4096e685

3 years agoMerge "vold: remove unused stop() methods"
Treehugger Robot [Thu, 24 Sep 2020 16:06:58 +0000 (16:06 +0000)]
Merge "vold: remove unused stop() methods"

3 years agovold: remove unused stop() methods
Eric Biggers [Wed, 23 Sep 2020 17:00:40 +0000 (10:00 -0700)]
vold: remove unused stop() methods

NetlinkManager::stop() and VolumeManager::stop() are never called, so
remove them.

Change-Id: I868aa2ad24066d2830816984afcc10000cbabad1

3 years agoMerge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe56112...
Treehugger Robot [Mon, 21 Sep 2020 11:35:29 +0000 (11:35 +0000)]
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

3 years agoMerge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe56112...
Treehugger Robot [Mon, 21 Sep 2020 11:17:39 +0000 (11:17 +0000)]
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

3 years agoMerge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb am: 2cfe561129
Treehugger Robot [Mon, 21 Sep 2020 10:26:38 +0000 (10:26 +0000)]
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

3 years agoMerge "bench: Add fail-fast error path to inodeop_bench" am: 5a99d3cfbb
Treehugger Robot [Mon, 21 Sep 2020 10:07:55 +0000 (10:07 +0000)]
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

3 years agoMerge "bench: Add fail-fast error path to inodeop_bench"
Treehugger Robot [Mon, 21 Sep 2020 09:44:03 +0000 (09:44 +0000)]
Merge "bench: Add fail-fast error path to inodeop_bench"

3 years agobench: Add fail-fast error path to inodeop_bench
Stefano Duo [Fri, 18 Sep 2020 09:00:42 +0000 (09:00 +0000)]
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

3 years agoMerge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am...
Treehugger Robot [Wed, 16 Sep 2020 03:42:32 +0000 (03:42 +0000)]
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

3 years agoMerge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am...
Treehugger Robot [Wed, 16 Sep 2020 03:14:02 +0000 (03:14 +0000)]
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

3 years agoMerge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70 am...
Treehugger Robot [Wed, 16 Sep 2020 02:26:57 +0000 (02:26 +0000)]
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

3 years agoMerge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION" am: 4e6e7e6c70
Treehugger Robot [Wed, 16 Sep 2020 02:04:55 +0000 (02:04 +0000)]
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

3 years agoMerge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION"
Treehugger Robot [Wed, 16 Sep 2020 01:24:16 +0000 (01:24 +0000)]
Merge "vold: remove unused code for CONFIG_HW_DISK_ENCRYPTION"

3 years agovold: remove unused code for CONFIG_HW_DISK_ENCRYPTION
Eric Biggers [Tue, 15 Sep 2020 18:55:40 +0000 (11:55 -0700)]
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

3 years agoMerge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01...
Daeho Jeong [Tue, 15 Sep 2020 01:32:02 +0000 (01:32 +0000)]
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

3 years agoMerge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01...
Daeho Jeong [Tue, 15 Sep 2020 01:13:08 +0000 (01:13 +0000)]
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

3 years agoMerge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01...
Daeho Jeong [Tue, 15 Sep 2020 00:45:22 +0000 (00:45 +0000)]
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

3 years agoMerge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard" am: c5ff520a01
Daeho Jeong [Tue, 15 Sep 2020 00:13:38 +0000 (00:13 +0000)]
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

3 years agoMerge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard"
Daeho Jeong [Mon, 14 Sep 2020 23:50:17 +0000 (23:50 +0000)]
Merge "secdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard"

3 years agosecdiscard: use F2FS_IOC_SEC_TRIM_FILE for secure discard
Daeho Jeong [Tue, 8 Sep 2020 03:59:28 +0000 (12:59 +0900)]
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

3 years ago[automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1...
Treehugger Robot [Fri, 11 Sep 2020 10:54:23 +0000 (10:54 +0000)]
[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

3 years ago[automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1...
Treehugger Robot [Fri, 11 Sep 2020 10:14:30 +0000 (10:14 +0000)]
[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

3 years ago[automerger skipped] Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1...
Treehugger Robot [Fri, 11 Sep 2020 09:29:33 +0000 (09:29 +0000)]
[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

3 years agoMerge "Add '-unstable' to solve ODR violation" am: f7794b5dc1
Treehugger Robot [Fri, 11 Sep 2020 08:40:46 +0000 (08:40 +0000)]
Merge "Add '-unstable' to solve ODR violation" am: f7794b5dc1

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

Change-Id: I44aea35571e4dff7f9f1010325f51d0e98dc01f1

3 years agoMerge "Add '-unstable' to solve ODR violation"
Treehugger Robot [Fri, 11 Sep 2020 08:19:44 +0000 (08:19 +0000)]
Merge "Add '-unstable' to solve ODR violation"