Commit graph

1133 commits

Author SHA1 Message Date
Treehugger Robot
c90b0eafda Merge "Adding libfs_avb host tests into presubmit" 2019-01-29 01:46:41 +00:00
Treehugger Robot
47a4082f88 Merge "Remove extranous reading of fstab in BuilderTest::block_device_info" 2019-01-29 00:30:54 +00:00
Tom Cherry
b688d917cd Remove the rest of users of the old style fstab
And deprecate one more old style function that is not used after this
change.

Test: boot, disable and enable verity
Change-Id: Id509f479850120352b4ea4dc3b6c40f6e8e2e53e
2019-01-28 12:34:33 -08:00
Tom Cherry
679a6bacc6 Remove extranous reading of fstab in BuilderTest::block_device_info
Previously information from the fstab was needed for this test, but
that's not longer the case, so skip reading the fstab altogether.

Test: build
Change-Id: I3989c62e19ae2d8606f2bc3a617f9cc3da0e5a6f
2019-01-28 11:04:18 -08:00
Tom Cherry
2f0331d9b6 fs_mgr: remove old fs_mgr functions that are not currently used
New code should be using the new Fstab class, so remove these older
functions that don't have current users.

Test: build
Change-Id: I3ba2b12b838b4b46979963869939fd4b65264738
2019-01-28 09:06:10 -08:00
Tom Cherry
561498e357 Merge changes Ibdecf0c9,I41bd92a7,I5669ed10
* changes:
  fs_mgr: test parsing all mount and fs mgr options
  fs_mgr: convert parse_flags over to C++
  fs_mgr: store file_contents_mode and file_names_mode directly
2019-01-28 16:52:25 +00:00
Treehugger Robot
33cff00c1c Merge "fs_mgr: ReadDefaultFstab suppress ReadFstabFromDt logging" 2019-01-26 03:47:49 +00:00
Tom Cherry
eb6da459a0 fs_mgr: test parsing all mount and fs mgr options
Test: these new unit tests
Change-Id: Ibdecf0c97b313dc157b982340ca022b617757383
2019-01-25 16:03:52 -08:00
Tom Cherry
151a17f015 fs_mgr: convert parse_flags over to C++
Fixes a bug where verify= and a path is not respected.
Keeps the default value of -1 for swap_prio, zram_size, and the vold
managed partition number in the case of not being able to parse their
values.

Test: fs_mgr unit tests, boot
Change-Id: I41bd92a7a2f9165d62134704cb7a1209d76a2071
2019-01-25 16:03:39 -08:00
David Anderson
212693c7ae Merge "init: Format userdata_gsi if needed." 2019-01-25 20:39:49 +00:00
Tom Cherry
7e34f75075 fs_mgr: store file_contents_mode and file_names_mode directly
It doesn't really make sense to have extra logic to convert these
strings to enums then back again to strings for usage, especially
since with the C++ fstab, these strings are small enough to fall into
the small string optimization of std::string.

This will help make future changes cleaner as well.
Test: boot, fs_mgr_test

Change-Id: I5669ed10f2fc3eafdb137747446a2e93c24d55c4
2019-01-25 11:14:29 -08:00
Tom Cherry
afa0d88eea Merge "Update fs_mgr tests for new fstab format and add to TEST_MAPPING" 2019-01-25 17:25:58 +00:00
Mark Salyzyn
f98d6c49e0 fs_mgr: ReadDefaultFstab suppress ReadFstabFromDt logging
Since we are moving the fstab from DT into the ramdisk fstab, the
logging from ReadFstabFromDt when reading the default fstab is
turning into logging noise.

Test: compile
Bug: 122602260
Change-Id: Icba0962c13d701afce2dc7c4f23712dd47ea0100
2019-01-25 09:22:39 -08:00
Bowgo Tsai
d4f870d2b9 Adding libfs_avb host tests into presubmit
Bug: None
Test: cd system/core/fs_mgr/libfs_avb && atest .
Change-Id: I52385bf3029836a0e17c9be86a75bf8a24c91fe3
2019-01-25 10:38:33 +08:00
David Anderson
10b0a155ee Merge "Don't error on block size mismatches." 2019-01-24 22:20:18 +00:00
David Anderson
c45026f44b init: Format userdata_gsi if needed.
Bug: 122850122
Test: manual test
Change-Id: I581578720816cae19fe9352967508fc1a7606f42
2019-01-24 12:00:22 -08:00
Treehugger Robot
be38989da0 Merge "fs_mgr: overlayfs: test: test mount -o rw,remount command" 2019-01-24 16:26:58 +00:00
Treehugger Robot
8dd6e5922b Merge "libfs_avb: support loading vbmeta structs from any partition" 2019-01-24 16:16:13 +00:00
Bowgo Tsai
278749d74c libfs_avb: support loading vbmeta structs from any partition
This commits adds the following two public functions into
class AvbHandle, and verified by 'libfs_avb_test':

static AvbUniquePtr LoadAndVerifyVbmeta();  // loads inline vbmeta.
static AvbUniquePtr LoadAndVerifyVbmeta(    // loads offline vbmeta.
    const std::string& partition_name, const std::string& ab_suffix,
    const std::string& ab_other_suffix, const std::string& expected_public_key,
    const HashAlgorithm& hash_algorithm, bool allow_verification_error,
    bool load_chained_vbmeta, bool rollback_protection,
    std::function<std::string(const std::string&)> custom_device_path = nullptr);

The first function LoadAndVerifyVbmeta() will be used to replace Open(),
in a separate CL in the future. Many libfs_avb internal utils are added
into avb_util.cpp as well, which are verified by
'libfs_avb_internal_test'.

Bug: 112103720
Bug: 117960205
Test: atest libfs_avb_test
Test: atest libfs_avb_internal_test
Change-Id: I807b8af0b69c9a4511f6f120e9754aca5442830e
2019-01-24 17:43:25 +08:00
David Anderson
2e1c5ac5fd Don't error on block size mismatches.
liblp treats the term "block size" ambiguously when it compares the logical
hardware block size with the file system block size (which for all
intents and purposes must be 4K). This warning is thus spurious on
devices with say a 512 logical block size. However, liblp's block size
should at least be a multiple of this, so change the check accordingly.

Bug: 123317012
Test: liblp_test gtest
Change-Id: I0f41f6bae60a512ab8d313e487c28606daa661a6
2019-01-23 19:24:03 -08:00
David Anderson
c98b1efd4c Merge "Expose IsFilePinned through FiemapWriter." 2019-01-24 03:14:55 +00:00
Mark Salyzyn
91ed3340d5 fs_mgr: overlayfs: test: test mount -o rw,remount command
WAI: Using mount -o rw,remount command can only work after the
overlays are setup.  After the second 'adb disable-verity' or
'adb remount -R' has been issued; the first only disables
verity and does not setup the backing storage.  If mount remount
command is issued after the first on an overlayfs system, it will
report a r/o filesystem.

Add a test that confirms that at least this supported behavior is
working, we do not test the corner case.

In the case of overlayfs, we have declared we will not support the
mount remount operation until then; we would need to modify toybox
to add logic that resides inside adb remount service.  toybox is
allowed to be adjusted to compile under Android and bionic, but it
is not supposed to have code that is specific to Android.

Fix last test to before this one to move us back into this state.
Fix the adb_sh command parser to handle properly quoting arguments
as it passes them to adb, since we will need it working for this
added test.

Report the product serial number of build description to aid triage.

Test: adb-remount-test.sh
Bug: 109821005
Bug: 122602260
Bug: 123079041
Change-Id: Ida051dbe2a918182db97f0f22f64b299e3c0a068
2019-01-23 14:41:49 -08:00
David Anderson
c7ca3b6760 Expose IsFilePinned through FiemapWriter.
This is needed for gsid to verify whether a file is pinned.

Bug: 122556707
Test: manual test
Change-Id: I662402294028597241ce11f86421f6ebb4a3cd6b
2019-01-23 13:54:19 -08:00
Tom Cherry
4e904768f7 Update fs_mgr tests for new fstab format and add to TEST_MAPPING
And fix a bug in the meantime, where mounts with no filesystem
specific mount options were incorrectly having an empty string in
their set of mount options.

Test: this test
Change-Id: I9b1f14d00a90f8b95a13fcecb3cfa7fe10a2f96a
2019-01-23 11:28:00 -08:00
Treehugger Robot
39624169e7 Merge changes I72aaf4d6,I420cb87c,Iab7c6cf7,Ic4388e20
* changes:
  fs_mgr: overlay: support non-DAP A/B devices
  fs_mgr: overlayfs: test: check for existence of userspace fastboot
  fs_mgr: overlayfs: test: check for ext4 dedupe needing overlay
  fs_mgr: overlayfs: validate that kernel supports scratch filesystem
2019-01-23 16:39:22 +00:00
Mark Salyzyn
264b7dfa5e fs_mgr: overlay: support non-DAP A/B devices
Loosen some tests and borrow logic from retrofit Dynamic Android
Partitions (DAP) A/B devices.  In non-DAP A/B device case
/mnt/scratch is used, backed by the system other partition.

Tested on taimen with CONFIG_OVERLAY_FS added to its pre 4.6 kernel,
and BOARD_EXT4_SHARE_DUP_BLOCKS := true added to board config. Also
tested on a retrofit DAP A/B device and an untouched taimen.

Test: adb_remount_test.sh
Bug: 120448575
Change-Id: I72aaf4d68db1c3ac380aba425346ab6443cadad3
2019-01-23 16:38:33 +00:00
Treehugger Robot
932e77137c Merge "fs_mgr: overlayfs: erofs is in staging" 2019-01-23 00:36:17 +00:00
Mark Salyzyn
52490faabe fs_mgr: overlayfs: test: check for existence of userspace fastboot
If there is no userspace fastboot, then overlayfs has a corner case
bug where overlay content is not wiped when the partition is flashed.
We will report a warning instead.

This is done to reduce the flakiness of the test results as we do not
intend to fix this specific corner case in the short term.  We would
require to record a sha representing the flash image, and the risks
were evaluated as too high of an impact on libavb to add interfaces
to expose the signatures, especially at first stage mount time.  All
new devices must support Dynamic Android Partitions (DAP), which
means they all have support for userspace fastboot, it will be
considered a misconfiguration and thus the position is we will not
fix this issue and only use this test adjustment to deal with legacy
products.  If a legacy non-DAP product wishes to close the issue
today, they must supply a user space fastboot.

Test: adb-remount-test.sh
Bug: 109821005
Bug: 123079041
Change-Id: I420cb87c19e3e184a974dfc373fb17c097d4858f
2019-01-22 15:28:38 -08:00
Mark Salyzyn
3fe0a8164d fs_mgr: overlayfs: test: check for ext4 dedupe needing overlay
Check if any system partition looks like it has ext dedupe or
rather shared_blocks feature enabled, if so then we expect
overlayfs to kick in.  We do this to deal with any flakiness
in the test when right-sizing is not applied to the platform.

Minor: older devices mounted persist to /persist.

Test: adb-remount-test.sh
Bug: 109821005
Bug: 123079041
Change-Id: Iab7c6cf7f24f2c446aeb149e3f65d6793a42c6ea
2019-01-22 15:28:23 -08:00
Mark Salyzyn
89b88b4e2d fs_mgr: overlayfs: validate that kernel supports scratch filesystem
Check for /sys/fs/<fs_type> existence to confirm kernel has
the file system type available.

Test: adb-remount-test.sh
Bug: 109821005
Bug: 123079041
Change-Id: Ic4388e2044bccea8b8edc7762d4ac9b3047206ac
2019-01-22 15:28:11 -08:00
David Anderson
dec436438a Merge "fiemap_writer: Add a progress notification." 2019-01-22 20:16:46 +00:00
Mark Salyzyn
c11f8e55b1 fs_mgr: overlayfs: erofs is in staging
erofs is in upstream staging and in 4.19, and we see some Android
partners considering it as an option instead of squashfs.

However, squashfs and erofs filesystems are always 100% full, so
we can safely remove the string checking instead and just rely on
the statvfs call.  We will provide lip-service to our support in
comment only.

This does _not_ mean we support the decision by our partners to use
erofs, as we have not evaluated the performance.

Test: adb_remount_test.sh
Bug: 109821005
Change-Id: I80ea3a33b9da6684ee95489132bc8a88b2310ac8
2019-01-22 10:09:08 -08:00
Leo Liou
0b721d3dd9 fs_mgr: set ext4 fsverity feature bit
It supports a new feature "fsverity" for ext4 file-system. When someone
adds a mount option "fsverity" to fstab file, fsmgr will use tune2fs to
enable fsverity feature if kernel support.

Bug: 117437571
Test: bootable for phone projects
Change-Id: Icf35715a2f71c430468daaafcde497f8cfe9a18d
2019-01-22 12:22:13 +08:00
Tom Cherry
582a81cbe8 Merge "fs_mgr: add dvander@ to OWNERS" 2019-01-21 18:35:25 +00:00
Treehugger Robot
9c833f1e28 Merge "zram: add bitfield to FstabEntry" 2019-01-21 18:31:00 +00:00
David Anderson
6e36f74726 fiemap_writer: Add a progress notification.
Bug: 121211685
Test: fiemap_writer_test gtest
Change-Id: I554b888521682281f0971b8f0c411d8e0bd3062c
Signed-off-by: Sandeep Patil <sspatil@google.com>
2019-01-20 16:36:46 -08:00
Treehugger Robot
7909d650bd Merge "Fixed a few minor nits in liblp" 2019-01-20 07:55:47 +00:00
Leo Liou
4809b20270 zram: add bitfield to FstabEntry
For fstab flag control, add the bitfields for zram definition.

Bug: 122659265
Test: none
Change-Id: I68c9a8c9ab0b218f6ca933316e85effe14402202
2019-01-19 17:02:40 +00:00
Tom Cherry
567b5ed776 fs_mgr: add dvander@ to OWNERS
Test: n/a
Change-Id: I7ac90d2dd54f53b12b67c77bc452946156fdcccf
2019-01-18 16:36:59 -08:00
Treehugger Robot
99ff4dd35d Merge "adb_remount_test allow to run on eng builds." 2019-01-18 18:03:56 +00:00
Sandeep Patil
5ba1c068a2 fiemap_writer: Add PinStatus check for fiemap writes.
Note that the check needs the kernel built with latest f2fs.

Bug: 122138114
Test: fiemap_writer_test /dev/block/sda21 \
      --gtest_filter=VerifyBlockWritesF2fs.CheckWrites

Change-Id: I0afbc14241f74ed368438a64afbdb97e3376f1f6
Signed-off-by: Sandeep Patil <sspatil@google.com>
2019-01-17 15:57:40 -08:00
Mark Salyzyn
546e76f1c7 adb_remount_test allow to run on eng builds.
Test: adb_remount_test.sh
Change-Id: I06e7a5e217e2769fc9eb95f6e9a6dcdfd56a8ad2
2019-01-17 13:42:25 -08:00
Jaegeuk Kim
2fdbdfddac Merge "zram: support zram_writeback" 2019-01-17 21:03:15 +00:00
David Anderson
b43440ba79 Merge "init: Add support for GSI installations in first-stage mount." 2019-01-17 18:42:58 +00:00
Treehugger Robot
ccb06c7b2b Merge "Retry mounts on -EAGAIN" 2019-01-17 04:10:19 +00:00
David Anderson
0e330f12bc init: Add support for GSI installations in first-stage mount.
Bug: 121209697
Test: gsi boots
Change-Id: I69db0f8e999da366e46728b1008602f543cd79f6
2019-01-16 17:45:07 -08:00
Daniel Rosenberg
5620c6ce0c Retry mounts on -EAGAIN
F2fs may return -EAGAIN on mounting with checkpoint=disable. This
signals that the required garbage collection was taking a while, and
that more garbage collection is required, and will be resumed by
attempting to mount again.

Test: Start device with checkpointing set up with an f2fs userdata
      partition that is in need of heavy garbage collection.
      Mount should fail with EAGAIN and retry
Bug: 122917966

Change-Id: I83341f68e5cffa5f1bd569dfb2037ad5d3cbd7a3
2019-01-16 17:24:50 -08:00
Bo Hu
c8b83f3874 Merge "disable darwin build for libdm" 2019-01-16 20:38:43 +00:00
Treehugger Robot
72c06c5f68 Merge "fs_mgr: avb check avb_slot_data" 2019-01-16 16:53:17 +00:00
Treehugger Robot
cb33207a62 Merge "init: Allow first-stage mounts in the second stage if they're formattable." 2019-01-15 23:06:34 +00:00