Commit graph

1111 commits

Author SHA1 Message Date
David Anderson
c98b1efd4c Merge "Expose IsFilePinned through FiemapWriter." 2019-01-24 03:14:55 +00: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
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
bohu
54aa061c32 disable darwin build for libdm
bug: 122886514

Change-Id: I260e2d097023500f63f6fc217610f2868e842117
2019-01-15 22:57:00 +00:00
Mark Salyzyn
7d6431d852 fs_mgr: overlayfs: test fix problems with runtime apex bind mounts
bind mounts create administrivia in /proc/mounts that can not be
easily discerned to confirm expectations.  We squash the stutter,
and filter out overlay backing references for /system/<path>/<file>.

Test: adb-remount-test.sh
Bug: 122737045
Change-Id: I61342f5f76f54a1a8201a52efb8054acde100a6f
2019-01-15 11:42:03 -08:00
Jaegeuk Kim
2aedc82f02 zram: support zram_writeback
This patch supports zram_writeback enabled by fstab in two ways.

e.g.,
/dev/block/zram0 none swap defaults
    zramsize=1073741824,max_comp_streams=8,zram_loopback_path=/data/unencrypted/zram_swap

==> loopback size is 512MB by default.

Or,
/dev/block/zram0 none swap defaults
    zramsize=1073741824,max_comp_streams=8,zram_loopback_path=/data/unencrypted/zram_swap,zram_loopback_size=1G

==> loopback size can be specified by "zram_loopback_size=%s" with "GB" or "MB".

Or,
/dev/block/zram0 none swap defaults
    zramsize=1073741824,max_comp_streams=8,zram_backing_dev_path=/dev/block/partition

Bug: 74582279
Bug: 122659265
Change-Id: I66a2e6953b4743a34cf732dd0f5b5256c901f247
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2019-01-15 16:07:59 +00:00
David Anderson
42c32bf9af init: Allow first-stage mounts in the second stage if they're formattable.
If /metadata is wiped, but is specified as a first-stage mount, it'll
fail to mount and then skipped as a mount in the second stage. Rather
than add a new flag, this patch piggy-backs on "formattable" since
otherwise there is no way the file system will be formatted.

Bug: 121209697
Test: flashall -w && reboot
Change-Id: If36a12251f398a99b9423713a8bfbe8c33523b66
2019-01-14 17:36:02 -08:00
Mark Salyzyn
71df3ca70f adb remount documentation error
It is not adb reboot -R, it is adb remount -R

Bug: 122602260
Test: view file in gitties
Change-Id: I7c419b0b7f98cc0f5bb69284f5998515e9b8408e
2019-01-14 13:25:01 -08:00
bohu
91c4bd75c8 disable darwin build for libfstab
It broke mac sdk build

Change-Id: I5435cea7747d36c2ea46ed2e6c1c51bb032c6585
2019-01-11 14:26:56 -08:00
Mark Salyzyn
6a56a2a94f fs_mgr: avb check avb_slot_data
Damaged avb metadata can result in avb_slot_verify returning a
nullptr in avb_slot_data.  Instead of an illegal access
violation in first_stage_init, we return the verify_result so
that it can be acted upon.

Test: confirm happenstance damaged vbmeta does not crash init.
Change-Id: I15be5bd32760bcc3418c5d8a943b016c0ddd56bc
2019-01-11 10:19:29 -08:00
Bowgo Tsai
1b1a1fdbb1 Skip building libfs_avb for darwin host
Bug: 112103720
Bug: 117960205
Test: build
Change-Id: If0bb8d15a62947e3af3bf02485a210715db90fdd
2019-01-11 11:41:01 +08:00
David Anderson
34ad8ca773 Merge "liblp: Add helpers for modifying groups." 2019-01-11 01:45:21 +00:00
Treehugger Robot
fce33ca0bf Merge "libfs_avb: Switch to range-for for GetHashtreeDescriptor" 2019-01-11 00:14:52 +00:00
Treehugger Robot
29bc428f28 Merge "libfs_avb: refactoring" 2019-01-11 00:14:15 +00:00
Ramon Pantin
c02be81efc Fixed a few minor nits in liblp
Bug: 122616553
Test: built and ran liblp_test on Pixel 3 with Q weekly build

Added missing __attribute__((packed)) in two metadata structures.
Fixed error logging message when repairing primary metadata.
Few very minor additions related to metadata validation.
Fixed an off by one error in the validation of partition name length.

Change-Id: Ic777baf97871c786a209da7c32bc13c1360a8482
Signed-off-by: Ramon Pantin <pantin@google.com>
2019-01-10 13:36:59 -08:00
Treehugger Robot
3c1cdaf54d Merge changes from topic "fsmgr_system_other"
* changes:
  fs_mgr: overlayfs clears readonly on scratch devices
  liblp: BLKROSET 0 prior to FlashPartitionTable
  fs_mgr: system_other does not want overlayfs.
2019-01-10 21:11:20 +00:00
David Anderson
c6c6e66813 liblp: Add helpers for modifying groups.
These are needed for non-A/B OTAs.

Bug: 122473283
Test: liblp_test gtest
Change-Id: Ib30614f1691dbea0a56c5a98aadc84fc26d1e639
2019-01-10 11:49:15 -08:00
Yifan Hong
ccdba57545 fs_mgr: overlayfs clears readonly on scratch devices
Fixes adb-remount-test and flashstation because the scratch device
was set to readonly before.

Test: adb-remount-test

Change-Id: I12551d1ed99fb7cfd04f84fcc2b77d3cb94275b2
Fixes: 122454600
Fixes: 122602260
2019-01-10 10:49:05 -08:00
Bowgo Tsai
7bf0479bb9 libfs_avb: Switch to range-for for GetHashtreeDescriptor
Bug: None
Test: boot a device
Change-Id: I9d0bdced5fa08cd4bf125c478504c45e5cfbcd4e
2019-01-10 18:12:17 +08:00
Bowgo Tsai
d79dd84479 libfs_avb: refactoring
This commit has the following changes:

    1. Builds libfs_avb via "fs_mgr/libfs_avb/Android.bp" instead of
       "fs_mgr/Android.bp", and removes the libfs_avb source
       dependencies on "fs_mgr/fs_mgr_priv.h".

    2. Moves static functions in fs_avb.cpp into util.cpp or
       avb_util.cpp, depending on whether the function is related to
       AVB or not.

    3. Introduces two host unit tests: libfs_avb_test and
       libfs_avb_internal_test, the former is to test public
       <fs_avb/fs_avb.h> APIs, while the latter is to test libfs_avb
       internal functions.

    4. Splits fs_avb_unittest_util.* into:
       - fs_avb_test_util.* (host static lib: libfs_avb_test_util),
       - basic_test.cpp (host executable: libfs_avb_test)

Bug: 112103720
Bug: 117960205
Test: atest libfs_avb_test
Test: atest libfs_avb_internal_test
Test: boot a device
Change-Id: I11d6c9e9019e20b594d9321b9a28118d4806e5a7
2019-01-10 18:11:48 +08:00
Justin Yun
d3e2a78a99 Exclude mount entries for vendor overlay
When testing adb-remount with overlayfs, vendor overlay may fail the
test because there are unexpected overlayfs uses by vendor overlay.
By excluding mount entries for vendor overlay, the test runs
regardless of vendor overlay mount.

Bug: 122231184
Test: run adb-remount-test.sh with vendor overlay mount
Change-Id: I795774b27d5e5f973792337813b67487a5d72e29
2019-01-10 00:40:33 +00:00
Yifan Hong
e7f492dc61 liblp: BLKROSET 0 prior to FlashPartitionTable
Test: OTA after cppreopt
Change-Id: I0c611588fac73fbd8d1502cb57481f3363e0cbe8
Fixes: 122487294
2019-01-09 16:20:33 -08:00
Yifan Hong
acf859a891 fs_mgr: system_other does not want overlayfs.
system wants overlayfs, and system_other is a valid candidate;
but system_other does not want overlayfs.

Addresses these denials:
avc: denied { read write } for comm="tune2fs" name="sda6" dev="tmpfs" ino=15114
  scontext=u:r:fsck:s0 tcontext=u:object_r:system_block_device:s0 tclass=blk_file permissive=0
avc: denied { read } for comm="e2fsck" name="sda6" dev="tmpfs" ino=15114
  scontext=u:r:fsck:s0 tcontext=u:object_r:system_block_device:s0 tclass=blk_file permissive=0
avc: denied { read write } for comm="e2fsck" name="sda6" dev="tmpfs" ino=15114
  scontext=u:r:fsck:s0 tcontext=u:object_r:system_block_device:s0 tclass=blk_file permissive=0

Fixes: 122454600
Test: boot, no tune2fs and e2fsck denials

Change-Id: Icce20f1463cfde034a56f25590cba9f8fe5f41a4
2019-01-09 16:20:33 -08:00
Treehugger Robot
55c083901d Merge "fs_mgr: overlayfs_mount_scratch don't write to system_other" 2019-01-09 01:33:37 +00:00
Bowgo Tsai
cd0d77da33 Merge "Support host build for libdm and libfstab" 2019-01-09 00:32:43 +00:00