Multi-user external storage support.

Move FUSE daemon to secure mount point, and relax /storage access
now that sdcard_r is enforced using private bind mounts in zygote.

Bug: 6925012
Change-Id: Iab2c4ca4b01f4ffd78eed7254faf2ae81ae4f3d3
diff --git a/init.grouper.rc b/init.grouper.rc
index e24ae51..cfd0cb8 100644
--- a/init.grouper.rc
+++ b/init.grouper.rc
@@ -3,16 +3,18 @@
 on early-init
     mount debugfs debugfs /sys/kernel/debug
 
-    # for backwards compatibility
+on init
+    mkdir /mnt/secure/sdcard0 0700 root root
+
     export EXTERNAL_STORAGE /storage/sdcard0
-    mkdir /storage 0050 system sdcard_r
-    mkdir /storage/sdcard0 0000 system system
+    mkdir /storage 0711 root root
+    mkdir /storage/sdcard0 0000 root root
     symlink /storage/sdcard0 /sdcard
     symlink /storage/sdcard0 /mnt/sdcard
 
-    # create directory for mounting usb drives
-    mkdir /mnt/usbdrive 0666 system system
-    symlink /mnt/usbdrive /usbdrive
+    # Save bugreports as owner
+    export BUGREPORT_WRITE_PATH /mnt/secure/sdcard0/0
+    export BUGREPORT_READ_PATH /storage/sdcard0
 
 on early-boot
     write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
@@ -30,9 +32,7 @@
     mkdir /data/misc/dhcp 0770 dhcp dhcp
     chown dhcp dhcp /data/misc/dhcp
 
-    # we will remap this as /storage/sdcard0 with the sdcard fuse tool
     mkdir /data/media 0770 media_rw media_rw
-    chown media_rw media_rw /data/media
 
     # change back to bluetooth from system
     chown bluetooth bluetooth /data/misc/bluetooth
@@ -288,10 +288,8 @@
     oneshot
 #Sensor load calibration files end
 
-# create virtual SD card at /storage/sdcard0, based on the /data/media directory
-# deamon will drop to user/group system/media_rw after initializing
-# underlying files in /data/media wil be created with user and group media_rw (1023)
-service sdcard /system/bin/sdcard /data/media /storage/sdcard0 1023 1023
+# virtual sdcard daemon running as media_rw (1023)
+service sdcard /system/bin/sdcard /data/media /mnt/secure/sdcard0 1023 1023
     class late_start
 
 # bugreport is triggered by the VOLUME-DOWN and VOLUME-UP keys