Hello,
Sorry, not working like on sgs 3 and galaxy note 10.1. Dont apply now. I m working on a fix with vold.fstab, but format changes with jellybean.
Ported from scripts created originally for Galaxy S 3.
This script swaps internal and external sd storage from init.d.
- You must have a JellyBean Stock or Stock Based ROM
- Must be rooted to flash.
Attached to this post, you will find the CWM flashable zip.
This have zero chance to brick your device, but I cannot say if your SD card doesn't have any issues etc... so don't blame me for data loss or anything.
This script will NOT COPY DATA from your sd, so you will have missing data after you restart the phone.
The data is still on the original internal SD, so you'll have to copy it back to your bigger sdcard's root.
Code:
#!/system/bin/sh
#extsd2internalsd is a modification that allows to switch internal sd to external sd and viceversa. With this you can use default internal sd only for app storage #and the external sd to store all apps resource and all others stuff. The resut is a very big increase of installable apps on gs3
#All credits to Mattiadj of xda forum for the idea and script and to mike1986 for the cmw zip.
#Script Modified for SgNote N7000 by aureusz
sleep 5
busybox mount -o remount,rw /
#Tries to mount as vfat
busybox mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
#Tries to mount as exfat
busybox mount -t exfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
#If Sd has been mounted, mount internal SD as extSdCard, if not, do nothing, Android should mount it back as internal.
if busybox mount | busybox grep vold/179:9; then
busybox mount -t vfat -o umask=0000 /dev/block/mmcblk0p11 /mnt/extSdCard
fi
Only problem is, if you use usb mass storage connexion, instead of mtp, it will swap back sd cards.
If you want to remove the script, simply delete the file 11extsd2internalsd from /etc/init.d/ with root explorer or a similar app.
Restart the phone and the problem should disappear.
I'll look into a fix for this.
Strange stuff happenning after first reboot (app2sd make apps disappear). Removing file and placing warning back
Aureusz.
Or you can simply switch mount points in vold.fstab
neobuddy89 said:
Or you can simply switch mount points in vold.fstab
Click to expand...
Click to collapse
The problem with this method is that, if you remove SDCARD, the phone will not mount internal SD back to it's place.
With this script, the internal SD will remount back to internal sd path.
I'm not sure, but that's how I understood it when I read the thread where they talked about this method.
Correct me if I'm wrong, I pretty much a noob at this.
aureusz said:
The problem with this method is that, if you remove SDCARD, the phone will not mount internal SD back to it's place.
With this script, the internal SD will remount back to internal sd path.
I'm not sure, but that's how I understood it when I read the thread where they talked about this method.
Correct me if I'm wrong, I pretty much a noob at this.
Click to expand...
Click to collapse
The solution to that can be decompiling framework-res.apk and editing file storage.xml
Make removable flag true for both storage.
This may or may not work but worth a try.
neobuddy89 said:
The solution to that can be decompiling framework-res.apk and editing file storage.xml
Make removable flag true for both storage.
This may or may not work but worth a try.
Click to expand...
Click to collapse
I'm definitely interested in all options regarding this issue, this has been a big hurdle for me on android with sd card slots, so I took to myself to fix it. I know it's easy to do in ASOP roms but, I missed some S-pen features.
Until now, people used bindings for some directories, for large games data, but this proved not to work for some apps, while this solution works for every app.
Spotify for example lost its synced library, because I think the service would check the synchro of the playlist at device startup, and the folders were not yet mounted... etc.. now, it's flawless.
EDIT : not so flawless, looking into modding fstab as suggested by neobuddy89
neobuddy89 said:
Or you can simply switch mount points in vold.fstab
Click to expand...
Click to collapse
Is it possible that you post the vold.fstab where the mount point is switched for internal and external SDcard? Thanks.
Re: [CMW, Init.d Script] Swap IntenalSD<->ExternalSD
any updates here?
Sent from my GT-N7000 using xda premium
Related
Hi,excuse me for my bad english but i'm italian.
Now you can mount the external sdcard as /sdcard/ band the internal sd as /sdcard/Internal_SD/.
1) Make a backup of your vold.fstab located in /System/etc/.
2) create a new vold.fstab and copy that in the file:
## Vold 2.0 NVIDIA Whistler fstab
#######################
## Regular device mount
##
## Format: dev_mount
## label - Label for the volume
## mount_point - Where the volume will be mounted
## part - Partition # (1 based), or 'auto' for first usable partition.
## - List of sysfs paths to source devices
######################
## 20100725, [email protected], Add 2nd external memory
#LGE_CHANGE_S[[email protected]] change for issue: not able to boot with corrupted SD card
#dev_mount extsdcard /mnt/sdcard/_ExternalSD auto /devices/platform/tegra-sdhci.2/mmc_host/mmc1 /devices/platform/tegra-sdhci.2/mmc_host/mmc0
dev_mount sdcard /mnt/sdcard auto /devices/platform/tegra-sdhci.2/mmc_host/mmc /devices/platform/tegra-sdhci.2/mmc_host/mmc0
dev_mount extsdcard /mnt/usbdisk auto /devices/platform/tegra-sdhci.3/mmc_host/mmc2
Band replace the original.
3)Reboot Phone.
4) create a new script band copy this text in it:
/system/xbin/mount /dev/block/platform/tegra-sdhci.3/mmcblk0p9 /mnt/sdcard/_InternalSD/
Copy it in the external sdcard.
5) download script manager and give it the root permissions. Open the script with script manager and open it as executable. Run it with root permissions and make it executable at boot.
6) Create a new folder in your external sd and rename it _InternalSD.
7) Reboot phone.
Sent from my LG-P990 using XDA
I did all like you said (even copied) and it didn't work, and when using this hack, the USB Storage functions properly? I have an modded vold.fstab and when I connect it to PC it doesn't mount properly (tested in Windows XP / 7)
Thanks
I haven't tried USB storage but it wroked tor me.
I've tested it in django manouche 1.2 and in stock v20l rebuild.
Ok sorry i had write wrong in the post i'll edit it now with the right procedure and sorry for my english.
You have to create new folder in your external sd.
Sent from my LG-P990 using XDA
Cice96 said:
I haven't tried USB storage but it wroked tor me.
I've tested it in django manouche 1.2 and in stock v20l rebuild.
Ok sorry i had write wrong in the post i'll edit it now with the right procedure and sorry for my english.
You have to create new folder in your external sd.
Sent from my LG-P990 using XDA
Click to expand...
Click to collapse
In the line:
dev_mount sdcard /mnt/sdcard auto /devices/platform/tegra-sdhci.2/mmc_host/mmc1 /devices/platform/tegra-sdhci.2/mmc_host/mmc0
We don't need the 1 here?
I tried now what you said about the line and it don't work for me.
Is my method working for you?
Cice96 said:
I tried now what you said about the line and it don't work for me.
Is my method working for you?
Click to expand...
Click to collapse
No it doesn't mounts on /mnt/usbdisk, can this be a ROM related? I'm on Django 1.3b12, could you try your method in this ROM?
Are you talking about USB storage?
Cice96 said:
Are you talking about USB storage?
Click to expand...
Click to collapse
Yes and no, at same time haha, I have made an vold.fstab who mounts perfectly, as External SD in /mnt/sdcard and Internal in /mnt/sdcard/_ExternalSD, but when I try to use USB Storage it bugs everything.
With your mod, my phone only mounts the External SD at /mnt/sdcard, but it doesn't mounts my Internal at /mnt/usbdisk, so it's partial functioning.
Can you try to use USB Storage on your mod, and see if it functions properly?
Ok i understand.In my mod the internal sd is mounted in the folder "_InternalSD".
If you want sdcard mounts in \mnt\usbdisk\ you have just to edit the script and replace \mnt\sdcard\_InternalSD\ with \mnt\usbdisk\.
I used this mod in stock roms because if i edited the vold.fstab to switch the sd it didn work but with this method it worked.
It's only an alternative mod to switch the sd.
Maybe for the usb storage i can make a script that mount the sdcards when you activate it but i don't know how USB storage works.
Cice96 said:
Ok i understand.In my mod the internal sd is mounted in the folder "_InternalSD".
If you want sdcard mounts in \mnt\usbdisk\ you have just to edit the script and replace \mnt\sdcard\_InternalSD\ with \mnt\usbdisk\.
I used this mod in stock roms because if i edited the vold.fstab to switch the sd it didn work but with this method it worked.
It's only an alternative mod to switch the sd.
Maybe for the usb storage i can make a script that mount the sdcards when you activate it but i don't know how USB storage works.
Click to expand...
Click to collapse
Your vold.fstab is mounting Internal in /mnt/usbdisk
dev_mount extsdcard /mnt/usbdisk auto /devices/platform/tegra-sdhci.3/mmc_host/mmc2
Because of anything that I didn't know, the vold mounts /mnt/usbdisk but if you navigate to the folder with Root Explorer, you don't see anything.
But when I use the script invoking block/partition (mmcblk0p9) it mounts in /mnt/sdcard/_InternalSD.
Only thing is that if we try to use USB Mass Storage function, it doesn't work, right? My phone don't mounts atm
If we can correct this inconvenience, it will be great =)
Thanks!
Excuse me again
After replace the vold.fstab you must reboot phone.
I've tried my mod now and it works.
The script remount the internal sd at boot so it's in _InternalSD folder.
You have to create script if not the internal sd will not mount.
USB storage isn't working but i'm trying to found a solution.
Cice96 said:
Excuse me again
After replace the vold.fstab you must reboot phone.
I've tried my mod now and it works.
The script remount the internal sd at boot so it's in _InternalSD folder.
You have to create script if not the internal sd will not mount.
USB storage isn't working but i'm trying to found a solution.
Click to expand...
Click to collapse
So we are at same point now, with the mounted partitions, but because of anything that I didn't know, the vold mounts /mnt/usbdisk but if you navigate to the folder with Root Explorer, you don't see anything.
I was thinking about some type of program who mounts it for us, trying to find now, I was studying Gueste similar hack made to CM7, and it alters something in framework.jar, think that the modded framework.jar is for the USB Storage functions.
I use the script because phone won't mount 2nd sdcard so i need to remount it after reboot.I can choose where to mount 2nd partition with the script ignoring the vold.fstab mount.
Would be awesome to find a similar program that do it for us!
Cice96 said:
I use the script because phone won't mount 2nd sdcard so i need to remount it after reboot.I can choose where to mount 2nd partition with the script ignoring the vold.fstab mount.
Would be awesome to find a similar program that do it for us!
Click to expand...
Click to collapse
Now we only need a way to make USB Storage works, I will search for any apps or methods, but I think we need a dev to our little problem here haha
You're right we will need the help of a developer.
Hi guys, I am struggling with this issue for a few days and looking for I found this topic.
I commented that by modifying the vold.fstab, I lose USB Storage, but it is not true at all, get me a new partition, which is nothing more and nothing less than the System.
So I will continue this procedure you proposed.
Speaking of the script to mount the SD, there is an APK that runs a script to the startup of the system, called Autostart (Root) and is in Play Store (old Market)
EDIT:
The zip includes:
-Folder /data/opt/autostart.sh
-modified vold.fstab
Then there is installing Autostart.apk and restarting
Installable from the recovery zip
Just need to settle the issue of the mass storage
Homero2 said:
Hi guys, I am struggling with this issue for a few days and looking for I found this topic.
I commented that by modifying the vold.fstab, I lose USB Storage, but it is not true at all, get me a new partition, which is nothing more and nothing less than the System.
So I will continue this procedure you proposed.
Speaking of the script to mount the SD, there is an APK that runs a script to the startup of the system, called Autostart (Root) and is in Play Store (old Market)
EDIT:
The zip includes:
-Folder /data/opt/autostart.sh
-modified vold.fstab
Then there is installing Autostart.apk and restarting
Installable from the recovery zip
Just need to settle the issue of the mass storage
Click to expand...
Click to collapse
Could you please explain what is the "new system partition" and how the USB Mount isn't lost?
Sent from my LG-P990 using xda premium
What I have done is to collect all that you have done and create an installation script.
Still do not know how to mount the PC mass storage
[MOD] Swap Internal & External SD [CM9, CM10, rooted stock XXLQ1 and probably more]
Hi folks!
Like many of you I'm sure, I had the problem of running out of space on the internal SD and all the existing tricks seemed to be too much work. So I took mattiadj's script and just made a few changes for the 7.7 on CM9, then CM10, then rooted stock XXLQ1. Thanks mattiadj for this one!
I've tested this on the 7.7 but I suspect it will work on all other devices and other ROMs too.
WARNING: I'm just tinkering, I don't have any solid experience with ROMs, and I certainly take no responsibility for any damage or injuries caused by the following instructions! I'm just passing on helpful hints
What does it do?
From what I understand the script remaps the SD directories, swapping the internal with the external.
init.d approach
Androguide.fr has been kind enough to convert the scripts into init.d scripts, check out the scripts here to test them out and let us know how you go!
What do you need?
- The script, either use one that is attached (extsd2internalsd_7.7cm9.txt or extsd2internalsd_7.7cm10.txt or extsd2internalsd_7.7RootedStockXXLQ1_v2.txt), or create your own.
- SManager to run the script.
- A file manager with root access to check the vold folder, the mounting points for the SD cards and to copy the script over.
Any Issues?
Only issue I have seen is sometimes the script is run (via SManager) after apps like swiftkey and so I temporarily get an error notification (language pack not found), but if you wait just a little while, SManager eventually runs the script and everything is back to normal.
[size=+2]What you need to do:[/size]
1) Confirm that the storage locations are:
/mnt/sdcard (internel) & /mnt/emmc (external) for CM9,
/storage/sdcard0 (internal) & /storage/sdcard1 (external) for CM10/JB,
/mnt/sdcard/ (internal) & /mnt/sdcard/extStorages/SdCard (external) for XXLQ1.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2) Confirm that the two files in /dev/block/vold are:
179:24 & 179:25 in CM9,
179:8 & 179:9 in in CM10,
179:8 & 179:9 in XXLQ1.
NOTE: If steps 1 or 2 show a different setup, follow the steps described in What I did listed below
3) Download or create appropriate script and copy to /data
4) Open the script using SManager, ENABLE Su, click save then run the script.
NOTE: if there is no output when you run the script then it probably means it was successful.
4b) ADDITIONAL STEP FOR ROOTED STOCK XXLQ1
After running the script once, you would have received one error message, the external SD is unlinked from /mnt/sdcard/extStorages/SdCard, and so the SdCard directory no longer exists.
Create a directory titled SdCard in /mnt/sdcard/extStorages and run the script again.
5) Check in Settings>Storage to see if the internal and external SDs have been swapped
NOTE: If the result is different for you, follow the steps described in What I did listed below
6) Go back to SManager and enable Su & Boot, then click Save
7) Reboot and check Settings>Storage again!
8) Feel smug about the fact you can install as many games as you want!!!
[size=+2]How it all works:[/size]
I picked up mattiadj's script for the S3 from his discussion thread [MOD] ExtSd2InternalSd v3|Increase your data storage|CMW zip|CM10|100% Working| and logically deduced the following format for the script:
mount -t vfat -o umask=0000 [EXTERNAL SD SOURCE LOCATION] [INTERNAL SD DESTINATION LOCATION]
mount -o bind [INTERNAL SD SOURCE LOCATION] [EXTERNAL SD DESTINATION LOCATION]
where:
[EXTERNAL SD SOURCE LOCATION] is the location where external sd can be referenced from. There are typically two files in /dev/block/vold/, one of those files is the external sd source location. For CM9 I set this to /dev/block/vold/179:25. For CM10 I set this to /dev/block/vold/179:9
[INTERNAL SD SOURCE LOCATION] is the location where internal sd can be referenced from. From what I understand, it is always /data/media.
[INTERNAL SD DESTINATION LOCATION] is the location where android will look for the internal sd. In CM9 I set this to /mnt/sdcard. In CM10 I set this to /storage/sdcard0.
[EXTERNAL SD DESTINATION LOCATION] is the location where android will look for the external sd. In CM9 I set this to /mnt/emmc. In CM10 I set this to /storage/sdcard1.
What I did:
1) I checked the storage locations to find that CM9 uses /mnt/sdcard (internel) & /mnt/emmc (external) for sd storage, and CM10/JB uses /storage/sdcard0 (internal) & /storage/sdcard1 (external).
2) Secondly I checked the /dev/block/vold to find two files, in CM9: 179:24 and 179:25, in CM10: 179:8 and 179:9.
3) To work out which vold file is correct I:
a) created a script using the information I found above
b) installed SManager
c) rebooted to ensure previous attempts didn't muck up the results
d) ran the script using SManager
e) checked Settings>Storage to confirm that script did in fact swap internal and external SDs.
After getting the correct vold file I:
4) Copied the script to /data/
5) Open the script in SManager and enabled Su and Boot (execute script on boot with SU permissions)
6) Rebooted and checked Settings>Storage once again.
Final scripts
FYI: The scripts attached contain the following:
===== 7.7 ExtSd2InternalSd for CM9 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
mount -o bind /data/media /mnt/emmc
===== 7.7 ExtSd2InternalSd for CM10 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /storage/sdcard0
mount -o bind /data/media /storage/sdcard1
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 version 2 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages/SdCard
Like I said, I'm just a tinkerer, I'll be happy to help but keep in mind my expertise is limited. Let me know how you go!
Enjoy! And don't forget to swap the contents of the internal and external SD directories
Again all credits go to mattiadj and his thread [MOD] ExtSd2InternalSd v3|Increase your data storage|CMW zip|CM10|100% Working|
POST HISTORY
[UPDATE: I've made some changes to this post to make it a bit easier to read]
[UPDATE 2: I've added some instructions on how to make this work for rooted stock XXLQ1, an additional step has been added in What you need to do section]
[UPDATE 3: I missed an important step before running the script. You MUST enable Su (and save) in SManager before you run the script!]
[UPDATE 4: Moved instructions to top for better readability]
[UPDATE 5: Testing out init.d method]
This is awesome.. Thnx for sharing dude
This might be usefull for a dev. to enable in a Rom installer.
Regards
Axelman
Sent from my GT-P6800 using xda app-developers app
Gonna try this for sure....thank you!
this would be the PERFECT thing to fix superbricked tabs... is there any way to run a script like this from adb? surely you've read about the superbrick hardware bug. well, from what i can tell, my internal memory is FRIED.... so being able to swap out the memory would be AWESOME, but i need it to be a switch on a much deeper level than whether or not swiftkey will start before or after this script. like is there a way to change this thing permanently?
aletheus said:
this would be the PERFECT thing to fix superbricked tabs... is there any way to run a script like this from adb? surely you've read about the superbrick hardware bug. well, from what i can tell, my internal memory is FRIED.... so being able to swap out the memory would be AWESOME, but i need it to be a switch on a much deeper level than whether or not swiftkey will start before or after this script. like is there a way to change this thing permanently?
Click to expand...
Click to collapse
dunno how to write the script correctly but would love to have one made for stock ics, non cm9/10 users
aletheus said:
this would be the PERFECT thing to fix superbricked tabs... is there any way to run a script like this from adb? surely you've read about the superbrick hardware bug. well, from what i can tell, my internal memory is FRIED.... so being able to swap out the memory would be AWESOME, but i need it to be a switch on a much deeper level than whether or not swiftkey will start before or after this script. like is there a way to change this thing permanently?
Click to expand...
Click to collapse
I wouldn't know where to start, but mattiadjn has created a kernel mod for the s3 which works great, but doesn't work for cm10 (hence the script). http://forum.xda-developers.com/showthread.php?t=1772234
well it says my internal and external storage are swapped but not sure apps are being copied to the microsd actually, my external storage space is shrinking with all my installs (actually internal storage)... nice effort though.
johnnobts said:
well it says my internal and external storage are swapped but not sure apps are being copied to the microsd actually, my external storage space is shrinking with all my installs (actually internal storage)... nice effort though.
Click to expand...
Click to collapse
Never mind, I think it is working running CM10. Would still love to get this working using stock ROM.
johnnobts said:
Never mind, I think it is working running CM10. Would still love to get this working using stock ROM.
Click to expand...
Click to collapse
Which ROM? give me an example and I'll give it a go.
darz said:
Which ROM? give me an example and I'll give it a go.
Click to expand...
Click to collapse
the quicksilver pre 1.0 is one of my favorite custom ics roms. but also the P6800XXLQ2_P6800OXALQ2_ATO stock rom maybe?
johnnobts said:
the quicksilver pre 1.0 is one of my favorite custom ics roms. but also the P6800XXLQ2_P6800OXALQ2_ATO stock rom maybe?
Click to expand...
Click to collapse
I'll try that one a bit later, but I did try running it on a rooted stock XXLQ1 with partial success.
The /dev/block/vold folder contains files 179:8 and 179:9. 179:9 is the correct reference to the external SD.
The SD locations are /mnt/sdcard and /mnt/sdcard/extStorages/SdCard, but I couldn't get the mount to bind /mnt/sdcard/extStorages/SdCard, so I tried /mnt/sdcard/extStorages instead with partially successful results.
So the final script (attached) is
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages
The internal sd (now external SD card) works perfectly, shows up properly in Setttings>Storage.
The external sd (now internal SD) is accessible from /mnt/sdcard/extStorages, but it doesn't show up in Settings>Storage.
[FIX] I created the directory "SdCard" in /mnt/sdcard/extStorages and whalla, the internal storage is showing up as external SD in Settings>Storage.
Anyone care to add some insight why this is the case?
I suspect (with many assumptions) that I can't bind the mount to /mnt/sdcard/extStorages/SdCard because it doesn't initially exist, but I think Settings>Storage looks for that directory specifically.
darz said:
I'll try that one a bit later, but I did try running it on a rooted stock XXLQ1 with partial success.
The /dev/block/vold folder contains files 179:8 and 179:9. 179:9 is the correct reference to the external SD.
The SD locations are /mnt/sdcard and /mnt/sdcard/extStorages/SdCard, but I couldn't get the mount to bind /mnt/sdcard/extStorages/SdCard, so I tried /mnt/sdcard/extStorages instead with partially successful results.
So the final script (attached) is
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages
The internal sd (now external SD card) works perfectly, shows up properly in Setttings>Storage.
The external sd (now internal SD) is accessible from /mnt/sdcard/extStorages, but it doesn't show up in Settings>Storage.
[FIX] I created the directory "SdCard" in /mnt/sdcard/extStorages and whalla, the internal storage is showing up as external SD in Settings>Storage.
Anyone care to add some insight why this is the case?
I suspect (with many assumptions) that I can't bind the mount to /mnt/sdcard/extStorages/SdCard because it doesn't initially exist, but I think Settings>Storage looks for that directory specifically.
Click to expand...
Click to collapse
OK, I tried something different!
1) I ran:
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
to unlink the external sd from /mnt/sdcard/extStorages/SdCard
2) I created SdCard in /mnt/sdcard/extStorages/ (to have something to bind to)
3) Then I ran the following script:
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 version 2 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages/SdCard
And everything looks good! Not sure which approach is better but this seems to match the original setup more accurately.
darz said:
OK, I tried something different!
1) I ran:
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
to unlink the external sd from /mnt/sdcard/extStorages/SdCard
2) I created SdCard in /mnt/sdcard/extStorages/ (to have something to bind to)
3) Then I ran the following script:
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 version 2 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages/SdCard
And everything looks good! Not sure which approach is better but this seems to match the original setup more accurately.
Click to expand...
Click to collapse
great, so all i have to do is creat an SdCard folder in extStorages/ right, then run the script? thanks! i bet it works with the q2 version, will give it a go
johnnobts said:
great, so all i have to do is creat an SdCard folder in extStorages/ right, then run the script? thanks! i bet it works with the q2 version, will give it a go
Click to expand...
Click to collapse
Correct, but remember to run the first line of the script (or the whole script, you will just get an error for the second line of the script) before you create the folder.
Also note, I had made a mistake with the instructions, before you run the script in SManager, you must enable Su first. If you don't then it will not run properly.
Thanks a lot for the awesome script darz :good:
I modified it a little bit to make it work simply by putting it in /system/etc/init.d so that it will run at each boot without the user having to do anything. See attachements. (Couldn't test atm, but it should be working).
If someone could try it and give some feedback, would be nice.
I included your script in my "Pimp My Rom" aroma script, with proper credits, hope you don't mind.
Androguide.fr said:
Thanks a lot for the awesome script darz :good:
I modified it a little bit to make it work simply by putting it in /system/etc/init.d so that it will run at each boot without the user having to do anything. See attachements. (Couldn't test atm, but it should be working).
If someone could try it and give some feedback, would be nice.
I included your script in my "Pimp My Rom" aroma script, with proper credits, hope you don't mind.
Click to expand...
Click to collapse
Excellent! Much appreciated
Do you mind if I add them to the first post after we have confirmed they work?
I'll test a couple of them later today.
Androguide.fr said:
Thanks a lot for the awesome script darz :good:
I modified it a little bit to make it work simply by putting it in /system/etc/init.d so that it will run at each boot without the user having to do anything. See attachements. (Couldn't test atm, but it should be working).
If someone could try it and give some feedback, would be nice.
I included your script in my "Pimp My Rom" aroma script, with proper credits, hope you don't mind.
Click to expand...
Click to collapse
I can't get it to work on CM10 no matter what I do, I believe mattiadj is having the same problem for the s3.
darz said:
I can't get it to work on CM10 no matter what I do, I believe mattiadj is having the same problem for the s3.
Click to expand...
Click to collapse
+1 that's true, didn't think of trying on my s3, and doesn't work either.
Maybe a permission problem, i'll try to set_perm to 777 through pimp-my-rom's updater-script and see if it works.
Anyway your work is of great help for people with a superbricked tab (like me), kudos :good:
Androguide.fr said:
+1 that's true, didn't think of trying on my s3, and doesn't work either.
Maybe a permission problem, i'll try to set_perm to 777 through pimp-my-rom's updater-script and see if it works.
Anyway your work is of great help for people with a superbricked tab (like me), kudos :good:
Click to expand...
Click to collapse
I'm glad it helps!!
OK, I mucked around with the CM9 script a bit on my s3 and I _think_ it started running when I removed the .txt extension.
But only the internal sd was being mapped, which leads me to believe there's something wrong with "mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard" line.
What should be done to get the same results in galaxy note? I'm missing some of the numbers in the list, can I get them somehow?
Thanks,
Project Fail!
[MOD] Swap Internal & External SD [CM9, CM10, and probably more]
Hi folks!
Like many of you I'm sure, I had the problem of running out of space on the internal SD and all the existing tricks seemed to be too much work. So I took mattiadj's script and just made a few changes for the 7.7 on CM9, then CM10. Thanks mattiadj for this one!
I've tested this on the 7.7 but I suspect it will work on all other devices and other ROMs too.
WARNING: I'm just tinkering, I don't have any solid experience with ROMs, and I certainly take no responsibility for any damage or injuries caused by the following instructions! I'm just passing on helpful hints
What does it do?
From what I understand the script remaps the SD directories, swapping the internal with the external.
init.d approach
Androguide.fr has been kind enough to convert the scripts into init.d scripts, check out the scripts here to test them out and let us know how you go!
What do you need?
- The script, either use one that is attached (extsd2internalsd_7.7cm9.txt or extsd2internalsd_7.7cm10.txt), or create your own.
- SManager to run the script.
- A file manager with root access to check the vold folder, the mounting points for the SD cards and to copy the script over.
Any Issues?
Only issue I have seen is sometimes the script is run (via SManager) after apps like swiftkey and so I temporarily get an error notification (language pack not found), but if you wait just a little while, SManager eventually runs the script and everything is back to normal.
What you need to do:
1) Confirm that the storage locations are:
/mnt/sdcard (internel) & /mnt/emmc (external) for CM9,
/storage/sdcard0 (internal) & /storage/sdcard1 (external) for CM10/JB,
/mnt/sdcard/ (internal) & /mnt/sdcard/extStorages/SdCard (external) for XXLQ1.
2) Confirm that the two files in /dev/block/vold are:
179:24 & 179:25 in CM9,
179:8 & 179:9 in in CM10,
179:8 & 179:9 in XXLQ1.
NOTE: If steps 1 or 2 show a different setup, follow the steps described in What I did listed below
3) Download or create appropriate script and copy to /data
4) Open the script using SManager, ENABLE Su, click save then run the script.
NOTE: if there is no output when you run the script then it probably means it was successful.
4)After running the script once, you would have received one error message and if u dont its ok, if u recieve the message then the external SD is unlinked from /mnt/sdcard/extStorages/SdCard, and so the SdCard directory no longer exists.
Create a directory titled SdCard in /mnt/sdcard/extStorages and run the script again.[Only for those who got the message]
5) Check in Settings>Storage to see if the internal and external SDs have been swapped
NOTE: If the result is different for you, follow the steps described in What I did listed below
6) Go back to SManager and enable Su & Boot, then click Save
7) Reboot and check Settings>Storage again!
8) Feel smug about the fact you can install as many games as you want!!!
How it all works:
I picked up mattiadj's script for the S3 from his discussion thread [MOD] ExtSd2InternalSd v3|Increase your data storage|CMW zip|CM10|100% Working| and logically deduced the following format for the script:
mount -t vfat -o umask=0000 [EXTERNAL SD SOURCE LOCATION] [INTERNAL SD DESTINATION LOCATION]
mount -o bind [INTERNAL SD SOURCE LOCATION] [EXTERNAL SD DESTINATION LOCATION]
where:
[EXTERNAL SD SOURCE LOCATION] is the location where external sd can be referenced from. There are typically two files in /dev/block/vold/, one of those files is the external sd source location. For CM9 I set this to /dev/block/vold/179:25. For CM10 I set this to /dev/block/vold/179:9
[INTERNAL SD SOURCE LOCATION] is the location where internal sd can be referenced from. From what I understand, it is always /data/media.
[INTERNAL SD DESTINATION LOCATION] is the location where android will look for the internal sd. In CM9 I set this to /mnt/sdcard. In CM10 I set this to /storage/sdcard0.
[EXTERNAL SD DESTINATION LOCATION] is the location where android will look for the external sd. In CM9 I set this to /mnt/emmc. In CM10 I set this to /storage/sdcard1.
What I did:
1) I checked the storage locations to find that CM9 uses /mnt/sdcard (internel) & /mnt/emmc (external) for sd storage, and CM10/JB uses /storage/sdcard0 (internal) & /storage/sdcard1 (external).
2) Secondly I checked the /dev/block/vold to find two files, in CM9: 179:24 and 179:25, in CM10: 179:8 and 179:9.
3) To work out which vold file is correct I:
a) created a script using the information I found above
b) installed SManager
c) rebooted to ensure previous attempts didn't muck up the results
d) ran the script using SManager
e) checked Settings>Storage to confirm that script did in fact swap internal and external SDs.
After getting the correct vold file I:
4) Copied the script to /data/
5) Open the script in SManager and enabled Su and Boot (execute script on boot with SU permissions)
6) Rebooted and checked Settings>Storage once again.
Final scripts
FYI: The scripts attached contain the following:
===== 7.7 ExtSd2InternalSd for CM9 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
mount -o bind /data/media /mnt/emmc
===== 7.7 ExtSd2InternalSd for CM10 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /storage/sdcard0
mount -o bind /data/media /storage/sdcard1
===== 7.7 ExtSd2InternalSd for rooted stock XXLQ1 version 2 =======
mount -t vfat -o umask=0000 /dev/block/vold/179:9 /mnt/sdcard
mount -o bind /data/media /mnt/sdcard/extStorages/SdCard
Like I said, I'm just a tinkerer, I'll be happy to help but keep in mind my expertise is limited. Let me know how you go!
Enjoy! And don't forget to swap the contents of the internal and external SD directories
Again all credits go to mattiadj and his thread [MOD] ExtSd2InternalSd v3|Increase your data storage|CMW zip|CM10|100% Working|
POST HISTORY
[UPDATE: I've made some changes to this post to make it a bit easier to read]
[UPDATE 2: an additional step has been added in What you need to do section]
[UPDATE 3: I missed an important step before running the script. You MUST enable Su (and save) in SManager before you run the script!]
[UPDATE 4: Moved instructions to top for better readability]
[UPDATE 5: Testing out init.d method]
This is just copy and paste like every other threed u opened..
Sent From Xperia Arc - CM10 Using Xda Premium!
What si the difference with link2sd and App2sd and others
Is this script erases all your data in the SD card while doing the process? Or just extend the capacity of the internal memory like a partition to sd card?
Sent from Hermes
question100 said:
Is this script erases all your data in the SD card while doing the process? Or just extend the capacity of the internal memory like a partition to sd card?
Sent from Hermes
Click to expand...
Click to collapse
no it does not remove your data from sd
Update something
[Edit Philz 6.2.3+ is perfect & does not mess with my swap anymore.]
messed with the install-recovery.sh!
So just reflash the swap , not sure what did it : an xposed modual?
v5 up.
Works now even if on bone stock.
Step 1: (for those rooted, on the ota or out of the box)
Install this https://play.google.com/store/apps/details?id=stericson.busybox
Use the smart install & choose 1.21.1 not 1.22. http://forum.xda-developers.com/showpost.php?p=50064227&postcount=4
Do not use Universal init d.
Reboot.
Step 2:
Flash v5 with Twrp2.6.3 e33 or Philz v6079.
For SafeStrap users using bootstrap, should work.
Reboot.
TWRP e33: http://forum.xda-developers.com/showpost.php?p=49509466&postcount=1
Fixed conflicts with my ◢ PurePerformances™X ◣ mod.
You can only successfully install with Plilz v6079. I only use, for now the one below.
Once installed TWRP does not seem to be a problem.
Plilz v6 for msm8960 phones: Atrix HD, Razr M & Photon Q is here
Took down the deodexed version as it was only the ui from this 1% battery mod that made it different. You can flash it to any deodexed 412 xt907 or xt905 rom.
All storage defaults to storage0 (your real SD card) which is the way it should have been from Motorola, well closer anyway.
Flash from recovery or SS bootstrap Philz v6. Wipe dalvik & cache only. Not for cm based, multuser, or anything but 4.1.2 stock roms!
My ◢ PurePerformances™X ◣ mod must be followed by the SD Swap. Because of a conflict with install-recovery.sh file.
Do not use cwmr 6044 as it messes up the swap by forcing data/media/0. Plilz is better as you can choose data/media only. See my goodies for Philz.
Always use TWRP 2.6.3 e33 OR Philz v6079.(for install use Philz only)
Always choose any NO when rebooting from Philz.
Go Recovery Goodies
Because install-recovery.sh is now an agent in the initd setup & needs to be protected.
Notes on the SD swap: When you choose "Device storage", sdcard0 or storage0 you will browsing your real SD card. When you choose "SD card", sdcard1 or storage1 you will be browsing the internal SD ("data/media").
This internal SD ("data/media") memory now has no purpose. You can move what you want to your real SD & delete everything else to let the phone use it all. All storage defaults to storage0 (your real SD card) which now is the way it should have been from Motorola, well closer anyway.
ZaYAC-ua's swap thread
The formerly unwanted file: install-recovery.sh is now an agent in the initd setup & needs to be protected, as noted above, and it's permissions, if altered, can be restored to rwxr-xr-x.
If this file is not protected you boot up with 2 internal SD cards.
Known issues:
Two things will Kill the SD swap: (by messing with install-recovery.sh)
1)Using TWRP older then v2.6. (To install use Philz only)
2)If you boot from CWMR and choose yes to "disable recovery flash".
Also) If you mess with multiuser roms feel free to delete 0 , obb & legacy folders in internal sd (storage1).
One more) It is expected for your settings-storage info to be out of whack.
Finally) Create folder in root of the phone with Root Explorer results in an error but is the same as the Rabbit's version & of no consequence. The folder does get created anyway. All else works in the root of the phone.
UsbMassStorage: BE SURE TO EJECT FROM PC/MAC BEFORE YOU UNMOUNT. DO NOT USE WITH ANDROID FILE TRANSFER.
".files" are a nuisance when mounting to osx: just delete them AFTER YOU UNMOUNT. Warning: If you do not enable your file browser to show hidden files & you unmount while your (os x is one) trash is full the .file can be huge!
More http://forum.xda-developers.com/showpost.php?p=43434787&postcount=3
V1 DL stats: deodexed-31, odexed-49
Reserved
V3 up. Fixes compatibility w/ PP mod. Twrp will not install the swap & let it work! Plilz v6 will & does twrp restores too....
I'm using this script to swap the storage on PACman and other 4.3 roms that lacks the swap option natively, I guess your solution is more or less the same, using the restore recovery script instead of the real init.d script.
Right ?
Code:
#!/system/bin/sh
sleep 3
mount -o remount,rw /
mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/shell/emulated
mount -o bind /data/media/0 /storage/sdcard1
chown system /data/media/0
chgrp sdcard_rw /data/media/0
chmod 0075 /data/media/0
mount -o remount, ro /
The Solutor said:
I'm using this script to swap the storage on PACman and other 4.3 roms that lacks the swap option natively, I guess your solution is more or less the same, using the restore recovery script instead of the real init.d script.
Right ?
Code:
#!/system/bin/sh
sleep 3
mount -o remount,rw /
mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/shell/emulated
mount -o bind /data/media/0 /storage/sdcard1
chown system /data/media/0
chgrp sdcard_rw /data/media/0
chmod 0075 /data/media/0
mount -o remount, ro /
Click to expand...
Click to collapse
Thanks. Did you have a link? I have never found one that works for 4.1.2 + !
aviwdoowks said:
Thanks. Did you have a link? I have never found one that works for 4.1.2 + !
Click to expand...
Click to collapse
A link ?
That's all I'm using, just copy it save it to (say) 02sdswap, put the file in the /etc/init.d folder and set the permissions as the other init.d files.
Then reboot the phone.
That's all
Keep in mind to use a decent editor and set the end line format to UNIX.
I'm using it on 4.3 on PhotonQ but it should work, as is, on other similar phones like the Razr M, or with little adjustment in other phones.
Is far from perfect but looks to be enough to solve the problem.
The Solutor said:
A link ?
That's all I'm using, just copy it save it to (say) 02sdswap, put the file in the /etc/init.d folder and set the permissions as the other init.d files.
Then reboot the phone.
That's all
Keep in mind to use a decent editor and set the end line format to UNIX.
I'm using it on 4.3 on PhotonQ but it should work, as is, on other similar phones like the Razr M, or with little adjustment in other phones.
Is far from perfect but looks to be enough to solve the problem.
Click to expand...
Click to collapse
Just tried it, removing the "/0" from each line w/ datamedia.
No go for 412.
aviwdoowks said:
No go for 412.
Click to expand...
Click to collapse
Practically I've never used JB 4.1.2, as I see no point in doing it.
Depending on my moot I use my internationalized ICS, or a good 4.3 unofficial rom.
Bacause this, I don't remember exactly the changes in paths and symlinks between 4.1.2 and 4.3
But very likely the /mnt/shell/emulated is not present on 4.1.2, just check if I'm not wrong, and eventually change the /mnt/shell/emulated to the correct mountpoint.
V4 up. Much improved. Only the install-recovery.sh annoyance to overcome. I am trying a "userint.sh" version. Anyone know if that is do-able on a moto phone? Htc phones use it with a swap.
Couple this concise commentary of the data media problem,
http://teamw.in/DataMedia
[translation: data/media is useless if you have ext sd as default storage.
It needs to be formatted for reliable rom flashes (esp. 4.4)
& you can do it from Philz! ]
With the ability to use a large sd card on our phone,
then you understand why keeping data media zeroed out along with a sd swap is so nice.
Where oh where is a swap for 4.4?
Btw a new Plilz with ext sd cwm folder detection :fingers-crossed: due out soon.
Link2SD GUIDE
ROOTED DEVICES ONLY
Link2SD is a good solution to save the contents of your internal memory, I know we have a lot but its a good idea in the case of saving more space on your internal memory.
Back up your external sd contents before proceeding!
STEP 1
Install these:
https://play.google.com/store/apps/details?id=stericson.busybox
https://play.google.com/store/apps/details?id=com.sylkat.AParted
https://play.google.com/store/apps/details?id=com.broodplank.initdtoggler
https://play.google.com/store/apps/details?id=jackpal.androidterm
STEP 2
If you've already installed busybox, skip this step.
Install busybox using the busybox installer into /system/xbin
STEP 3
After install, unmount your external sd card from System/Storage/Unmount SD Card
THEN, unmount your external sdcard and sdext2 partition if you have one, from terminal emulator.
Thsi varies from ROM to ROM, I'm on CM11, so I run these commands
Code:
mount -o remount,ro /storage/sdcard1
umount /storage/sdcard1
mount -o remount,ro /data/sdext2
umount /data/sdext2
If you're stock, do this...
Code:
mount -o remount,ro /storage/external_SD
umount /storage/external_SD
mount -o remount,ro /data/sdext2
umount /data/sdext2
Again, rom specific. If you don't have an sdext2 partition, no need for the BOTTOM TWO commands.
STEP 4
Open AParted and resize your external sd card's partition, then make yourself an ext4 formatted sdext partition. Mine is 8 GB in size, since I have a 16 GB card. The journal write takes a long time...usually about a minute and a half. Don't cancel it or you'll end up with a corrupt sd card.
STEP 5
Remount your sd card by your system menu, this is the easy way.
STEP 6
Toogle init.d in Init.d Toggler. Only for stock ROMs without init.d support. Skip this if you've already done init.d or have a ROM that has it baked/enabled.
STEP 7
Install Link2SD and the pro key. The pro key costs money, so if you're poor than I'm sorry. I'm really poor, it's only a few bucks. XD
https://play.google.com/store/apps/details?id=com.buak.Link2SD
https://play.google.com/store/apps/details?id=com.buak.link2sdplus
Run Link2SD after both are installed. If done correctly you'll get a prompt asking you to create your mount scripts, so select ext4 format and confirm, then CANCEL reboot. Go to Link2SD settings and enable Relink Lib files and Relink .dex files at boot. I also make my cache auto-clear every 6 hours or so. Auto link is a really bad idea. Since some system apps break when you link them. Clear the app and dalvik cache. Some of your apps may crash. Recreate your mount scripts again, then REBOOT.
STEP 8
Go into Link2SD and link all your user apps, you can use the filter at the top and serlect "User" to see which ones you installed. DO NOT link anything that modifies your system, since those apps are known to break. For example, voltage control or ROM Manager / ROM Toolbox break when you link them. Since you have the pro version you can link the internal data too!
DO NOT link any system apps. This is a likely known cause for a brick.
DO NOT link CM themes.
DO NOT link launchers.
STEP 9
You have successfully installed Link2SD and have it working! I suggest installing SD booster or making yourself an init.d script to boost your read ahead speed at boot. This helps A LOT with app execution on older sd cards.
I hope this guide helped! Remember, if you fark up you did it to yourself! I'm not responsible.
The L90 D415 is awesome!!!
~LoopyD
Donate to the PayPalz ([email protected])
Partitions with cwm can work too?
I don't use cwm, but TWRP, so wouldn't know.