[MOD] Swap Internal & External SD [CM9, CM10, rooted stock XXLQ1 and probably more] - Galaxy Tab 7.7 Android Development

[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,

Related

Tips for Increasing the internal memory (/data partition) to 1.5G

I had tried many ways including A2SD and stuffs. But the best way I found is mounting /dev/block/mmcblk0p2 -> /data. I had also modified some scripts and now my htc salsa is having huge internal memory over my sdcard. The methods are in my blog.
New URL: http://wiki.bluebert.info/index.php?title=HTC_Salsa_C510e_Rooting
Some of the details and images are from here and files too. The only difference is I am using the recovery method to alter some scripts and forever it will auto mount the second partition of my sdcard to /data and I will never ever worry about the internal memory issue for my htc salsa
Please update the link
hi,
Can you please update the link as i am not able to browse it.Thanks in advance
wiki.bluebert.info/index.php/HTC_Salsa_C510e_Rooting
If unable to view please let me know. Thanks.
Its nice Blog
Hi,
Thanks for updating the link.I read your blog and have few queries:-
What happens when you connect your device to PC. Memory card is unmounted.So your phone thinks that internal memory is unmounted?
Did you got my point?
Can you tell me what are these partitions?
/dev
/mnt/asec
/mnt/obb
These three partitions take 209mb individually.
What about the battery.How is your phone's battery backup?
chinu1984 said:
Hi,
Thanks for updating the link.I read your blog and have few queries:-
What happens when you connect your device to PC. Memory card is unmounted.So your phone thinks that internal memory is unmounted?
Did you got my point?
Can you tell me what are these partitions?
/dev
/mnt/asec
/mnt/obb
These three partitions take 209mb individually.
What about the battery.How is your phone's battery backup?
Click to expand...
Click to collapse
1. The memory card only will be unmounting the FAT32 partition but not the EXT3/EXT2 partition. It just thinks that is another disk Currently the latest file system I am using is ext3 instead of ext2.
2. /dev: is the folder that contains all the devices files and pointers.
/mnt/asec: is the mount point for the apps that had moved to SDCard. url: groups.google.com/group/android-porting/browse_thread/thread/38b1768ed6a5e1a8
/mnt/obb: StorageManager is the interface to the systems storage service. The storage manager handles storage-related items such as Opaque Binary Blobs (OBBs).
OBBs contain a filesystem that maybe be encrypted on disk and mounted on-demand from an application. OBBs are a good way of providing large amounts of binary assets without packaging them into APKs as they may be multiple gigabytes in size. However, due to their size, they're most likely stored in a shared storage pool accessible from all programs. The system does not guarantee the security of the OBB file itself: if any program modifies the OBB, there is no guarantee that a read from that OBB will produce the expected output.
What do you mean about the phone battery backup?
Basically, what I am doing is actually making sure that even I unplug my /data my phone still be able to start back and also I can have any size for my internal memory. Currently, I had migrated to a 16GB class 10 sdcard and it performs like a charm.
I had noticed on my 8GB class 4 SDCard a bit lagging. So try to get a high speed sdcard and it really helps on this case. So once you had done this mod and you still maintains the original HTC firmware yet you get a very large internal disk.
But remember, whatever you do on the phone, please backup the images using the ClockworkMod. It will save your life. Happy modding
Summarize of the increasing internal memory process...
1. Make sure S-OFF
2. Flash the recovery partition with the clockworkmod
3. Boot into clockworkmod recovery and backup the original /data /system and all the partitions using the clockworkmod recovery.
4. Install the root.zip using the clockworkmod for rooting it
5. If fails we still able to revert back to original firmware.
6. If everything good, you should be root now. Once you get the root, install busybox and superuser. This is needed for the partition process.
7. Reboot back to recovery and make another backup.
8. Make the new ext2 partitions using the busybox or you can do this on any linux terminals on your desktop pc.
9. Upload the modified htcfs and copy everything from /data -> new ext2 partition.
10. The htcfs will auto mount the /data before everything starts and there you go with your newly created partitions size. This is how you get the huge internal memory size on your sdcard.
2nd day of my usage of the /data on sdcard.
I had bought a 16GB class 10 SDCard and partitioned into 4GB for /data as ext3 and the rest for /sdcard as fat32. Currently, I am consuming only 342MB/3.6GB. Which I am quite happy with it.
Below are the things I had found out:
1. Sometimes when there are some heavy process on going it will be a bit slow. Especially when turning on the screen after the screen when to power saving mode. Not all the time but when it is heavily transferring something inside the /data which is the sdcard. This is why we need a high speed sdcard.
2. I am using ext3 instead of ext2. ext3 partition seems a bit stable than ext2. I am not sure yet but will keep on trying.
I will keep on posting and hopefully people out there can do the same on the phone for enjoying the huge internal data storage for the apps. Now I no longer need to remove my apps away from my phone anymore
this sounds like a fantastic idea
i have a questioned
i rooted my gf's phone,installed links2sd,created a ext2 partition and removed a whole bunch of bloat
would me using your method now cause problems or instability on her phone?
i'd love to try this out tonight if possible
vickyboicancan said:
this sounds like a fantastic idea
i have a questioned
i rooted my gf's phone,installed links2sd,created a ext2 partition and removed a whole bunch of bloat
would me using your method now cause problems or instability on her phone?
i'd love to try this out tonight if possible
Click to expand...
Click to collapse
It may unstable unless you are pretty clear what you are migrating and redo the softlink.
The best to try with a clean and possible a few important apps installed like the file expert, root checker, superuser and busybox then you copy the whole /data to the ext2 partition of the sdcard and mount it with my method.
Again, remember to back up everything before trying it.
http://www.facebook.com/pages/HTC-Android/265046560194954
This is my FB HTC page.
Found some minor bug but is repairable. As long as you do not eject the sdcard after power off the HTC (where I had already enabled the fastboot) then everything should be fine. But just in case, like my case I had switched off the phone then I eject my sdcard for copying some files and reinsert it back then power on the phone and all my apps become unstable and not usable. This is because I had enabled the fastboot and some files are reside in the memory.
What you can do is:
1. Do not panic. Let it starts. Everything still in the ext3 partition.
2. use the adb command and run as below:
# sudo adb shell
# /system/bin/fix_permissions
If you have encounter some cut command not found that is not a main issue. Is fixable. You just need to remount the /system folder as rw and softlink the busybox as cut. Something like below:
# su
# mount -o rw,remount dev/block/mtdblock3 /system
# cd /system/xbin/
# ln -s busybox cut
Once done, re-run the /system/bin/fix_permissions again.
3. Wait for the process the fix all the file permission issues.
4. Then reboot the phone again:
# adb reboot
What is the fix_permissions about? Below link is the details on it:
http://wiki.cyanogenmod.com/wiki/Fix_permissions
mount Internal to internal??
Hi,
In spite of mounting and external drive with ext-3 partition onto /data. cant me mount an internal drive may be /dev/obb onto /data?
What will be the advantages and disadvantages?
chinu1984 said:
Hi,
In spite of mounting and external drive with ext-3 partition onto /data. cant me mount an internal drive may be /dev/obb onto /data?
What will be the advantages and disadvantages?
Click to expand...
Click to collapse
Defeating the purpose. The reason why we need to mount to the sdcard is to get extra disk space. I am using this method to trick the system thinks that it have a very huge space and eventually all from the external sdcard partition.
The /dev/obb... is just a tmpfs. Try to do a mount command to get the output then you will get a clearer picture on this. For my case, is /mnt/obb and just a tmpfs which is useless.
tmpfs is a temporary file system where it will be gone after power off.
Hi,
Where can i get this XTC Clip to S-OFF??
chinu1984 said:
Hi,
Where can i get this XTC Clip to S-OFF??
Click to expand...
Click to collapse
Read my Facebook page on the last second post.
Below images are the screenshots from my HTC Salsa.
{
"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"
}
The above image is after the /data remounted to my sdcard. Originally was 150MB and now is 4GB.
After I had installed many apps I am still having lots of space.
I had simplified the process:
What I am intend to do is to extend the /data (internal memory) to sdcard.
1. Install Busybox.
2. Install Sudo Checker and all the sudo tools.
3. Once this done, we will need to partition the sdcard. Please be making sure all the data are backup. I am not going to be responsible on that
4. Use the hardware method by pressing the volume down and power button to enter the recovery mode or using the adb command "adb reboot recovery".
5. Use the recovery tool and backup the existing working image to the sdcard before proceeding next step. It will be useful to have the recovery image in hand. You will never know when you going to make the mistakes.
6. Once done, lets proceed with the adb command on the linux / windows terminal.
7. Before we start lets prepare some simple shell scripting. What we are trying to do here is to create a file and replaces the existing htcfs on the /system/bin/htcfs. I am not sure what is the use of mounting this htcfs on /data/htcfs and is empty. But I will put back this to my script in future. What I had done was move the original htcfs to htcfs.original and put my version of htcfs which it will auto starts every power off or reboot. Below are the codes:
Filename: htcfs
#!/system/bin/sh
/system/xbin/busybox mount -t ext2 /dev/block/vold/179:2 /data
/system/bin/htcfs.original $1 $2 $3 $4 $5 $6
8. Now lets rename the original htcfs in the phone before we copy our version into the phone. At the same time we do partitioning on the SDcard.
# adb shell
# mount -a
# cd /system/bin/
# busybox cp htcfs htcfs.original
# exit
# adb push htcfs /system/bin/
# adb shell
# cd /system/bin
# chmod 755 htcfs
# chown root.shell htcfs
# fdisk /dev/block/mmcblk0
# mkfs.ext2 -m 0 /dev/block/mmcblk0p2
# mount /dev/block/mmcblk0p2 /sd-ext
# cd /data
# busybox cp -a . /sd-ext
# sync
# cd /
# umount /sd-ext /sdcard /data /system
# exit
# adb reboot
The above steps are creating an EXT2 partition on the SDCard. My version I created a 1.5G as my /data space.
So, basically the htcfs is mounting the /data from my sdcard on every reboot before all the applications start up. There is a step to copy all existing /data to the sd-ext and that is the trick to make the phone thinks that is using the internal memory and we have no longer facing insufficient disk space on cheaper android phones or on some branded HTC phones with little amount of internal disk.
Remember, the above steps are only for rooted phones. My phone until now still working great and with 4GB internal memory (mounted from SDCard as ext3).
I am working on a Linux Terminal for the above steps.
I have problem to get XTC Clip.
Is it possible we can S-Off without using XTC Clip?
luxoriouz said:
I have problem to get XTC Clip.
Is it possible we can S-Off without using XTC Clip?
Click to expand...
Click to collapse
Not at the moment.

[MOD]Increase Intenal memory Now in Cm10 And Cm9[ FAIL ]

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

[CMW, Init.d Script] Swap IntenalSD<->ExternalSD

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

[MOD]SD Swap v5+Initd for any 4.1.2 rom Locked or unlocked xt907+CM4.3alpha-version

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.

[GUIDE][ROOT] Link2SD

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.

Categories

Resources