History log of /system/vold/Loop.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fd3dc3c076f30e19e7ac902ba0531c6bcfe2e042 27-Mar-2017 Jeff Sharkey <jsharkey@android.com> Spread around some O_CLOEXEC love.

Also remove some unnecessary SELinux logic when creating image files
for loop devices.

Test: builds, boots, common operations work
Bug: 34903607
Change-Id: I68dfa022ecc39f56c175e786694e0de35b954ca0
/system/vold/Loop.cpp
fa1c677c1ac6fae00653d41cf85ff9951d57f7b1 26-Mar-2017 Jeff Sharkey <jsharkey@android.com> Add a new "virtual disk" feature.

It's extremely difficult to test storage related logic on devices
that don't have physical SD card slots. So to support better
debugging and testing, add a new "virtual disk" feature which mounts
a 512MB file through loop device.

It relies on the kernel having the "loop.max_part" value set to
something other than 0 via the boot command line, since that allows
all the existing partition logic to fall into place.

Bug: 34903607
Test: builds, boots, virtual disk works
Change-Id: I04c5b33e37319d867542985a56b7999a9b7cf35d
/system/vold/Loop.cpp
605d7ae18d6e33b5dc1f6bb813ae32781498a4cd 29-Feb-2016 George Burgess IV <gbiv@google.com> Cleanup uses of sprintf, add modes to open() with O_CREAT.

Change-Id: Iaed2538831b19ada26005bbef33cff28209c6512
/system/vold/Loop.cpp
a4f48d0f44d09b6a9a3b16f6c0121ffd5123eef3 03-Aug-2015 Mateusz Nowak <mateusz.nowak@intel.com> vold: fix 64 bit ioctl error

Changing the num_sectors used in ioctl with BLKGETSIZE because
the kernel expects an unsigned long type and then changes 64 bits
with a 64 bits userspace. This overwrites what's located close to
the parameter location if any.

Change-Id: I78fd61a1084de2741f39b926aa436462518709a0
Signed-off-by: Mateusz Nowak <mateusz.nowak@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
/system/vold/Loop.cpp
b1259ffd92f8965521f3f934548936dfd7650262 17-Aug-2015 Elliott Hughes <enh@google.com> am f298f6be: Merge "Use errno correctly."

* commit 'f298f6be4c8df8745735676e37ccc963909ff3b2':
Use errno correctly.
a1038a95667503457423a994510dd528e2ed3e90 17-Aug-2015 tao.pei <tao.pei@ck-telecom.com> Use errno correctly.

Make sure to check errno prior to doing anything
else that can modify it.

Change-Id: Id81ecc2c3fa07c222ab1e2ef6441331a1eaad635
/system/vold/Loop.cpp
ce6a913aeac7db94a41362c63bab74092767bb3e 09-Apr-2015 Jeff Sharkey <jsharkey@android.com> Exclusive exec() path, format after partition.

Sadly setexeccon() is process global, so we need to carefully ensure
that all exec() are mutually exclusive to avoid transitioning into
unwanted domains. Also, because we have several threads floating
around, we need to guard all our FDs with O_CLOEXEC.

Format all newly created volumes immediately after partitioning,
but silence all events emitted from those volumes to prevent the
framework from getting all excited. Unify all notify events under a
single codepath to make them easy to silence.

Sent SIGINT before escalating to SIGTERM when unmounting.

Bug: 19993667
Change-Id: Idc6c806afc7919a004a93e2240b42884f6b52d6b
/system/vold/Loop.cpp
14eab550e8a4f28889cc9ffbb92ddff8f18c4f03 04-Feb-2015 Hiroaki Miyazawa <hiroaki.miyazawa@sonymobile.com> Fixed type mismatch for ioctl(BLKGETSIZE)

ioctl(BLKGETSIZE) expects unsigned long
(8 bytes on 64 bit environment).

This is fixing fails in android.os.storage.StorageManagerIntegrationTest
(in FrameworkCoreTests).

To verify, install FrameworksCoreTests.apk and do:

adb shell am instrument -r -w -e class android.os.storage.\
StorageManagerIntegrationTest#testMountSingleEncryptedObb \
com.android.frameworks.coretests/android.test.InstrumentationTestRunner

Change-Id: Ib6d5c7490c02521c93f107c35ad0aac49f6a3f1a
/system/vold/Loop.cpp
2152266deb82f96ef5a22d3a56a76bf6177e1e04 06-Feb-2015 Henrik Baard <henrik.baard@sonymobile.com> Change strncpy to strlcpy

Change all function calls to strncpy to strlcpy.

Change-Id: I2bbefb7829d715847c5b26f4b9f0faddbd4c89d0
/system/vold/Loop.cpp
096dd2dd8c0294253c4b88b2c02715bf56e0287c 19-Oct-2014 Nick Kralevich <nnk@google.com> am ab083da0: Merge "Set SELinux contexts on device nodes created by vold."

* commit 'ab083da069a73f787a9304e155c0ab847c85377f':
Set SELinux contexts on device nodes created by vold.
684e662502a310868da052192b80604234b66711 30-Sep-2014 Stephen Smalley <sds@tycho.nsa.gov> Set SELinux contexts on device nodes created by vold.

Extend vold to look up and set SELinux contexts on the
device nodes it creates for extra loop devices and for volumes.
Prior to this change, these device nodes simply inherited the type
of their parent directory /dev/block, i.e. block_device, and vold
therefore required create_file perms to block_device:blk_file.
With this change we can scope vold down to accessing specific
block device types.

This depends on change Id3bea28f5958086716cd3db055bea309b3b5fa5a
to allow vold to use setfscreatecon().

Change-Id: Ib9e8294abb1da94d92503947603ec12e802ff08c
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
/system/vold/Loop.cpp
43ed123d3fc1a3edf3660cd0e2528e971abc399e 22-Aug-2014 Jeff Sharkey <jsharkey@android.com> ASEC resize tweaking, allow read-write mounting.

Resize is no-op when sector count is unchanged; the caller can't
anticipate how vold does its sector calculations.

After resizing, we need to mount the container read-write, so allow
the caller to request "ro" or "rw" mode.

Handle ENOTSUP when trying to fallocate() on some filesystems

Bug: 16514385
Change-Id: I0d3a378280d4c36d14f8108ff428102283d583fa
/system/vold/Loop.cpp
fcd34a0ddd45db83b7bc71ff47cba9b789089fdd 22-May-2014 Daniel Rosenberg <drosen@google.com> Added support for ext4 ASEC resizing.

ASECs formatted as ext4 can now be resized using vdc asec resize.
Refactored some common code.
Requires resize2fs.

Change-Id: Ie78bb6015114a7bc4af42b16d1f299322ffc1e2a
Signed-off-by: Daniel Rosenberg <drosen@google.com>
/system/vold/Loop.cpp
5eecc449cc75771cc0c6eb0ad936117d16704b83 12-Feb-2014 Mark Salyzyn <salyzyn@google.com> vold: suppress unused argument warning messages

(cherry picked from commit 3e971277db0d87652af5622c989233e7159ab909)

Change-Id: Ic1ab533f756fbd44b1f2e5ae12e2f5736ace7740
/system/vold/Loop.cpp
3e971277db0d87652af5622c989233e7159ab909 21-Jan-2014 Mark Salyzyn <salyzyn@google.com> vold: suppress unused argument warning messages

Change-Id: Ic1ab533f756fbd44b1f2e5ae12e2f5736ace7740
/system/vold/Loop.cpp
344ca10856f3d3087a3288ce8f91ad83665d93fb 04-Apr-2012 Kenny Root <kroot@google.com> Add in ext4 support for ASEC containers

Now forward locked applications will be in ASEC containers both internal
to the system and externally.

This change adds support for putting applications in ext4-based ASECs.

Change-Id: I8d6765b72dd2606e429c067b47a2dbcaa8bef37d
/system/vold/Loop.cpp
273d3549198d144331f3e502eeb1215417d72b16 29-Jun-2011 Mike Lockwood <lockwood%android.com@gtempaccount.com> am 2c9d8de7: Merge "Prevent buffer overflows."

* commit '2c9d8de79a0dd7f894c65777a197c86486aff96c':
Prevent buffer overflows.
092aa1c585fedd9e169eece41b8a471f1739908a 01-Apr-2011 Peter Bohm <peter.m.bohm@sonyericsson.com> Prevent buffer overflows.

To eliminate possible buffer overflows some strcpy,
sprintf and strcat have been changed to strlcpy,
snprintf and strlcat.

Change-Id: Ieb9d4b600c894946a6492f8629ff39f2fcc106d3
Signed-off-by: Oskar Andero <oskar.andero@sonyericsson.com>
/system/vold/Loop.cpp
7c16502dbc16658c45165edb1c54df6b8b02d9ca 02-Feb-2011 Kenny Root <kroot@google.com> Use LOOP_GET_STATUS64 for checking loop devices

To determine whether a loop device was available, we use an ioctl call
to LOOP_GET_STATUS, but this fails on devices with large storage
partitions with errno = EOVERFLOW. Instead use LOOP_GET_STATUS64 which
succeeds.

Bug: 3412121
Change-Id: Ica3cb48885d3555f2d27073c00e31fc51a08c730
/system/vold/Loop.cpp
37dcda68d334f70e1f7f69a9817def65fe3ee717 16-Nov-2010 Olivier Bailly <olivier@google.com> Add missing include headers for compilation on Intel target for Google TV.

Change-Id: I9f71b5e871671d1d64ad37f78a8944653409b8e1
/system/vold/Loop.cpp
e17e91f63b3cceb2ef670947fd7f9ff3c40ee1a7 17-Jul-2010 Kenny Root <kroot@google.com> Fix loop_info/loop_info64 impedance mismatch

LOOP_GET_STATUS64 isn't useful here since the data contained within
isn't actually checked, so stick with the regular LOOP_GET_STATUS here
to match the struct loop_info we're using.

Change-Id: I4f9ff06fa44d4ae3aed046d423054554f9cf450b
/system/vold/Loop.cpp
508c0e1605b795bbb51cb47d955b89f3df26ca94 12-Jul-2010 Kenny Root <kroot@google.com> Additional Obb functionality

* Rename all functions dealing with OBB files to mention Obb

* Add 'path' and 'list' functionality to OBB commands

* Store hashed filename in loop's lo_crypt_name and keep lo_file_name
for the real source filename. That way we can recover it later with an
ioctl call.

Change-Id: I29e468265988bfb931d981532d86d7be7b3adfc8
/system/vold/Loop.cpp
97ac40e4e6f3ed0bd5d6878d7d8d4a54fcaecb76 24-Mar-2010 San Mehat <san@google.com> vold: Switch from LOG -> SLOG

Change-Id: I48ee8bd90b47f5845f069cdf4d1b8ba6ecdb1b39
Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
d9a4e358614a0c5f60cc76c0636ee4bb02004a32 12-Mar-2010 San Mehat <san@google.com> vold: Bugfixes & cleanups

- Fix issue where container-names > 64 bytes were getting truncated in the
kernel. lo_name is only 64 bytes in length, so we now hash the container
id via md5
- Add 'dump' command to dump loop and devicemapper status
- Add 'debug' command to enable more detailed logging at runtime
- Log vold IPC arguments (minus encryption keys)
- Fix premature return from Loop::lookupActive() and friends

Change-Id: I0e833261a445ce9dc1a8187e5501d27daba1ca76
Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
d31e380bd9689dd9629b510ffe324707e261b439 18-Feb-2010 San Mehat <san@google.com> vold2: Don't allow containers < 1mb, and clean up some logging

Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
8b8f71b1d760411279f3b07a5c97709f052c689e 11-Jan-2010 San Mehat <san@google.com> vold: Internally use sector counts for asec lengths

Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
b78a32c1d5eeb243bdac0eaf18effb1897f1ee67 10-Jan-2010 San Mehat <san@google.com> vold: Add encrypted ASEC support via devmapper

- Supports up to 4096 containers
- Keys are now implemented - specifying a key of 'none' means no encryption.
Otherwise, the key must be a string of 32 characters

Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
8da6bcb006f4e4257cdd685e35e910a6334f6cea 09-Jan-2010 San Mehat <san@google.com> vold: Increase max supported loop devices to 255

Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp
a19b250bd273455933ca3502cf2c2e0a803aff77 06-Jan-2010 San Mehat <san@google.com> vold2: Initial support for Android Secure External Caches

Signed-off-by: San Mehat <san@google.com>
/system/vold/Loop.cpp