[Help] Changing Around Mountpoints for sdcard and extSdCard?

Search This thread

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
Hey guys.
Some previous Samsung devices had no external storage at all but still mapped the biggest flash partition to /mnt/sdcard.
The Galaxy Tab 2 7.0 has a Micro SD card slot on it (one of the reasons I bought the thing!), but I guess for compatibility they still mount an internal flash storage partition to /sdcard. The actual micro SD card gets mounted to freaking /mnt/extSdCard.

Why does this matter?
Basically, tons of stuff in Android is setup to dump the large files to /sdcard by default. Things like games that require an extra download, the Camera app, etc. I've got a 32GB microSD card in there, and it makes me really frustrated that stuff won't just automatically use that.

So. What I'm looking to do is switch them around, so the internal fake flash partition ends up mounting to /mnt/extSdCard and the REAL microSD card mounts to /mnt/sdcard. That way my big huge card is where most data will end up automagically. Ultimately if I could just dump the internal "sdcard" partition and give that space to other parts of the system, that'd be sweet, but at this point I'm still kindof in la la land with Android, so I'll be happy just to get the mounts flipped around.

I do Linux stuff for work, and use a 5-disk file server at home running Ubuntu Server, so I approached this problem in a Linux way: why not mount via fstab??
Turns out Android doesn't actually directly have a /etc/fstab. Instead you've got /system/etc/vold.fstab.
From my brief research, this file appears to work pretty much the same way as fstab in Linux.
However, the stock one doesn't contain any mountpoint for the fake internal sdcard. vold.fstab seems to tell the vold executable what to do during boot-time.

My first problem: the vold.fstab file on my device doesn't contain any mount instructions for the /sdcard device.
Not a problem, I have SSH and WinSCP working, so I got a read on the mount points likeso:
Code:
127|root@android:/dev/block # cat /proc/mounts
rootfs / rootfs ro,noatime 0 0
tmpfs /dev tmpfs rw,nosuid,noatime,mode=755 0 0
devpts /dev/pts devpts rw,noatime,mode=600 0 0
proc /proc proc rw,noatime 0 0
sysfs /sys sysfs rw,noatime 0 0
none /acct cgroup rw,noatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,noatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,noatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,noatime,cpu 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,nomblk_io_submit,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs ext4 rw,noatime,barrier=1,data=ordered 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,noatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:25 /mnt/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

OK. so the vold.fstab file contains:
Code:
## Vold 2.0 Generic fstab
## - San Mehat (san@android.com)
##

#######################
## Regular device mount
##
## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
## label        - Label for the volume
## mount_point  - Where the volume will be mounted
## part         - Partition # (1 based), or 'auto' for first usable partition.
## <sysfs_path> - List of sysfs paths to source devices
######################

# external sdcard
dev_mount sdcard /mnt/extSdCard auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1

#usb host device 
dev_mount usbdisk /mnt/usbdisk auto /devices/platform/omap/musb-omap2430/musb-hdrc/usb1

So, I have made a backup of my vold.fstab file, but I'm a little gun shy about making changes to it, particularly adding a new line for the "internal" sdcard. I know there are a couple of other ways to probably do this, like an init.d shell script that just executes the needed mount commands, and I'm honestly not sure if putting an entry for /mnt/sdcard into vold.fstab will override the mounts that are (I guess?) coming from the ramdisk init sequence. Any input, XDA devs?
 
I have the same Problem on my Galaxy Tab2 7.0 WIFI (GT-P3110 8 GB). I found a temporary Soloution for me. The App that i use is LINK2SD. You should have two partitions on SD card and both should be primary.
The first FAT partition is your standard sdcard (mountetd on extSdCard). The second partition /data/sdext2 is used for application files and can be ext2, ext3, ext4 or FAT32. Here are more informations about it: http://rootzwiki.com/topic/24500-if...move-apps-to-sd-card/page__st__10#entry701146

In this thread are the same Question: http://xdaforums.com/showthread.php?t=1679037
 
  • Like
Reactions: danielmx and CXENTE

RomsWell

Senior Member
Jul 10, 2011
1,633
1,058
Venice
I think it will read the changes. For example on the htc rezound the firmware update for ics changed the mount points from what was used in gb.So in order to run a gb Rom on ics firmware and vice versa the Fix was swaping vstab. Figure as long as u only mess with the sd mounts internal and ext. It will still boot and u can swap file as needed for testing.

Sent from my ADR6425LVW using xda premium
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
I'll try and figure it out.
Already found one thing: running the mount command with no switches will list all current mounts (can't believe I forgot that!).
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
Something else useful that I found:

Code:
root@android:/dev/block # cat /proc/partitions
major minor  #blocks  name

 179        0    7634944 mmcblk0
 179        1      20480 mmcblk0p1
 179        2       2048 mmcblk0p2
 179        3       2048 mmcblk0p3
 179        4       8192 mmcblk0p4
 179        5       8192 mmcblk0p5
 179        6       8192 mmcblk0p6
 179        7     716800 mmcblk0p7
 259        0      20480 mmcblk0p8
 259        1    1433600 mmcblk0p9
 259        2    4886511 mmcblk0p10
 259        3     524288 mmcblk0p11
 179       16       2048 mmcblk0boot1
 179        8       2048 mmcblk0boot0
 179       24   30318592 mmcblk1
 179       25   30314496 mmcblk1p1

and

Code:
root@android:/dev/block # df
Filesystem             Size   Used   Free   Blksize
/dev                   347M    48K   347M   4096
/mnt/asec              347M     0K   347M   4096
/mnt/obb               347M     0K   347M   4096
/system                  1G   259M     1G   4096
/data                    4G     2G     2G   4096
/cache                 688M    58M   630M   4096
/efs                    19M     4M    15M   4096
/mnt/extSdCard          28G    13G    15G   32768
/mnt/sdcard              4G     2G     2G   4096

I'm pretty sure the partitions listed are found at /dev/block/mmcblk0pX, so maybe that's what needs to be mounted. I've not been successful yet in mounting anything manually but I just found this stuff, so hopefully will have it soon.
 
  • Like
Reactions: ixe013 and CXENTE

RomsWell

Senior Member
Jul 10, 2011
1,633
1,058
Venice
I have this in mine i didnt see it in yours

#storage_struct = series, "/mnt/sdcard/extStorages"
#storage_struct = parallel
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
Making progress, I was able to mount the "external" sdcard to my test mountpoint using:
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/testing
So, that's part of the puzzle figured out. Now, just need to sort of out the internal "sdcard" device path and then I guess I can try throwing stuff into vold.fstab :)
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
OK I believe I have a solution will work, based on the init.d script inside the package Mattiadj made and Rostol linked me to (thanks!).

I modified his init.d script likeso:
Code:
sleep 2
mount -o remount,rw /
mkdir -p /data/internal_sd
mount -o bind /mnt/sdcard /data/internal_sd
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/testing
mount -o bind /data/internal_sd /mnt/extSdCard

vold has to be used for external storage. The internal storage isn't very flexible, which is why that guy's script just binds it up during boot time rather than some other method of mounting it.

I have just run the commands in a terminal one by one and they all appear to do exactly what they "should", and I have verified that the result is the "real" sdcard being mounted to /mnt/sdcard, which ALSO makes it accessible at /sdcard (which I think is just a symlink). That's the default target for most apps, so after installing this init.d script I think everything should "just work".
Obviously you could adjust the mount point for the "internal" sdcard space as needed.
Working on the script and installation bit now.
 
  • Like
Reactions: CXENTE

RomsWell

Senior Member
Jul 10, 2011
1,633
1,058
Venice
/mnt/sdcard
/dev/fuse fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other

---------- Post added at 11:55 PM ---------- Previous post was at 11:54 PM ----------

Nice :)
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
OK I am having some problems getting the init.d script to work properly.

My working code is:
Code:
#!/system/bin/sh
LOG=/data/local/tmp/sdcard.txt
exec 3>&1 4>&2 >$LOG 2>&1
echo "Script start"
echo "Sleeping 2 seconds"
sleep 2
echo "Now attempting to remount root filesystem RW"
mount -o remount,rw /
echo "Make the internal_sd directory"
mkdir -p /data/internal_sd
echo "Bind the internal sdcard to the new folder"
mount -o bind /mnt/sdcard /data/internal_sd
echo "Mount the real sdcard"
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
echo "Bind the internal_sd directory to the extSdCard mountpoint"
mount -o bind /data/internal_sd /mnt/extSdCard
echo "Script done"

Basically I am logging the output to /data/local/tmp/sdcard.txt, so I can debug.

In that log, it gets as far as the first mount command, and then things go off the rails:

Code:
Script start
Sleeping 2 seconds
Now attempting to remount root filesystem RW
Make the internal_sd directory
Bind the internal sdcard to the new folder
mount: Invalid argument
Mount the real sdcard
mount: No such file or directory
Bind the internal_sd directory to the extSdCard mountpoint
Script done

What's messed up is, the same mount command (with the bind) works fine once the device is all the way booted up.
Its just during the "init" sequence that it has a problem. I have no idea why :(
 
  • Like
Reactions: poulsen93

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
That guy did it via vold.fstab, which is interesting.
The relevant stuff:

Code:
# external sd card
dev_mount sdcard /mnt/sdcard:none:lun1 auto /devices/platform/tegra-sdhci.2/mmc_host/mmc2 /devices/platform/tegra-sdhci.2/mmc_host/mmc1

# internal eMMC
dev_mount sdcard_ext /mnt/sdcard-ext 18 /devices/platform/tegra-sdhci.3/mmc_host/mmc0

I am honestly not too sure what I'm looking at there, so I'm gonna try some stuff in vold.fstab next.
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
OK, I am too tired to keep messing around with this for tonight, so I am trying out a new method: I moved my init script over to /data and then used Script Manager to make it run as root as boot time.
This is obviously not a permanent fix, but should be OK for tonight.
Basically my big problem is I don't know the syntax for vold.fstab to mount the internal sdcard to a new mount point...
 

DivinityCycle

Senior Member
Jul 29, 2010
484
265
Portland, OR
Ahh the joys of doing weird hacky stuff to your tablet... I pretty much gave up on the vold.fstab working in the short term, and instead just tried setting my init script up as just a regular "run at launch" script using Script Manager.
The version of my script that I posted had unforeseen consequences. For whatever reason, doing a "bind" of /mnt/sdcard like I was doing caused all sorts of things to stop working. Like, Script Manager was locking up, as was Root Explorer!
The best one was that when my alarm clock went to go off this morning it crashed, and I was late for work! LOL

Sooo yeah, that's pretty special. I had to use Terminal Emulator to fix my stuff on the bus on the way to work :p

I have revised my script and it now works perfectly with the caveat that I'm simply unmounting the internal "sdcard" partition and letting it sit there unused.

Code:
#!/system/bin/sh
LOG=/data/local/tmp/sdcard.txt
exec 3>&1 4>&2 >$LOG 2>&1
echo "Script start"
echo "Unmount internal sdcard"
umount /mnt/sdcard
echo "Mount the real sdcard"
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
echo "Script done"

I believe because of vold.fstab the microSD card still gets mounted to /mnt/extSdCard. My script puts it at /mnt/sdcard as well. This seems to work OK because then the few programs that are smart enough to access the card via /mnt/extSdCard still can get to it, but everything else that works on the regular sdcard also goes to the sdcard as well.

I have tested out the camera, music player, Root Explorer, Script Manager, etc. Everything I have tried works exactly as expected.
The next thing I'll need to test out is if this script can be used as an init.d script instead of needing Script Manager to set it up to run at boot.

I figure the only other things to do are:
1-figure out what's needed to be able to mount the internal "sdcard" partition to a different mount point
or
2-figure out how to delete the "sdcard" partition and then just give that extra space to one of the other flash partitions (probably /system?)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 12
    Hey guys.
    Some previous Samsung devices had no external storage at all but still mapped the biggest flash partition to /mnt/sdcard.
    The Galaxy Tab 2 7.0 has a Micro SD card slot on it (one of the reasons I bought the thing!), but I guess for compatibility they still mount an internal flash storage partition to /sdcard. The actual micro SD card gets mounted to freaking /mnt/extSdCard.

    Why does this matter?
    Basically, tons of stuff in Android is setup to dump the large files to /sdcard by default. Things like games that require an extra download, the Camera app, etc. I've got a 32GB microSD card in there, and it makes me really frustrated that stuff won't just automatically use that.

    So. What I'm looking to do is switch them around, so the internal fake flash partition ends up mounting to /mnt/extSdCard and the REAL microSD card mounts to /mnt/sdcard. That way my big huge card is where most data will end up automagically. Ultimately if I could just dump the internal "sdcard" partition and give that space to other parts of the system, that'd be sweet, but at this point I'm still kindof in la la land with Android, so I'll be happy just to get the mounts flipped around.

    I do Linux stuff for work, and use a 5-disk file server at home running Ubuntu Server, so I approached this problem in a Linux way: why not mount via fstab??
    Turns out Android doesn't actually directly have a /etc/fstab. Instead you've got /system/etc/vold.fstab.
    From my brief research, this file appears to work pretty much the same way as fstab in Linux.
    However, the stock one doesn't contain any mountpoint for the fake internal sdcard. vold.fstab seems to tell the vold executable what to do during boot-time.

    My first problem: the vold.fstab file on my device doesn't contain any mount instructions for the /sdcard device.
    Not a problem, I have SSH and WinSCP working, so I got a read on the mount points likeso:
    Code:
    127|root@android:/dev/block # cat /proc/mounts
    rootfs / rootfs ro,noatime 0 0
    tmpfs /dev tmpfs rw,nosuid,noatime,mode=755 0 0
    devpts /dev/pts devpts rw,noatime,mode=600 0 0
    proc /proc proc rw,noatime 0 0
    sysfs /sys sysfs rw,noatime 0 0
    none /acct cgroup rw,noatime,cpuacct 0 0
    tmpfs /mnt/asec tmpfs rw,noatime,mode=755,gid=1000 0 0
    tmpfs /mnt/obb tmpfs rw,noatime,mode=755,gid=1000 0 0
    none /dev/cpuctl cgroup rw,noatime,cpu 0 0
    /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ext4 ro,noatime,barrier=1,data=ordered 0 0
    /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc,discard 0 0
    /dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,nomblk_io_submit,data=ordered 0 0
    /dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs ext4 rw,noatime,barrier=1,data=ordered 0 0
    /sys/kernel/debug /sys/kernel/debug debugfs rw,noatime 0 0
    /dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
    /dev/block/vold/179:25 /mnt/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

    OK. so the vold.fstab file contains:
    Code:
    ## Vold 2.0 Generic fstab
    ## - San Mehat (san@android.com)
    ##
    
    #######################
    ## Regular device mount
    ##
    ## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
    ## label        - Label for the volume
    ## mount_point  - Where the volume will be mounted
    ## part         - Partition # (1 based), or 'auto' for first usable partition.
    ## <sysfs_path> - List of sysfs paths to source devices
    ######################
    
    # external sdcard
    dev_mount sdcard /mnt/extSdCard auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1
    
    #usb host device 
    dev_mount usbdisk /mnt/usbdisk auto /devices/platform/omap/musb-omap2430/musb-hdrc/usb1

    So, I have made a backup of my vold.fstab file, but I'm a little gun shy about making changes to it, particularly adding a new line for the "internal" sdcard. I know there are a couple of other ways to probably do this, like an init.d shell script that just executes the needed mount commands, and I'm honestly not sure if putting an entry for /mnt/sdcard into vold.fstab will override the mounts that are (I guess?) coming from the ramdisk init sequence. Any input, XDA devs?
    6
    Ahh the joys of doing weird hacky stuff to your tablet... I pretty much gave up on the vold.fstab working in the short term, and instead just tried setting my init script up as just a regular "run at launch" script using Script Manager.
    The version of my script that I posted had unforeseen consequences. For whatever reason, doing a "bind" of /mnt/sdcard like I was doing caused all sorts of things to stop working. Like, Script Manager was locking up, as was Root Explorer!
    The best one was that when my alarm clock went to go off this morning it crashed, and I was late for work! LOL

    Sooo yeah, that's pretty special. I had to use Terminal Emulator to fix my stuff on the bus on the way to work :p

    I have revised my script and it now works perfectly with the caveat that I'm simply unmounting the internal "sdcard" partition and letting it sit there unused.

    Code:
    #!/system/bin/sh
    LOG=/data/local/tmp/sdcard.txt
    exec 3>&1 4>&2 >$LOG 2>&1
    echo "Script start"
    echo "Unmount internal sdcard"
    umount /mnt/sdcard
    echo "Mount the real sdcard"
    mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
    echo "Script done"

    I believe because of vold.fstab the microSD card still gets mounted to /mnt/extSdCard. My script puts it at /mnt/sdcard as well. This seems to work OK because then the few programs that are smart enough to access the card via /mnt/extSdCard still can get to it, but everything else that works on the regular sdcard also goes to the sdcard as well.

    I have tested out the camera, music player, Root Explorer, Script Manager, etc. Everything I have tried works exactly as expected.
    The next thing I'll need to test out is if this script can be used as an init.d script instead of needing Script Manager to set it up to run at boot.

    I figure the only other things to do are:
    1-figure out what's needed to be able to mount the internal "sdcard" partition to a different mount point
    or
    2-figure out how to delete the "sdcard" partition and then just give that extra space to one of the other flash partitions (probably /system?)
    5
    Hey DivinityCycle,

    This post and tool in the S3 forum might be useful to you as it does the exact same thing in the GS3.

    http://xdaforums.com/showthread.php?t=1772234

    If I recall correctly it needs a kernel with init.d support. But I think it will definitely help.

    Rgrds

    Sent from my GT-I9300
    4
    Could someone walk me through the steps to accomplish this please. (LAYMENS TERMS)

    Thank you!

    Sent from my GT-P3113 using xda premium

    After dicking around with various screencasting apps for a couple hours I have decided to just do it in pictures / text.

    For Jellybean / CM10
    Step 1-Download the script From Here onto your phone and unzip it. I suggest putting it in /data/local, since that's always available and isn't on either of the "sdcard" spaces.
    Step 2-I am using Script Manager in this example. I'm sure there are some other apps that can launch shell scripts, but this is the one I know works. Download it here.
    Step 3-Launch Script Manager and you should end up in a file browser like this:
    SM1.jpg


    Navigate to where your script was unzipped (I reccomended /data/local) and then click on it to get the script management screen:
    SM2.jpg


    Step 4-Hit both the SU and Boot buttons since we need this script to run at boot as root. The buttons will light up like this: (check out my awesome MS Paint skillz!)
    SM3.jpg


    Step 5-Back out of there back to home and then reboot your device
    Step 6-Profit?
    4
    OH MY GOD.
    That took entirely too much effort, but yes, I have successfully gotten the mount points to switch around.
    poulsen93, you were right, a combination of a script AND an edited vold.fstab was the trick.
    For the record, I am working with CM9-RC2 on a GT-P3113.

    I believe the same tricks should work exactly the same on any P3XXX device, and probably other ICS ROMs as well.

    Here's the script I'm running @ boot via Script Manager:
    Code:
    #!/system/bin/sh
    LOG=/data/local/log.txt
    exec 3>&1 4>&2 >$LOG 2>&1
    echo "Script start"
    echo "Remounting root filesystems to make them writable."
    mount -o remount,rw /
    mount -o remount,rw /system
    echo "Unmounting /mnt/sdcard"
    umount /mnt/sdcard
    echo "Mounting micro SD card to /mnt/sdcard"
    mount -t vfat -o rw,umask=0000 /dev/block/vold/179:25 /mnt/sdcard
    echo "Removing /mnt/extSdCard"
    rm -r /mnt/extSdCard
    echo "Linking /data/media to /mnt/extSdCard"
    ln -s /data/media /mnt/extSdCard
    echo "Script done"
    The script was designed to "live" in /data/local/ which is why it outputs to a logfile there. You don't NEED to have any logging to accomplish what it does, its just helpful for figuring out why its breaking if it isn't working.

    Here is a "no logging" version of the same script:
    Code:
    #!/system/bin/sh
    mount -o remount,rw /
    mount -o remount,rw /system
    umount /mnt/sdcard
    mount -t vfat -o rw,umask=0000 /dev/block/vold/179:25 /mnt/sdcard
    rm -r /mnt/extSdCard
    ln -s /data/media /mnt/extSdCard

    Either version can be run from pretty much any location as long as you can set the file to be executable. Usually that means you cannot store it on a FAT-formatted sdcard.

    The edit I made to vold.fstab is VERY minor.
    original text:
    Code:
    dev_mount sdcard /mnt/extSdCard auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1

    modified text:
    Code:
    dev_mount sdcard /mnt/sdcard auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1

    Note that this is very counter intuitive given what we are trying to accomplish. Also, if you just use the modified vold.fstab, it makes the microSD card not mount anywhere. Talk about frustrating!

    However, the result of these two together is that when the device boots up, you have the contents of the "fake" sdcard mounted to /mnt/extSdCard and the real sdcard mounted to /mnt/sdcard. This makes it so virtually all applications that are smart enough to use an sdcard will use your big micro SD card as opposed to just taking up space on the /data partition (which is where the fake sdcard actually lives).

    I believe that behind the scenes, there's actually an sdcard "service" app that runs from /system/bin/sdcard. From what I can tell, its just doing some sort of fancy mount and handling the permissions so that the directory /data/media works like an sdcard is supposed to even though its in the /data partition, which I believe is formatted with ext4 as opposed to FAT32. Very sneaky, Samsung!

    I plan on packaging up the JellyBean sdcard swap mod as a flashable ZIP next.
    The ICS solution cannot be packaged in that way given the timing of the script involved. Obviously, I have posted all of my findings and code here, so if some smart person can figure out a better way to do this, go for it! Maybe if there's a freely redistributable app that can be used to configure the script to auto-run, it'd be possible to package that app + the script + the vold.fstab file into a zip together.

    I am pretty sure it won't be too big of a deal since I am willing to bet most people will be jumping to JB ASAP, especially the type of guys who are like "Man, I want my mount points to work differently!" :p