[Sprint HTC EVO 4G LTE] mikeyxda:
Yeah, good advice. I'm going to add a short blurb in the OP about exactly what you should expect to see when s-on and flashing 4.0 for the first time. Basically, when it gets to the "flashing kernel" part, it takes 4-5 minutes for that and then it says kernel will be installed on boot. Then when you click reboot, it shows the MeanROM boot animation with the letters rotating just for a few seconds, that'll freeze, and then it reboots once more and you're done: kernel flashed. BTW, because the kernel is unchanged (only the ramdisk has been changed in the boot image), the only way you can tell if the new boot image took is to turn around and reflash 4.0 a second time. If it flashes really fast, you're golden. Haus's kernel installer checks your boot image before trying to flash it and if it matches the one you already have, it knows it doesn't even need to flash it! It's really slick. I think Haus should be given some new level above recognized developer for that... maybe "recognized god". :D

On the dialer, I noticed quite a few of you saying "booted and no dialer... yay". That's good. But after about 40 hours working on that issue alone, what I've gleaned from my work is that booting to the dialer cannot be eliminated, only reduced, so you will still see it occasionally. That's why I didn't even mention booting to the dialer in my change log even though I believe most will find a massive improvement with that in 4.0. Hopefully now, for almost everyone, if it happens at all it'll be reduced to only the first boot after flashing a new ROM update, tweak, or mod. All I can tell you is that with 4.0, it'll be more scarce: like stock. With 3.5 through 3.9, it came up quite a lot and I think most people would see it at least occasionally. With 4.0, some won't see it at all and for most others, it'll be a once-in-a-blue-moon thing. It does help to let the phone boot completely: all the way until the screen turns off and then a couple minute more. If you do that, the dialer should really be a rare thing.

A lot of the 40+ hours I spent on it was in testing other setups, other ROMs, going back to stock RUU, and what I found was that I could make every ROM including the stock 2.13 RUU boot to the dialer if I fiddle futzed with it enough. With combinations of clearing cache/dalvik in TWRP and then rebooting in different ways (sometimes via "Reboot", "Power Off" and other times with "Reboot", "System"), I could eventually get any ROM I tried to boot to the dialer at least on occasion. Sometimes when I thought I'd found a ROM/combo that wasn't doing it, I'd try something a little different like instead of restarting or powering off, reboot to the bootloader and then power off from the bootloader menu. Then hit power to turn the phone back on and that would cause it. Some took a dozen reboots and there was no rhyme or reason as to when it'd happen or what combo would cause it. Others (like MeanROM 3.9) would do it almost every time you cleared cache/dalvik. I tried a shatload of combinations to try to make it more/less frequent, removing Google Now, taking certain apks back to stock: SystemUI, Settings, some framework files like android.policy.jar, services.jar, deleting the post boot script entirely (and still having the problem) etc. and it was wildly inconsistent, proving it was not any specific code causing it. The only thing that was leading me toward more success was freeing up more memory. Once I started decompressing and zipaligning some key apks (mostly the larger ones and ones I knew started on boot), the problem started getting really hard to reproduce. Moving a few apks from /system to /data made a slight difference too.

But the biggest difference was decompressing and zipaligning the apks. With the original apks (from 3.9, compressed with apktool), it'd boot to the dialer quite frequently, especially if you clear dalvik/cache and force it to rebuild on boot. Just decompressing the innards of a half dozen apks and zipaligning them reduced the dialer-on-boot problem by I'd say 75%! Keep in mind that both sets of apks (original compressed and the decompressed versions) are bitwise identical inside: every file in the apk is identical. Only difference is the mx0 compression (no compression) that made the difference. So clearly the boot-to-dialer problem is memory related. Changing the OOM priority of com.htc.launcher as I did at first in 3.9 had some effect but you've got to boot with enough memory or I believe the system is coded to show the dialer if it believes it doesn't have enough memory on boot to load the home screens, wallpaper, and parse all the widgets (which it does BTW whether you have any widgets on your homescreens or not).

Anyway, now you know where I've been for 3 days. :cowboy:

Mike