[DEV][S-OFF] Custom MTD Partitions (resize data, system, and cache)

Search This thread

daedelus82

Senior Member
Sep 19, 2009
163
45
Good news for those who have disabled security on their HTC Desire.

Having tried Firerat's Custom MTD patch on my HTC Desire and almost bricking it twice, I decided to break it apart and examine things in more detail.

As it currently stands v1.5.3 of his patch will corrupt your mtd0 partition if applied to your desire, so do not try it!

I read through lbcoder's custom partitions layout thread, then broke apart Firerat's patch to determine what it was doing, and what was going wrong on the HTC Desire.

The result, I have modified Firerat's Custom MTD script so it works on the HTC Desire and have successfully modified the partitions on my phone so system is 125MB, cache is 5MB, and data is 317MB.

Now after moving all my apps & dalvik-cache from SD-EXT back to DATA I still have 130MB free! w00t!

I will be providing minimal support for this, I am purely providing this to allow others to modify their partition table just as I have done. Ensure you read Firerat's original thread for further information and/or troubleshooting, it's 99% his patch/work, I just made a small change to stop mtd0 from being overwritten.

These are the steps I performed on my phone and are based on ClockworkMod Recovery v2.5.0.7.
If none of this makes sense to you then this is not for you:

  1. Disable security on your phone. (S-OFF in FASTBOOT)
  2. Place bravo-recovery-v1.5.3-CustomMTD.zip & bravo-boot-v1.5.3-CustomMTD.zip on SD card
  3. Reboot into recovery
  4. Take a Nandroid backup
  5. Create mtdpartmap.txt on SD card with size of system & cache, the example provided sets system to 125MB and cache to 5MB, this will depend on your ROM: echo "mtd 125 5" > /sdcard/mtdpartmap.txt
  6. Format system, data, and cache (found under mounts and storage)
  7. Flash bravo-recovery-v1.5.3-CustomMTD.zip, this patches recovery to use the new partition sizes
  8. Reboot into recovery
  9. Format system, data, and cache again for good measure (found under mounts and storage)
  10. Flash ROM, or restore Nandroid backup, it will be flashed to NAND based on new partition sizes
  11. Prior to rebooting, flash bravo-boot-v1.5.3-CustomMTD.zip, this patches ROM kernel to load with same partition sizes.
  12. Enjoy

Warnings:
Do not attempt to flash radio via recovery/ZIP, only do it via fastboot.
Has only been tested on HTC Desire, may not work on other phones.
Some users have suggested small cache size affects performance in games, if you play games on your phone it may be worth setting cache to 20-35MB

Uninstalling:
Removing this is simple.
Boot in to fastboot
Fastboot flash the original unmodified clockwork img
Reboot into recovery
Format system, data, cache
Install ROM/ZIP, gapps etc, reboot

Download:
bravo-recovery-v1.5.3-CustomMTD.zip
bravo-boot-v1.5.3-CustomMTD.zip

Credits:
  • AlphaRev - for bringing S-OFF to HTC Desire
  • Firerat - for the original patch. I will be forwarding you the exact changes/details shortly.
  • Lbcoder - for coming up with the idea
  • Skraw ( CM forums ) - for getting lbcoder interested
  • Koush - for AnyKernel
  • Cyanogen & Co - for giving us all such great ROMs to play with
  • Amon_RA and Koush - for giving us something to patch
  • Techjosh - for fixing the patchers for use with Rogers (EBi1)
  • Mblaster - for pointing out my nasty habit of using -r zip flag at the end of command ( breaks compatibility with older zip versions, fixed in AutoPatcher v1.5)
  • Kali- for porting CM6 to Desire thanks a bunch
  • I don't take any credit for this, other than the time invested to get it working on the Desire.


Code:
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   208112         0    208112   0% /dev
tmpfs                   208112         0    208112   0% /mnt/asec
/dev/block/mtdblock3    128000    123932      4068  97% /system
/dev/block/mtdblock5    315008    184048    130960  58% /data
/dev/block/mtdblock4      5120       776      4344  15% /cache
/dev/block/mmcblk0p2    505636      2307    477224   0% /sd-ext
/dev/block/vold/179:1
                       7431564   5413644   2017920  73% /mnt/sdcard
/dev/block/vold/179:1
                       7431564   5413644   2017920  73% /mnt/secure/asec
/dev/block/dm-0           3124      1504      1620  48% /mnt/asec/com.google.android.stardroid-1
 
Last edited:

Beaverman20

Senior Member
Jul 29, 2010
224
5
wait a sec... couldn't this be used to resize the /system to fit the complete Desire HD rom... ofc that would not allow you to have custom apps, but still o_O
 

Lucas0511

Senior Member
Mar 14, 2006
1,036
73
daedelus82, you seem to have made the most out of your nightshift :). Thanks from all of us wondering how to put S-Off to good use.
 

Oijkn

Senior Member
Mar 21, 2008
885
246
127.0.0.1
Hi, that seems very good news and tool but can you explain me the advantage to resize or manipulate the partition ??

My English is not perfect for understand "lbcoder's custom partitions layout thread" or "Firerat's patch".

Regards, Oijkn.
 

mblaster

Inactive Recognized Developer
Aug 2, 2007
433
95
Short Question: Is there anything that prevents us from mounting /dev/block/mmcblk0pX as /data? Seems like a trivial Apps2SD for me, but perhaps that would be too easy...
Otherwise ~420MB /system would be possible. Don't know if thats enough for those DesireHD Roms.

Hi, that seems very good news and tool but can you explain me the advantage to resize or manipulate the partition ??

My English is not perfect for understand "lbcoder's custom partitions layout thread" or "Firerat's patch".

Regards, Oijkn.

The main use is to get more space for apps on /data by shrinking /system to exactly the size needed for the rom you use and shrinking /cache as it is not really used anyway (at least on g1 it was only used for ota updates, which you don't get on a custom rom).

Other use would be to fit a huge rom on a blown up /system partition.
 
Last edited:

jercik

Member
May 4, 2010
23
7
Wrocław
Question before you release it: how to predict what size of /system I need? It is equal to size of /system folder in ROM's flashable file?

Second question: it is good idea to shrink /system to something like 5 MB and move all system apps to /data (then all apps can be easily uninstalled and updated)?
 
Last edited:

Oijkn

Senior Member
Mar 21, 2008
885
246
127.0.0.1
The main use is to get more space for apps on /data by shrinking /system to exactly the size needed for the rom you use and shrinking /cache as it is not really used anyway (at least on g1 it was only used for ota updates, which you don't get on a custom rom).

Other use would be to fit a huge rom on a blown up /system partition.

Thanks mate for the explain ^^ I understood a little better. Do you think that patch will make my desire more efficient ??
 

mr.r9

Senior Member
Oct 8, 2006
576
49
I think this will benefit the community a lot.
Sense HD users might finally get the whole system on nand.
AOSP users will have more memory to install appss on nand.
Win-win for everybody :)
 

wrsg

Senior Member
Apr 23, 2008
1,019
143
in a cage
i tried this on my g1, trust me its not worth the trouble. stick with apps2sd if youre having space problems.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    Good news for those who have disabled security on their HTC Desire.

    Having tried Firerat's Custom MTD patch on my HTC Desire and almost bricking it twice, I decided to break it apart and examine things in more detail.

    As it currently stands v1.5.3 of his patch will corrupt your mtd0 partition if applied to your desire, so do not try it!

    I read through lbcoder's custom partitions layout thread, then broke apart Firerat's patch to determine what it was doing, and what was going wrong on the HTC Desire.

    The result, I have modified Firerat's Custom MTD script so it works on the HTC Desire and have successfully modified the partitions on my phone so system is 125MB, cache is 5MB, and data is 317MB.

    Now after moving all my apps & dalvik-cache from SD-EXT back to DATA I still have 130MB free! w00t!

    I will be providing minimal support for this, I am purely providing this to allow others to modify their partition table just as I have done. Ensure you read Firerat's original thread for further information and/or troubleshooting, it's 99% his patch/work, I just made a small change to stop mtd0 from being overwritten.

    These are the steps I performed on my phone and are based on ClockworkMod Recovery v2.5.0.7.
    If none of this makes sense to you then this is not for you:

    1. Disable security on your phone. (S-OFF in FASTBOOT)
    2. Place bravo-recovery-v1.5.3-CustomMTD.zip & bravo-boot-v1.5.3-CustomMTD.zip on SD card
    3. Reboot into recovery
    4. Take a Nandroid backup
    5. Create mtdpartmap.txt on SD card with size of system & cache, the example provided sets system to 125MB and cache to 5MB, this will depend on your ROM: echo "mtd 125 5" > /sdcard/mtdpartmap.txt
    6. Format system, data, and cache (found under mounts and storage)
    7. Flash bravo-recovery-v1.5.3-CustomMTD.zip, this patches recovery to use the new partition sizes
    8. Reboot into recovery
    9. Format system, data, and cache again for good measure (found under mounts and storage)
    10. Flash ROM, or restore Nandroid backup, it will be flashed to NAND based on new partition sizes
    11. Prior to rebooting, flash bravo-boot-v1.5.3-CustomMTD.zip, this patches ROM kernel to load with same partition sizes.
    12. Enjoy

    Warnings:
    Do not attempt to flash radio via recovery/ZIP, only do it via fastboot.
    Has only been tested on HTC Desire, may not work on other phones.
    Some users have suggested small cache size affects performance in games, if you play games on your phone it may be worth setting cache to 20-35MB

    Uninstalling:
    Removing this is simple.
    Boot in to fastboot
    Fastboot flash the original unmodified clockwork img
    Reboot into recovery
    Format system, data, cache
    Install ROM/ZIP, gapps etc, reboot

    Download:
    bravo-recovery-v1.5.3-CustomMTD.zip
    bravo-boot-v1.5.3-CustomMTD.zip

    Credits:
    • AlphaRev - for bringing S-OFF to HTC Desire
    • Firerat - for the original patch. I will be forwarding you the exact changes/details shortly.
    • Lbcoder - for coming up with the idea
    • Skraw ( CM forums ) - for getting lbcoder interested
    • Koush - for AnyKernel
    • Cyanogen & Co - for giving us all such great ROMs to play with
    • Amon_RA and Koush - for giving us something to patch
    • Techjosh - for fixing the patchers for use with Rogers (EBi1)
    • Mblaster - for pointing out my nasty habit of using -r zip flag at the end of command ( breaks compatibility with older zip versions, fixed in AutoPatcher v1.5)
    • Kali- for porting CM6 to Desire thanks a bunch
    • I don't take any credit for this, other than the time invested to get it working on the Desire.


    Code:
    Filesystem           1K-blocks      Used Available Use% Mounted on
    tmpfs                   208112         0    208112   0% /dev
    tmpfs                   208112         0    208112   0% /mnt/asec
    /dev/block/mtdblock3    128000    123932      4068  97% /system
    /dev/block/mtdblock5    315008    184048    130960  58% /data
    /dev/block/mtdblock4      5120       776      4344  15% /cache
    /dev/block/mmcblk0p2    505636      2307    477224   0% /sd-ext
    /dev/block/vold/179:1
                           7431564   5413644   2017920  73% /mnt/sdcard
    /dev/block/vold/179:1
                           7431564   5413644   2017920  73% /mnt/secure/asec
    /dev/block/dm-0           3124      1504      1620  48% /mnt/asec/com.google.android.stardroid-1
    2
    Exactly "" means only use the text between the " symbols
    Like this attachment

    echo means copy
    > /sdcard/mtdpartmap.txt shows location to put file
    1
    Reserved

    Just in case
    1
    Interesting :D

    Nice work.
    1
    Official CustomMTD download link: click here.
    I think only version 1.5.6 works perfectly with BravoC.