[HTC One Mini] dipje:
This worked for me because I apparently had the right device (right CID). Since we can't change CID without s-off, I was lucky. Also, I was on the 4.4.2 3.10 firmware I believe from an official OTA, but to be honest, I have no clue. Since I'm s-on I could only have installed official firmware files from OTA packages, so I guess I was on hboot 2.21 from the start. Just FYI.

If your CID is not in the list of supposed devices for these OTA updates, you're **** out of luck. At least, as far as I know, I'm not all knowing and only got into flashing my mini not too long ago. My CID is HTC__E11 and that _is_ in the list of supported CIDs for these OTA packages (and the 2.12 international rom we start with). That might be something to check first if you start down this path.

Do yourself a favour, try installing the firmware from OTA 3.10 (it's in the instructions below, you need to relock your device first, try to flash it by reading the fastboot commands, then you can htcdev-unlock again).. If that 'takes' and works OK, you're in the right CID list :).

REMEMBER, ALL OF YOUR /DATA (including internal storage) WILL BE GONE!!

(because htcdev-unlocking does that, and to install an official firmware package we have to relock and then unlock again afterwards... If I'm wrong about this, please let me know :)).

Anyway, yes I've used "Stock2.12.401.1Odex(tr1gg3r84).zip" as a starting point (http://xdaforums.com/showthread.php?t=2575766).

Then get the 3.10 OTA from http://xdaforums.com/showthread.php?t=2722370. Or, once you have 2.12 booted up let it download the OTA package, but _do not_ execute it. Once downloaded it should be in 'Download' in your internal storage/sdcard. Transfer it to your PC.

Install TWRP 2.7.1.1, then use it to flash tr1gg3r84's 2.12 as is. Start it up, do as minimal setup as you can, make sure you disable fast-boot in the power options (to be sure) and I always enable USB debugging first. (google how to do it if you don't know, it's a sort-of hidden option these days).

Then, relock your bootloader. Go to the bootloader menu and choose fastboot if you have to (hold vol-down while restarting / booting up).

From your PC, use the command line 'fastboot oem lock'. In the command line it will do some stuff (and read error at the end, don't worry) and your device should reboot automatically. After it is booted up, go to the bootloader / fastboot _again_, and this time give the command 'fastboot oem rebootRUU'. Your device should restart quickly to a black screen with a small white HTC logo. Give the command 'fastboot flash zip firmware.zip'. That firmware.zip file is the file that is _inside_ the 3.10 OTA, so you need to extract that first.

If correct, it will start doing stuff and a green bar will slowly fill up. It will _NOT_ reach the end. In your command-line window it should say it completed OK.

Ok, so now we have a 2.12 rom installed with the 3.10 firmware installed. Unlock your device again through htcdev.com, and install TWRP again.

If all is OK, you should be able to flash my modified 3.10 patch (http://clients.maxx-traxx.eu:8080/tmp/xda/mine3.10.zip)

I hope the bandwidth will be OK for that server, if it will be too much I have to upload it somewhere else.

That's what I used in the end, and should be able to install it without problems.

How I created it: The only file from trigger84's 2.12 rom that fails to MD5 check is the modified '/system/bin/app_process'. So I took the file from another 3.10 full dump (the 3.10.401.4 one from trigger too) and placed it inside the /system folder of the extracted OTA update. It will be copied automatically. I removed the lines from the updater-script that try to verify and patch /system/bin/app_process, but left the 'setting permisions' alone. Then I removed all the CID-checking from the start of the script (TWRP can't do that apparently) and removed all the 'fota' stuff from the end ( no clue what it is). Also, remove the lines that try to transfer the firmware.zip package. And as I said, fixed some unmatched mounts/unmounts. With that I mean everytime /system is mounted, it should be unmounted first before trying to be mounted again. The script tries to mount /data multiple times and only unmounts it once or something, and that tends to fail on TWRP.

I've attached my updater-script if you want to check it out and try to do it yourself. Compare the differences between mine and the original in the OTA to see what I mean.

You can delete the fota*** files and the firmware.zip from the OTA package, rezip it (properly, take care of the folder structure, ahem ) and try to flash it.

In the end, it should update OK, and since you already were on the firmware from 3.10, it should boot up OK like normal, _IF_ we flash the correct kernel. So before booting up 3.10 (it will bootloop if you try, no big problem) go to bootloader-fastboot mode again, and give the command 'fastboot flash boot boot.img'. The boot.img is the file that is inside the 3.10 Firmware.zip. The 3.10 should now boot up OK.

So, now you're on 3.10 ROM with 3.10 firmware (notice, 3.10.401.6, not the .4 version). Now, we're gonna install the stock 3.10 recovery again.

Take the 3.10 OTA extracted firmware.zip, and take the recovery.img out of it. Go to bootloader-mode again, and use 'fastboot flash recovery recovery.img' to install it. You now have your stock 3.10 recovery installed, but are still htcdev-unlocked. Start the ROM again.

A software update should be available to 4.09.401.3. Let it download, and let it execute. It should work without any problems, and your phone should reboot a couple of times.

At the end, after Sense6 is up and running, you can go into bootloader-mode again, and flash TWRP again, and use TWRP to flash the SuperSU update package to get root. (Because we're still unlocked, we don't have to do the htcdev-unlock thing this time).

Remember, your /system/bin/app_process file is not stock for sure, and there might be other files. The 4.09 OTA update (Sense6) just doesn't touch those files so it runs without modification, but with a next OTA we might not be so lucky and might have to modify the OTA package again. Do yourself a favour and make a backup of your current /system layout (I guess TWRP can do it), and yourself another favour by also making a backup of the /data/preload folder as it is now. Those files can be hard to come by later on, and if you ever do the htcdev-unlock thing again, they are gone (/data is wiped). Use a root-file-explorer app or something to copy the /data/preload folder to your sdcard/internal storage. Then copy it your PC and zip it up, label it preload-eu-4.09.401.3.zip and keep it safe :).

This is not the most noob-friendly guide, but then it isn't intended to be. People who've been fighting to get s-off should know most key-shortcuts, fastboot and adb commands by now :)