= Modify Internal SDcard storage to External SDcard = The Samsung Galaxy XCover2 (S7710) has only roughly 500MB left on emulated internal storage which is not enough these days if you like to install a lot of applications. There are many tricks around to move data/cache/applications to the external SD card, but all of them has it quirks. Since large SDcard these days are fast and cheap enough having I think this could be done better, by simply discarding the internal /data storage and use an sdcard partition instead. = Requirements = * Linux envirionment with compiler tools * split-bootimg.pl found ar [[http://www.enck.org/tools.html]] * Android Tools mkbootfs mkbootimg (optional simg2img) * Android SDK Environment * Heimdall [[http://glassechidna.com.au/heimdall/]] * Stock S7710 firmware [[http://live.samsung-updates.com/index.php?device=GT-S7710]] What I will do is modify the {{{/fstab.samsungskomer}}} to change the mount of the ext4 {{{/data}}} of the internal location {{{/dev/block/mmcblk0p25}}} to the second partition of the external SDCard {{{/dev/block/mmcblk1p2}}}. Technically speaking you do not even need to root your device, but by flashing firmware you will need to do some pretty advanced stuff. = Steps = == Format SD Card == Format 32GB class 10 or higher SDcard with two partitions: 1. 20GB vfat partition, this will serve as the normal extSdCard 2. 12GB ext4 partition, this will serve as the new /data partition (make sure it is the second and last partition) == Compile Android Tools == {{{ $ git clone https://android.googlesource.com/platform/system/core $ cd core $ git checkout android-4.2.1_r1 $ cd libmincrypt $ gcc -c *.c -I../include $ ar rcs libmincrypt.a *.o $ cd ../mkbootimg $ gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a $ cd ../mkbootfs $ gcc mkbootfs.c -o mkbootfs -I../include $ cd ../libsparse $ gcc -o simg2img -Iinclude -lz simg2img.c sparse_crc32.c backed_block.c output_file.c sparse.c sparse_err.c sparse_read.c }}} == Modify stock kernel == I assume you have a stock kernel laying around if not download it from the links below. {{{ $ ./split_bootimg.pl boot.img $ mkdir ramdisk; cd ramdisk $ gzip -dc ../boot.img-ramdisk.gz | cpio -i # Alter {{{ fstab.samsungskomer }}} and change /data mountpoint from {{{/dev/block/mmcblk0p25}}} to {{{/dev/block/mmcblk1p2}}} $ vim fstab.samsungskomer $ cd .. $ mkbootfs ./ramdisk | gzip > ramdisk-new.gz $ mkbootimg --cmdline 'no_console_suspend=1 console=null' \ --kernel boot.img-kernel \ --ramdisk ramdisk-new.gz \ -o boot-new.img }}} == Upload kernel == 1. Put device in download mode (VolumeDown+Home+Power) on power-on. 1. $ sudo heimdall flash --pit S7710.pit --Kernel ./boot-new.img # FYI: Pit file retrieval below == Enjoy your new device == The phone will need to be rebooted a few times and it will be complaining about corruption and encryption, just go will the flow and acknowledge the notifications. Ones completed enjoy your improved Samsung Galaxy XCover 2 (S7710). = Misc = == Retrieve PIT file == 1. Put device in download mode (VolumeDown+Home+Power) on power-on. 1. $ sudo heimdall download-pit --output S7710.pit 1. Reboot device to perform other heimdall actions as other actions will fail after this. == Root Device == 1. Install recovery ROM found at [[http://forum.xda-developers.com/showthread.php?p=43294839#post43294839]] some background at [[http://forum.xda-developers.com/showthread.php?t=2384015]] 1. Install UPDATE-SuperSU-v2.46.zip (or latest) http://forum.xda-developers.com/showthread.php?t=1538053 via recovery mode (Hold VolumeUp+Home+Power on boot). 1. Enjoy your rooted phone = References = * Heimdall 1.3.1 is NOT working, make sure to use a higher version. * Disable power on by home key: [[http://forum.xda-developers.com/showthread.php?t=2204889&page=15]] * Rooting guide hints (windows only): [[http://forum.xda-developers.com/showpost.php?p=40232503&postcount=45]] * Compile simg2img and make_ext4fs [[http://muzso.hu/2012/08/10/how-to-pack-and-unpack-system.img-and-userdata.img-from-an-android-factory-image]]