Unless I am mistaken, over the last two years I have flashed and run every major ROM for the HTC EVO 4G, EVO 3D, and EVO 4G LTE. There are plenty of great ROMs out there for each of these phones, but each one seems to be missing something minor that makes the ROM not quite the perfect ROM for me. There are ROMs out there that are so close, but that one little missing or malfunctioning feature is like a crack on your windshield – you can’t help but notice it.

So, here’s a list of some things that have to be in a ROM to make it the perfect ROM for me. If someone’s got all of these in one place, let me know, as I haven’t found it yet.

There are also some things near the end I want added that haven’t been invented yet, so this is a wishlist that is probably unfulfillable yet. I’ve also thrown in a few things I want done distribution side, because I’m way too picky and impossible to please.

Exchange HTML email enabled

HTML Email in Exchange is something I first saw on MeanROM back in the OG EVO/EVO 3D days. It’s been carried over to MeanROM for the EVO 4G LTE and makes reading HTML emails possible. As it stands, if you connect to an Exchange server with the default mail client on most ROMs, you only see HTML source, no formatting or images.

Exchange Security Bypass

If you work for a very small company with an Exchange Server, chances are the IT department is someone who is not incredibly Exchange-proficient. The smaller the company, the more likely that they’re not going to dig through the manual to figure out why your phone requires you to enter a lock-code if you’re going to use Exchange.

While the obvious answers are “don’t use Exchange,” or “get a better IT team,” the fact remains that it’s far easier to just disable that requirement on the Android side.

Landscape Rosie

All the code for landscape mode on the stock launcher is built into Rosie. Several ROMs have this as an option now.

4 X 5 Rosie Mod

There’s a lot of wasted space on the home screens, but the 4X5 Rosie mod allows for an additional four icons to be displayed without cramming or looking unusual. The mod is out there now, but I haven’t noticed any ROMs with it built in yet.

Zeus Mod-style quick settings menus

In most Sense ROMs in the pulldown menus there’s usually a Notifications and a Quick Settings tab, along with the carrier name and a clear button. Zeus mods clean that up significantly.

Multi-tasking fix

I’m not sure what the deal is with Sense 4.0 (and to a lesser extent 3.6,) and multitasking, but it doesn’t work terribly well. The available memory seems to be eaten up and the items in recent applications usually have been terminated if you’ve done anything fun at all.

Although I’m betting the degree of difficulty in fixing this one is a lot higher than the others, it does mess with a phone experience when you’re in the middle of one window, get a text message, go to answer that, and come back and the application has to reload.

Over/underclocking in ROM

While I do not see much point in overclocking at the moment, as the phone’s already blazing fast and the drain doesn’t match the performance gain, underclocking results in significant gains in battery life in some situations. Your mileage may vary, of course.

Theme Everything!

Give the user the ability to create, save, and share themes across ROMs, whether this is in-ROM or as a separate download. It seems a bit antiquated that theming generally involves flashing something that could crash your ROM or put you into a bootloop. If I just want to change the GPS logo to a picture of the Terminator’s metal skull, this doesn’t seem like it should require flashing, rebooting, etc.

Disable HTC SmartSync (EVO 4G LTE)

I’d like to have my WiFi functioning at night. If I’m out with friends in a cell-less bunker of a bar in Nashville with WiFi, chances are I’m going to pop open GrooveIP or something to get calls, and I’d also like to receive texts via Google Voice, letting me know where the party is headed.

Slide-to-Wake

No mod has ever given me the joy that sliding to wake up and to put to sleep my EVO 3D did. The feature was incredibly useful for saving the power button and also just looked cool. Unfortunately it requires a compatible kernel, which I do not think has been made for the EVO 4G LTE yet.

Fast Charge Mod

Another kernel-level development I liked was the Fast Charge Mod. In kernels that support it, it allows you to override the limitation of only drawing 500mAh when plugged in to a computer. When the Fast Charge Mod is engaged, you can pull up to 1000mAh off of a computer connection.

The drawback is you cannot sync data or mount as a disk drive, but if you’re just looking to charge your phone your computer is more than capable of pushing an amp out to your phone.

This is also useful if you have a bad charger that insists it’s a computer connection and not a charge-only device.

Flashlight

I’ll admit, it surprises me when I don’t find this in ROMs now.

Ability to uninstall everything

I do not know why some ROMs prevent me from uninstalling Swype so that I can install my beloved Swype Beta, but they do. If you’re running a custom ROM, chances are you know what you want to uninstall. Sure, leave some things locked, but most of them need the ability to go.

I also don’t use the stock Voicemail apk, as I use Google Voice for my voicemail. But it’s running there, eating up 8-12MB of RAM, and it is un-uninstallable. RRRR!

Titanium Backup

For some, changing ROMs is a chore done only when they can’t live with the ROM any more. As a flashaholic, I’ve got it down to the average ROM life being two or three days now, and the process for switching between them is always the same:

Reboot into recovery, make a nandroid backup of my current ROM, factory reset, wipe system, install new ROM, install Titanium, boot.

With the Aroma-based installers, now that means I’m probably going to have to reboot back into recovery, or download Titanium from the Play Store, which I generally do not want opened until I have my base travel tools with me.

Interoperability between ROMs

After you’ve installed a couple hundred ROMs in a year, you’re going to notice something: They all have the same setup.

I boot the new ROM, connect to my wireless router, enter the password, enter my Google username and password, enter my Facebook username and password, enter my Exchange username and password and domain and settings, enter my Twitter username and password, and done. After this, I extract my tools via Titanium and get to work playing with a new ROM.

It seems there should be a format and a packaging option to take your account settings from ROM to ROM at time of ROM setup. “Oh, we see you have TravelPackage on your SD card, which contains Facebook, Mail, and other settings. Would you like us to set these accounts up for you?”

An explanation of the tweaks

Every ROM claims to have tweaks. Please explain them and allow me to disable them to see how much better it runs now than it did without the tweaks. Too many people throw that term around, and attempting to compare is impossible. It’s also freakishly good advertising for the ROM developer. “My tweaks rule, your tweaks drool.”

ROM-side nandroids

Windows and Mac have these great features where you can restore your computer to a previous time. They take snapshots of the operating system and if something goes wrong, you can revert your system to one of these snapshots.

Well, most people who flash ROMs don’t make Nandroid backups every day, and there’s not a whole lot on your phone that actually changes from one day to the next so you might not think you need to.

Working within the  new format that ClockworkMod is pushing, a ROM could push updates into the Nandroid blobs pool. making snapshots as often as the user wanted without ever having to reboot. Seems like a ROM that has the ability in a pinch to revert back to a couple of days ago so you can make a phone call would be a user-end godsend. Not happy with your progress in some game? Revert back to an hour ago.

Emergency mode

You’re going to brick your phone some day, or your ROM is going to screw up whether it’s custom or stock, or you’re going to do something that just downs it for a couple of hours. While I don’t think everyone flashes ROMs as much as I do, I was running Sense 3.6 and had to dial 911. The phone would not dial. It did after a reboot, but something went wrong.

Sometimes your phone isn’t going to work with whatever you’ve done to it. In my case I was running a modded Sense 3.6 ICS ROM that was having issues with something.

Seems there should be perhaps a separate AOSP phone application that can be booted from recovery or the bootscreen – something that pops up during the logo that says “press here for emergency call” and launches a known-good dialer and minimal emergency ROM.

I’m not claiming this is something that every ROM needs, but I think it would take some of the weight off of ROM developers and would give the users of said ROMs a lot more safety.

Patched Wallet (EVO 4G LTE)

While seeing “this device is not supported” is not the end of the world, it’s an indication that the ROM is missing a minor patch that several ROMs have delivered successfully. Just an annoyance.

Incremental OTA updates

OK, these are two separate things, but let’s be clear about what I want here. Incremental updates means if I’m on XROM-1.1 and the author changes two text files, I want an update that will download those text files and install them, not a 700MB download, for which I have to check the MD5 sum to verify it’s not going to crash halfway through the install.

There’s a certain ROM developer out there, and I absolutely love his work, but he’s releasing three versions of the same ROM a week, it seems. Imagine if you got each one of these, that’s 2.1GB/week that you’re downloading.

OTA: over the air. With smaller incremental updates, you can reasonably consider that you could download these via 3G. If there are just some bugfixes, something should pop up, notify you, download and execute a script to update what is needed. Large files can be patched rather than re-downloaded.

Free distribution channels

This is a pet peeve of mine. Any ROM developer can host a ROM for free if they want; it just takes setting up a torrent server, which is free. As the current distribution model stands, if you want a ROM, a developer has to upload it to a host, then everyone attacks that host and watches their advertising or sees the banners saying “support the site’s bandwidth costs, etc.”

Here’s a better way that gets you the data you need and costs the developer nothing: the ROM developer finishes the ROM, generates a magnet/torrent link, and gives that out. People who want to help just leave a torrent client running on their computers, and they’ll be part of the bandwidth participation. If there’s something horribly wrong with the ROM and it needs to be removed immediately, the host of the torrent can just simply yank it.

You’re no longer seeing a popular ROM taking longer to download due to thousands of people wanting it; you’re seeing the popular ROMs being the fastest to download due to everyone seeding the torrent.

You’re also no longer limited to the speed of the server, nor the legal problems that server hosts may encounter (I’m thinking of MegaUpload), nor internet conditions in one part of the world. You’re also no longer a drain on a developer by downloading; you’re a boon by seeding.

CyanogenMod did this when CM9 was released, as their servers couldn’t handle the beating.

**************************

I think that’s about it for now.

What are your wishlists for ROMs and ROM development? What did I miss, and what did I get wrong?