Pages

Sunday, July 31, 2011

Partitioning Your EVO's Internal Memory to Free Up More Space for Apps


One thing that frustrated me with the Hero was the lack of space for apps b/c of the dismally small internal memory that forced you to store your apps on your SD card, using the Move to SD card feature in Android.  Can you try explaining this need to a non-techy person? It's also just a big pain in the behind.

Anyways, the EVO has a similar problem. If you download large apps like games, or just have a lot of apps, pretty soon, you'll run into an issue where you can't load any more apps on to your phone.  I think HTC and other phone makers early on didn't have the foresight to understand that people over time will install a lot of apps.  I have more than 200 myself.  Do I use all of them?  No, not everyday, but once in a while I'll use each one.  I think I have the right to do that, same thought process as your PC desktop.  Why should memory be an issue in installing apps on your mini-computer, now called the smart phone


If I understand correctly, the HTC EVO has 1GB internal memory , which is dedicated for your system, data and cache. That's not a lot, considering that some game apps can be 5-10 mbs each these days.  Google Earth is a whopping 22 mbs.  Yes, you can move it to the SD card, but my point is that you shouldn't have to move every app to your SD card - after all, you might want your SD card space for music, photos, videos and such.

As delivered, the system partition, where your Android OS actually is stored, is a big chunk of that 1 GB internal phone, I'm not sure exactly how much, perhaps about 300 - 350 mbs.

So someone in XDA dubbed Calkulin has come up with a tweak where you can repartition all of this to resize the system, data, and cache sizes.  Think of it as using a pizza cutter to resize the slices for system/data/cache. I've done this to my EVO and haven't turned back!

The original instructions weren't 100% clear to me, so I revised it here, and I'm posting it below for ease as well.  My additions/notes are in red.  Please refer to the link to XDA for a screenshot of what the partitions look like when running "df -h" via adb.  (The ROM I was using was MIUI version 7.19 I think.  It only takes about 120 mbs - can you imagine the wasted space of about 180 mbs that was saved?)
I just thought I'd clarify a bit from the original post, since the steps that I take work for me:

Install
1. Copy FR_Boot_CustomMTD_v1.5.7b_for_EVO, FR_Recovery_CustomMTD_v1.5.7b_for_EVO, FORMAT_ALL zips(& custom mtdpartmap.txt if you want to change the default sizes) to your SD card
2. Reboot into recovery
3. Make a Nandroid backup if you didn't already
4. Format cache, data & system partitions using my FORMAT_ALL.zip for ease
6. Flash FR_Recovery_CustomMTD_v1.5.7b_for_EVO.zip(this patches the recovery to use the custom partition sizes)
7. Reboot into recovery again -- Here, I choose 'reboot' from the recovery, press the power button and immediately press and hold the 'volume down' button. This makes it go into the white bootloader screen. There, I choose 'recovery' and press the power button again to reboot into recovery.
8. Restore Nandroid backup or flash new ROM but don't reboot
9. Flash FR_Boot_CustomMTD_v1.5.7b_for_EVO.zip(this patches the kernel to load the custom partition sizes)
10. Reboot

Additional things to consider:

If you are switching ROMS and the ROM sizes are significantly different (for ex., going from an AOSP ROM like CM7 and then going into a huge Sense based ROM), you will have to follow all the steps again. You CANNOT just change the values in mtdpartmap.txt and then just flash the FR_Boot_CustomMTD_v1.5.7b_for_EVO.zip file and boot. I've tried this multiple times, it does not work. You have to go through the WHOLE process again.

Yeah, that makes switching ROMs more of a pain for you flash-a-holics if you switch back and forth from Sense. I usually just flash between AOSP ROMS, so I keep it at 160/90.

Also, for those of you asking if it matters what ROM it is, etc, it does not. Think of it like this. If you have a certain amount of water, and your water bottle is big and has a lot of additional space, you can use a smaller water bottle to hold that water. You're just trying to increase/decrease the size of this "water bottle" for your system and cache essentially, so that more space is available for your 'data' partition, which is where your apps are stored.

You will only have problems when you try to hold a lot of water in a container that can't fit it. 

2 comments:

  1. If it wasn't for your clarifiction on step 7, I don't think I would have succeeded in getting this to work. I tried and failed until about 2am, then found this post in XDA. Thanks. Along the same lines, I really like Link2SD better than moving apps to SD. I think it makes everything perkier.

    cityneversleepz

    ReplyDelete
  2. Glad I could help. I'll check out Link2SD.

    ReplyDelete