init.rc: Remount / with MS_REMOUNT|MS_BIND

Since we only want to change the ro flag on / (and leave all other mount
flags alone), this can also be achieved by passing MS_REMOUNT|MS_BIND,
even if the mount is not a bind-mount.

This aims to make running Android within a user namespace easier, since
remounts without the MS_BIND flag are forbidden.

Bug: 73255020
Test: aosp_sailfish still boots
Test: rootfs on / type rootfs (rw,seclabel)
      /dev/root on / type ext4 (ro,seclabel,relatime,data=ordered)
Change-Id: I2f89a8badfc467db47304c9355648e8fd8ad1272
This commit is contained in:
Luis Hector Chavez 2018-02-14 08:36:16 -08:00
parent 7c6b024241
commit 30780a7305
1 changed files with 3 additions and 2 deletions

View File

@ -318,8 +318,9 @@ on post-fs
start hwservicemanager
start vndservicemanager
# once everything is setup, no need to modify /
mount rootfs rootfs / ro remount
# Once everything is setup, no need to modify /.
# The bind+ro combination avoids modifying any other mount flags.
mount rootfs rootfs / remount bind ro
# Mount shared so changes propagate into child namespaces
mount rootfs rootfs / shared rec
# Mount default storage into root namespace