fstab/init: Move "persist" mounting to fstab and fsck it
Mount persist in fstab.
This has the advantage that we can specify "check" and get fsck done
on this read-write partition.
The disadvantage, is that a persist mount failure is catastropic to the
end user (without persist, you might have been able to use it as a wifi
tablet, but modem and sensors would likely break.)
Bug: 18151232
Change-Id: If3a3f6dd27f0dba8b8d0acb46500b67145682137
diff --git a/fstab.shamu b/fstab.shamu
index 3986190..95b0735 100644
--- a/fstab.shamu
+++ b/fstab.shamu
@@ -1,15 +1,13 @@
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
-
-#TODO: Add 'check' as fs_mgr_flags with data partition.
-# Currently we dont have e2fsck compiled. So fs check would failed.
-
+#
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier wait,check,forceencrypt=/dev/block/platform/msm_sdcc.1/by-name/metadata
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,noatime,nosuid,nodev,barrier=1,data=ordered wait,check
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware ext4 ro,barrier=1,context=u:object_r:firmware_file:s0 wait
+/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 rw,nosuid,nodev,barrier=1 wait,check
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
diff --git a/init.shamu.rc b/init.shamu.rc
index 5e2ba42..ffb01bf 100644
--- a/init.shamu.rc
+++ b/init.shamu.rc
@@ -51,9 +51,12 @@
# Keeping following partitions outside fstab file. As user may not have
# these partition flashed on the device. Failure to mount any partition in fstab file
# results in failure to launch late-start class.
+ wait /dev/block/platform/msm_sdcc.1/by-name/oem
+ mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
- wait /dev/block/platform/msm_sdcc.1/by-name/persist
- mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1
+ mkdir /fsg 0755 root root
+ mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
+
restorecon_recursive /persist
mkdir /persist/data 0700 system system
mkdir /persist/data/sfs 0700 system system
@@ -62,12 +65,6 @@
mkdir /persist/public/hiddenmenu 0775 system radio
mkdir /persist/public/hiddenmenu/data 0775 system radio
- wait /dev/block/platform/msm_sdcc.1/by-name/oem
- mount ext4 /dev/block/platform/msm_sdcc.1/by-name/oem /oem ro nosuid nodev context=u:object_r:oemfs:s0
-
- mkdir /fsg 0755 root root
- mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mdm1m9kefs3 /fsg ro nosuid nodev barrier=0 context=u:object_r:fsg_file:s0
-
# Enable rmnet data and aggregation
setprop persist.rmnet.mux enabled
setprop persist.rmnet.data.enable true