Commit graph

6055 commits

Author SHA1 Message Date
Ryan Prichard
c2b3fefa01 Merge "Add a ZeroingAllocator::rebind<Other> for Other==char" into main 2023-07-25 23:32:50 +00:00
Ryan Prichard
4c513f2c7e Add a ZeroingAllocator::rebind<Other> for Other==char
Newer versions of libc++ check that an allocator can be rebound to the
same element type. We need to add a rebind member to ZeroingAllocator
to fix this compiler error:

prebuilts/clang/host/linux-x86/clang-r498229/include/c++/v1/vector:376:19: error: static assertion failed due to requirement 'is_same<android::vold::ZeroingAllocator, std::allocator<char>>::value': [allocator.requirements] states that rebinding an allocator to the same type should result in the original allocator
    static_assert(is_same<allocator_type, __rebind_alloc<__alloc_traits, value_type> >::value,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It likely doesn't matter in practice because this allocator is only
used with std::vector, which probably doesn't use allocator rebinding,
because it won't allocate an internal node type (e.g. unlike std::map,
std::list, etc).

Alternatively, ZeroingAllocator could be changed to a
ZeroingAllocator<T> that can zero arbitrary types, but it doesn't seem
necessary currently, and types other than char wouldn't be used.

Bug: b/175635923
Test: treehugger
Change-Id: I42e9d8f02a18637fc67e94cc1358d2ed733a7268
2023-07-24 21:36:32 -07:00
Li Chong
5b224dc337 vold: fix idlemaint abort may hold the wakelock
when the idlemaint run is working, if two or more idlemaint abort concurrency are working.
all idlemaint abort will hold the wakelock, until idlemaint run finished,
but it just nofity one idlemaint abort thread to stop and release the wakelock.
Remaining idlemaint abort threads will hold the wakelock until next idlemaint run to notify them.

Bug: 292383791
Test: see the issue Description

Change-Id: I5312be2e0e92c41483cab26e627a4ae562e5aed8
2023-07-24 15:23:30 +08:00
Martijn Coenen
7f304c1cf3 Merge "SM: Change volume mountUserId for new user" into main am: c7bed872c0
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2657116

Change-Id: Ice2d9032bb1c9186b1b39d0a0a5f9ed1115537f3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-17 08:34:45 +00:00
Martijn Coenen
c7bed872c0 Merge "SM: Change volume mountUserId for new user" into main 2023-07-17 08:05:33 +00:00
Arnab Sen
f96d81f5cd SM: Change volume mountUserId for new user
When a volume is ejected from a user but not removed from the device
and mounted again by calling StorageManager#mount, the volume is
mounted for the user from which it was last ejected. This causes the
path of the mounted volume to be inaccessible to the current user.

Whenever StorageManager#mount is called, check if the
VolumeInfo#mountUserId is same as the current userId maintained by
StorageManagerService, if it is not, change the mountUserId for the
Volume to the current userId known to StorageManagerService if it
is not the primary volume and the volume is visible.
This change also fixes a bug where the volumes are unmounted for the
wrong user which causes StorageSessionController go out of sync
which would cause errors during mounting the volumes again as it
maintains sessions per user. The bug also caused volume event
broadcasts to be sent to wrong user handles. To solve the issue
add an extra paramter in IVoldListener#onVolumeStateChanged for userId
which will update the copy which is used for informing
StorageSessionController and also for sending broadcasts.

Test: Perform the following steps:
1. Format SD Card as portable storage in system user.
2. Eject the SD Card from Storage Settings.
3. Switch to a non-system user
4. Mount the SD Card again.
5. Check that the Storage Summary is shown correctly instead
   of 0B out of 0B.
Also, checked from the logs the volume state broadcasts are sent to
the correct user handles.

Change-Id: I60b8954cdaee4a54ea6a6299fe5ddda2006faf1c
2023-07-14 09:55:37 +00:00
Wen-Chih Lo
5b9fd68dfa Handle errors corrected exit status returned by fsck
Properly handle the exit status 1, which shows filesystem errors
corrected, returned by fsck.

Test: manually hot-plugs SD card and check logcat logs
Change-Id: Iacaa8b1d1a7b59931014c1ab6a4708ffc3cd0c06
2023-07-07 11:32:01 +08:00
Treehugger Robot
79fecb2f8d Merge "Remove dead code from fs_mgr" am: 50d89e6351
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2634990

Change-Id: Ia0904ec0d1b26cbaf65c8b43c29eecdbbcd07915
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-23 21:45:27 +00:00
Treehugger Robot
50d89e6351 Merge "Remove dead code from fs_mgr" 2023-06-23 20:07:09 +00:00
Paul Lawrence
997e9bbc18 Remove dead code from fs_mgr
Test: Compiles
Change-Id: I644cfe58fdf87fbb88a85953f1450efb8b99baab
2023-06-23 09:28:18 -07:00
Treehugger Robot
7045aeba50 Merge "Don't Skip Checkpointing for F2fs" am: 4bc9e2517b
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2634095

Change-Id: I87bf9187bae9484d6a3f0b0f374bee18e5734434
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-23 00:10:20 +00:00
Treehugger Robot
4bc9e2517b Merge "Don't Skip Checkpointing for F2fs" 2023-06-22 23:28:01 +00:00
Daniel Rosenberg
5d1d945b56 Don't Skip Checkpointing for F2fs
"Do not reboot with commit failure when ext4 userdata is wiped" has
caused a regression in cuttlefish on f2fs. Overlay.img rapidly grows to
the full userdata size. This updates that CL to only affect partitions
marked for block based checkpointing.

Test: Boot Cuttlefish, monitor overlay.img for 5 minutes
Bug: 285019395
Change-Id: I8aa37a97e847960afe8b368090a86c8835e6ca9e
2023-06-21 18:56:29 -07:00
Eric Biggers
4801c65d8e Merge "Remove write permission from file mode of top-level user dirs" am: c73150307a am: 55593258ac am: 0f7c1825b1
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2617599

Change-Id: Idda5d816c2a012afa35658f1b2d86ae2787c1faf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-20 20:01:03 +00:00
Eric Biggers
0f7c1825b1 Merge "Remove write permission from file mode of top-level user dirs" am: c73150307a am: 55593258ac
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2617599

Change-Id: I81dbb99fb7641e27cfb49c97525e045bf5968692
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-20 18:35:50 +00:00
Eric Biggers
55593258ac Merge "Remove write permission from file mode of top-level user dirs" am: c73150307a
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2617599

Change-Id: I05ddef6a233b326b44d1de36c1a3aeecba1c7b67
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-20 17:54:45 +00:00
Eric Biggers
c73150307a Merge "Remove write permission from file mode of top-level user dirs" 2023-06-20 17:15:24 +00:00
Eric Biggers
29b381b796 Merge "Move encrypted directories into place already-encrypted" am: ec6e52aadc am: 01ca68c4f8 am: 8e38d39179
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2620092

Change-Id: Ice304428e084b2d4ce2ef2e1904b0fb2b57a5261
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-14 00:08:32 +00:00
Eric Biggers
8e38d39179 Merge "Move encrypted directories into place already-encrypted" am: ec6e52aadc am: 01ca68c4f8
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2620092

Change-Id: Ib6627057ba9d1a11fc3ca2f7dbdc53254a4bf35f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-13 23:21:11 +00:00
Eric Biggers
01ca68c4f8 Merge "Move encrypted directories into place already-encrypted" am: ec6e52aadc
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2620092

Change-Id: I0937a39d1b09ef4201b9c194543890685784fc77
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-13 22:40:35 +00:00
Eric Biggers
ec6e52aadc Merge "Move encrypted directories into place already-encrypted" 2023-06-13 22:11:39 +00:00
Eric Biggers
714b99d9da Remove write permission from file mode of top-level user dirs
https://r.android.com/2620458 is removing the write mode bit from the
top-level user directories on internal storage, in order to make the DAC
consistent with the SELinux policy.

This commit makes the corresponding change to adoptable storage.

Bug: 285239971
Test: sm set-virtual-disk true; sm partition disk:7,392 private
Change-Id: I17dfbe10909b34c2046a4d5b4ffd7764d5ae083b
2023-06-08 22:16:25 +00:00
Eric Biggers
c6f004a9c4 Move encrypted directories into place already-encrypted
Even after having changed the SELinux policy to remove system_server's
permission to create directories like /data/system_ce/10, there's still
a very small loophole where system_server can create a subdirectory
after vold creates the directory but before vold assigns an encryption
policy to it.  This isn't known to have actually happened (b/285239971
was a candidate, but it seems to have actually been caused by SELinux
being in permissive mode), but it's theoretically possible.

Close this loophole by making vold create encrypted directories under
temporary names and move them into place once they are fully prepared.

Bug: 156305599
Bug: 285239971
Test: Cuttlefish boots, and can be rebooted.
Change-Id: I53407c938bab02ab4b7e5bab8402f36eb47fb203
2023-06-08 22:08:09 +00:00
Treehugger Robot
38f9593a28 Merge "vold: move some libs from shared to static" am: 39f11368a5 am: f4ae30da97 am: f042721b4d
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2598907

Change-Id: Idcfda60f4e545c6b274e12ced27a628a0307f6f3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 18:16:34 +00:00
Treehugger Robot
f042721b4d Merge "vold: move some libs from shared to static" am: 39f11368a5 am: f4ae30da97
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2598907

Change-Id: I926f4b96d2a4b6d57f606afec1384c779d82990a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 17:33:57 +00:00
Treehugger Robot
f4ae30da97 Merge "vold: move some libs from shared to static" am: 39f11368a5
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2598907

Change-Id: I237a3145216534a9c2e601e5c5606bbc87ea68eb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-23 17:11:46 +00:00
Treehugger Robot
39f11368a5 Merge "vold: move some libs from shared to static" 2023-05-23 16:33:31 +00:00
Devin Moore
965d67ce6f vold: move some libs from shared to static
These libraries are only used by vold on a device and gain no
benifit from being included as shared libraries.

Moving them to static saves disk space, memory, and cpu cycles from the
dynamic linker.

Checking on cuttlefish accross 3 reboots:
This saves 613827 bytes of storage from the installed-files, 44KB of
private dirty memory, 172KB of PSS when only looking at the
libraries, and 155KB of PSS when looking at libraries and heap/stack
with shomap.

go/shared-to-static for more info on how this was determined.

Test: m
Bug: 280829178

Change-Id: I29af66dd66f4087ff1820ca661dc6dc2ace841fc
2023-05-23 00:37:02 +00:00
Pawan Wagh
ef0d064fa2 Merge "Disable leak detection in vold fuzzer" am: a3e128a868 am: b7792484f1 am: c25a1e04f3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2577820

Change-Id: I5c289e5f81ca9addac64650ca5384c6502da251e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-09 00:16:39 +00:00
Pawan Wagh
c25a1e04f3 Merge "Disable leak detection in vold fuzzer" am: a3e128a868 am: b7792484f1
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2577820

Change-Id: Ic5d49ddcf0345af10042ea606db625f905b6e001
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-08 23:29:17 +00:00
Pawan Wagh
b7792484f1 Merge "Disable leak detection in vold fuzzer" am: a3e128a868
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2577820

Change-Id: I6d93f475f686d817fc847cced4e8164a921bf32c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-08 23:06:22 +00:00
Pawan Wagh
a3e128a868 Merge "Disable leak detection in vold fuzzer" 2023-05-08 22:53:03 +00:00
Pawan Wagh
e7b16911cb Disable leak detection in vold fuzzer
Bug: 278100447
Bug: 277650211
Test: m vold_native_service_fuzzer
Change-Id: I90ecbdadde5bfcdc967d8b5b750f0e551f30acb0
2023-05-05 23:57:13 +00:00
Treehugger Robot
ee28350374 Merge "[vold] Add mount lazy if forcemount fail." am: 823898eca3 am: 3741a1635b am: d6291a5c31
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1764385

Change-Id: I89d25fe25eb4c8657fb51277407694e132a037fe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 12:13:21 +00:00
Treehugger Robot
d6291a5c31 Merge "[vold] Add mount lazy if forcemount fail." am: 823898eca3 am: 3741a1635b
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1764385

Change-Id: I771a33c85e35ce003e676bd60784b2a2ca0f2e57
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 11:47:49 +00:00
Treehugger Robot
3741a1635b Merge "[vold] Add mount lazy if forcemount fail." am: 823898eca3
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1764385

Change-Id: If915976e128592cd93e0b7fdde4f9768f6155d1a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 11:09:13 +00:00
Treehugger Robot
823898eca3 Merge "[vold] Add mount lazy if forcemount fail." 2023-04-25 10:32:16 +00:00
Paul Lawrence
9adf86a881 Log reason for fuse-bpf being enabled/disabled
Also don't try to set ro.fuse.bpf.is_running if it's already set.

Bug: 278263648
Ignore-AOSP-First: Feature is in internal
Test: Examine logs with various properties set
Change-Id: I9623a02c7065fa0d0c71c618d448bda0cd2a900e
2023-04-14 21:59:05 +00:00
Paul Lawrence
ee0a2bf52e Merge "Use kernel sys/fs/fuse/features/fuse_bpf flag to enable fuse_bpf" into udc-dev 2023-04-12 14:31:27 +00:00
Steven Moreland
15e9b2f3ad Merge "Explicit init .rc user." am: 6c8b6e1651 am: 0b6dd2c641 am: e9eee2b50e
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2530203

Change-Id: Ib45eadd4459b4e07e28737658370e03c314f69fb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-12 03:16:08 +00:00
Steven Moreland
e9eee2b50e Merge "Explicit init .rc user." am: 6c8b6e1651 am: 0b6dd2c641
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2530203

Change-Id: I323939dd2d50c62797603e2dc5c1848c61231bd8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-12 02:44:20 +00:00
Steven Moreland
0b6dd2c641 Merge "Explicit init .rc user." am: 6c8b6e1651
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2530203

Change-Id: I6a4938c8ea0918f8421d92e6d82d6b9d3c5dfeed
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-12 02:12:34 +00:00
Steven Moreland
6c8b6e1651 Merge "Explicit init .rc user." 2023-04-11 21:33:30 +00:00
Steven Moreland
0eff1d2890 Explicit init .rc user.
Set the user explicitly.

Bug: 276813155
Test: boot
Change-Id: I54c14c47a3435d72e00280cf663f23ffbb9659ee
2023-04-10 20:54:26 +00:00
Paul Lawrence
7278162512 Use kernel sys/fs/fuse/features/fuse_bpf flag to enable fuse_bpf
Bug: 262887267
Test: ro.fuse.bpf.is_running is true
Ignore-AOSP-First: This breaks multiple tests because the rest of
fuse_bpf is not in aosp
Change-Id: I3c41c7a0992803a100a1a7eeecd2c5f57e6085fd
2023-04-03 16:55:45 +00:00
Daeho Jeong
bfb937b068 Merge "vold: fix write kbytes handling" am: 13a57d2a26 am: 486c3507fb am: d4680bb584
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2507268

Change-Id: I97a52712004285b30340f428f280abe43a0c7a7d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-28 21:29:55 +00:00
Daeho Jeong
d4680bb584 Merge "vold: fix write kbytes handling" am: 13a57d2a26 am: 486c3507fb
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2507268

Change-Id: I697ba818c7399584b81c831eb14a8a4d55be7cee
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-28 21:11:18 +00:00
Daeho Jeong
486c3507fb Merge "vold: fix write kbytes handling" am: 13a57d2a26
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/2507268

Change-Id: I0ea8d3eb6fe49612077a23b30a5fce5a7627a871
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-28 20:40:45 +00:00
Daeho Jeong
13a57d2a26 Merge "vold: fix write kbytes handling" 2023-03-28 20:15:53 +00:00
Daeho Jeong
dd08c52eb8 vold: fix write kbytes handling
Since Android platform codespace doesn't support exception handling, we
use strtoll() instead of stoll for direct error handling.

Bug: 274369737
Test: check smart idle maintenace service log
Change-Id: I57c709b1e329228790e0a883edb64dc023135a24
2023-03-27 18:19:18 -07:00