[2016.05.22][GUIDE] Firmware Flashing [Current: 6.20.502.5]

Search This thread

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
Post_Header_Sneakyghost_FIRMWARE.png


General Information

Since all M8’s can have S-Off, (and ONLY if you get S-Off!) we can also update the Firmware without the need of HTC’s OTA’ or RUU, yet the stock update way will still remain the safest way. Stick to that if you don’t have reason to come here and choose this.

Read from top to bottom. No skipping stuff or you will be confused.

There are a few Firmware flashing threads and lots of zips and instructions out there. My goal here is to help you learn and understand an established, known to be safe path to update firmware. I will try to provide some comprehensible info. If you find more vital informations, please share and i will add it here.

The safest way is still HTC’s RUU and OTA system, yet HTC is not providing RUU’s for the international version, however, US Carrier RUU’s can be accessed via HTC’s US ROM download Site. Select your Carrier at the top and jump right down to your carrier section - usually, there will be a RUU for Dev/Unlocked (1540), Sprint (651), Sprint HK (654), AT&T (502) and T-Mobile US (531). RUU’s are superior to other flashing methods because they carry a tested combination of partition images and the method itself is also known to work well. Also, RUU’s do always reassure users that there is a guaranteed and safe way to go back. If you happen to get access to an international RUU, share it with Alex or me please. RUU’s are hosted on androidruu.com by Alex within a short time after being made available to him. Hit him up on Twitter with a link and ask him to add it or send it to me and i will! I added some WWE/Europe RUU’s here which i repacked myself. They behave like official RUU’s, signed and for S-ON users. Since HTC doesn’t really want them published, i don’t link them in the OP, they are “unofficial” and can be found with search by the term “RUU” here.

Other than that, we are mostly stuck with RUU components, usually OTA packages. OTA’s usually depend on a certain Firmware version to be already installed, OTA’s only update parts - they are “incremental”. If you happen to skip an update, you might not get all partitions updated correctly and end up with incompatible partitions, which might (worst case scenario) lead to a brick. I am trying to circumvent this problem with my FULL ZIP or FUU packages - with these you can safely jump from a very old firmware right up to the newest.
The second reason for my thread is that i am trying to do more documentation than usual in order to help you learn how to safely flash firmware.

There are 3 main methods to flash Firmware, which are technically the same (the actual flash is always carried out by the hboot, but the way to get there can be different). I will cover 2 methods. My “automatic” (FUU) approach (simulating HTC’s RUU) and a manual (RUUMode ZIP) approach. The third method, placing a firmware.zip on the SDcard is already covered by @skulldreamz over HERE.



I will cover GSM PHONES ONLY - no cdma / sprint firmware except when i wish to do otherwise :D


Method #1: The FUU
More convenient, automated, hence user friendly way to flash firmware. What HTC uses. Less reliable, several extra sources for errors.
How this works:
First thing to do: HTC Sync Manager. Please install, then remove again and leave ONLY drivers! The RUU/FUU was written in Visual C++ 2008 x86 - my installer should install that for you starting with FUU version 3.28.401.6. If it doesn't, just manually install it first to avoid the ARUWizard failing to launch with error "side-by-side configuration....".

What to know about the FUU’s (& ZIP’s)

General Info:
The FUU is the flashing technology HTC uses. I call it “FUU” because its not a ROM Update Utility (i don't deliver system.img) - it’s only a Firmware Update Utility for us (read HERE to understand the difference between "Firmware" and "ROM"). So i will update the FUU only when HTC does and provide one (empty) FUU download. Place this wherever you want your working directory to be. I suggest to use “C:\Android\com” because this is where i work. Might make following my instructions easier. I will also provide the ZIP’s as self-extracting FUU versions. Using those, you won’t need the empty structure

So, once you have downloaded and extracted the FUU to its place (I will give you a self extracting archive that sets up the FUU for you in the path mentioned above), you can then begin to download fastboot flashable zips.
To get them flashed, simply drop them into the FUU folder (C:\Android\com) and then run the FUU, which is the ARUWizard.exe (double click that one, make a shortcut to your desktop for convenience).

IMPORTANT RED, BOLD AND UNDERLINED
Whenever you drop a new zip into C:\Android\com, make sure you delete ALL OTHER ZIP’s before running the ARUWizard.exe! Plus, rename any zip you intend to flash to “ROM.zip” (small or CAPITAL doesn’t matter) to make sure a new zip overwrites an old one. So, in order to have a proper flash, have just ONE rom.zip in the “com” folder!

Now, on to what I provide here:
- FullStock Wipe ZIP/FUU: this type of zip also re-flashes the /data partition with HTC’s DZDATA files (meaning you lose everything on your internal SDCARD). Also replaces the Kernel, Ramdisk, recovery and Splash1 with latest stock images! The /system partition will not be touched. (Else this would be a RUU, not a FUU). Phone will NOT boot after using this! Be sure to put a ROM onto your EXTERNAL SD before proceeding with a FullWipe ZIP! Else you can also ADB push a ROM in recovery mode after fastboot reflashing a recovery.
- Combined NoWipe ZIP/FUU: this type of zip updates basic firmware partitions, does not touch the /data partition, leaves kernel, splash and ramdisk alone. Recovery will be replaced with current TWRP.Phone will boot normally after using this.

And what you won’t get here (fine print):
Since this is a (F)irmware (U)pdate (Utility) and not a (R)om (U)pdate (U)tility, you do NOT EVER get a ROM (a.k.a “System.img” or plain: “System” here. You understand and agree that you cannot have this from me. You also acknowledge that i cannot be blamed for your non-booting phone due to you not reading or not understanding this.


Method #2: Fastboot/RUUMode ZIP’s
Instead of using the FUU, you can of course flash those zips manually as well. It eliminates a few error sources by reducing complexity and is more reliable. BUT it requires ADB and Fastboot knowledge!
Prerequisites:
You need ADB and Fastboot on your PC and instead of using the Google SDK Tools from HERE you should (from Software versions 4.20.xxx.x and up) use my Android Tasks Batch script collection, which sets up the HTC versions of ADB and Fastboot in the path “C:\Android\com”. Info in Post #3. Or alternatively the HTC One Tool from @squabbi which also offers driver downloads and recovery downloads (handy shortcuts!).
To learn to use ADB and Fastboot, please use search, many guides available..​

Step-By-Step:
1. If device is booted into Android, reboot into bootloader by running:
Code:
adb reboot bootloader

1.a Or else, if your device is in a different state or you just prefer the button method:
Press Power for 15 seconds and hold Vol UP at the same time, when the screen and charging LED go dark immediately slide your finger down to Vol Down until you see the bootloader screen. Notice: First VolUp, then VolDown as soon as the screen goes dark (and you hear the windows connection sound if your phone is hooked up).

2. Now place the Firmware_xx.zip into your adb/fastboot folder (which will be "C:\Android\com" if you use my Task Script).

3. Now run:
Code:
htc_fastboot oem rebootRUU

4. Followed by:
Code:
htc_fastboot flash zip Firmware_xx.zip
(replace "Firmware_xx.zip" with the name of your zip)

5. Now check the console output. It should approximately look like this (this is from GSM International 3.28.401.6 FullWipe):
C:\Android_M8\com>htc_fastboot flash zip rom.zip>>log.txt
sending 'zip'... (100436 KB) OKAY
writing 'zip'... (bootloader) zip header checking...
(bootloader) zip info parsing...
(bootloader) checking model ID...
(bootloader) checking custom ID...
(bootloader) start image[hboot] unzipping for pre-update check...
(bootloader) total_image_number=21

(bootloader) start image[adsp] unzipping & flushing...
(bootloader) [RUU]UZ,adsp,0
(bootloader) [RUU]UZ,adsp,11
(bootloader) [RUU]UZ,adsp,22
(bootloader) [RUU]UZ,adsp,32
(bootloader) [RUU]UZ,adsp,43
(bootloader) [RUU]UZ,adsp,54
(bootloader) [RUU]UZ,adsp,65
(bootloader) [RUU]UZ,adsp,76
(bootloader) [RUU]UZ,adsp,87
(bootloader) [RUU]UZ,adsp,98
(bootloader) [RUU]UZ,adsp,100
(bootloader) [RUU]WP,adsp,0
(bootloader) [RUU]WP,adsp,100
(bootloader) ...... Successful
(bootloader) current_image_number=0

(bootloader) start image[boot] unzipping & flushing...
(bootloader) [RUU]UZ,boot,0
(bootloader) [RUU]UZ,boot,11
(bootloader) [RUU]UZ,boot,30
(bootloader) [RUU]UZ,boot,49
(bootloader) [RUU]UZ,boot,59
(bootloader) [RUU]UZ,boot,71
(bootloader) [RUU]UZ,boot,83
(bootloader) [RUU]UZ,boot,95
(bootloader) [RUU]UZ,boot,100
(bootloader) [RUU]WP,boot,0
(bootloader) [RUU]WP,boot,99
(bootloader) [RUU]WP,boot,100
(bootloader) ...... Successful
(bootloader) current_image_number=1

(bootloader) start image[dzdata] unzipping & flushing...
(bootloader) [RUU]UZ,dzdata,0
(bootloader) [RUU]UZ,dzdata,10
(bootloader) [RUU]UZ,dzdata,15
(bootloader) [RUU]UZ,dzdata,23
(bootloader) [RUU]UZ,dzdata,30
(bootloader) [RUU]UZ,dzdata,38
(bootloader) [RUU]UZ,dzdata,46
(bootloader) [RUU]UZ,dzdata,54
(bootloader) [RUU]UZ,dzdata,61
(bootloader) [RUU]UZ,dzdata,69
(bootloader) [RUU]UZ,dzdata,77
(bootloader) [RUU]UZ,dzdata,84
(bootloader) [RUU]UZ,dzdata,92
(bootloader) [RUU]UZ,dzdata,99
(bootloader) [RUU]UZ,dzdata,100
(bootloader) [RUU]WP,dzdata,0
(bootloader) [RUU]WP,dzdata,10
(bootloader) [RUU]WP,dzdata,28
(bootloader) [RUU]WP,dzdata,39
(bootloader) [RUU]WP,dzdata,47
(bootloader) [RUU]WP,dzdata,54
(bootloader) [RUU]WP,dzdata,62
(bootloader) [RUU]WP,dzdata,69
(bootloader) [RUU]WP,dzdata,77
(bootloader) [RUU]WP,dzdata,83
(bootloader) [RUU]WP,dzdata,88
(bootloader) [RUU]WP,dzdata,97
(bootloader) [RUU]WP,dzdata,100
(bootloader) ...... Successful
(bootloader) current_image_number=2

(bootloader) start image[hboot] unzipping & flushing...
(bootloader) [RUU]UZ,hboot,0
(bootloader) [RUU]UZ,hboot,51
(bootloader) [RUU]UZ,hboot,100
(bootloader) [RUU]WP,hboot,0
(bootloader) [RUU]WP,hboot,99
(bootloader) [RUU]WP,hboot,100
(bootloader) ...... Successful
(bootloader) current_image_number=3

(bootloader) start image[pg2fs_spcustom] unzipping & flushing...
(bootloader) [RUU]UZ,pg2fs_spcustom,0
(bootloader) [RUU]UZ,pg2fs_spcustom,23
(bootloader) [RUU]UZ,pg2fs_spcustom,45
(bootloader) [RUU]UZ,pg2fs_spcustom,67
(bootloader) [RUU]UZ,pg2fs_spcustom,88
(bootloader) [RUU]UZ,pg2fs_spcustom,100
(bootloader) ...... Successful
(bootloader) current_image_number=4

(bootloader) start image[recovery] unzipping & flushing...
(bootloader) [RUU]UZ,recovery,0
(bootloader) [RUU]UZ,recovery,7
(bootloader) [RUU]UZ,recovery,18
(bootloader) [RUU]UZ,recovery,29
(bootloader) [RUU]UZ,recovery,35
(bootloader) [RUU]UZ,recovery,42
(bootloader) [RUU]UZ,recovery,61
(bootloader) [RUU]UZ,recovery,66
(bootloader) [RUU]UZ,recovery,73
(bootloader) [RUU]UZ,recovery,81
(bootloader) [RUU]UZ,recovery,88
(bootloader) [RUU]UZ,recovery,95
(bootloader) [RUU]UZ,recovery,100
(bootloader) [RUU]WP,recovery,0
(bootloader) [RUU]WP,recovery,99
(bootloader) [RUU]WP,recovery,100
(bootloader) ...... Successful
(bootloader) current_image_number=5

(bootloader) start image[rpm] unzipping & flushing...
(bootloader) [RUU]UZ,rpm,0
(bootloader) [RUU]UZ,rpm,100
(bootloader) [RUU]WP,rpm,0
(bootloader) [RUU]WP,rpm,100
(bootloader) ...... Successful
(bootloader) current_image_number=6

(bootloader) start image[sbl1-1] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-1,0
(bootloader) [RUU]UZ,sbl1-1,100
(bootloader) signature checking...
(bootloader) [RUU]WP,sbl1-1,0
(bootloader) [RUU]WP,sbl1-1,100
(bootloader) ...... Successful
(bootloader) current_image_number=7

(bootloader) start image[sbl1-2] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-2,0
(bootloader) [RUU]UZ,sbl1-2,100
(bootloader) signature checking...
(bootloader) verified fail
(bootloader) ..... Bypassed
(bootloader) current_image_number=8

(bootloader) start image[sbl1-3] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-3,0
(bootloader) [RUU]UZ,sbl1-3,100
(bootloader) signature checking...
(bootloader) verified fail
(bootloader) ..... Bypassed
(bootloader) current_image_number=9

(bootloader) start image[sbl1-4] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-4,0
(bootloader) [RUU]UZ,sbl1-4,100
(bootloader) signature checking...
(bootloader) verified fail
(bootloader) ..... Bypassed
(bootloader) current_image_number=10

(bootloader) start image[sdi] unzipping & flushing...
(bootloader) [RUU]UZ,sdi,0
(bootloader) [RUU]UZ,sdi,100
(bootloader) [RUU]WP,sdi,0
(bootloader) [RUU]WP,sdi,100
(bootloader) ...... Successful
(bootloader) current_image_number=11

(bootloader) start image[sensor_hub] unzipping & flushing...
(bootloader) [RUU]UZ,sensor_hub,0
(bootloader) [RUU]UZ,sensor_hub,100
(bootloader) ...... Successful
(bootloader) current_image_number=12

(bootloader) start image[sp1] unzipping & flushing...
(bootloader) [RUU]UZ,sp1,0
(bootloader) [RUU]UZ,sp1,26
(bootloader) [RUU]UZ,sp1,50
(bootloader) [RUU]UZ,sp1,75
(bootloader) [RUU]UZ,sp1,100
(bootloader) [RUU]WP,sp1,0
(bootloader) [RUU]WP,sp1,100
(bootloader) ...... Successful
(bootloader) current_image_number=13

(bootloader) start image[tp] unzipping & flushing...
(bootloader) [RUU]UZ,tp,0
(bootloader) [RUU]UZ,tp,100
(bootloader) ..... Bypassed
(bootloader) current_image_number=14

(bootloader) start image[tp] unzipping & flushing...
(bootloader) [RUU]UZ,tp,0
(bootloader) [RUU]UZ,tp,100
(bootloader) ..... Bypassed
(bootloader) current_image_number=15

(bootloader) start image[tz] unzipping & flushing...
(bootloader) [RUU]UZ,tz,0
(bootloader) [RUU]UZ,tz,100
(bootloader) [RUU]WP,tz,0
(bootloader) [RUU]WP,tz,100
(bootloader) ...... Successful
(bootloader) current_image_number=16

(bootloader) start image[wcnss] unzipping & flushing...
(bootloader) [RUU]UZ,wcnss,0
(bootloader) [RUU]UZ,wcnss,23
(bootloader) [RUU]UZ,wcnss,46
(bootloader) [RUU]UZ,wcnss,69
(bootloader) [RUU]UZ,wcnss,92
(bootloader) [RUU]UZ,wcnss,100
(bootloader) [RUU]WP,wcnss,0
(bootloader) [RUU]WP,wcnss,100
(bootloader) ...... Successful
(bootloader) current_image_number=17

(bootloader) start image[radio] unzipping & flushing...
(bootloader) [RUU]UZ,radio,0
(bootloader) [RUU]UZ,radio,9
(bootloader) [RUU]UZ,radio,18
(bootloader) [RUU]UZ,radio,27
(bootloader) [RUU]UZ,radio,36
(bootloader) [RUU]UZ,radio,45
(bootloader) [RUU]UZ,radio,54
(bootloader) [RUU]UZ,radio,63
(bootloader) [RUU]UZ,radio,72
(bootloader) [RUU]UZ,radio,81
(bootloader) [RUU]UZ,radio,86
(bootloader) [RUU]UZ,radio,95
(bootloader) [RUU]UZ,radio,100
(bootloader) trying to rename MBA
(bootloader) [RUU]WP,radio,0
(bootloader) [RUU]WP,radio,36
(bootloader) [RUU]WP,radio,72
(bootloader) [RUU]WP,radio,100
(bootloader) ...... Successful
(bootloader) current_image_number=18

(bootloader) start image[rcdata] unzipping & flushing...
(bootloader) [RUU]UZ,rcdata,0
(bootloader) [RUU]UZ,rcdata,100
(bootloader) [RUU]WP,rcdata,0
(bootloader) [RUU]WP,rcdata,100
(bootloader) ...... Successful
(bootloader) current_image_number=19

(bootloader) start image[emmc_fw32] unzipping & flushing...
(bootloader) ...... Successful
(bootloader) current_image_number=20

OKAY
Flash Zip Complete

C:\Android_M8\com>

Important: the flash process halts at around 75% to 90% on phone screen! This is normal and a safety precaution! The last few percent is the reboot, which is NOT happening automatically, so you get a chance to check the console output to make sure it is safe to reboot! The bar will only fill up to 100% once you type:

6.
Code:
htc_fastboot reboot-bootloader

FUU general errors:
- FUU quits right away, says “side-by-side configuration wrong or missing” : install Visual C++ 2008 x86. Also .NET is required but build into later windows systems, might only be an issue on old windows.
- Any other FUU crash is hinting at the same issues (at least what i have seen). Make sure your Visual C++ is ok.
- FUU errors with numbers (FUU launches, starts, then throws an error number): please see below.​

RUUmode/ Fastboot Error handling strategies:
IF IT SAYS "FAILED" do not immediately reboot the device If you reboot with a FAIL It could brick! If no flash is being accepted you have to find out what is causing the malfunction before rebooting your phone. Keep it alive while trying to figure out the error. It might be your cable, your USB ports (don’t use hubs! Always direct-mainboard connections), it might be USB 3.0 which is not good yet, it might be bad configuration of your ADB and Fastboot...
The least dangerous FAILED messages are listed below and are safe to reboot (below this section you find CRITICAL errors, please observe):

Safe to reboot / Flash didn't happen Errors (if you encounter one of them, you can just reboot. Nothing changed):

- 12 signature fail (unknown yet but safe to reboot)
- 23 parsing image fail (means something wrong with the image in the zip)
- 24 android-info fail (means something wrong with android-info.txt in the zip)
- 32 header error (means the zip couldn't be read and unzipped properly)
- 41 Wrong Model ID (means it's not the right device)
- 42 Wrong Customer ID (wrong CID means you gotta swap CID first as explained below)
- 90 hboot pre-update (means it only flashed hboot and you have to run the process again immediately to flash all other partitions WITHOUT a reboot in-between).
- 99 UNKNOWN usually indicates you are S-ON, sometimes other Security related issues.
- 130 wrong model ID (seems it's the same like 41, just that it shows in the FUU as 130.
- 155 seems to indicate different things. It can mean: 1.) You need to relock bootloader (If S-ON); 2.) You cannot run the RUU/FUU because the software versions of ROM, Firmware and RUU/FUU don’t match.
- 170 Check USB - FUU won’t run because of not working ADB.​

In fact, if it aborts before the "(bootloader) start image[hboot] unzipping & flushing..." line it actually didn't write anything and you can probably just reboot. If you see it flashing stuff though (the stages after that line) and then it stops with a FAILED, chances are a little higher that something is now broken. In that case do NOT reboot but do as i said above.


For Error 12 “signature fail" do:
- might indicate that a signed firmware package is required. This would only happen with S-ON phones though.

For Error 23 "parsing image fail" do:
- change image names in the zip to stock image names like “hboot.img" or “radio.img" or whatever failed there....

For Error 24 "android-info fail" do:
- check that your ZIP isn’t some HTC OTA or anything thats got no android-info.txt - those cannot be flashed with fastboot flash zip nameof.zip command.
- check that your zip has a good MD5 and is not broken, check android-info.txt etc...

For Error 32 "header error" do:
- Sorry i haven’t found the exact cause yet and don’t know a definite solution.
- Make sure there is only one . (dot) in the filename, before the extension. fastboot reads anything after the first dot it sees as the extension. If that is not zip, it fails.
- If that doesn't help, you can also try: make the zip new with recommended settings, re-run the command, check your connections...

For Error 42 "Wrong Customer ID" and: 41 "Wrong Model ID" do:
Code:
htc_fastboot getvar all
Read that output, take note of your CID and MID and then edit the "android-info.txt" in your firmware.zip accordingly (For Wrong MID change the MID in the text, for wrong CID add your CID to the text).

Alternative method for MID and CID errors:
go SuperCID. Do:
Code:
htc_fastboot oem writecid 11111111
You can change back to any desired CID after a successful firmware flash. Notice: this command only works on S-OFF phones (which you have already of course or else you wouldn't be here).

For “Error 90 hboot pre-update..." do:
- Run the same flash command again which you just ran (press arrow up on your keyboard to get to the previous command in console)
- Don’t reboot in-between! (It wouldn't brick you but it would just make you run the flash command twice again)
- This might be caused by the newer encrypted RUU's, they need their hboot to be flashed first so it can then decrypt the rest of the ROM.zip. Look at an encrypted ROM.zip from a RUU, you will notice that you can mostly extract the hboot without decrypting the ROM.zip, but you can't extract much else.)

For “Error 99 UNKNOWN" do:
- Check with other zip’s if they work!
- Check if your S-OFF is correct
- You are S-ON? Then almost definitely this means the ZIP is not signed - get an unmodified zip!

For “Error 130 wrong model ID" do:
- Please refer to Error Code 41/42.

For “Error 155 relock bootloader" do:
- Since my thread works only with S-OFF phones anyway, this error can be read as: you need to S-OFF first!
- Error 155 can mean that you need SuperCID. On a few occasions this was shown when the RUU/FUU refused to run because of a wrong region lock.
- Lately, Error 155 has occurred when a FUU was launched from within android. When encountering a FUU error 155 with the process stalling after the rebootRUU (stuck at black screen with silver HTC logo), please just restart the FUU and leave the phone in that mode, or reboot the phone, then reboot to bootloader, then do “htc_fastboot oem rebootRUU” and then launch the FUU again (thanks @anarchychris for pointing it out).
- run the fastboot command “htc_fastboot oem lock" - only applies to S-ON phones that want to update the firmware with a stock OTA package (not offered on this thread!!). Stock OTA files sometimes need a locked bootloader.

For “Error 170 Check USB" do:
- Sometimes shown when running a RUU or FUU. Indicates issues with drivers. One way to solve is to run the ARUWizard with the phone already in Fastboot mode. Else you will have to re-install HTC Sync manager. Also, avoid USB 3 ports (the blue ones) - they have a complete new driver stack and that doesn't work well currently.​

NOT safe to reboot / Flash (partly) happened Errors (if you encounter one of them, DON’T reboot:

- 152 Image Error - Phone Screen shows a little triangle beside a full green bar​

For “Error 152 Image Error" do:
- Error 152 is quite rare, have seen it only once with a friend’s phone and it aborted the flash nearly at the end. The flash was started by the FUU. We could resolve the matter by NOT rebooting the phone and flashing the zip again through a manual fastboot flash as outlined further up.​

I usually test all of these zips on my own device, still, you flash at own risk. You're writing to critical parts of your phone. If anything goes wrong along the way, you might be bricked.


DOWNLOADS

ALL DOWNLOADS FUU AND ZIPS
*notice: here you find all other ZIP and FUU downloads.​

Recent additions​
  • M8_6.20.502.5_ATT_FullStock
  • M8_6.20.502.5_ATT_NoWipe_TWRP3020
  • M8_6.20.531.5_TMUS_FullStock
  • M8_6.20.531.5_TMUS_NoWipe_TWRP3001
  • M8_6.12.1540.4_DevEd_FullStock
  • M8_6.12.1540.4_DevEd_NoWipe_TWRP3001

Credits

I have lost track of my firmware sources. I am sorry i cannot name you guys all. The most common source would be @LlabTooFeR and HTCDev and some others. If you find your stuff here and want to be included in the credits please contact me. I am very grateful for everyone busy providing dumps and direct leaks.

Further i would like to express my deepest gratitude to team venom, who aren't only good friends but also let me use their graphical stuff as base for my own stuff. Thank you!

One helpful person, @O.M.J, posted one of the very first M8 RUU’s for Sprint - i originally based my first M8 FUU’s on that, so he be mentioned here as well. Thanks mate!

Last but not least and probably the holy grail of the HTC Modding Scene: the guys behind Firewater, Sunshine, and all the other S-OFF methods, currently i believe mostly @beaups and @jcase - Thank you so much!
Donations
I am never asking for donations, yet i decided to put up a donation link in the past, because people asked if they could donate to me. It does happen once in a blue moon. The nicest thing that has ever happened to me was a device donation. I feel forever humbled for that. I don’t know how to repay that debt of honor.
However, there is one thing i would like everyone to not do: PM me and promise a donation, get my help and then don’t live up to your promise. Why?
Even though i am never asking for a donation, i feel very happy when someone donates a small buck towards my hobby. I really do feel appreciation if i can buy myself a beer and think: i have earned myself this by helping someone. So, if someone hits me up private and says “I’ll donate something to you if you help me with this seriously overwhelming issue” i usually think “hell yea, poor bastard, i’ll help ya! (and maybe i can get my next beer for free). Then nothing comes in return, not even a thank you.


That REALLY hurts.

Disclaimer
You are aware that writing to the security protected partitions increases your risk to lose the device exponentially. You understand and agree that i cannot be held responsible for such or any other damages. The flash process is theoretically safe and tested on various phones at time of posting, however you are the brains behind the wheel and you are solely responsible for the execution of the process. I will not accept any responsibility. The method itself is developed by Google and HTC, i only provide access and information to it and you execute it.

You understand that you should not do it if you are not willing to accept this risk.
 
Last edited:

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
[2016.02.28] BatchTool Command collection

Post_Header_Sneakyghost_BATCH.png

The "Batch Tool" script - a thing i am using for myself since the OneS days and which i am sharing just because i have it. It is neither good nor special, but its the way i work and people who follow my instructions might find it easier to use the same setup as i do.
It has the RUU/FUU included. I don't even use the FUU as a standalone myself. I have the structure in C:\Android\com and just exchange the zip's in there - so i have this and drop the zips i offer as download.

Since everything i do basically works out of the C:\Android\com path, all my zipped-up stuff extracts to that location. The FUU, the Batch Tool and the self-made RUU repacks as well. This enables easier and faster creation of new zip’s.
If you prefer to work from a different location. you can specify a different path in the installer. However, the batch scripts do not adjust automatically, which means if you use another path, you might need to open up the scripts in an editor and adjust some paths manually.


Preview:
c9ucmi7-XmRLpWuf-8Kzs9b7qaGKx_0MLmA92eRjG91qptfuuEqJYuhEFjJ8t-8rEXAk2puog-ekVcS_kSbQLd6T6XTX3WsY4SE_4npAmtU5l75FX47lKGUSQaaQH1RHPtgQetiAtzJRO4K-Wv9Mj3-ZbOnXyk5jDz_6SOIUTWsT2j0sw3ibuFSX2263GzjuAqeQwyra-h5KpWum0-_Cb85DTOjcZtmkhWmBODU3osfjOcK5KqyeGuFGY-PzCeMrAoIdIUGNP6s0QHj52ca8AvNeqmqHDGKx23dShc1v9VdyYK03vIZUCPh8pDVdYouUBjEWH4kLljsx2_dm-prY7W-UFS2c9OfyrQHgehoQlLm-5AidXnhViAomE0eldhY8sh0i717Rpyd-Al2ErUOqqU9ofsYLYTlcRgDTlUyyeOK86RxyjKLI-G_7uanykcksrJ8hsxsosv3ImMUqdUl0_K-cSh5Z56Iv59ivkYKymA1Cjo8kKRBZ5HIt8Wu3GftNe8DHI-GucjiGp6R-i7hhGu0jXqGJ7fhYXSBEMIOCI92KXDfHRIFpTCYNA-t92-VpWUqAIg=w728-h681-no


DOWNLOAD
MD5: f2a4eaa67a291d1d16a238ec943eb595​

The installer is just a simple WinRAR self extracting archive - there is NOTHING BAD in there i swear! Open it with WinRAR 5 and look inside. You will see if you don't trust me.

Changelog:


  • 1.2.7
  • Updated TWRP to 3.0.0-1 and Stock Recovery to 6.12.401.4
    1.2.6
  • Added TWRP Recovery 2.8.7.0 (All M8 devices)
  • Added Stock Recovery 4.16.401.13.img (WWE)
  • Added newer RUU structure (3.0.4.2015 - from 4.20.531.5 TMUS RUU) - should now support MM ROM.zip’s from newer RUU’s as well.
  • Fixed my screenrecorder command. Dumb people shouldn’t write batch scripts :(
    1.2.5
  • Added TWRP Recovery 2.8.5.2 from Captain_Throwback (All M8 devices)
  • Fixed Recovery Screenshot option (20)
    1.2.4
  • Added newer RUU structure (2.0.16.2014 - from 4.16.1540.8 Dev Edition RUU)
  • Added Stock Recovery 4.16.401.10.img (WWE)
  • Changed the License and SFX texts again (Installer) - never happy with it.
    1.2.3
  • Fixed some serious crap nobody reported. I just found out myself.
  • Added Stock Recovery 4.16.1540.8 (sorry still don't have the WWE recovery, but i guess they are identical)
  • Added TWRP 2.8.4.0 from the M8 tree of Dees_Troy.
    1.2.2
  • Added Stock Recovery3.28.401.7
    1.2.1
  • Added Microsoft's vcredist_x86_2008_SP1.exe to the installer because the ARUWizard is build on the x86 Visual Studio 2008 runtime. This resolves the "side-by-side configuration" error.
  • Added 3.28.401.6 stock recovery and splash
  • Added newer RUU structure (doesn't do any difference though, just keeping it up to date)
  • Added TWRP 2.8.0.3 (it still has slight issues with MTP which will be fixed soon but for now, this is good enough)
  • Changed a few lines in the script (minor, cosmetical stuff)
  • Updated the INFO PDF (option 24)

Currently not working:
- Screenshot (option 20) only does TWRP and Android 5 and lower, but not Marshmallow. I have to write up a new script with two different methods as Marshmallow does not allow the framebuffer to be pulled via ADB anymore. At least I can't see how. In TWRP however, only the framebuffer method works.
 
Last edited:

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
Splash Screen Generator, Partition Layout, Regional and CID Codes

Post_Header_Sneakyghost_OTHER.png


Splash Screen ONLINE generator by @touch of jobo : http://xdaforums.com/htc-one-m8/themes-apps/mod-customize-boot-splash-online-splash-t2817059 - VERY nice tool to generate recovery flashable splash screens on any browser!​

Epic Internal SDCard File Recovery guide by @Wartickler : http://xdaforums.com/galaxy-nexus/general/guide-internal-memory-data-recovery-yes-t1994705 - VERY handy to have occasionally. Bookmark it for future reference :D

Broken Internal SDCard File System Recovery Method found by @smeejaytee and made easier by TWRP, described HERE

Universal SIM Unlock for S-OFF'ed HTC Devices thanks at @smeejaytee for letting me know. HERE (thread by @JEANRIVERA)​

WWE (and other) RUU leaks courtesy of @djluisbento. HERE
 
Last edited:

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
General Information

Flash Process Output:
There are a few steps in the flash process which are not really straightforward but i can maybe explain some of them here,so you can better understand what is happening:

sending 'zip' means: fastboot is sending zip over to client (here referred to as “remote”)
OKAY [ 2.839s] means status of sending was good. Transfer succeeded.
writing 'zip'... means the zip is being written to some location on the phone from the /temp location.
(bootloader) zip header checking... means the zip header is being checked for validity, see if it’s a real zip file.
(bootloader) zip info parsing... means most likely a check on the file hashes in the zip (integrity check - if the zip is borked, it will fail here)
(bootloader) checking model ID... The bootloader checks if the android-info.txt contains the right MID. If it fails here you gotta swap out your model ID in the android-info.txt file.
(bootloader) checking custom ID... The bootloader checks if the android-info.txt contains the right CID. If it fails here you gotta swap out your Customer ID in the android-info.txt file.
(bootloader) start image[hboot] unzipping for pre-update check... means the bootloader is now unzipping the [hboot] image. This line will be repeated before every image that is to be flashed.
(bootloader) start image[hboot] flushing... means the bootlaoder is now beginning to flash the [hboot] image.
(bootloader) [RUU]WP,hboot,0
(bootloader) [RUU]WP,hboot,99
(bootloader) [RUU]WP,hboot,100 these three lines read [RUU] for what mode fastboot is in, WP for “Write Partition” for what is currently being done in RUUmode, “hboot” is the name of the currently flashed partition, number xx is a percent stage of the write process.
(bootloader) ...... Successful means the final status is successful.

Now, before the [RUU]WP,hboot,xx line we often see another line reading [RUU]UZ,radio,50 for example. That reads RUUmode is currently unzipping the Radio.img and at stage 50 percent. UZ means UNZIP.

If you see something like this:
(bootloader) start image[sbl1-1] unzipping & flushing...
(bootloader) [RUU]UZ,sbl1-1,0
(bootloader) [RUU]UZ,sbl1-1,100
(bootloader) signature checking... means it is checking the signature of the partition if it matches the expexted signature stored in the hboot.
(bootloader) verified fail means the signature in the image did not meet expectations.
(bootloader) ..... Bypassed means the image got skipped because its got the wrong signature.

This has to be interpreted like this: there are multiple “SBL” images, to be exact: type 1 has 3 variants and type 2 has only one variant. Of type 1 (“SBL1-x”), two get skipped, one gets flashed (see my log above), of type two (“SBLx”) both get flashed. I believe, SBL 2 and 3 are device independent, but SBL1 has three variants, of which only one fits the current device. So, depending on the device you have, you will see either SBL1-1, SBL1-2 or SBL1-3 being flashed and the other two subtypes being skipped (bypassed).
The same goes for the "dzdata" images in the firmware package. They come in three size flavors (16, 32 and 64 GB) and resemble the file structure of the /data partition. Depending on your model, only the one with the right size gets flashed, the others skipped.

Important to understand: nearly all FAILED messages that do NOT occur while [RUU]WP (write partition) should be considered harmless. Only a FAIL during a write operation will most likely result in a damaged partition. All other fails will probably leave the original partition intact and thus the device can be rebooted. So far my understanding.

General hints for RUUmode zips
- Opening a zip is best done with 7zip as WinRAR has lead to flash fails in the past.
- Choose low compression, higher compressions often fail. Pick "save" or "normal" to be safe, anything higher could cause the unzip in Bootloader to fail.
- Adding and Removing images is not a problem. The naming of the partition images seems flexible, yet if you encounter an “Error 23: parsing image fail” you need to rename the relevant image to something stock as not all names seem to be recognizable. The hboot determines the right partition from the header inside the image.
- Additional dots in zip file names are known to have caused issues for a few people.
- Spaces in names are a no-go!
- Custom Recoveries can be added to those zips as well as custom kernels or hboots. In fact, if your phone is S-OFF, you can hex edit any partition and flash it. Be sure you know what you do though lol. I am just pointing out the possibilities. I am NOT saying it is safe!
- With S-ON, those zips only flash if they weren't touched at all. In case of a ROM.zip from a RUU, it also needs to still have its encryption. Whenever you unzip and rezipor add/remove stuff, the package won't flash anymore with S-ON, no matter how hard you try.

General hints for android-info.txt
- Use an Editor that doesn't mess up linebreaks like Windows Notepad does. Use Notepad++
- MID’s can be added one per line. Also supports wildcards i think e.g.: 71******, but i’m not sure.
- CID's can easily be added or removed- one per line, definetely supports wildcards (used by HTC in DevEd phone)
- Mainver line: should be the version of the most current images, e.g if you combine older and newer files, add the MainVer from the newest. Format 2.22.401.5 (2= Base version always increases by 1 with each android base version rise, 22= Build version from HTC, 401= Regional/Customer identifier, 5= Revision of the HTC Build). This line is being written to the /misc partition and is thought to identify the whole phone firm/soft version - its not meant to only describe firmware or base alone. Those parts always belong together. My opinion: run Firm/Soft always from the same revisions. Try to avoid a mismatch between ROM and Firmware and never mix firmware components.
- hboot pre-update line: usually says anything between 1 and 12. I think they determine if hboot-preflash is required (when you get “Error 90 - please flash image again immediately” this is when the hboot needs to be flashed separately first and then the rest... [Item subject to change]
- btype:1 not clear. [Item subject to change]
- aareport:1 Since HTC hboots come as "hboot_signedbyaa” i would read this as "aa" being htc ("hboot signed by aa") and aa report meaning report to htc if 1.
- Delcache means erase cache when rebooting. Simple. Some hboots seem to need it, some don't. Line is not present in every android-info.txt. If you mess with a zip that contains the line, leave it active.

RUUmode:
is the mode used for RUU flashes by HTC. It allows a few more things than the normal fastboot. You recognize it by looking at the phone’s screen. It will be black, showing only a silver HTC logo and if a command is being active, a green progress bar.

DD method bricking risk:
In 2013 there had been a series of TWRP recoveries that have had issues flashing ROMs on a few HTC devices, mainly Aroma based issues. It's possible though that the one brick i saw on the Ville from flashing a hboot in recovery was related to flashing it in recovery as i am not sure that the ROM flash fails are only Aroma based fails. I am rather sure that the method recovery zip’s most often uses to write an image file to NAND is not 100% bit correct and can cause trouble (This is the “DD” method). Due to the nature of this DD method, it can happen that single bits are flipped, which equls a corrupted hboot. That will manifest in a full brick with the next reboot. While that isn't really that likely to happen (we had one on the Ville Forums within a year which happened while flashing a hboot in recovery), it still is a noticeably higher risk than RUUMode flashed hboots. It is desirable to have a safer method. There is a command for recovery “write_image” employed by HTC but i haven’t worked out how to use it and how it actually works and whether or not it is safer. So i decided to just stay away from recovery zips/DD flashes.
Apparently the zip flash executed in RUUmode utilizes a different write technique and is safer (It most likely is the same as “write_image” in updater-script ;) ).
Please be aware though that this is an assumption. There is no real proof for this as we haven't gotten comprehensive documentations of HTC's stuff here. Anyway, this is the reason why i don't offer recovery zips. Even though it is perfectly possible to flash it in live android (using "dd if=/somedir/yourhboot of=/dev/block/mmcblk0p12") or recovery i prefer this method simply because i am sure it is safer.

JTAG with a RIFF Box
Every device of these days has so-called jtag test-points. Basically, these are points on the mainboards, where a direct connection to the main chip can be established and then that chip can be read and written to with an external device. Sometimes, these testpoints are hidden (like they are normal contacts of the chip) and no direct visible gold points on the board. It always takes a while after a device is released until the jtag layout is fully discovered but once that is done, companies like multi-com.pl start manufacturing small boards with pins that can be pressed onto the mainboard, so no soldering to the device is required. Once such a board exists, the mainboard can be hooked to the RIFF box which can rewrite a dead chip from the outside.
As long as there is no such small board (called a "JIG") the phone can still be revived but it is necessary to solder hair-thin wires to the test-points. That is perfectly possible, @Tecardo for example can do such a thing, but its not very good for the board and cannot be done very often. At some stage the solder points will degrade so much that the board is garbage then.
In case you really brick your device, you can contact Tecardo here: http://xdaforums.com/showthread.php?t=2116062

S-OFF: Firewater versus Sunshine
Firewater: it's free although the tools used to find the exploitable code and create software to actually exploit it are insanely expensive, so consider a donation towards the creators. They bought the tools from their private money and invested hundreds, if not thousands of (unpaid) hours. Firewater only works on a limited set of HTC One M8's but works on M7's and more.
HTC managed to close some open hole that Firewater needed to get to the exploitable code, so with the later M8's, Firewater doesn't work at all anymore.
Sunshine: costs $ 25 USD, is heavily automated and also, its secret ingredient is guarded well now so HTC might not close this hole in the rabbit fence as fast.Well, lets hope so. And DON'T moan about the money. As already stated for Firewater, the guys went to great expenses to get you this hack and currently, there is no one else capable of doing this. So, zip it. Period. Sunshine is nice and easy to use. I have very much respect for this method. Totally awesome to use.
Thanks to @beaups and @Fuses - they done a brilliant job, we’d have nothing without them.

Notes on the currently available hboots
Currently nothing particular on the HTC One M8 Hboots. So far, they all have been doing the same, no differences noted. The GPE hboot is probably responsible for the System Partition reformatting, which is the most interesting bit i know. I know that Fuses will come up with some customized, engineering-style hboots at some point. So watch his space. They will probably appear on the Firewater-S-OFF site when available.

MID and CID and regional number in the software version
MID = Model Identification. It serves the purpose of identifying the Model of your HTC Phone and can, but does not necessarily, describe different hardware. T-Mobile US, Sprint and Verizon have their own Model ID's, also the china variants use different MID's. The international GSM phone and Tmobile share the same hardware though. Sprint seems to have identical hardware but strong software differences which don't allow for cross-flashing firmware. Verizon has a different partition layout and possibly different hardware. It is NOT compatible with international/GSM MID firmware.
CID = Customer ID, describes, for which customer HTC made this phone. HTC has a few own CID's for its regional stores. Then certain carriers decide to have their own CID.
So, while the MID more like describes the hardware, the CID basically just describes the software set that comes delivered with it (features and bloatware). Both get checked on when flashing in RUUmode. How to trick this system? Fairly easy. Just add your respective MID or CID to the android-info.txt file inside the ZIP, or even easier, boot to fastboot and write SuperCID to your chip (fastboot oem writecid 11111111). SuperCID will make any flash ignore both CID and MID.
SKU = This is the number in the Software Version number that describes for which market/customer combination the update is, i believe the combination of MID and CID gives the SKU. It's the 3-digit part right here: x.xx.401.x. I have a list of all CID's, MID's and SKU's in post #4.
They are not yet sorted according to which goes with which (nearly impossible task) but its a nice overview nonetheless.


Signature on the hboot and other partitions
In the Phones Firmware is a component that checks if certain partitions have a digital signature from HTC and deny read and write access if the signature is wrong or missing. The checking component is known to be the Security, which can be set to OFF. Then we say the phone is S-OFF.
For some partitions like the splash screen, it might not lead to a brick if you set security to ON while a custom splash is installed, as this partition is not vital for the boot process, it might just be skipped. System, recovery and boot do not have a signature at all. The HBOOT however does have it and i am sure Partition 3, which controls the Security flag, has it too and maybe some others like the secondary bootloader.
You guys have to understand that altering any of these partitions is deadly to your phone if you happen to leave them altered when switching security back on.

Determining your “Firmware Version”
I believe there is some wrong info circulating the HTC Fora. People keep saying when running fastboot getvar all it will report the Firmware Version in the line “Version-Main” or when looking at the "OS" line in bootloader. This is not always true though. Fastboot getvar all or alternatively getvar mainver pulls a version it finds in the MISC partition and relies on that to be correctly updated. Source
So how does that version string get updated? It is being read from the android-info.txt file in any firmware zip that you flashed. The last zip you flashed determines what will be reported by the getvar function. So if you mess around with Firmware.zip’s and RUU’s a lot, chances are, that the version reported there is not equivalent to what you are already running. Often the android-info.txt has version entries not appropriate for the actual zip contents, for compatibility reasons, because it wasn’t done properly or whatever. My zips have the correct android-info.txt with them always and will always provide a correct entry.However, TWRP has a bug up till version 2.7.1.0 which deletes this info upon first and every consecutive boot, so you will NOT have this info at all when running that TWRP.

The "Firmware" as a concept like we use it on XDA does not exist in HTC's terms. HTC does NOT differentiate between the /System Partition (what we know as "the ROM") and the other 46 partitions. Hence, if you run getvar all or getvar mainver on a stock phone, it will report correctly. It does not go looking for a fictitious place where it would find a separate "Firmware" version. That place it is looking at is the Misc Partition and that’s correct as long as you haven’t messed with lots of different Firmware zips... So, if you happen to run a hybrid system with a ROM from one base and the other partition images from another base or multiple bases (like hboot from 1.12, radio from 2.22 and ROM from 1.54) the getvar function will report as "Version-Main" what it finds in /misc/, precisely the last zip you flashed determines the string put there.

Example: you flashed a radio with a RUUmode zip from Base 1.54 but the android-info.txt is maybe still an old one from 1.12 because the dude who made the zip, just dropped the new radio into an old existing zip, the getvar function will later report that old 1.12 version as your MainVer.

To check your firmware: boot to bootloader and look at the combination of hboot version and radio version - if you didn't flash those separate, the combination will let you know what base you are on (each OTA and RUU has the radioversion in its name).
Finding out your firmware is a game of guesses and knowing what you did to your device and where you are coming from.

If totally lost, best thing is to reflash some clean stock package to be sure you are on the same level with all partitions.

Long story short: you better know what you do because finding out your firmware is going to be difficult if you don't.

Further reading
- to be updated

Related/ “Like” stuff
- to be updated




The original M7 thread
 
Last edited:

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
Notice for interested users, the first Firmware pack and FUU have now been flashed to my phone without any hiccups and i think they should be safe to flash.

Successive files will be added only after testing. These ones i needed to get working links so i had them up before flashing. Sorry.
 
Last edited:

n1234d

Senior Member
Aug 18, 2013
1,375
483
Mumbai
Google Pixel 6a
Notice for interested users, the first Firmware pack and FUU have now been flashed to my phone without any hiccups and i think they should be safe to flash.

Successive files will be added only after testing. These ones i needed to get working links so i had them up before flashing. Sorry.

Is it possible to make an FUU from the partitions dumped with your partition dumping script? I have 1.56.720.6, M7_UL but M8q instead of M8n. Still waiting on my replacement unit, because my first one went into a bootloop which I could't recover from. Fingers crossed that I get s-off on the replacement with firewater, l do not have access to a credit card. Back to my point, I think the model is different, although all the roms that I had tried worked, MID is 0P6B65000. Also, last year, @crushalot created a custom RUU for the m7, will that be possible here with a stock rom dump and the FUU tool?
Thanks!
N
 
  • Like
Reactions: Sneakyghost

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
Yeah those DD dumps can be renamed to .img files and flashed with fastboot (what the RUU/FUU would use). The thing I'm always worried about is, that the image files compiled by HTC with some build tool are not bit-by-bit partition copies, whereas the DD dumps are. Technically, it shouldn't matter because the DD dumps include white space, the images do not. They would just make the RUU a lot larger. I'm just afraid it might cause issues for some reason I don't see at this time.

But it should be safe enough to experiment with it. Please just don't publish such a thing if you're going to try it. The side effects are unknown.

mobile post... lazy typing...
 
  • Like
Reactions: n1234d

maikel_swe

Senior Member
Dec 12, 2013
132
19
(bootloader) version-microp: None
(bootloader) version-main: 1.57.111.2
(bootloader) version-misc: PVT SHIP S-OFF
(bootloader) serialno: -------------
(bootloader) imei: -----------------
(bootloader) imei2: Not Support
(bootloader) meid: 00000000000000
(bootloader) product: m8_ul
(bootloader) platform: hTCBmsm8974
(bootloader) modelid: 0P6B10000
(bootloader) cidnum: 11111111
(bootloader) battery-status: good
(bootloader) battery-voltage: 0mV
(bootloader) partition-layout: Generic
(bootloader) security: off
(bootloader) build-mode: SHIP
(bootloader) boot-mode: FASTBOOT
(bootloader) commitno-bootloader: c3d94491
(bootloader) hbootpreupdate: 11
(bootloader) gencheckpt: 0
all: Done!
finished. total time: 0.010s

That is my Phone "S-OFF and Super CID", what I want to do is to update my FW to work properly with ARHD 9.1.

Need assistance on which Firmware I need to flash for ARHD 9.1 to work properly, also which method is the safest/easiest?

Before SuperCID this was a T-MOB101 model if that info is needed.

Appreciate all help!
 

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead
Is it not working properly with that ROM right now? I'm still getting back into the firmware business and currently don't know what xx.111.xx is meant for. T-Mobile US would be 531, I got an untested T-Mobile zip in my download link in post 1 and @Behold_this has a proper T-Mobile firmware thread, but I'm not sure that's what you're after?

If you just need an international conversion firmware, you can just flash my 1.54.401.10 full stock package and that will make your phone an international GSM variant effectively, which should work with any GSM ROM just fine. Don't worry about it being "just" 1.54 - there shouldn't be any critical differences to the 1.57 you have now. The ROM's for international are all based on that too I believe.

mobile post... lazy typing...
 

baribbi

New member
Jun 10, 2008
4
0
I flash 2.12.401.3 firmware
all ok. no failure.
i reboot the m8 but in settings info firmware still are 1.54.401.10
what is the problem?

thanks
 

Sneakyghost

Senior Member
Jul 24, 2008
8,314
13,595
InMyHead

Behold_this

Senior Member
Jul 15, 2011
2,975
4,506
Las Vegas
Here's a quick table with HTC Region and carrier codes as a reference - will be adding to it once I get on to my pc - this is just a table created on my phone with the data provided by @Behold_this (thanks for helping my friend! Much appreciated as usual!)

https://docs.google.com/spreadsheet...fYNFAfSe-imhhqtVfeMPVDA/edit?usp=docslist_api

mobile post... lazy typing...

My pleasure as always sneaky.

As you guys can tell from our tables HTC has a lot of balls and the air, but we do our best to keep track of all of them for ya. [emoji106]
 
Last edited:

n1234d

Senior Member
Aug 18, 2013
1,375
483
Mumbai
Google Pixel 6a
Yeah those DD dumps can be renamed to .img files and flashed with fastboot (what the RUU/FUU would use). The thing I'm always worried about is, that the image files compiled by HTC with some build tool are not bit-by-bit partition copies, whereas the DD dumps are. Technically, it shouldn't matter because the DD dumps include white space, the images do not. They would just make the RUU a lot larger. I'm just afraid it might cause issues for some reason I don't see at this time.

But it should be safe enough to experiment with it. Please just don't publish such a thing if you're going to try it. The side effects are unknown.

mobile post... lazy typing...

Alright, thanks for the info! I'm not very experienced with the little intricacies of firmware, so I'll Definitely not host any thing that I make, I don't want to be responsible for unintentionally bricking other's devices :cyclops: So, if I work with fastboot/cmd (which is what I usually do), I'd say fastboot flash (name of partition) mmcblk*p*.img right? Which partitions would I have to flash to make it equivalent to an RUU, and also, how would I go about packaging this into a fastboot flashable zip? Also, would this analogy be applicable: a bit by bit copy is like a windows drive image, whereas the one that HTC makes is like a windows installer? Or like a nandroid vs a rom zip? Thanks again for helping me!
N

---------- Post added at 10:23 PM ---------- Previous post was at 10:18 PM ----------

My pleasure as always sneaky.

As you guys can tell from our tables HTC has a lot of balls and the air, but we do our best to keep track of all of them for ya. [emoji106]

I'm pretty sure 707 isn't only HTC elevate, I had a retail 707 M7 here in India, and it's the same model in Hong Kong (both 3G only M7_U)

Also, there are a few RUUs for the HK M8 I think
http://pan.baidu.com/s/1kTsSL8N
http://www.netded.com/a/jishuyingyong/2014/0427/28035.html
If you might want to see them for any sort of reference.
 
Last edited:

Behold_this

Senior Member
Jul 15, 2011
2,975
4,506
Las Vegas
I'm pretty sure 707 isn't only HTC elevate, I had a retail 707 M7 here in India, and it's the same model in Hong Kong (both 3G only M7_U)

707 isn't labeled HTC generic (what sneaky described as elevate) at all. The chart got reorganized and the description column didn't. It's been fixed but know that "elevate" designation is not a real region or carrier its just a description. 999 is HTC generic. 707 is WWE Asia.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 182
    Post_Header_Sneakyghost_FIRMWARE.png


    General Information

    Since all M8’s can have S-Off, (and ONLY if you get S-Off!) we can also update the Firmware without the need of HTC’s OTA’ or RUU, yet the stock update way will still remain the safest way. Stick to that if you don’t have reason to come here and choose this.

    Read from top to bottom. No skipping stuff or you will be confused.

    There are a few Firmware flashing threads and lots of zips and instructions out there. My goal here is to help you learn and understand an established, known to be safe path to update firmware. I will try to provide some comprehensible info. If you find more vital informations, please share and i will add it here.

    The safest way is still HTC’s RUU and OTA system, yet HTC is not providing RUU’s for the international version, however, US Carrier RUU’s can be accessed via HTC’s US ROM download Site. Select your Carrier at the top and jump right down to your carrier section - usually, there will be a RUU for Dev/Unlocked (1540), Sprint (651), Sprint HK (654), AT&T (502) and T-Mobile US (531). RUU’s are superior to other flashing methods because they carry a tested combination of partition images and the method itself is also known to work well. Also, RUU’s do always reassure users that there is a guaranteed and safe way to go back. If you happen to get access to an international RUU, share it with Alex or me please. RUU’s are hosted on androidruu.com by Alex within a short time after being made available to him. Hit him up on Twitter with a link and ask him to add it or send it to me and i will! I added some WWE/Europe RUU’s here which i repacked myself. They behave like official RUU’s, signed and for S-ON users. Since HTC doesn’t really want them published, i don’t link them in the OP, they are “unofficial” and can be found with search by the term “RUU” here.

    Other than that, we are mostly stuck with RUU components, usually OTA packages. OTA’s usually depend on a certain Firmware version to be already installed, OTA’s only update parts - they are “incremental”. If you happen to skip an update, you might not get all partitions updated correctly and end up with incompatible partitions, which might (worst case scenario) lead to a brick. I am trying to circumvent this problem with my FULL ZIP or FUU packages - with these you can safely jump from a very old firmware right up to the newest.
    The second reason for my thread is that i am trying to do more documentation than usual in order to help you learn how to safely flash firmware.

    There are 3 main methods to flash Firmware, which are technically the same (the actual flash is always carried out by the hboot, but the way to get there can be different). I will cover 2 methods. My “automatic” (FUU) approach (simulating HTC’s RUU) and a manual (RUUMode ZIP) approach. The third method, placing a firmware.zip on the SDcard is already covered by @skulldreamz over HERE.



    I will cover GSM PHONES ONLY - no cdma / sprint firmware except when i wish to do otherwise :D


    Method #1: The FUU
    More convenient, automated, hence user friendly way to flash firmware. What HTC uses. Less reliable, several extra sources for errors.
    How this works:
    First thing to do: HTC Sync Manager. Please install, then remove again and leave ONLY drivers! The RUU/FUU was written in Visual C++ 2008 x86 - my installer should install that for you starting with FUU version 3.28.401.6. If it doesn't, just manually install it first to avoid the ARUWizard failing to launch with error "side-by-side configuration....".

    What to know about the FUU’s (& ZIP’s)

    General Info:
    The FUU is the flashing technology HTC uses. I call it “FUU” because its not a ROM Update Utility (i don't deliver system.img) - it’s only a Firmware Update Utility for us (read HERE to understand the difference between "Firmware" and "ROM"). So i will update the FUU only when HTC does and provide one (empty) FUU download. Place this wherever you want your working directory to be. I suggest to use “C:\Android\com” because this is where i work. Might make following my instructions easier. I will also provide the ZIP’s as self-extracting FUU versions. Using those, you won’t need the empty structure

    So, once you have downloaded and extracted the FUU to its place (I will give you a self extracting archive that sets up the FUU for you in the path mentioned above), you can then begin to download fastboot flashable zips.
    To get them flashed, simply drop them into the FUU folder (C:\Android\com) and then run the FUU, which is the ARUWizard.exe (double click that one, make a shortcut to your desktop for convenience).

    IMPORTANT RED, BOLD AND UNDERLINED
    Whenever you drop a new zip into C:\Android\com, make sure you delete ALL OTHER ZIP’s before running the ARUWizard.exe! Plus, rename any zip you intend to flash to “ROM.zip” (small or CAPITAL doesn’t matter) to make sure a new zip overwrites an old one. So, in order to have a proper flash, have just ONE rom.zip in the “com” folder!

    Now, on to what I provide here:
    - FullStock Wipe ZIP/FUU: this type of zip also re-flashes the /data partition with HTC’s DZDATA files (meaning you lose everything on your internal SDCARD). Also replaces the Kernel, Ramdisk, recovery and Splash1 with latest stock images! The /system partition will not be touched. (Else this would be a RUU, not a FUU). Phone will NOT boot after using this! Be sure to put a ROM onto your EXTERNAL SD before proceeding with a FullWipe ZIP! Else you can also ADB push a ROM in recovery mode after fastboot reflashing a recovery.
    - Combined NoWipe ZIP/FUU: this type of zip updates basic firmware partitions, does not touch the /data partition, leaves kernel, splash and ramdisk alone. Recovery will be replaced with current TWRP.Phone will boot normally after using this.

    And what you won’t get here (fine print):
    Since this is a (F)irmware (U)pdate (Utility) and not a (R)om (U)pdate (U)tility, you do NOT EVER get a ROM (a.k.a “System.img” or plain: “System” here. You understand and agree that you cannot have this from me. You also acknowledge that i cannot be blamed for your non-booting phone due to you not reading or not understanding this.


    Method #2: Fastboot/RUUMode ZIP’s
    Instead of using the FUU, you can of course flash those zips manually as well. It eliminates a few error sources by reducing complexity and is more reliable. BUT it requires ADB and Fastboot knowledge!
    Prerequisites:
    You need ADB and Fastboot on your PC and instead of using the Google SDK Tools from HERE you should (from Software versions 4.20.xxx.x and up) use my Android Tasks Batch script collection, which sets up the HTC versions of ADB and Fastboot in the path “C:\Android\com”. Info in Post #3. Or alternatively the HTC One Tool from @squabbi which also offers driver downloads and recovery downloads (handy shortcuts!).
    To learn to use ADB and Fastboot, please use search, many guides available..​

    Step-By-Step:
    1. If device is booted into Android, reboot into bootloader by running:
    Code:
    adb reboot bootloader

    1.a Or else, if your device is in a different state or you just prefer the button method:
    Press Power for 15 seconds and hold Vol UP at the same time, when the screen and charging LED go dark immediately slide your finger down to Vol Down until you see the bootloader screen. Notice: First VolUp, then VolDown as soon as the screen goes dark (and you hear the windows connection sound if your phone is hooked up).

    2. Now place the Firmware_xx.zip into your adb/fastboot folder (which will be "C:\Android\com" if you use my Task Script).

    3. Now run:
    Code:
    htc_fastboot oem rebootRUU

    4. Followed by:
    Code:
    htc_fastboot flash zip Firmware_xx.zip
    (replace "Firmware_xx.zip" with the name of your zip)

    5. Now check the console output. It should approximately look like this (this is from GSM International 3.28.401.6 FullWipe):
    C:\Android_M8\com>htc_fastboot flash zip rom.zip>>log.txt
    sending 'zip'... (100436 KB) OKAY
    writing 'zip'... (bootloader) zip header checking...
    (bootloader) zip info parsing...
    (bootloader) checking model ID...
    (bootloader) checking custom ID...
    (bootloader) start image[hboot] unzipping for pre-update check...
    (bootloader) total_image_number=21

    (bootloader) start image[adsp] unzipping & flushing...
    (bootloader) [RUU]UZ,adsp,0
    (bootloader) [RUU]UZ,adsp,11
    (bootloader) [RUU]UZ,adsp,22
    (bootloader) [RUU]UZ,adsp,32
    (bootloader) [RUU]UZ,adsp,43
    (bootloader) [RUU]UZ,adsp,54
    (bootloader) [RUU]UZ,adsp,65
    (bootloader) [RUU]UZ,adsp,76
    (bootloader) [RUU]UZ,adsp,87
    (bootloader) [RUU]UZ,adsp,98
    (bootloader) [RUU]UZ,adsp,100
    (bootloader) [RUU]WP,adsp,0
    (bootloader) [RUU]WP,adsp,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=0

    (bootloader) start image[boot] unzipping & flushing...
    (bootloader) [RUU]UZ,boot,0
    (bootloader) [RUU]UZ,boot,11
    (bootloader) [RUU]UZ,boot,30
    (bootloader) [RUU]UZ,boot,49
    (bootloader) [RUU]UZ,boot,59
    (bootloader) [RUU]UZ,boot,71
    (bootloader) [RUU]UZ,boot,83
    (bootloader) [RUU]UZ,boot,95
    (bootloader) [RUU]UZ,boot,100
    (bootloader) [RUU]WP,boot,0
    (bootloader) [RUU]WP,boot,99
    (bootloader) [RUU]WP,boot,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=1

    (bootloader) start image[dzdata] unzipping & flushing...
    (bootloader) [RUU]UZ,dzdata,0
    (bootloader) [RUU]UZ,dzdata,10
    (bootloader) [RUU]UZ,dzdata,15
    (bootloader) [RUU]UZ,dzdata,23
    (bootloader) [RUU]UZ,dzdata,30
    (bootloader) [RUU]UZ,dzdata,38
    (bootloader) [RUU]UZ,dzdata,46
    (bootloader) [RUU]UZ,dzdata,54
    (bootloader) [RUU]UZ,dzdata,61
    (bootloader) [RUU]UZ,dzdata,69
    (bootloader) [RUU]UZ,dzdata,77
    (bootloader) [RUU]UZ,dzdata,84
    (bootloader) [RUU]UZ,dzdata,92
    (bootloader) [RUU]UZ,dzdata,99
    (bootloader) [RUU]UZ,dzdata,100
    (bootloader) [RUU]WP,dzdata,0
    (bootloader) [RUU]WP,dzdata,10
    (bootloader) [RUU]WP,dzdata,28
    (bootloader) [RUU]WP,dzdata,39
    (bootloader) [RUU]WP,dzdata,47
    (bootloader) [RUU]WP,dzdata,54
    (bootloader) [RUU]WP,dzdata,62
    (bootloader) [RUU]WP,dzdata,69
    (bootloader) [RUU]WP,dzdata,77
    (bootloader) [RUU]WP,dzdata,83
    (bootloader) [RUU]WP,dzdata,88
    (bootloader) [RUU]WP,dzdata,97
    (bootloader) [RUU]WP,dzdata,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=2

    (bootloader) start image[hboot] unzipping & flushing...
    (bootloader) [RUU]UZ,hboot,0
    (bootloader) [RUU]UZ,hboot,51
    (bootloader) [RUU]UZ,hboot,100
    (bootloader) [RUU]WP,hboot,0
    (bootloader) [RUU]WP,hboot,99
    (bootloader) [RUU]WP,hboot,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=3

    (bootloader) start image[pg2fs_spcustom] unzipping & flushing...
    (bootloader) [RUU]UZ,pg2fs_spcustom,0
    (bootloader) [RUU]UZ,pg2fs_spcustom,23
    (bootloader) [RUU]UZ,pg2fs_spcustom,45
    (bootloader) [RUU]UZ,pg2fs_spcustom,67
    (bootloader) [RUU]UZ,pg2fs_spcustom,88
    (bootloader) [RUU]UZ,pg2fs_spcustom,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=4

    (bootloader) start image[recovery] unzipping & flushing...
    (bootloader) [RUU]UZ,recovery,0
    (bootloader) [RUU]UZ,recovery,7
    (bootloader) [RUU]UZ,recovery,18
    (bootloader) [RUU]UZ,recovery,29
    (bootloader) [RUU]UZ,recovery,35
    (bootloader) [RUU]UZ,recovery,42
    (bootloader) [RUU]UZ,recovery,61
    (bootloader) [RUU]UZ,recovery,66
    (bootloader) [RUU]UZ,recovery,73
    (bootloader) [RUU]UZ,recovery,81
    (bootloader) [RUU]UZ,recovery,88
    (bootloader) [RUU]UZ,recovery,95
    (bootloader) [RUU]UZ,recovery,100
    (bootloader) [RUU]WP,recovery,0
    (bootloader) [RUU]WP,recovery,99
    (bootloader) [RUU]WP,recovery,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=5

    (bootloader) start image[rpm] unzipping & flushing...
    (bootloader) [RUU]UZ,rpm,0
    (bootloader) [RUU]UZ,rpm,100
    (bootloader) [RUU]WP,rpm,0
    (bootloader) [RUU]WP,rpm,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=6

    (bootloader) start image[sbl1-1] unzipping & flushing...
    (bootloader) [RUU]UZ,sbl1-1,0
    (bootloader) [RUU]UZ,sbl1-1,100
    (bootloader) signature checking...
    (bootloader) [RUU]WP,sbl1-1,0
    (bootloader) [RUU]WP,sbl1-1,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=7

    (bootloader) start image[sbl1-2] unzipping & flushing...
    (bootloader) [RUU]UZ,sbl1-2,0
    (bootloader) [RUU]UZ,sbl1-2,100
    (bootloader) signature checking...
    (bootloader) verified fail
    (bootloader) ..... Bypassed
    (bootloader) current_image_number=8

    (bootloader) start image[sbl1-3] unzipping & flushing...
    (bootloader) [RUU]UZ,sbl1-3,0
    (bootloader) [RUU]UZ,sbl1-3,100
    (bootloader) signature checking...
    (bootloader) verified fail
    (bootloader) ..... Bypassed
    (bootloader) current_image_number=9

    (bootloader) start image[sbl1-4] unzipping & flushing...
    (bootloader) [RUU]UZ,sbl1-4,0
    (bootloader) [RUU]UZ,sbl1-4,100
    (bootloader) signature checking...
    (bootloader) verified fail
    (bootloader) ..... Bypassed
    (bootloader) current_image_number=10

    (bootloader) start image[sdi] unzipping & flushing...
    (bootloader) [RUU]UZ,sdi,0
    (bootloader) [RUU]UZ,sdi,100
    (bootloader) [RUU]WP,sdi,0
    (bootloader) [RUU]WP,sdi,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=11

    (bootloader) start image[sensor_hub] unzipping & flushing...
    (bootloader) [RUU]UZ,sensor_hub,0
    (bootloader) [RUU]UZ,sensor_hub,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=12

    (bootloader) start image[sp1] unzipping & flushing...
    (bootloader) [RUU]UZ,sp1,0
    (bootloader) [RUU]UZ,sp1,26
    (bootloader) [RUU]UZ,sp1,50
    (bootloader) [RUU]UZ,sp1,75
    (bootloader) [RUU]UZ,sp1,100
    (bootloader) [RUU]WP,sp1,0
    (bootloader) [RUU]WP,sp1,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=13

    (bootloader) start image[tp] unzipping & flushing...
    (bootloader) [RUU]UZ,tp,0
    (bootloader) [RUU]UZ,tp,100
    (bootloader) ..... Bypassed
    (bootloader) current_image_number=14

    (bootloader) start image[tp] unzipping & flushing...
    (bootloader) [RUU]UZ,tp,0
    (bootloader) [RUU]UZ,tp,100
    (bootloader) ..... Bypassed
    (bootloader) current_image_number=15

    (bootloader) start image[tz] unzipping & flushing...
    (bootloader) [RUU]UZ,tz,0
    (bootloader) [RUU]UZ,tz,100
    (bootloader) [RUU]WP,tz,0
    (bootloader) [RUU]WP,tz,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=16

    (bootloader) start image[wcnss] unzipping & flushing...
    (bootloader) [RUU]UZ,wcnss,0
    (bootloader) [RUU]UZ,wcnss,23
    (bootloader) [RUU]UZ,wcnss,46
    (bootloader) [RUU]UZ,wcnss,69
    (bootloader) [RUU]UZ,wcnss,92
    (bootloader) [RUU]UZ,wcnss,100
    (bootloader) [RUU]WP,wcnss,0
    (bootloader) [RUU]WP,wcnss,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=17

    (bootloader) start image[radio] unzipping & flushing...
    (bootloader) [RUU]UZ,radio,0
    (bootloader) [RUU]UZ,radio,9
    (bootloader) [RUU]UZ,radio,18
    (bootloader) [RUU]UZ,radio,27
    (bootloader) [RUU]UZ,radio,36
    (bootloader) [RUU]UZ,radio,45
    (bootloader) [RUU]UZ,radio,54
    (bootloader) [RUU]UZ,radio,63
    (bootloader) [RUU]UZ,radio,72
    (bootloader) [RUU]UZ,radio,81
    (bootloader) [RUU]UZ,radio,86
    (bootloader) [RUU]UZ,radio,95
    (bootloader) [RUU]UZ,radio,100
    (bootloader) trying to rename MBA
    (bootloader) [RUU]WP,radio,0
    (bootloader) [RUU]WP,radio,36
    (bootloader) [RUU]WP,radio,72
    (bootloader) [RUU]WP,radio,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=18

    (bootloader) start image[rcdata] unzipping & flushing...
    (bootloader) [RUU]UZ,rcdata,0
    (bootloader) [RUU]UZ,rcdata,100
    (bootloader) [RUU]WP,rcdata,0
    (bootloader) [RUU]WP,rcdata,100
    (bootloader) ...... Successful
    (bootloader) current_image_number=19

    (bootloader) start image[emmc_fw32] unzipping & flushing...
    (bootloader) ...... Successful
    (bootloader) current_image_number=20

    OKAY
    Flash Zip Complete

    C:\Android_M8\com>

    Important: the flash process halts at around 75% to 90% on phone screen! This is normal and a safety precaution! The last few percent is the reboot, which is NOT happening automatically, so you get a chance to check the console output to make sure it is safe to reboot! The bar will only fill up to 100% once you type:

    6.
    Code:
    htc_fastboot reboot-bootloader

    FUU general errors:
    - FUU quits right away, says “side-by-side configuration wrong or missing” : install Visual C++ 2008 x86. Also .NET is required but build into later windows systems, might only be an issue on old windows.
    - Any other FUU crash is hinting at the same issues (at least what i have seen). Make sure your Visual C++ is ok.
    - FUU errors with numbers (FUU launches, starts, then throws an error number): please see below.​

    RUUmode/ Fastboot Error handling strategies:
    IF IT SAYS "FAILED" do not immediately reboot the device If you reboot with a FAIL It could brick! If no flash is being accepted you have to find out what is causing the malfunction before rebooting your phone. Keep it alive while trying to figure out the error. It might be your cable, your USB ports (don’t use hubs! Always direct-mainboard connections), it might be USB 3.0 which is not good yet, it might be bad configuration of your ADB and Fastboot...
    The least dangerous FAILED messages are listed below and are safe to reboot (below this section you find CRITICAL errors, please observe):

    Safe to reboot / Flash didn't happen Errors (if you encounter one of them, you can just reboot. Nothing changed):

    - 12 signature fail (unknown yet but safe to reboot)
    - 23 parsing image fail (means something wrong with the image in the zip)
    - 24 android-info fail (means something wrong with android-info.txt in the zip)
    - 32 header error (means the zip couldn't be read and unzipped properly)
    - 41 Wrong Model ID (means it's not the right device)
    - 42 Wrong Customer ID (wrong CID means you gotta swap CID first as explained below)
    - 90 hboot pre-update (means it only flashed hboot and you have to run the process again immediately to flash all other partitions WITHOUT a reboot in-between).
    - 99 UNKNOWN usually indicates you are S-ON, sometimes other Security related issues.
    - 130 wrong model ID (seems it's the same like 41, just that it shows in the FUU as 130.
    - 155 seems to indicate different things. It can mean: 1.) You need to relock bootloader (If S-ON); 2.) You cannot run the RUU/FUU because the software versions of ROM, Firmware and RUU/FUU don’t match.
    - 170 Check USB - FUU won’t run because of not working ADB.​

    In fact, if it aborts before the "(bootloader) start image[hboot] unzipping & flushing..." line it actually didn't write anything and you can probably just reboot. If you see it flashing stuff though (the stages after that line) and then it stops with a FAILED, chances are a little higher that something is now broken. In that case do NOT reboot but do as i said above.


    For Error 12 “signature fail" do:
    - might indicate that a signed firmware package is required. This would only happen with S-ON phones though.

    For Error 23 "parsing image fail" do:
    - change image names in the zip to stock image names like “hboot.img" or “radio.img" or whatever failed there....

    For Error 24 "android-info fail" do:
    - check that your ZIP isn’t some HTC OTA or anything thats got no android-info.txt - those cannot be flashed with fastboot flash zip nameof.zip command.
    - check that your zip has a good MD5 and is not broken, check android-info.txt etc...

    For Error 32 "header error" do:
    - Sorry i haven’t found the exact cause yet and don’t know a definite solution.
    - Make sure there is only one . (dot) in the filename, before the extension. fastboot reads anything after the first dot it sees as the extension. If that is not zip, it fails.
    - If that doesn't help, you can also try: make the zip new with recommended settings, re-run the command, check your connections...

    For Error 42 "Wrong Customer ID" and: 41 "Wrong Model ID" do:
    Code:
    htc_fastboot getvar all
    Read that output, take note of your CID and MID and then edit the "android-info.txt" in your firmware.zip accordingly (For Wrong MID change the MID in the text, for wrong CID add your CID to the text).

    Alternative method for MID and CID errors:
    go SuperCID. Do:
    Code:
    htc_fastboot oem writecid 11111111
    You can change back to any desired CID after a successful firmware flash. Notice: this command only works on S-OFF phones (which you have already of course or else you wouldn't be here).

    For “Error 90 hboot pre-update..." do:
    - Run the same flash command again which you just ran (press arrow up on your keyboard to get to the previous command in console)
    - Don’t reboot in-between! (It wouldn't brick you but it would just make you run the flash command twice again)
    - This might be caused by the newer encrypted RUU's, they need their hboot to be flashed first so it can then decrypt the rest of the ROM.zip. Look at an encrypted ROM.zip from a RUU, you will notice that you can mostly extract the hboot without decrypting the ROM.zip, but you can't extract much else.)

    For “Error 99 UNKNOWN" do:
    - Check with other zip’s if they work!
    - Check if your S-OFF is correct
    - You are S-ON? Then almost definitely this means the ZIP is not signed - get an unmodified zip!

    For “Error 130 wrong model ID" do:
    - Please refer to Error Code 41/42.

    For “Error 155 relock bootloader" do:
    - Since my thread works only with S-OFF phones anyway, this error can be read as: you need to S-OFF first!
    - Error 155 can mean that you need SuperCID. On a few occasions this was shown when the RUU/FUU refused to run because of a wrong region lock.
    - Lately, Error 155 has occurred when a FUU was launched from within android. When encountering a FUU error 155 with the process stalling after the rebootRUU (stuck at black screen with silver HTC logo), please just restart the FUU and leave the phone in that mode, or reboot the phone, then reboot to bootloader, then do “htc_fastboot oem rebootRUU” and then launch the FUU again (thanks @anarchychris for pointing it out).
    - run the fastboot command “htc_fastboot oem lock" - only applies to S-ON phones that want to update the firmware with a stock OTA package (not offered on this thread!!). Stock OTA files sometimes need a locked bootloader.

    For “Error 170 Check USB" do:
    - Sometimes shown when running a RUU or FUU. Indicates issues with drivers. One way to solve is to run the ARUWizard with the phone already in Fastboot mode. Else you will have to re-install HTC Sync manager. Also, avoid USB 3 ports (the blue ones) - they have a complete new driver stack and that doesn't work well currently.​

    NOT safe to reboot / Flash (partly) happened Errors (if you encounter one of them, DON’T reboot:

    - 152 Image Error - Phone Screen shows a little triangle beside a full green bar​

    For “Error 152 Image Error" do:
    - Error 152 is quite rare, have seen it only once with a friend’s phone and it aborted the flash nearly at the end. The flash was started by the FUU. We could resolve the matter by NOT rebooting the phone and flashing the zip again through a manual fastboot flash as outlined further up.​

    I usually test all of these zips on my own device, still, you flash at own risk. You're writing to critical parts of your phone. If anything goes wrong along the way, you might be bricked.


    DOWNLOADS

    ALL DOWNLOADS FUU AND ZIPS
    *notice: here you find all other ZIP and FUU downloads.​

    Recent additions​
    • M8_6.20.502.5_ATT_FullStock
    • M8_6.20.502.5_ATT_NoWipe_TWRP3020
    • M8_6.20.531.5_TMUS_FullStock
    • M8_6.20.531.5_TMUS_NoWipe_TWRP3001
    • M8_6.12.1540.4_DevEd_FullStock
    • M8_6.12.1540.4_DevEd_NoWipe_TWRP3001

    Credits

    I have lost track of my firmware sources. I am sorry i cannot name you guys all. The most common source would be @LlabTooFeR and HTCDev and some others. If you find your stuff here and want to be included in the credits please contact me. I am very grateful for everyone busy providing dumps and direct leaks.

    Further i would like to express my deepest gratitude to team venom, who aren't only good friends but also let me use their graphical stuff as base for my own stuff. Thank you!

    One helpful person, @O.M.J, posted one of the very first M8 RUU’s for Sprint - i originally based my first M8 FUU’s on that, so he be mentioned here as well. Thanks mate!

    Last but not least and probably the holy grail of the HTC Modding Scene: the guys behind Firewater, Sunshine, and all the other S-OFF methods, currently i believe mostly @beaups and @jcase - Thank you so much!
    Donations
    I am never asking for donations, yet i decided to put up a donation link in the past, because people asked if they could donate to me. It does happen once in a blue moon. The nicest thing that has ever happened to me was a device donation. I feel forever humbled for that. I don’t know how to repay that debt of honor.
    However, there is one thing i would like everyone to not do: PM me and promise a donation, get my help and then don’t live up to your promise. Why?
    Even though i am never asking for a donation, i feel very happy when someone donates a small buck towards my hobby. I really do feel appreciation if i can buy myself a beer and think: i have earned myself this by helping someone. So, if someone hits me up private and says “I’ll donate something to you if you help me with this seriously overwhelming issue” i usually think “hell yea, poor bastard, i’ll help ya! (and maybe i can get my next beer for free). Then nothing comes in return, not even a thank you.


    That REALLY hurts.

    Disclaimer
    You are aware that writing to the security protected partitions increases your risk to lose the device exponentially. You understand and agree that i cannot be held responsible for such or any other damages. The flash process is theoretically safe and tested on various phones at time of posting, however you are the brains behind the wheel and you are solely responsible for the execution of the process. I will not accept any responsibility. The method itself is developed by Google and HTC, i only provide access and information to it and you execute it.

    You understand that you should not do it if you are not willing to accept this risk.
    48
    General Information

    Flash Process Output:
    There are a few steps in the flash process which are not really straightforward but i can maybe explain some of them here,so you can better understand what is happening:

    sending 'zip' means: fastboot is sending zip over to client (here referred to as “remote”)
    OKAY [ 2.839s] means status of sending was good. Transfer succeeded.
    writing 'zip'... means the zip is being written to some location on the phone from the /temp location.
    (bootloader) zip header checking... means the zip header is being checked for validity, see if it’s a real zip file.
    (bootloader) zip info parsing... means most likely a check on the file hashes in the zip (integrity check - if the zip is borked, it will fail here)
    (bootloader) checking model ID... The bootloader checks if the android-info.txt contains the right MID. If it fails here you gotta swap out your model ID in the android-info.txt file.
    (bootloader) checking custom ID... The bootloader checks if the android-info.txt contains the right CID. If it fails here you gotta swap out your Customer ID in the android-info.txt file.
    (bootloader) start image[hboot] unzipping for pre-update check... means the bootloader is now unzipping the [hboot] image. This line will be repeated before every image that is to be flashed.
    (bootloader) start image[hboot] flushing... means the bootlaoder is now beginning to flash the [hboot] image.
    (bootloader) [RUU]WP,hboot,0
    (bootloader) [RUU]WP,hboot,99
    (bootloader) [RUU]WP,hboot,100 these three lines read [RUU] for what mode fastboot is in, WP for “Write Partition” for what is currently being done in RUUmode, “hboot” is the name of the currently flashed partition, number xx is a percent stage of the write process.
    (bootloader) ...... Successful means the final status is successful.

    Now, before the [RUU]WP,hboot,xx line we often see another line reading [RUU]UZ,radio,50 for example. That reads RUUmode is currently unzipping the Radio.img and at stage 50 percent. UZ means UNZIP.

    If you see something like this:
    (bootloader) start image[sbl1-1] unzipping & flushing...
    (bootloader) [RUU]UZ,sbl1-1,0
    (bootloader) [RUU]UZ,sbl1-1,100
    (bootloader) signature checking... means it is checking the signature of the partition if it matches the expexted signature stored in the hboot.
    (bootloader) verified fail means the signature in the image did not meet expectations.
    (bootloader) ..... Bypassed means the image got skipped because its got the wrong signature.

    This has to be interpreted like this: there are multiple “SBL” images, to be exact: type 1 has 3 variants and type 2 has only one variant. Of type 1 (“SBL1-x”), two get skipped, one gets flashed (see my log above), of type two (“SBLx”) both get flashed. I believe, SBL 2 and 3 are device independent, but SBL1 has three variants, of which only one fits the current device. So, depending on the device you have, you will see either SBL1-1, SBL1-2 or SBL1-3 being flashed and the other two subtypes being skipped (bypassed).
    The same goes for the "dzdata" images in the firmware package. They come in three size flavors (16, 32 and 64 GB) and resemble the file structure of the /data partition. Depending on your model, only the one with the right size gets flashed, the others skipped.

    Important to understand: nearly all FAILED messages that do NOT occur while [RUU]WP (write partition) should be considered harmless. Only a FAIL during a write operation will most likely result in a damaged partition. All other fails will probably leave the original partition intact and thus the device can be rebooted. So far my understanding.

    General hints for RUUmode zips
    - Opening a zip is best done with 7zip as WinRAR has lead to flash fails in the past.
    - Choose low compression, higher compressions often fail. Pick "save" or "normal" to be safe, anything higher could cause the unzip in Bootloader to fail.
    - Adding and Removing images is not a problem. The naming of the partition images seems flexible, yet if you encounter an “Error 23: parsing image fail” you need to rename the relevant image to something stock as not all names seem to be recognizable. The hboot determines the right partition from the header inside the image.
    - Additional dots in zip file names are known to have caused issues for a few people.
    - Spaces in names are a no-go!
    - Custom Recoveries can be added to those zips as well as custom kernels or hboots. In fact, if your phone is S-OFF, you can hex edit any partition and flash it. Be sure you know what you do though lol. I am just pointing out the possibilities. I am NOT saying it is safe!
    - With S-ON, those zips only flash if they weren't touched at all. In case of a ROM.zip from a RUU, it also needs to still have its encryption. Whenever you unzip and rezipor add/remove stuff, the package won't flash anymore with S-ON, no matter how hard you try.

    General hints for android-info.txt
    - Use an Editor that doesn't mess up linebreaks like Windows Notepad does. Use Notepad++
    - MID’s can be added one per line. Also supports wildcards i think e.g.: 71******, but i’m not sure.
    - CID's can easily be added or removed- one per line, definetely supports wildcards (used by HTC in DevEd phone)
    - Mainver line: should be the version of the most current images, e.g if you combine older and newer files, add the MainVer from the newest. Format 2.22.401.5 (2= Base version always increases by 1 with each android base version rise, 22= Build version from HTC, 401= Regional/Customer identifier, 5= Revision of the HTC Build). This line is being written to the /misc partition and is thought to identify the whole phone firm/soft version - its not meant to only describe firmware or base alone. Those parts always belong together. My opinion: run Firm/Soft always from the same revisions. Try to avoid a mismatch between ROM and Firmware and never mix firmware components.
    - hboot pre-update line: usually says anything between 1 and 12. I think they determine if hboot-preflash is required (when you get “Error 90 - please flash image again immediately” this is when the hboot needs to be flashed separately first and then the rest... [Item subject to change]
    - btype:1 not clear. [Item subject to change]
    - aareport:1 Since HTC hboots come as "hboot_signedbyaa” i would read this as "aa" being htc ("hboot signed by aa") and aa report meaning report to htc if 1.
    - Delcache means erase cache when rebooting. Simple. Some hboots seem to need it, some don't. Line is not present in every android-info.txt. If you mess with a zip that contains the line, leave it active.

    RUUmode:
    is the mode used for RUU flashes by HTC. It allows a few more things than the normal fastboot. You recognize it by looking at the phone’s screen. It will be black, showing only a silver HTC logo and if a command is being active, a green progress bar.

    DD method bricking risk:
    In 2013 there had been a series of TWRP recoveries that have had issues flashing ROMs on a few HTC devices, mainly Aroma based issues. It's possible though that the one brick i saw on the Ville from flashing a hboot in recovery was related to flashing it in recovery as i am not sure that the ROM flash fails are only Aroma based fails. I am rather sure that the method recovery zip’s most often uses to write an image file to NAND is not 100% bit correct and can cause trouble (This is the “DD” method). Due to the nature of this DD method, it can happen that single bits are flipped, which equls a corrupted hboot. That will manifest in a full brick with the next reboot. While that isn't really that likely to happen (we had one on the Ville Forums within a year which happened while flashing a hboot in recovery), it still is a noticeably higher risk than RUUMode flashed hboots. It is desirable to have a safer method. There is a command for recovery “write_image” employed by HTC but i haven’t worked out how to use it and how it actually works and whether or not it is safer. So i decided to just stay away from recovery zips/DD flashes.
    Apparently the zip flash executed in RUUmode utilizes a different write technique and is safer (It most likely is the same as “write_image” in updater-script ;) ).
    Please be aware though that this is an assumption. There is no real proof for this as we haven't gotten comprehensive documentations of HTC's stuff here. Anyway, this is the reason why i don't offer recovery zips. Even though it is perfectly possible to flash it in live android (using "dd if=/somedir/yourhboot of=/dev/block/mmcblk0p12") or recovery i prefer this method simply because i am sure it is safer.

    JTAG with a RIFF Box
    Every device of these days has so-called jtag test-points. Basically, these are points on the mainboards, where a direct connection to the main chip can be established and then that chip can be read and written to with an external device. Sometimes, these testpoints are hidden (like they are normal contacts of the chip) and no direct visible gold points on the board. It always takes a while after a device is released until the jtag layout is fully discovered but once that is done, companies like multi-com.pl start manufacturing small boards with pins that can be pressed onto the mainboard, so no soldering to the device is required. Once such a board exists, the mainboard can be hooked to the RIFF box which can rewrite a dead chip from the outside.
    As long as there is no such small board (called a "JIG") the phone can still be revived but it is necessary to solder hair-thin wires to the test-points. That is perfectly possible, @Tecardo for example can do such a thing, but its not very good for the board and cannot be done very often. At some stage the solder points will degrade so much that the board is garbage then.
    In case you really brick your device, you can contact Tecardo here: http://xdaforums.com/showthread.php?t=2116062

    S-OFF: Firewater versus Sunshine
    Firewater: it's free although the tools used to find the exploitable code and create software to actually exploit it are insanely expensive, so consider a donation towards the creators. They bought the tools from their private money and invested hundreds, if not thousands of (unpaid) hours. Firewater only works on a limited set of HTC One M8's but works on M7's and more.
    HTC managed to close some open hole that Firewater needed to get to the exploitable code, so with the later M8's, Firewater doesn't work at all anymore.
    Sunshine: costs $ 25 USD, is heavily automated and also, its secret ingredient is guarded well now so HTC might not close this hole in the rabbit fence as fast.Well, lets hope so. And DON'T moan about the money. As already stated for Firewater, the guys went to great expenses to get you this hack and currently, there is no one else capable of doing this. So, zip it. Period. Sunshine is nice and easy to use. I have very much respect for this method. Totally awesome to use.
    Thanks to @beaups and @Fuses - they done a brilliant job, we’d have nothing without them.

    Notes on the currently available hboots
    Currently nothing particular on the HTC One M8 Hboots. So far, they all have been doing the same, no differences noted. The GPE hboot is probably responsible for the System Partition reformatting, which is the most interesting bit i know. I know that Fuses will come up with some customized, engineering-style hboots at some point. So watch his space. They will probably appear on the Firewater-S-OFF site when available.

    MID and CID and regional number in the software version
    MID = Model Identification. It serves the purpose of identifying the Model of your HTC Phone and can, but does not necessarily, describe different hardware. T-Mobile US, Sprint and Verizon have their own Model ID's, also the china variants use different MID's. The international GSM phone and Tmobile share the same hardware though. Sprint seems to have identical hardware but strong software differences which don't allow for cross-flashing firmware. Verizon has a different partition layout and possibly different hardware. It is NOT compatible with international/GSM MID firmware.
    CID = Customer ID, describes, for which customer HTC made this phone. HTC has a few own CID's for its regional stores. Then certain carriers decide to have their own CID.
    So, while the MID more like describes the hardware, the CID basically just describes the software set that comes delivered with it (features and bloatware). Both get checked on when flashing in RUUmode. How to trick this system? Fairly easy. Just add your respective MID or CID to the android-info.txt file inside the ZIP, or even easier, boot to fastboot and write SuperCID to your chip (fastboot oem writecid 11111111). SuperCID will make any flash ignore both CID and MID.
    SKU = This is the number in the Software Version number that describes for which market/customer combination the update is, i believe the combination of MID and CID gives the SKU. It's the 3-digit part right here: x.xx.401.x. I have a list of all CID's, MID's and SKU's in post #4.
    They are not yet sorted according to which goes with which (nearly impossible task) but its a nice overview nonetheless.


    Signature on the hboot and other partitions
    In the Phones Firmware is a component that checks if certain partitions have a digital signature from HTC and deny read and write access if the signature is wrong or missing. The checking component is known to be the Security, which can be set to OFF. Then we say the phone is S-OFF.
    For some partitions like the splash screen, it might not lead to a brick if you set security to ON while a custom splash is installed, as this partition is not vital for the boot process, it might just be skipped. System, recovery and boot do not have a signature at all. The HBOOT however does have it and i am sure Partition 3, which controls the Security flag, has it too and maybe some others like the secondary bootloader.
    You guys have to understand that altering any of these partitions is deadly to your phone if you happen to leave them altered when switching security back on.

    Determining your “Firmware Version”
    I believe there is some wrong info circulating the HTC Fora. People keep saying when running fastboot getvar all it will report the Firmware Version in the line “Version-Main” or when looking at the "OS" line in bootloader. This is not always true though. Fastboot getvar all or alternatively getvar mainver pulls a version it finds in the MISC partition and relies on that to be correctly updated. Source
    So how does that version string get updated? It is being read from the android-info.txt file in any firmware zip that you flashed. The last zip you flashed determines what will be reported by the getvar function. So if you mess around with Firmware.zip’s and RUU’s a lot, chances are, that the version reported there is not equivalent to what you are already running. Often the android-info.txt has version entries not appropriate for the actual zip contents, for compatibility reasons, because it wasn’t done properly or whatever. My zips have the correct android-info.txt with them always and will always provide a correct entry.However, TWRP has a bug up till version 2.7.1.0 which deletes this info upon first and every consecutive boot, so you will NOT have this info at all when running that TWRP.

    The "Firmware" as a concept like we use it on XDA does not exist in HTC's terms. HTC does NOT differentiate between the /System Partition (what we know as "the ROM") and the other 46 partitions. Hence, if you run getvar all or getvar mainver on a stock phone, it will report correctly. It does not go looking for a fictitious place where it would find a separate "Firmware" version. That place it is looking at is the Misc Partition and that’s correct as long as you haven’t messed with lots of different Firmware zips... So, if you happen to run a hybrid system with a ROM from one base and the other partition images from another base or multiple bases (like hboot from 1.12, radio from 2.22 and ROM from 1.54) the getvar function will report as "Version-Main" what it finds in /misc/, precisely the last zip you flashed determines the string put there.

    Example: you flashed a radio with a RUUmode zip from Base 1.54 but the android-info.txt is maybe still an old one from 1.12 because the dude who made the zip, just dropped the new radio into an old existing zip, the getvar function will later report that old 1.12 version as your MainVer.

    To check your firmware: boot to bootloader and look at the combination of hboot version and radio version - if you didn't flash those separate, the combination will let you know what base you are on (each OTA and RUU has the radioversion in its name).
    Finding out your firmware is a game of guesses and knowing what you did to your device and where you are coming from.

    If totally lost, best thing is to reflash some clean stock package to be sure you are on the same level with all partitions.

    Long story short: you better know what you do because finding out your firmware is going to be difficult if you don't.

    Further reading
    - to be updated

    Related/ “Like” stuff
    - to be updated




    The original M7 thread
    39
    [2016.02.28] BatchTool Command collection

    Post_Header_Sneakyghost_BATCH.png

    The "Batch Tool" script - a thing i am using for myself since the OneS days and which i am sharing just because i have it. It is neither good nor special, but its the way i work and people who follow my instructions might find it easier to use the same setup as i do.
    It has the RUU/FUU included. I don't even use the FUU as a standalone myself. I have the structure in C:\Android\com and just exchange the zip's in there - so i have this and drop the zips i offer as download.

    Since everything i do basically works out of the C:\Android\com path, all my zipped-up stuff extracts to that location. The FUU, the Batch Tool and the self-made RUU repacks as well. This enables easier and faster creation of new zip’s.
    If you prefer to work from a different location. you can specify a different path in the installer. However, the batch scripts do not adjust automatically, which means if you use another path, you might need to open up the scripts in an editor and adjust some paths manually.


    Preview:
    c9ucmi7-XmRLpWuf-8Kzs9b7qaGKx_0MLmA92eRjG91qptfuuEqJYuhEFjJ8t-8rEXAk2puog-ekVcS_kSbQLd6T6XTX3WsY4SE_4npAmtU5l75FX47lKGUSQaaQH1RHPtgQetiAtzJRO4K-Wv9Mj3-ZbOnXyk5jDz_6SOIUTWsT2j0sw3ibuFSX2263GzjuAqeQwyra-h5KpWum0-_Cb85DTOjcZtmkhWmBODU3osfjOcK5KqyeGuFGY-PzCeMrAoIdIUGNP6s0QHj52ca8AvNeqmqHDGKx23dShc1v9VdyYK03vIZUCPh8pDVdYouUBjEWH4kLljsx2_dm-prY7W-UFS2c9OfyrQHgehoQlLm-5AidXnhViAomE0eldhY8sh0i717Rpyd-Al2ErUOqqU9ofsYLYTlcRgDTlUyyeOK86RxyjKLI-G_7uanykcksrJ8hsxsosv3ImMUqdUl0_K-cSh5Z56Iv59ivkYKymA1Cjo8kKRBZ5HIt8Wu3GftNe8DHI-GucjiGp6R-i7hhGu0jXqGJ7fhYXSBEMIOCI92KXDfHRIFpTCYNA-t92-VpWUqAIg=w728-h681-no


    DOWNLOAD
    MD5: f2a4eaa67a291d1d16a238ec943eb595​

    The installer is just a simple WinRAR self extracting archive - there is NOTHING BAD in there i swear! Open it with WinRAR 5 and look inside. You will see if you don't trust me.

    Changelog:


    • 1.2.7
    • Updated TWRP to 3.0.0-1 and Stock Recovery to 6.12.401.4
      1.2.6
    • Added TWRP Recovery 2.8.7.0 (All M8 devices)
    • Added Stock Recovery 4.16.401.13.img (WWE)
    • Added newer RUU structure (3.0.4.2015 - from 4.20.531.5 TMUS RUU) - should now support MM ROM.zip’s from newer RUU’s as well.
    • Fixed my screenrecorder command. Dumb people shouldn’t write batch scripts :(
      1.2.5
    • Added TWRP Recovery 2.8.5.2 from Captain_Throwback (All M8 devices)
    • Fixed Recovery Screenshot option (20)
      1.2.4
    • Added newer RUU structure (2.0.16.2014 - from 4.16.1540.8 Dev Edition RUU)
    • Added Stock Recovery 4.16.401.10.img (WWE)
    • Changed the License and SFX texts again (Installer) - never happy with it.
      1.2.3
    • Fixed some serious crap nobody reported. I just found out myself.
    • Added Stock Recovery 4.16.1540.8 (sorry still don't have the WWE recovery, but i guess they are identical)
    • Added TWRP 2.8.4.0 from the M8 tree of Dees_Troy.
      1.2.2
    • Added Stock Recovery3.28.401.7
      1.2.1
    • Added Microsoft's vcredist_x86_2008_SP1.exe to the installer because the ARUWizard is build on the x86 Visual Studio 2008 runtime. This resolves the "side-by-side configuration" error.
    • Added 3.28.401.6 stock recovery and splash
    • Added newer RUU structure (doesn't do any difference though, just keeping it up to date)
    • Added TWRP 2.8.0.3 (it still has slight issues with MTP which will be fixed soon but for now, this is good enough)
    • Changed a few lines in the script (minor, cosmetical stuff)
    • Updated the INFO PDF (option 24)

    Currently not working:
    - Screenshot (option 20) only does TWRP and Android 5 and lower, but not Marshmallow. I have to write up a new script with two different methods as Marshmallow does not allow the framebuffer to be pulled via ADB anymore. At least I can't see how. In TWRP however, only the framebuffer method works.
    35
    Post_Header_Sneakyghost_SPARE.png


    Stock Splashes as recovery and ruumode flashes​



    Other separate files if the need arises.
    30
    Splash Screen Generator, Partition Layout, Regional and CID Codes

    Post_Header_Sneakyghost_OTHER.png


    Splash Screen ONLINE generator by @touch of jobo : http://xdaforums.com/htc-one-m8/themes-apps/mod-customize-boot-splash-online-splash-t2817059 - VERY nice tool to generate recovery flashable splash screens on any browser!​

    Epic Internal SDCard File Recovery guide by @Wartickler : http://xdaforums.com/galaxy-nexus/general/guide-internal-memory-data-recovery-yes-t1994705 - VERY handy to have occasionally. Bookmark it for future reference :D

    Broken Internal SDCard File System Recovery Method found by @smeejaytee and made easier by TWRP, described HERE

    Universal SIM Unlock for S-OFF'ed HTC Devices thanks at @smeejaytee for letting me know. HERE (thread by @JEANRIVERA)​

    WWE (and other) RUU leaks courtesy of @djluisbento. HERE