Commit graph

617 commits

Author SHA1 Message Date
Jaegeuk Kim
e2596bfed5 make_f2fs: specify sector size for target image size and missing options
The total sectors that we want to format is used in different meanings from
various users. This notifies its size based on 4096 bytes explicitly.

Bug: 76407663
Change-Id: I4e00f2e2289c1381f0238d2a4acb606a0ab551a9
Merged-In: I4e00f2e2289c1381f0238d2a4acb606a0ab551a9
Reported-by: katao@xiaomi.com
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2018-04-04 09:24:24 -07:00
Paul Crowley
e640bc1b88 Support Speck encryption.
Test: Modified Pixel to support and use Speck encryption, booted.
Bug: 77227248
Change-Id: I6ec272db5e4f16e9dd4f759203c14ad2a8772cd1
Merged-In: I6ec272db5e4f16e9dd4f759203c14ad2a8772cd1
2018-03-30 10:18:46 -07:00
Tom Marshall
66f6a6dc67 fs_mgr: Ignore invalid DT device nodes
With treble, the vendor kernel and ramdisk are supposed to be used.
But vendors always find new and interesting ways to break things:

$ cat /proc/device-tree/firmware/android/fstab/system/dev; echo
/by-name/system_a
$

Change-Id: I826a96ebd625b52563d3cc970bf99d9b26dc093e
2018-03-07 17:59:57 +01:00
Jaegeuk Kim
efd3b9c28f fs_mgr: add sysfs_path=%s to indicate a location of sysfs entry
This patch adds sysfs_path=%s in fstab to get the sysfs entry path.
One example is that vold is able to conduct UFS-specific operations given the
below fstab entry.

/dev/block/bootdevice/by-name/userdata  /data f2fs  noatime,nosuid,nodev,discard
  latemount,wait,check,fileencryption=ice,quota,formattable,sysfs_path=/sys/devices/platform/soc/1d84000.ufshc

Bug: 63264275
Bug: 68721792
Change-Id: I5097873893948f12296ac5eaa0c2a59a6e6dd9e1
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2018-02-26 15:47:09 -08:00
Paul Crowley
c684696a96 Use vold's mount with metadata encryption service.
Don't use the FDE flow to support metadata encryption; just use the
vold service which directly mounts the volume.

Bug: 63927601
Test: Boot Taimen to SUW with and without metadata encryption.
Change-Id: Idf9c27a69872cd7a9e2fb76df09a91d8e5ef4896
2018-02-01 14:54:04 -08:00
Christopher Morin
ace69b2f7b Merge "fs_mgr: don't log error messages when missing fstab" 2018-01-08 19:52:32 +00:00
Jeff Sharkey
a7004e5fed Merge changes from topic "resgidz"
* changes:
  Add reserved disk GID to critical component.
  Set reserved GID when setting reserved blocks.
  Allocate GID to use reserved disk space.
2018-01-08 18:17:50 +00:00
Jeff Sharkey
47dc236d2f Set reserved GID when setting reserved blocks.
If we're setting up the number of reserved blocks, we also want to
set our new AID_DISK_RESERVED as the GID that's allowed to use those
blocks.

Test: builds, boots
Bug: 62024591
Change-Id: Iaabfa7d63ad9ff0b9732e2b9996937607d622fe2
2018-01-07 19:24:55 -07:00
Chris Morin
b183e05c3c fs_mgr: don't log error messages when missing fstab
Some devices, such as android on chromebooks, don't need an fstab.

Test: Ensure no error messages are seen from fs_mgr when fstab is
missing.

Change-Id: Ifadb2193743a61d03f1becefd6bc81a61eb45081
2018-01-05 13:37:26 -08:00
Chris Morin
517ed633c2 fs_mgr: fix memory leak
The fstab struct wasn't properly being freed.

Test: Ensure a user of fs_mgr (vold) runs without errors.
Change-Id: I4dcb8ae2ab3e831fbdb13372eb31a67a5d9fb735
2018-01-04 18:48:21 -08:00
Treehugger Robot
edaa28771f Merge "first stage mount: support mount points like /vendor/abc" 2017-12-14 06:45:37 +00:00
Bowgo Tsai
8028189499 first stage mount: support mount points like /vendor/abc
Current syntax of the fstab in device tree (fstab_dt) assumes the
node name is the mount point, which doesn't allow subdir:

    vendor {   <== using "vendor/abc" leads to syntax error in device tree
        compatible = "android,vendor";
        dev = "/dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor";
        type = "ext4";
        mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
        fsmgr_flags = "wait";
    };

This CL adds a new field "mnt_point" in the fstab_dt configuration:

    vendor_abc {
        compatible = "android,vendor_abc";
        dev = "/dev/block/platform/soc.0/f9824900.sdhci/by-name/abc";
        type = "ext4";
        mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
        mnt_point = "/vendor/abc";                          <== new field
        fsmgr_flags = "wait";
    };

The new field is optional and will fallback to using node name as mount
point if it is absent.

Note that this CL also sorts fstab_dt by mount point, because
/vendor needs to be mounted first, which contains a directory
/vendor/abc, before /vendor/abc can be mounted.

Bug: 69955336
Test: first stage mount /vendor/abc on a device
Change-Id: Ie2e519f9801f211a7a221622f32c82bedd00353f
2017-12-14 09:48:26 +08:00
Jaegeuk Kim
ec87074542 Merge changes from topic "sload_f2fs"
* changes:
  fastboot/fs_mgr/init: add sload_f2fs
  fs_mgr: format f2fs with length=xx fstab
2017-12-08 00:57:42 +00:00
Elliott Hughes
3289b9c928 Merge "Add OWNERS." 2017-12-07 23:21:26 +00:00
Elliott Hughes
693d63f9cf Add OWNERS.
Bug: N/A
Test: N/A
Change-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65
2017-12-07 13:30:03 -08:00
Jaegeuk Kim
6a3967a64b fs_mgr: format f2fs with length=xx fstab
Merged-In: Icce29ad918f20b16c9908e7fa3ae19eb8c96760b
Change-Id: Icce29ad918f20b16c9908e7fa3ae19eb8c96760b
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
(cherry picked from commit a367430734)
2017-12-06 22:37:57 -08:00
Elliott Hughes
a78c686799 Merge "Remove dead code." 2017-12-07 00:44:56 +00:00
Elliott Hughes
231f1e664d Remove dead code.
Bug: N/A
Test: boots
Change-Id: Id901d95aa05d26767aa5d956ac6e167db1cc3036
2017-12-06 12:38:41 -08:00
Xin Li
23e27db576 Merge commit 'a63ccea6abc7ea02e2d98e41c80793ca97237bd3' from
oc-mr1-dev-plus-aosp into stage-aosp-master

Change-Id: Ia33311cd1fd26dfaea59a69317b306fb91203c40
Merged-In: I03d06b10807e8a313c9654c2e1db36bfb59e3f99
2017-11-14 13:19:45 -08:00
Treehugger Robot
6b07ee9fb5 Merge "DO NOT MERGE ANYWHERE Add comments and code about ro.boot.slot back" 2017-11-13 16:36:34 +00:00
Sandeep Patil
25f1631aa7 DO NOT MERGE ANYWHERE Add comments and code about ro.boot.slot back
Taimen bootloader passes androidboot.slot for now.
This reverts commit 211a4a5d5a.

Bug: 68710251
Test: taimen successfully mounts partition in first stage
Change-Id: I046afc99120e7ec9ef4b8ea7a852eb70e7231ea9
Signed-off-by: Sandeep Patil <sspatil@google.com>
2017-11-10 16:20:27 -08:00
Bowgo Tsai
ec19cf6306 first stage mount: abort when failed to parse fstab in device-tree
The client of FirstStageMount class should check the existence of fstab
in device-tree prior to using it. So raising a FATAL error inside
FirstStageMount when failed to parsing the fstab, in order to expose
more accurate error messages.

Also fixing a comment in fs_mgr, where it might happen in either
non-A/B or A/B.

Bug: 69102431
Test: boot sailfish
Change-Id: Ifb525beaa3423b118644778bfe0f84bff9465303
2017-11-10 12:53:46 +08:00
Treehugger Robot
3d879b10d8 Merge "fs_mgr: support reading fstab based on ro.boot.hardware.platform" 2017-11-01 20:46:22 +00:00
Chih-Hung Hsieh
122352d983 Use -Werror in system/core
* Move -Wall -Werror from cppflags to cflags.
* Fix/suppress warning on unused variables.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I1e05e96a1d0bcb2ccef1ce456504b3af57167cc5
2017-11-01 11:32:55 -07:00
Oleg Matcovschi
018d7f69da fs_mgr: support reading fstab based on ro.boot.hardware.platform
This change adds fstab.${ro.boot.hardware.platform} file into list of
searched fstab filenames.
The ${ro.boot.hardware.platform} helps consolidate init sequence based
on platform. Potentially it allows same build serve different devices.

Bug: 68663168
Change-Id: I822d5bc432e823218ebc640093cfbe5e9271d3b1
2017-11-01 09:38:21 -07:00
Bowgo Tsai
2da820c0ab Merge "fs_mgr: removing is_device_secure()" am: af54c27e1b am: 6353d514e8
am: ee042cac71

Change-Id: I3579738b8d9a3d4026294ba3392b56a55aedb9a9
2017-10-15 03:26:47 +00:00
Bowgo Tsai
6353d514e8 Merge "fs_mgr: removing is_device_secure()"
am: af54c27e1b

Change-Id: I22cac8bba9115765527b2c484b4ce9c15fe816cc
2017-10-15 02:48:33 +00:00
Bowgo Tsai
744361fc57 fs_mgr: removing is_device_secure()
Previously there is no vboot 1.0 metadata for ENG builds. It relies on
is_device_secure() to query "ro.secure" and skip setting up dm-verity
if the value is 0 (meaning ENG build).

This change will be submitted together with other changes to add vboot
1.0 metadata for ENG builds with a "disable magic". The resulting
metadata will be the same as triggering an "adb disable-verity" on an
USERDEBUG image.

Bug: 63056044
Test: boot sailfish eng/userdebug builds

Change-Id: I35eef771e1b30bfc6d01b8ed76b40c942fe7b783
2017-10-13 06:34:12 +08:00
Tom Cherry
33c3c190f7 Merge "Move some properties users to __system_property_read_callback()" am: 4a5a337ef2 am: 604f61dcbd
am: 6597b95707

Change-Id: Ib6763ccc6a0b02949c6a0e004c18502cac7ea46f
2017-10-12 17:08:32 +00:00
Tom Cherry
604f61dcbd Merge "Move some properties users to __system_property_read_callback()"
am: 4a5a337ef2

Change-Id: Ia1553f78fc024d2c43ef9ddb0c191b7fe83a87ff
2017-10-12 17:01:14 +00:00
Tom Cherry
4a5a337ef2 Merge "Move some properties users to __system_property_read_callback()" 2017-10-12 16:53:41 +00:00
Bowgo Tsai
5bcacab65f Merge "fs_mgr: removing __BEGIN_DECLS and __END_DECLS" am: 85b80dc18d am: a4b15d7e2c
am: c13381d680

Change-Id: I06eb6e086a1fbdff4de1c4bed28d136c5e81caab
2017-10-11 02:02:30 +00:00
Bowgo Tsai
a4b15d7e2c Merge "fs_mgr: removing __BEGIN_DECLS and __END_DECLS"
am: 85b80dc18d

Change-Id: I6c86972b32534f7962656531de072a2ccc654ed8
2017-10-11 01:53:35 +00:00
Tom Cherry
31121cafec Move some properties users to __system_property_read_callback()
This is needed if they will ever handle ro. properties that have
values longer than 92 characters.

Bug: 23102347
Bug: 34954705
Test: read and write properties with value length > 92 characters
Change-Id: I44aa135c97ec010f12162c30f743387810ae2c5d
2017-10-10 15:03:33 -07:00
Bowgo Tsai
d837f837ad fs_mgr: removing __BEGIN_DECLS and __END_DECLS
fs_mgr isn't usable by C now as we've migrated all fs_mgr clients in AOSP
to CPP. Removing the support for C clients.

Bug: 67024518
Bug: 67444051
Test: boot sailfish

Change-Id: Iac57f51eb6a524c6dcdc625c83af75602b4f9b3b
2017-10-10 18:17:29 +08:00
Bowgo Tsai
772b0833e0 Merge "fs_mgr_fstab: removing fs_mgr_get_entry_for_mount_point_after()" am: 16e31801a5 am: b08be62fca
am: af8315d4de

Change-Id: I479153f77d9308f56412e9a991a6b669cf390d97
2017-09-30 01:12:14 +00:00
Bowgo Tsai
b08be62fca Merge "fs_mgr_fstab: removing fs_mgr_get_entry_for_mount_point_after()"
am: 16e31801a5

Change-Id: I59b8971b02f59f16082bc48ef96203ef13788277
2017-09-29 08:38:15 +00:00
Bowgo Tsai
c55f188207 fs_mgr_fstab: removing fs_mgr_get_entry_for_mount_point_after()
No fs_mgr client is using fs_mgr_get_entry_for_mount_point_after(), which
supports matching a mount point iteratively by specifying a starting entry
in the fstab. So removes it.

Also switch the public API from C/C++ to C++-only:
    fs_mgr_get_entry_for_mount_point(struct fstab* fstab, const char* path);
==> fs_mgr_get_entry_for_mount_point(struct fstab* fstab, const std::string& path);

Bug: 67024518
Test: boot sailfish, manually test fs_mgr_get_entry_for_mount_point().

Change-Id: I38e18fa6bd9485b6cd31b55474406a511df3f506
2017-09-28 15:28:59 +08:00
Bowgo Tsai
c4decb0f7e Merge "fs_mgr_fstab: do an exact match when searching a mount point" am: a0dd1adab0 am: dff1e3418e
am: d4ce377d8c

Change-Id: I39df04346c5d45ebd8689c25bd2a3244b185fc90
2017-09-26 23:29:13 +00:00
Bowgo Tsai
dff1e3418e Merge "fs_mgr_fstab: do an exact match when searching a mount point"
am: a0dd1adab0

Change-Id: If29801d08031c83587e43f981f148f22a675dec5
2017-09-26 23:17:16 +00:00
Bowgo Tsai
cc323958f9 fs_mgr_fstab: do an exact match when searching a mount point
Currently when searching a mount point from a fstab, it checks whether the
mount point of an fstab entry is the prefix of a given path, and the
next char after the match is either '\0' or '/'.

However, it will always return the fstab entry with mount point
"/vendor" when searching path is "/vendor", "/vendor/abc" or "/vendor/cde"
in the following fstab. Because "/vendor" is the prefix of "/vendor/abc"
and "/vendor/cde", and the next char after the match is '/'.

    /dev/block/platform/.../by-name/vendor   /vendor      ext4  ro  wait
    /dev/block/platform/.../by-name/abc      /vendor/abc  ext4  ro  wait
    /dev/block/platform/.../by-name/cde      /vendor/cde  ext4  ro  wait

Fix this by performing an exact match when searching the mount point.

Bug: 63912287
Test: boot sailfish

Change-Id: I504655f5c71790c5d528085de416ce3c30d21fea
2017-09-26 21:06:59 +08:00
Tom Cherry
99de249cf5 Merge "Reland "Remove comments and code about ro.boot.slot"" am: dea5e081ac am: 9bc2a967cf
am: 687cb99e96

Change-Id: I1d3a43ae6c7faeb9830e64ff6ba2da18965b9c34
2017-09-26 00:13:27 +00:00
Tom Cherry
9bc2a967cf Merge "Reland "Remove comments and code about ro.boot.slot""
am: dea5e081ac

Change-Id: Idf32e9600b6a3b93a6a2b4c414cc0193d5d65fb9
2017-09-26 00:08:55 +00:00
Tom Cherry
211a4a5d5a Reland "Remove comments and code about ro.boot.slot"
This reverts commit c5f5fd430a.

Dependencies are now merged.

Bug: 37663204
Bug: 66437505
Change-Id: I84284b6bc37f6aae4096dec73f45ebd85d28ca9d
2017-09-25 16:04:30 +00:00
Tom Cherry
b616ea4068 Merge "Revert "Remove comments and code about ro.boot.slot"" am: eb00b1f3aa am: 0ff5f16f7b
am: aea4f28852

Change-Id: Ia2959362f8a48e1d3638a76e9c72f04d276cd5bc
2017-09-21 18:51:15 +00:00
Tom Cherry
0ff5f16f7b Merge "Revert "Remove comments and code about ro.boot.slot""
am: eb00b1f3aa

Change-Id: If6b511a19009e28a63b52e6701dbc8f7b1f514f7
2017-09-21 18:46:44 +00:00
Tom Cherry
c5f5fd430a Revert "Remove comments and code about ro.boot.slot"
This reverts commit f4ec2c50a3.

Dependencies hadn't been merged yet.

Bug: 66437505
Change-Id: I7551b7f2f184a6fefc39e184a42dc8d323c58b89
2017-09-21 18:37:22 +00:00
Tom Cherry
897fab0545 Merge "Remove comments and code about ro.boot.slot" am: 7dcf076700 am: bf6168fd53
am: 26d09e3b7c

Change-Id: I08a4e0ea745f9471e7aabdc579c423528e60103b
2017-09-20 19:31:17 +00:00
Tom Cherry
bf6168fd53 Merge "Remove comments and code about ro.boot.slot"
am: 7dcf076700

Change-Id: Ic28c5bd369d45489150741b1c1cf2b4c00c4eb52
2017-09-20 19:27:43 +00:00
Tom Cherry
f4ec2c50a3 Remove comments and code about ro.boot.slot
ro.boot.slot_suffix is the correct parameter.

Bug: 37663204
Test: boot sailfish
Change-Id: I72f94b3c611a2280d0732321dd8de88b0530a3cd
2017-09-20 10:14:44 -07:00