Commit graph

5532 commits

Author SHA1 Message Date
Daeho Jeong
7f6de29a04 Use sysfs control for storage device GC am: d96b2ac076
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/18972074

Change-Id: I97bcf7e649090234866db71dd7454e2cd8af0b9e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-21 21:32:45 +00:00
Daeho Jeong
d96b2ac076 Use sysfs control for storage device GC
Sometimes, waiting for the HAL makes infinite calls to HAL and ending
up with power consuming issues. While tracking the root cause, we will
temporally turn off HAL for storage device GC.

Bug: 235470321
Test: run "sm idle-maint run"
Ignore-AOSP-First: This is a temporal fix for Android TM devices.
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Change-Id: Ieb371b7fdebfe938206a45547bb24dfbf2c2e7be
2022-06-17 23:31:35 +00:00
Eric Biggers
a7c591bb75 Merge "Remove obsolete support for emulated FBE" am: 7b04dba53e am: 2e4373b415
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2101774

Change-Id: I9595487eb191397c30a795989b2f3ede636b4b0b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09 19:52:48 +00:00
Eric Biggers
2e4373b415 Merge "Remove obsolete support for emulated FBE" am: 7b04dba53e
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2101774

Change-Id: Ia4a90c62bf8e974aa51c19791668b6706d84d087
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09 18:59:35 +00:00
Eric Biggers
7b04dba53e Merge "Remove obsolete support for emulated FBE" 2022-06-09 18:42:00 +00:00
Jaegeuk Kim
08c3cbdf93 Merge "Support zoned device with dm-default-key" am: bb97be3d82 am: 43c03c3fe7
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2116417

Change-Id: Ib67668826bf1f6c89cde82bde67bb1e103395e0f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09 15:27:49 +00:00
Jaegeuk Kim
43c03c3fe7 Merge "Support zoned device with dm-default-key" am: bb97be3d82
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2116417

Change-Id: I6d01a22e9e2b4770be90797e4f94199058de2144
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-09 15:09:58 +00:00
Jaegeuk Kim
bb97be3d82 Merge "Support zoned device with dm-default-key" 2022-06-09 14:53:25 +00:00
Jaegeuk Kim
f6151b434c Support zoned device with dm-default-key
Note that, encrypt_inplace cannot support zoned device, since it
doesn't support in-place updates. And, dm-default-key will have
a different key.

Bug: 172378121
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: I34cb1e747e0f3faa07c5a4bfeded11fb789a033c
2022-06-07 18:43:54 -07:00
Daeho Jeong
019a2d5777 [automerger skipped] Merge "vold: fix the range of stopped state of idleMaint" into tm-dev am: baee102002 -s ours
am skip reason: Merged-In I785c8aeebd8fcf58c34d9be9968d99634d0b420a with SHA-1 372b3510b5 is already in history

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

Change-Id: I427409239d386c4fba44ec7bcd87989e51e529a4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 22:17:58 +00:00
Daeho Jeong
9c232cc152 [automerger skipped] vold: fix the range of stopped state of idleMaint am: 7667d64ab8 -s ours
am skip reason: Merged-In I785c8aeebd8fcf58c34d9be9968d99634d0b420a with SHA-1 372b3510b5 is already in history

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

Change-Id: I2e2a4afa9fd769dffc6c39d0c69a13418d03ca6f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 22:17:56 +00:00
Daeho Jeong
baee102002 Merge "vold: fix the range of stopped state of idleMaint" into tm-dev 2022-05-20 21:15:13 +00:00
Zimuzo Ezeozue
2b5038faa5 Merge "Abort FUSE as part of volume reset" am: 3712b8de01 am: 73383ddb7f
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2101651

Change-Id: I96d9d16e7989a547b3c0bfa97317f3e6e136bfab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 13:15:55 +00:00
Zimuzo Ezeozue
73383ddb7f Merge "Abort FUSE as part of volume reset" am: 3712b8de01
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2101651

Change-Id: I7e4e62ee8b89168c03ab86071a8e7e109958906b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 12:45:14 +00:00
Corina Grigoras
97c642cc99 Merge "Abort FUSE as part of volume reset" into tm-dev am: 05098fee39
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/vold/+/18492349

Change-Id: Ie48a761a1b173f66e3cddbae6f965148c7a18645
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 12:43:50 +00:00
Corina Grigoras
05098fee39 Merge "Abort FUSE as part of volume reset" into tm-dev 2022-05-20 09:59:53 +00:00
Zimuzo Ezeozue
3712b8de01 Merge "Abort FUSE as part of volume reset" 2022-05-20 09:34:24 +00:00
Zim
817f224fb4 Abort FUSE as part of volume reset
This fixes a bug in Android T where MediaProvider leaked FUSE fds in
it's process preveventing it from dying after being killed. This
resulted in the MP in a zombie state.

Even though, this bug was more prevalent in Android T due to a change
in the Parcel lifecycle (see b/233216232), this bug could have always
occurred in theory.

This fix should be harmless since after volume reset, all FUSE volumes
should be unmounted and aborting the FUSE connections will either
no-op or actually prevent the FUSE daemon from getting wedged in a
zombie state.

Test: Manually trigger a FUSE fd leak in the MediaProvider, kill it
and verify that it is restarted without zombie.
Bug: 233216232
Bug: 231792374
Bug: 230445008
Change-Id: I9e559a48b9a72e6ecbc3a277a09ea5d34c9ec499
2022-05-20 09:33:12 +00:00
Eric Biggers
a405db560e Remove obsolete support for emulated FBE
Emulated FBE was a developer-mode feature intended to allow developers
to add Direct Boot support to apps before native FBE devices became
widely available.  Since all devices running the latest version of
Android now use native FBE (except for a couple edge cases not relevant
here, like in-development devices on which encryption hasn't been
enabled yet), and emulated FBE doesn't work on native FBE devices
anyway, there's no longer any need to carry the code for emulated FBE.

Bug: 232458753
Change-Id: Ia6824699b578aca3af340fe578e26d5a5dc82b16
2022-05-20 04:41:42 +00:00
Zim
11a666b092 Abort FUSE as part of volume reset
This fixes a bug in Android T where MediaProvider leaked FUSE fds in
it's process preveventing it from dying after being killed. This
resulted in the MP in a zombie state.

Even though, this bug was more prevalent in Android T due to a change
in the Parcel lifecycle (see b/233216232), this bug could have always
occurred in theory.

This fix should be harmless since after volume reset, all FUSE volumes
should be unmounted and aborting the FUSE connections will either
no-op or actually prevent the FUSE daemon from getting wedged in a
zombie state.

Test: Manually trigger a FUSE fd leak in the MediaProvider, kill it
and verify that it is restarted without zombie.
Bug: 233216232
Bug: 231792374

Change-Id: I9e559a48b9a72e6ecbc3a277a09ea5d34c9ec499
Merged-In: I9e559a48b9a72e6ecbc3a277a09ea5d34c9ec499
2022-05-19 17:17:10 +01:00
Daeho Jeong
684554549d Merge "vold: fix the range of stopped state of idleMaint" am: 289bcb5305 am: d7237292e3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2100921

Change-Id: I1e70ad65c055db304ccbd9f64c739e3c8830175f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-19 01:35:59 +00:00
Daeho Jeong
d7237292e3 Merge "vold: fix the range of stopped state of idleMaint" am: 289bcb5305
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2100921

Change-Id: I3fc7979d0d5bd5da8fe49ffd1da3589a7df2db5d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-19 00:53:22 +00:00
Daeho Jeong
7667d64ab8 vold: fix the range of stopped state of idleMaint
When it is stuck in runDevGC() for an unexpected reason, now it cannot
prevent the other callers from entering into it again. Fix it.

Bug: 232297944
Test: run "sm idle-maint run" twice & check whether they are overlapped
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Change-Id: I785c8aeebd8fcf58c34d9be9968d99634d0b420a
Merged-In: I785c8aeebd8fcf58c34d9be9968d99634d0b420a
2022-05-18 16:29:46 -07:00
Daeho Jeong
289bcb5305 Merge "vold: fix the range of stopped state of idleMaint" 2022-05-18 23:27:40 +00:00
Daeho Jeong
372b3510b5 vold: fix the range of stopped state of idleMaint
When it is stuck in runDevGC() for an unexpected reason, now it cannot
prevent the other callers from entering into it again. Fix it.

Bug: 232297944
Test: run "sm idle-maint run" twice & check whether they are overlapped
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Change-Id: I785c8aeebd8fcf58c34d9be9968d99634d0b420a
2022-05-18 09:03:15 -07:00
Eric Biggers
814dbfb77c Merge "Add and use prepare_dir_with_policy() helper function" am: 14ac67efab am: b0aec67fab
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2097184

Change-Id: I090927709e10f6eb6ade3192ab76ce73e29ec10e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-13 08:50:08 +00:00
Eric Biggers
b0aec67fab Merge "Add and use prepare_dir_with_policy() helper function" am: 14ac67efab
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2097184

Change-Id: I2d4d4a5832d66ded83e7f2effe14d34728d0db5d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-13 03:53:23 +00:00
Eric Biggers
14ac67efab Merge "Add and use prepare_dir_with_policy() helper function" 2022-05-13 03:04:50 +00:00
Eric Biggers
ca9a97ed6c Add and use prepare_dir_with_policy() helper function
Having prepare_dir() and EnsurePolicy() be separate operations is
error-prone; it lengthens the window of time that files could
accidentally be created in new directories before they are encrypted,
and it makes it easier to accidentally never encrypt a directory.

To partially address this, add a function prepare_dir_with_policy() that
combines the two steps, and use it everywhere possible.  This function
is now the only place in vold that calls EnsurePolicy().

As a follow-up change, we could go a bit further and make this helper
function create the directory under a temporary name and move it into
place already-encrypted.  This change just focuses on getting the helper
function in place, without changing the behavior too much.

Change-Id: I98ab345df235120db6727f7dbe0da6a8b6ef2579
2022-05-12 20:21:33 +00:00
Eric Biggers
cf8713daf4 Merge changes from topic "deny-create-user-dirs" am: 9fb8825578 am: 65f0713d14
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2095484

Change-Id: Id9e1c58d6a5bcf2609229c387db91eec76afeefc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-12 19:57:49 +00:00
Eric Biggers
e515951101 Don't return /data/data from BuildDataUserCePath() am: aafc1bfb73 am: 50cfdadab0
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2095483

Change-Id: I49b25ca9d4666edeee056588b24f4528a495af32
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-12 19:57:48 +00:00
Eric Biggers
65f0713d14 Merge changes from topic "deny-create-user-dirs" am: 9fb8825578
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2095484

Change-Id: I89516d7b997e2b48e1767e895c797eec349ffa17
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-12 19:38:52 +00:00
Eric Biggers
50cfdadab0 Don't return /data/data from BuildDataUserCePath() am: aafc1bfb73
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2095483

Change-Id: Ib1953e89a41e68f845e33878b0cb7728b06a9e8e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-12 19:38:51 +00:00
Eric Biggers
9fb8825578 Merge changes from topic "deny-create-user-dirs"
* changes:
  Prepare /data/user/0 and /data/media/obb during initUser0
  Don't return /data/data from BuildDataUserCePath()
2022-05-12 18:41:21 +00:00
Eric Biggers
9ea5344daf Prepare /data/user/0 and /data/media/obb during initUser0
Prepare these directories during initUser0.  This greatly shortens the
gap between the creation and encryption of /data/user/0, and this makes
it possible to remove init's write access to all directories containing
per-user encrypted directories.

Bug: 156305599
Change-Id: Ibf3d25356e8f0bca70da078c5d2428ae8615240e
2022-05-11 21:56:01 +00:00
Eric Biggers
6e62eb2100 [automerger skipped] Enforce that internal storage is prepared first am: c193c3fbb8 -s ours
am skip reason: Merged-In Ib26cc1bd46ffa2578f6f0156dfacc5496dae3178 with SHA-1 c66c2e306d is already in history

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

Change-Id: I5166e083498635a96526d45c6470884ea4adf0a9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-11 21:09:44 +00:00
Eric Biggers
aafc1bfb73 Don't return /data/data from BuildDataUserCePath()
There is no reason for this function to sometimes return the legacy
alias "/data/data" for /data/user/0.  Just use /data/user/0 instead.

Bug: 156305599
Change-Id: I305a9463c1bf0a59495c34ef33430f92257c2f0d
2022-05-11 05:33:25 +00:00
Eric Biggers
4792b2ff3a Merge "Set correct SELinux labels on new user directories" am: ff12485899 am: 855a86f6e7
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2086313

Change-Id: I966c9dabd925b058e53dfcafac5564b270856329
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-09 15:47:52 +00:00
Eric Biggers
855a86f6e7 Merge "Set correct SELinux labels on new user directories" am: ff12485899
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2086313

Change-Id: Iecee4b11b0b89a2d4c5657e099daf0ce2525382c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-09 15:18:59 +00:00
Eric Biggers
ff12485899 Merge "Set correct SELinux labels on new user directories" 2022-05-09 14:45:11 +00:00
Eric Biggers
39704e777a Set correct SELinux labels on new user directories
Make vold explicitly set the appropriate fscreate SELinux context when
creating per-user subdirectories such as /data/user/$userId.  This is
needed for these subdirectories to get the correct SELinux labels after
the sepolicy change https://r.android.com/2078213 changes their parent
directories to have different labels.

Note: the helper function being changed is also used for some other
directories, such as subdirectories of /data/misc/vold.  But this is
fine since they still get the same labels as before.

Test: see https://r.android.com/2078213
Bug: 156305599
Change-Id: Id61c2d985144007059c563cec91b1355176e915c
2022-05-04 22:17:54 +00:00
Eric Biggers
7f925c79be Merge "Enforce that internal storage is prepared first" am: 1093934040 am: 4f4e999ec0
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2085659

Change-Id: Iabd7700ed3eb10439b7f9d92cfb006ae6b280558
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-04 20:12:39 +00:00
Eric Biggers
4f4e999ec0 Merge "Enforce that internal storage is prepared first" am: 1093934040
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2085659

Change-Id: I30eaba96a192c2ce32aa16c60ffe1ac39194d639
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-04 19:54:18 +00:00
Eric Biggers
c193c3fbb8 Enforce that internal storage is prepared first
Before doing anything else in fscrypt_prepare_user_storage(), error out
if adoptable storage is being prepared before internal storage.  Without
this explicit check, making this mistake results in a sequence of weird
errors that is hard to trace back to the actual problem.

Bug: 231387956
Change-Id: Ib26cc1bd46ffa2578f6f0156dfacc5496dae3178
(cherry picked from commit c66c2e306d)
Merged-In: Ib26cc1bd46ffa2578f6f0156dfacc5496dae3178
2022-05-04 19:01:45 +00:00
Eric Biggers
1093934040 Merge "Enforce that internal storage is prepared first" 2022-05-04 18:56:17 +00:00
Eric Biggers
c66c2e306d Enforce that internal storage is prepared first
Before doing anything else in fscrypt_prepare_user_storage(), error out
if adoptable storage is being prepared before internal storage.  Without
this explicit check, making this mistake results in a sequence of weird
errors that is hard to trace back to the actual problem.

Bug: 231387956
Change-Id: Ib26cc1bd46ffa2578f6f0156dfacc5496dae3178
2022-05-04 06:47:44 +00:00
Chih-hung Hsieh
4858522869 Merge "Use tidy_checks_as_errors not -warnings-as-errors" am: 56ee1a0ca7 am: 39b2e0423b
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2078678

Change-Id: I1fb02daed88158f4b1b4d0f7f4125b12c21400a2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-02 22:10:48 +00:00
Chih-hung Hsieh
39b2e0423b Merge "Use tidy_checks_as_errors not -warnings-as-errors" am: 56ee1a0ca7
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2078678

Change-Id: I343bac88d299cc3382143b89a37e95a3dd18a5c0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-02 21:31:50 +00:00
Chih-hung Hsieh
56ee1a0ca7 Merge "Use tidy_checks_as_errors not -warnings-as-errors" 2022-04-29 00:15:40 +00:00
Chih-Hung Hsieh
1ab55a5060 Use tidy_checks_as_errors not -warnings-as-errors
The flag -warnings-as-errors embedded in tidy_flags
is difficult to process and error-prone.
They should be replaced with the new tidy_checks_as_errors list.

Bug: 229801437
Test: make tidy-system-vold
Change-Id: I801e73dce5f08fe1ca5bc49de633706ad2cdf986
2022-04-27 15:54:25 -07:00