Version 5 (modified by 9 years ago) ( diff ) | ,
---|
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:
- 20GB vfat partition, this will serve as the normal extSdCard
- 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
- Put device in download mode (VolumeDown+Home+Power) on power-on.
- $ 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
- Put device in download mode (VolumeDown+Home+Power) on power-on.
- $ sudo heimdall download-pit --output S7710.pit
- Reboot device to perform other heimdall actions as other actions will fail after this.
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
Attachments (1)
- S7710.pit (4.0 KB ) - added by 9 years ago.
Download all attachments as: .zip