[28th Jun][AOSP] INT2SD, a new D2EXT method (added CM 7.1 and 22.214.171.124 INT2SD-S)
Progress update and INT2SD implementation request form!
With holidays starting, and more free time on my hands, I've decided to revive this project. Having my hard drive fail on me recently, and losing the request log, it has become obvious that I need a new system of handling requests, and it is here. If you have requested a ROM before, please send a request again, via this form.
Please submit all further requests via this form!
This is the INT2SD thread for AOSP ROMs and their developers and users.
INT2SD thread for Sense ROMs
This is INT2SD, a new method of achieving D2EXT.
It is meant for developers who wish to implement this functionality in their ROMs, since, due to the nature of the method, there is no way
of making a flashable .zip which would be universal and work on most ROMs (yet?).
What differs this method from the old ways is that it uses no symlinks whatsoever.
INT2SD mounts an SD ext partition directly to /data, and this requires making changes to the boot.img, hence why universal flashable zips are not an option. The real userdata partition is mounted on /realdata and used for the e2fsck log.
Sorry for the link downtime, there were some critical bugs which I did not have time to fix. Therefore I took my time and added symlink checks, fixed fsck and more.
INT2SD-S - "Speed" (default as of 29th Jun)
- /data on SD ext, /data/data on internal
- /data/data limited to 280 MB (probably enough for more than 100 user apps)
- noticeably faster on slower cards
- for use with CM7r2 HBOOT
The new "speed" flavour mounts ext to /data and userdata to /data/data, achieving great speed while still retaining excellent storage capabilities. It's used with the CM7r2 HBOOT. This is now the default flavour, offering great speed while still being able to hold a hefty amount of apps.
INT2SD-M - "Mass" (discontinued)
- /data on SD ext
- number of apps is only limited by ext size
- requires a faster card
- for use with fatsys HBOOT
The classic "mass" flavour mounts ext to /data, thus eliminating the need for the mtd5 userdata partition. It has proven to be slow even on some of the faster cards. Due to INT2SD-S being able to hold a very high number of applications, and still being much faster, this flavour is discontinued.
For users: How to get this in your favorite ROM
For ROM developers: How to get this implemented in your ROM
Please fill out this form.
For now, no. You may submit requests, but I won't be able to fulfill them for a while. I have quite a lot of real life work on my plate, not to mention a list of Desire ROMs I have to tend to. After that's done, I'll be happy to try blind-porting it to whichever device you wish, but my priority are Desire ROMs, primarily because it's a lot easier to implement INT2SD into ROMs for a phone I already have.
Universal update zips
Also, no. Each ROM is different, and due to the nature of INT2SD, it is simply not possible to make a one-for-all universal update zip. Every ROM requires tending to its peculiarities, especially Sense ROMs, and I would rather not take the change of trying to make one and end up with a flashable bootloop zip.
Why don't you just publish instructions on how to implement INT2SD for devs to use?
Originally Posted by Proz0r
You can take a look at the modified ROM and you will find 3 new files in /system/etc, dalchk, fsck and sleep. These files are executed by init.rc because of my modifications to it. You can also decompile the boot.img and use a tool such as diff or diffuse (a GUI for diff) and check the differences between it and the unmodified init.rc from Alex's standard, D2EXT ROM. However, his ROM required another init.d script to move weather animations to /data, and modifications to the updater-script to flash everything that would normally be flashed to /data, to be flashed to /sd-ext. Sounds simple enough, right? Well, it's actually not quite as simple. When I have first implemented INT2SD to CyanogenMod 7, all I had to do was edit a few lines and add those three scripts. There was not a single ROM (and there are a few unreleased ones which I've worked on) to which I could apply a "standard" procedure. Each ROM required further modifications on its own and being the one who devised INT2SD, I know what I should look out for in order to avoid catastrophical bugs. ROM developers do not. This is why I do NOT offer support for "homemade" INT2SD implementations. Every ROM has its own peculiarities that need tending to and INT2SD implementations need to be very flexible to allow the ROM to work in conjunction with it. Sure, everything could go great, but INT2SD is extremely easy to implement horribly wrong and have huge bugs and even unbootable systems, and without knowing what the dev did to put it in their ROM, it is next to impossible for me to troubleshoot and fix. It would probably end up with me having to implement it myself either way in most cases and having angry developers and possibly users on my hands being pissed at me for doing a bad job and releasing a ****ty product, when the problem was just a typo in init.rc. That's why I have not nor will I release instructions for devs on how to implement it themselves.
Pick your ROM featuring INT2SD, download it and flash it. You only need 1 ext2/3/4 partition. Due to /data/data being on the SD, a high-class card is recommended. Due to Gingerbread AOSP ROMs generally being pretty small, there's still quite a lot of unused space left on /realdata, to which I plan symlinking the /data/data directory so that INT2SD plays nice with lower-class cards too.
Remember to flash Google Apps, available here, if you opt for CyanogenMod.
All zips are signed for your convenience.
Flashing other kernels on top of these ROMs should work, though it hasn't been tested. If you try it, please let me know how it went.
EDIT: Seems there are people spreading false information on how this should be installed due to their own misunderstanding of my post. While I thought the instructions are simple enough, it seems they are too simple and do not describe the process. So, let me clear this up once and for all:
THE ROMS HERE ARE FULL ROMS THAT ALREADY HAVE INT2SD IN THEM.
THESE ARE NOT ADD-ON ZIPS.
Meaning, if you wish to use CM7 with INT2SD, just download CM7 from here. It is actually full CM7, along with INT2SD. So, the process is as follows:
- Make a backup of all your apps
- Download the full CyanogenMod 7 Stable ROM with INT2SD here
- Do a full wipe
- Flash it
- Flash gapps
- Restore your apps
Thanks to Ante0
for hosting the files!
INT2SD implemented in:
CyanogenMod 7.1.0 Stable INT2SD-M (Download
CyanogenMod 7.1.0 Stable INT2SD-S (Download
CyanogenMod 126.96.36.199 Stable INT2SD-S (Download
GingerVillain 3.3 INT2SD-M (Thread
GingerVillain 3.3 INT2SD-S (Thread
(not included in CyanogenMod)
It's compatible with Titanium Backup, here's how TB sees it:
- providing me with the first Sense ROM to implement INT2SD in
brabo, GShellz admin
- huge help with bash scripts implemented in the ROMs
- a base ROM for implementing the method in
- suggestions, help with HBOOTs
- massive assistance as well, kicking me to try and realise the main idea and for coming up with names "INT2SD" and "fatsys"
- help with compiling/decompiling the boot.img files and his excellent guides on FYA
- massive assistance, ideas on the reboot bug and hosting
- making GingerVillain which now has a version featuring INT2SD
- pointing out a huge typo and saving me multiple hours of pointless work
- a kick in the arse I needed
... and everyone else in the #villainrom IRC channel for help and mental support! Thank you all, and everyone I forgot to mention (PM!).
Disclamer: I'm not responsible if something goes wrong and wreaks havoc upon you, your phone, your card, any part of your phone, your friends, your family, your close or distant relatives and/or your pet, but I will gladly provide assistance if it does.