diff options
| -rw-r--r-- | fs_mgr/fs_mgr.c | 6 | ||||
| -rw-r--r-- | init/builtins.c | 14 | ||||
| -rw-r--r-- | rootdir/Android.mk | 4 |
3 files changed, 24 insertions, 0 deletions
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 60aed42..538b5be 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -58,6 +58,12 @@ static struct flag_list mount_flags[] = { { "ro", MS_RDONLY }, { "rw", 0 }, { "remount", MS_REMOUNT }, + { "bind", MS_BIND }, + { "rec", MS_REC }, + { "unbindable", MS_UNBINDABLE }, + { "private", MS_PRIVATE }, + { "slave", MS_SLAVE }, + { "shared", MS_SHARED }, { "defaults", 0 }, { 0, 0 }, }; diff --git a/init/builtins.c b/init/builtins.c index 5bda7a0..bb963c1 100644 --- a/init/builtins.c +++ b/init/builtins.c @@ -322,6 +322,14 @@ int do_mkdir(int nargs, char **args) if (_chown(args[1], uid, gid) < 0) { return -errno; } + + /* chown may have cleared S_ISUID and S_ISGID, chmod again */ + if (mode & (S_ISUID | S_ISGID)) { + ret = _chmod(args[1], mode); + if (ret == -1) { + return -errno; + } + } } return 0; @@ -339,6 +347,12 @@ static struct { { "ro", MS_RDONLY }, { "rw", 0 }, { "remount", MS_REMOUNT }, + { "bind", MS_BIND }, + { "rec", MS_REC }, + { "unbindable", MS_UNBINDABLE }, + { "private", MS_PRIVATE }, + { "slave", MS_SLAVE }, + { "shared", MS_SHARED }, { "defaults", 0 }, { 0, 0 }, }; diff --git a/rootdir/Android.mk b/rootdir/Android.mk index e62c3ea..64ff522 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -15,6 +15,10 @@ ifeq ($(TARGET_PRODUCT),full_x86) copy_from += etc/vold.fstab endif +ifeq ($(TARGET_PRODUCT),full_mips) +copy_from += etc/vold.fstab +endif + # the /system/etc/init.goldfish.sh is needed to enable emulator support # in the system image. In theory, we don't need these for -user builds # which are device-specific. However, these builds require at the moment |
