Commit Graph

53 Commits

Author SHA1 Message Date
Mark Salyzyn 87f1dd5da1 am af0df46d: am e6246ca6: am 01ef52e1: Merge "fs_mgr: turn on -Werror"
* commit 'af0df46d74368bb98edaadb3c09ddbc7252d3110':
  fs_mgr: turn on -Werror
2014-05-08 21:43:06 +00:00
Mark Salyzyn 86e3f22b6a fs_mgr: turn on -Werror
- deal with some -Wunused-variable issues

Change-Id: Ie0140d4777ddf862e4bbed76142a1dbb8320c1b0
2014-05-07 16:56:21 -07:00
Sasha Levitskiy e2acb82a94 am 43cb7ae6: am 4f362e43: am 835526fd: Merge "Cleanup: warning fixit."
* commit '43cb7ae6c31ced8cd518eab59dfea31ab1ade812':
  Cleanup: warning fixit.
2014-04-12 00:02:33 +00:00
Sasha Levitskiy cdc1cfb3e5 Cleanup: warning fixit.
bootable/recovery has a dependent commit: I9adb470b04e4301989d128c9c3097b21b4dea431

Change-Id: Icf23e659265d71d5226d527c2b40cfbc132320ee
Signed-off-by: Sasha Levitskiy <sanek@google.com>
2014-04-11 16:15:46 -07:00
Paul Lawrence 2e5ae0a4f9 Add force_encrypt flag to fstab to force encryption on appropriate devices
forceencrypt= will encrypt the drive at boot if it is not encrypted. This change
will not have an impact until we set this flag in appropirate fstabs.

Bug: 11985952

Change-Id: I6c65eda7f109e4936aa160da50f871703aefb351
2014-04-04 11:07:27 -07:00
Geremy Condra cd642fc0b5 fs_mgr: disable verified partitions on debuggable devices.
This checks ro.debuggable to determine whether a device is in the
debuggable state or not, disabling verification if it is.

Eventually we'd like to narrow this down to only devices which
need to disable it, but we aren't there yet.

Change-Id: I06a329fe5449deab6bae595877dbb1f200850241
2014-04-02 18:07:22 -07:00
Paul Lawrence 166fa3de70 Auto-encrypt drive at startup
Modify fs_mgr to unmount encryptable drives after test mounting them and
then trigger an auto-encrypt via the init script

Needs matching vold changes from
 https://googleplex-android-review.googlesource.com/#/c/414200/

Feature is limited to list of serial numbers with this change

Bug: 11985952
Change-Id: I84f85a258b6a7e9809467c9149249302e203c41b
2014-03-24 15:00:53 -07:00
Geremy Condra 8c40dc90c5 Merge changes Ibea4c13a,I27215a3d
* changes:
  init: Add "partition.*.verified" properties to the property service.
  fs_mgr: Set the 'partition.*.verified' property for verified partitions.
2014-03-19 19:55:07 +00:00
Geremy Condra 05699b3e3e fs_mgr: Set the 'partition.*.verified' property for verified partitions.
This modifies fs_mgr to set the partition.*.verified properties.
Each of these should be used as a weak indicator that a given partition
is verified. For instance, if the 'partition.system.verified' property
is set to '1', this could indicate that the system partition is verified
and therefore should not be modified by, e.g., adb sync.

Note that these properties can be mutated by the system, and so
should not be used as the basis for security decisions.

Change-Id: I27215a3d3628a1b1e184df9eaad90541b9d8b841
2014-03-18 20:35:07 -07:00
Mohamad Ayyash 611f5e960c fs_mgr: fix mount_all when handling already mounted encryptable fs.
Since 38afe5f4ba
  fs_mgr_mount_all() will try to behave more like "mount -a"

So prevent inaccessible or busy (already mounted) encryptable filesystems
from mounting tmpfs in their mount points.


Change-Id: I32e5b3e26f2138d1e4d9ef8ba01c1466f8051d39
2014-03-13 03:45:21 +00:00
Mohamad Ayyash 38afe5f4ba fs_mgr: Ensure mount_all will process all fstab entries despite logging errors.
Change-Id: I0d58dd17d979b749a9ac03567cf2d395f9782f10
2014-03-12 12:44:18 -07:00
David 'Digit' Turner 28483d7ec4 fs_mgr: Don't run e2fsck inside SDK system images.
These images do not have GPL-ed binaries like /system/bin/e2fsck so
avoid running the program when we detect that we're running inside
one of them.

Note that this does not affect other emulator-based build products
(e..g full-eng instead of sdk-eng), which do have the binaries.

BUG=13057123

Change-Id: Ia42f1d02a3845fbf4b2f9d95818f35d760711a12
2014-02-24 23:32:00 +01:00
Colin Cross 5edee2aca9 fs_mgr: split fstab parsing into separate file
Move fstab parsing into fs_mgr_fstab.c so that it compiles into a
separate compilation unit.  uncrypt links against it but doesn't
need to pull in the rest of the dependencies on fs_mgr.c.

Change-Id: I6bffe1cd42720151533e958028259d1931aaa4bf
2014-01-23 14:24:16 -08:00
Colin Cross a8be627935 fs_mgr: update ext4_parse_sb to match change in ext4_utils
ext4_parse_sb now takes the struct fs_info to fill out to avoid
using the global info from external callers.

Change-Id: I0984ba01c0dbdd5b68b825817faf0c5cf5aa5510
2014-01-23 14:24:16 -08:00
Elliott Hughes 7cd1561410 Merge "system/core 64-bit cleanup." 2014-01-16 21:59:58 +00:00
Elliott Hughes ccecf14254 system/core 64-bit cleanup.
This cleans up most of the size-related problems in system/core.
There are still a few changes needed for a clean 64-bit build,
but they look like they might require changes to things like the
fastboot protocol.

Change-Id: I1560425a289fa158e13e2e3173cc3e71976f92c0
2014-01-16 12:54:18 -08:00
William Roberts 071f28ae0e fs_mgr: increase verboseness on mount errors
While debugging a mount error, the dmesg output was less
than ideal. The error would be declared but why the mount
failed, and what options were passed was not present. This
patch ensures that the mount options and underlying
errno are printed.

Change-Id: I2b3a2c113149df878c0a8a10ef86fd9e4f909658
2014-01-15 13:26:26 -05:00
Nick Kralevich bc7776716a Revert "fs_mgr: correct warning on unused function parameter"
The build is broken.

system/core/fs_mgr/fs_mgr.c:824:77: error: expected '(' before 'unused'
                      const char *blk_device, long long length  __attribute__(unused))
                                                                             ^
system/core/fs_mgr/fs_mgr.c: In function 'fs_mgr_add_entry':
system/core/fs_mgr/fs_mgr.c:824:56: warning: unused parameter 'length' [-Wunused-parameter]
                      const char *blk_device, long long length  __attribute__(unused))
                                                        ^
make: *** [out/target/product/generic_x86/obj/STATIC_LIBRARIES/libfs_mgr_intermediates/fs_mgr.o] Error 1
make: *** Waiting for unfinished jobs....
This reverts commit 21095d0cae.

Change-Id: I64f8c4d9c17c0e3bbf2eb427a2c0b81bbe66ec3a
2014-01-15 06:18:54 +00:00
William Roberts 21095d0cae fs_mgr: correct warning on unused function parameter
target thumb C: libfs_mgr <= system/core/fs_mgr/fs_mgr.c
system/core/fs_mgr/fs_mgr.c: In function 'fs_mgr_add_entry':
system/core/fs_mgr/fs_mgr.c:828:56: warning: unused parameter 'length' [-Wunused-parameter]
                      const char *blk_device, long long length)

Change-Id: Ide1bfa120c4f8d8e2f643929cb84c1be065e3310
2014-01-14 15:04:56 -05:00
Elliott Hughes bfa7d0822b SWAP_FLAG_* constants are now in <sys/swap.h>.
Bug: 9336527
Change-Id: I77e2b05cefbfb4eebda39b4079107833f4160563
2014-01-07 18:20:17 -08:00
Rom Lemarchand b5ffadedd4 am 397a3642: fs_mgr: check that fstab is not NULL in fs_mgr_free_fstab
* commit '397a3642145dbd0919f8148ff24f0cafe1714b55':
  fs_mgr: check that fstab is not NULL in fs_mgr_free_fstab
2013-09-24 10:57:33 -07:00
Rom Lemarchand 397a364214 fs_mgr: check that fstab is not NULL in fs_mgr_free_fstab
Make sure fstab is not NULL before freeing it

Bug: 10911605
Change-Id: I549c0a470dd183fb15a2f3c5cf4f3dd393b6e307
2013-09-24 10:49:46 -07:00
Ken Sumrall dfcbf02bb0 am 6b1a0272: Merge "Create a separate copy of the fsck logs" into klp-dev
* commit '6b1a027239689a817aa5ca44a2bcbfe48ed21408':
  Create a separate copy of the fsck logs
2013-09-23 18:59:39 -07:00
Ken Sumrall 12d7192586 am 777a00e3: Merge "New fstab flags to support more expressive SD card permissions" into klp-dev
* commit '777a00e3d193e45d928b1a26de85ae5a238271c4':
  New fstab flags to support more expressive SD card permissions
2013-09-23 18:59:39 -07:00
Ken Sumrall 4eaf905858 Create a separate copy of the fsck logs
The log_target parameter of android_fork_execvp_ext() is now a
bit field, and multiple targets can be set to log to multiple
places at the same time.

The new target LOG_FILE will log to a file specified by the new
parameter file_path.

Set LOG_FILE and log to a file in /dev (the only writable filesystem
avilable when e2fsck runs) when invoking e2fsck in fs_mgr.

Bug: 10021342

Change-Id: I63baf644cc8c3afccc8345df27a74203b44d0400
2013-09-20 17:44:33 -07:00
Ken Sumrall 887f289206 New fstab flags to support more expressive SD card permissions
Bug: 10330128

Change-Id: I41fb178b839487b604762fbc1ccba097d25c7aa0
2013-09-20 17:43:52 -07:00
Elliott Hughes a2a93250f6 am c67bd8d7: am a208ea63: Merge "Fix fstab memory leak"
* commit 'c67bd8d7cd9b43a5a5ef249ea787ac9786359d22':
  Fix fstab memory leak
2013-09-18 16:38:14 -07:00
Irina Tirdea d431b8d7f1 Fix fstab memory leak
When reading the fstab config file fails, fstab memory is not freed.
When fstab structure is no longer needed, only half of it is freed.

Free fstab memory in all cases (error or when it is no longer needed).

Change-Id: Ib0758a5aaa69505285bf64143632986a2dbbdccb
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
2013-09-18 16:34:02 -07:00
Elliott Hughes 9f25b565f7 am c4295d9b: am 810ff696: Merge "Cleanup fs_getline from fs_mgr"
* commit 'c4295d9b72812afbaebd7f2512c7a5bba9e7d5fa':
  Cleanup fs_getline from fs_mgr
2013-09-18 16:33:55 -07:00
Irina Tirdea e16d747b51 Cleanup fs_getline from fs_mgr
Since getline is included in bionic, fs_mgr can use this version instead of
the one defined internally by fs_getline.

Replace fs_getline with getline.

Change-Id: I49b53d639bd995f051256fb7573ff6ab45d9c36d
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
2013-09-18 22:55:51 +03:00
Geremy Condra 3ad3d1c4b5 Add basic verity support to fs_mgr.
This change adds a "verify" fs_mgr flag specifying that
the device in question should be verified.

Devices marked with this flag are expected to have a
footer immediately after their data containing all
the information needed to set up a verity instance.

Change-Id: I10101f2c3240228ee0932e3767fe35e673d2e720
2013-08-06 22:15:58 -07:00
Elliott Hughes 81274e9e6c am 6b78fad1: am a9396549: Fix my incorrect merge resolution for 132b7d750e harder.
* commit '6b78fad147c772075eae5cfc25f5a50748bc4015':
  Fix my incorrect merge resolution for 132b7d750e harder.
2013-07-11 19:12:18 -07:00
Elliott Hughes a9396549b3 Fix my incorrect merge resolution for 132b7d750e harder.
Change-Id: I3f8bc955f035b49407540053462e53b3f262d381
2013-07-11 19:07:06 -07:00
Elliott Hughes ae118966da am 43564031: am 7b9c33b1: Fix my incorrect merge resolution for 132b7d750e.
* commit '435640312ce48dab201d6f26a6258143a82f551e':
  Fix my incorrect merge resolution for 132b7d750e.
2013-07-11 19:05:32 -07:00
Elliott Hughes 7b9c33b1e0 Fix my incorrect merge resolution for 132b7d750e.
The conflict was the actual intended change.

Change-Id: Icc9493e4b24b7b53a18e2c7406ef24a81e4d4a7b
2013-07-11 18:58:07 -07:00
Elliott Hughes ad989d038e am dccd7773: am 786b1232: resolved conflicts for merge of 42031e0e to stage-aosp-master
* commit 'dccd77730754b681f3517308359a34f86aecd99f':
  fs_mgr_priv: Extend fs wait timeout to 20 seconds
2013-07-11 18:52:12 -07:00
Elliott Hughes 786b1232d2 resolved conflicts for merge of 42031e0e to stage-aosp-master
Change-Id: I3e6337c258b3e7fb6eee4ed8e3664a69ae219fd6
2013-07-11 18:48:30 -07:00
Ken Sumrall 42031e0ed7 Merge "fs_mgr_priv: Extend fs wait timeout to 20 seconds" 2013-07-10 22:42:37 +00:00
Ken Sumrall 5bc31a2632 Add support for swap entries in fstab
Swap entries can optionally specify a swapprio= or zramsize= flag
in the fs_mgr flags field.

Change-Id: I30530501efd4112af4e158898a9f65f6443c4fdb
2013-07-09 15:04:56 -07:00
Nick Kralevich e18c0d508a fs_mgr: make block devices read-only
When a filesystem is mounted read-only, make the underlying
block device read-only too. This helps prevent an attacker
who is able to change permissions on the files in /dev
(for example, symlink attack) from modifying the block device.

In particular, this change would have stopped the LG Thrill / Optimus
3D rooting exploit
(http://vulnfactory.org/blog/2012/02/26/rooting-the-lg-thrill-optimus-3d/)
as that exploit modified the raw block device corresponding to /system.

This change also makes UID=0 less powerful. Block devices cannot
be made writable again without CAP_SYS_ADMIN, so an escalation
to UID=0 by itself doesn't give full root access.

adb/mount: Prior to mounting something read-write, remove the
read-only restrictions on the underlying block device. This avoids
messing up developer workflows.

Change-Id: I135098a8fe06f327336f045aab0d48ed9de33807
2013-04-24 08:53:26 -07:00
Ken Sumrall ebbe980790 Include liblog in fs_mgr to fix the build.
A recent change to how libcutils is built requires liblog
to be explicitly included in the link list if it's needed.

Change-Id: I8547f5e65c488c8f6e314ccd4eb96606742272be
2013-04-15 12:33:17 -07:00
Ken Sumrall bf021b4cd7 fs_mgr: Capture the output of e2fsck and add to the kernel log
Currently, the output of e2fsck is not saved, and we have no insight
into how many errors e2fsck is finding and fixing.  Using the new
abbreviated logging feature in liblogwrap, up to the first 100 lines,
and last 4K bytes of the output of e2fsck is captured by fs_mgr, and
added to the kernel log.

Usually, the filesystem will be clean, and this will only add a few
lines to the kernel log on boot, but when things go wrong, it should
save enough to indicate what the problem is, without potentially
filling the kernel log with only e2fsck output if the filesystem is
really corrupted.

Change-Id: I9c264798e6fe721c8f818b5ce15d0975027ddbdd
2013-04-14 17:11:00 -07:00
Ken Sumrall 6c2c121386 fs_mgr: add support for new recoveryonly flag
If a device has an ext4 partition that contains the radio
firmware, and that filesystem is not mounted in normal
operation, we need a flag to prevent mount_all from
mounting it, so the new flag recoveryonly was added.

Change-Id: I361800c494e751b04c4faf956870f15fd0d8fe20
2013-02-22 17:40:58 -08:00
Ken Sumrall ab6b852235 fs_mgr: support a unified fstab format.
Update fs_mgr to support more flags needed to unify the 3
fstabs currently in android into one.

Change-Id: Ie46cea61a5b19882c55098bdd70f39e78fb603be
2013-02-19 10:18:42 -08:00
Andrew Boie 132b7d750e fs_mgr_priv: Extend fs wait timeout to 20 seconds
In practice 5 seconds is too short to wait for a disk device node to
show up if the disk is USB; 20 seconds is a much more comfortable
window.

Change-Id: Iaf2c1f46b41a44fc1240d52d8498ca9cb639ea80
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2013-01-04 12:20:16 -08:00
Ken Sumrall 1626b98c5b am 7fd51b36: am b20fa762: Merge "Fix fs_mgr to properly invoke e2fsck on encrypted devices" into jb-mr1.1-dev
* commit '7fd51b36dabedee4de159213237e71ba20865812':
  Fix fs_mgr to properly invoke e2fsck on encrypted devices
2012-11-12 11:50:22 -08:00
Ken Sumrall d42d327c17 Fix fs_mgr to properly invoke e2fsck on encrypted devices
Change-Id: Ie220f5cb7b614a48ec8afe66f4721ede3a368166
2012-11-06 17:55:37 -08:00
Elliott Hughes 0726652874 am cfd7c2a0: am 1c0c5250: Merge "Rename getline to fs_getline for fs_mgr"
* commit 'cfd7c2a05166a3ff27b2145b007834408d95a2e0':
  Rename getline to fs_getline for fs_mgr
2012-09-26 15:03:19 -07:00
Elliott Hughes cfd7c2a051 am 1c0c5250: Merge "Rename getline to fs_getline for fs_mgr"
* commit '1c0c52503dcedff1a75775bf8bfffe7ec77b722b':
  Rename getline to fs_getline for fs_mgr
2012-09-26 15:01:25 -07:00
Irina Tirdea 295b82bd69 Rename getline to fs_getline for fs_mgr
fs_mgr defines its own version of getline and uses it
internally. This leads to a build error if getline is
also defined in bionic, since fs_mgr will see readline
as defined internally.

Rename getline in fs_mgr to a local name (fs_getline)
so that there will no longer be any conflicts.

This is needed it we want to add getline in bionic.

Change-Id: I3a32be71a645e122629802d98ff8f9ab9c419e86
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
2012-09-12 19:48:51 +03:00