[LG Optimus 4X HD] UIQrules:
Kind of in the same boat, just three meters further out. Have been putting off buying a new pho.... embiggened touch-pad device with phone capability and less battery life, that should in a reasonable world come with a carrying case with a shoulder-strap, and a stock portfolio for the handset maker... for a few years. But finally caved in, and bought something on sale with a really good screen, a replaceable battery, and a 3,5mm jack not made exclusively out of conductive rubber.

But. Now that I had a new phone pad, I wouldn't have to worry about bricking my old phone. All that much. So I went through a bunch of excruciating testing and failing yesterday to get something without ram-crippling bloatware and google applications that essentially force the 4x to run constantly at max speed.

What I seemed to be running into was two types of problems: a lot of the roms (custom firmware) were made by someone who was simply testing something new at the time, experimented a lot, and then left the project behind (or simply focused on other handsets). That's not necessarily a problem, but it can mean that you have stability issues you might not expect, and that has not been tested or reported while the project was active. And that might actually stop you from getting far enough to install some app that changes cpu-governor, ram-handling, and so on (even things like the standard keyboard/language variant.. kind of essential that that works). Install instructions also tend to link to outdated bootloaders, or have workaround suggestions that worked at the time, but now are obsoleted completely. The second problem was the OpenGapps - some of the core apps conflict with the builds' own apps.

And then there's the fact that the kernel in these roms tend to be from when the project was last maintained. I can't seem to decipher exactly what's going on, but I think a lot of the early roms were based on an old kernel with inserts (like the original one from LG). While the older builds on new kernel branches tend to have better support, but then have certain types of functionality simply gone completely. I don't know why that is, but the experience with this on linux laptops and android devices is what made me hold off until I had something that could replace the 4x before starting to try out some of the experiment builds people have.

So I went through getting the bootloader unlocked, trying a billion different methods before realizing they were all workarounds for the non-eu handsets - just use the oem-unlock method with fastboot. It's really as simple as it sounds. Use the "all in one" thing on the forum, set up the drivers, get root, and things like that - and then install a new, updated bootloader. I think after one of the official LG updates, everyone can actually use the oem-unlock.

Then I chose the wrong bootloader, apparently.. the cwm touch thing - superb bootloader. But apparently has some quirks that prevents it from installing certain firmware packages. I think it has something to do with consistency checking. I liked the idea of a multiboot, and didn't see why that wouldn't be extremely easy on android (with a storage size vs. cfw package being basically infinite to naught). But apparently what you want(need) is the twrp bootloader, and it has to be the last version. I don't know why that is, but you really don't want to be stuck - after basically wrecking your only boot - with an uninstallable image on your sdcard. So if you try something else than the "best one", just be prepared for an exit strategy with a backup and things like that before trying to install new images. There's also no way on these bootloaders to simply run a test first, nor is there a very easy way to partition the on-phone storage without having to start configuring install packages, so this is kind of awful if you're not actually deep into the development toolchains already.

I'd really love it if some of the tutorials said things like: our build really doesn't need a thorough wipe, and you can happily choose the file system you'd like, and the one that actually makes sense. For example. Or "for this cfw, you can just install gapps later on, that's going to work perfectly - don't force the install before you get through our own intro stage", etc. Alas.

Then I went through slimkat, an aosp lineage based rom, an old 4.1 rom, a new 5.1 rom, which all had different game-breaking problems. One refused to install gapps (note: you'll need the gapps that fit with the android version - but some packages simply won't install, period), another build had no sound other than on the speaker. One hanged randomly, another didn't scale the processor cores.

The good news is that this isn't really a problem - once you're set up you can just keep wiping and installing new ones. But it might be a really good idea to make a backup of your initial rom/custom firmware, just in case (i.e., you root, install the bootloader, and once you're in the bootloader, you make a backup of your current "rom" that is installed now. Then you can just revert to that without any problems later. I obviously didn't do that, because I was just fumbling around).

Some of the issues I ran into also might have workarounds, but I don't know - how would I, there's no way to actually tell what the problem is, or what it's related to. The most useful ones in the end seemed to be Vanir 6.0-based, and the one I ended up with, something called Euphoria on lollipop/5.1. That one seems to have all the hardware functions and benefitting a lot from a later kernel. I haven't done incredible amounts of testing on it yet, but it seems to work a lot better than the original firmware ever did.

And when you choose a gapps package, just go with the pico version. You can install everything you need after that from the store (and it takes less time than pre-installing the infinite amounts of crap in the stock package).

In sum - while you can get pretty far with the 4x on just rooting it and uninstalling some of the infinitely memory-hogging google crap, along with installing a new governor for the cpu and things like that. You can actually get something extremely neat by installing a new "rom"/cfw, that doesn't necessarily have the "oh, but you just have to forgo feature X, Y and Z because open source" problems.

I'm sure a cfw-developer is going to see this one day and roll their eyes back in their heads. And will have some very sharp words about the kind of effort that went into making a specific kernel, insert and build combination to even boot. But the later kernels seem to work really well.

And thanks to that Euphoria thing, I'm probably not going to use my new padphone-thing as much as I would. Because that one is over the "just testing stuff, getting it to work" stage. There's things with the home-button bar lighting up when there's notifications, things like that, that kind of show someone who used the handset was maintaining the build.

Anyway - I really recommend that you try out some different types to find these really good roms that works well. I'm sure there are lots of unknown cfw packages out there that work.. you know, for the 300 people who use it every day. That might be some of the early cfw variants with old kernels. And it might clearly also be some of the new ones, which I really didn't expect. Honestly, was kind of expecting stripes across the screen and hangs, but that didn't happen.

Optionally, a dev who actually knows what they're talking about could maybe suggest a list of cfw that have the later kernels that work, or the same kernels that Euphoria has :) Really, trying to search the net now, and find possible candidates was not easy.