FIRST THINGS FIRST:
- This is for GSM PHONES which have been set S-OFF - no CDMA (Sprint & Verizon) here! S-ON people: Please refer to HTC RUU methods or "Stock Backup and OTA" method. (not provided here).
- Read from top to bottom. No skipping of stuff or you will be confused.
- I cannot accept any liability and/or responsibility for these firmware packs. I am not able to go through the time consuming process of testing each pack, hence community members are called to test these on their own. I am gladly accepting constructive feedback.
Purpose of this thread:
- Suitable methods for flashing firmware when S-OFF.
- Error handling strategies - collection of known errors and their meanings (Post 3).
- Reliable background information for safe flashing (Post 5 mainly).
- Providing FULL, non-incremental firmware files (Post 2) to update coming from ANY version (applies to my FullStock as well as NoWipe packs!).
- Providing a simple ADB environment with a basic batch script (Post 4)
Flashing methods:
- The safest way is still HTCs RUU and OTA method. US RUUs can be accessed via HTC's US Support Site. Jump to your device, then click "View" and scroll down for the download-link. The page has Dev/Unlocked (617), Sprint (651), AT&T (502) and T-Mobile US (531) covered. RUU's are superior to other flashing methods because they carry lab tested combinations of partition images and the method itself is also known to work well (plus the psychological advantage).
Other than HTC's original OTA's which are "incremental", My packages are always FULL packages (applies to my NoWipe as well! It can also be considered a FULL update as opposed to incremental) - with these you can safely jump from a very old firmware right up to the newest. Following this original RUU / OTA method, come the methods most suitable for my packs:
- My preferred method is the "Fastboot method", which needs a PC or Mac or Linux computer. I will be detailing how to fastboot flash firmware further down.
- The "SDCard Method" can be considered the fastest and most suitable for people without a PC. I will be detailing how to SDCard flash firmware further down.
An explainer to the ZIP variants provided here:
- Full Stock WIPE ZIPs:
NOTICE: FullStock zips currently permanently break the phones ability to receive HTC stock OTA's - to restore your OTA functionality, refer to post #5 for more information!
Only System removed (and encryption broken) - Everything else stock! This type of zip also re-flashes the /data partition with HTC's DZDATA files (meaning you loose everything on your internal SDCARD). Also replaces the Kernel, recovery and Splash1 with latest stock images! The /system partition will not be touched. (Else this would be a RUU.zip). It also includes the "apppreload.img" with all the carrier-bloatware (WWE has no bloat in there!).
Be sure to put a ROM onto your EXTERNAL SD before proceeding with a Full WIPE ZIP! If you forgot to put a zip on your sdcard: you can reflash TWRP with Fastboot (use my batch tool) and then choose between ADB file push, MTP transfer or even USB mass storage transfer mode. Last but not least you can take out the sdcard and use a card-reader with your computer. Phone will NOT boot without ROM reflash after using this!
- NoWipe ZIPs:
These packages are modified. This type of ZIP updates basic Firmware partitions, does not touch the /data partition, leaves kernel, splash and ramdisk (in order to support custom ROM's modifying ramdisk) alone. The "apppreload.img" is removed, the bloatware partition will remain unchanged (to remove already existing bloat permanently flash apppreload.img from International/WWE/401, it is an empty image). Recovery will be replaced with the current TWRP. Phone should in most cases boot normally after using this.
- And what you won't get here (fine print):
Since this is a Firmware Update Thread and not a ROM thread, 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. You may find stock system backups here
How to flash firmware.zip's using fastboot
Prerequisites:
You need ADB and Fastboot on your PC. To get ADB and Fastboot up and running I strongly suggest you use my "Batch Tool" setup, because it contains an updated htc_fastboot, which is 100% working with the HTC 10 . This is important: the generic Google fastboot from SDK API Level 24 (latest at time of writing) is NOT FULLY COMPATIBLE.
The method outlined here does apply to my zips as well as HTC signed zips. The difference is, that for my zips, S-OFF is mandatory, while HTC signed zips can under certain conditions also be flashed to S-ON phones, however, different prerequisites and risks apply there. I will not cover HTC signed zips here as they are fundamentally different in some aspects while the flashing method remains the same.
Note: use "htc_fastboot" with my batch tool. If you use another ADB/Fastboot set, it will probably be Google Fastboot and then the commands should be starting with "fastboot".
Step-By-Step:
1. If device is booted into Android, reboot into download mode by running:
Code:
adb reboot download
NOTICE: adb reboot download is new since the M9 for those who come from earlier HTC devices - zips can be flashed in download mode or RUUMode, both work. The on-screen status report is more detailed in download mode. This making it the preferred flashing mode for now.
1.a Or else, if your device is in a different state or you just prefer the button method:
In Android: Press and hold Power and VolDown at the same time for approx. 15 seconds, when the screen and charging LED go dark immediately let go of power, keep holding VolDown a little longer.
During Boot and sometimes when booted into Recovery: Press and hold Power, VolDown and VolUp at the same time for approx. 15 seconds, when the screen and charging LED go dark immediately let go of power and VolUp, keep holding VolDown a little longer.
When in download mode, use the VolUp and VolDown buttons to navigate up and down and use Power to confirm.
2. Now place the Firmware_xx.zip into your adb/fastboot folder (which will be "C:\Android\com" if you use my Batch Tool).
3. Followed by:
Code:
htc_fastboot flash zip Firmware_xx.zip
4. Now check the console output. It should approximately look like this log:
NOTICE: this flash log is taken from a NoWipe (not all images included) flash on my HTC 10. New is also (compared to M7, M8) that the checking routine is way more sophisticated and Controller Firmware for e.g. the touch panel or the Infra Red Remote (One Series only, not available on the HTC10) and the like do NOT get flashed if the checks determine that they are already up-to-date. Images that do not get flashed show "BYPASSED", which is NOT an error.
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. Alle Rechte vorbehalten.
C:\Android\com>htc_fastboot flash zip rom.zip
htc_fastboot v3.0.9.2 (2015-05-29)
target reported max download size of 800000000 bytes
sending 'zip' (85525 KB)...
OKAY [ 4.307s]
writing 'zip'...
(bootloader) HOSD CL#738269
(bootloader) GPT is up-to-dated. [17408]
(bootloader) Perform pre-update
(bootloader) start@32
(bootloader) aboot_signed.img@100%
(bootloader) adsp.img@BYPASS
(bootloader) apdp-8996-1.img@BYPASS
(bootloader) cache.img@BYPASS
(bootloader) cmnlib32.img@100%
(bootloader) cmnlib64.img@100%
(bootloader) cota.img@BYPASS
(bootloader) cs_CY8C.img@BYPASS
(bootloader) devcfg-8996-1.img@100%
(bootloader) dsp.img@BYPASS
(bootloader) fsc.img@BYPASS
(bootloader) hosd_signed.img@100%
(bootloader) hyp-8996-1.img@100%
(bootloader) keymaster.img@100%
(bootloader) lksecapp.img@100%
(bootloader) modemst1.img@BYPASS
(bootloader) modemst2.img@BYPASS
(bootloader) pg2fs_ship_signkey.img@BYPASS
(bootloader) pmic-8996-1.img@100%
(bootloader) rcdata.img@BYPASS
(bootloader) recovery.img@BYPASS
(bootloader) rfg_3.img@BYPASS
(bootloader) rpm-8996-1.img@100%
(bootloader) sensor_hub.img@BYPASS
(bootloader) slpi.img@BYPASS
(bootloader) tp_SYN3708.img@BYPASS
(bootloader) tz-8996-1.img@100%
(bootloader) usb_typec.img@BYPASS
(bootloader) usb_typec_otp.img@BYPASS
(bootloader) venus.img@BYPASS
(bootloader) xbl-8996-1.img@100%
(bootloader) radio.img@BYPASS
FAILED (remote: 90 hboot pre-update! please flush image again immediately )
finished. total time: 6.004s
htc_fastboot finished. total time: 6.110s
C:\Android\com>htc_fastboot flash zip rom.zip
htc_fastboot v3.0.9.2 (2015-05-29)
target reported max download size of 800000000 bytes
sending 'zip' (85525 KB)...
OKAY [ 5.312s]
writing 'zip'...
(bootloader) HOSD CL#738269
(bootloader) GPT is up-to-dated. [17408]
(bootloader) start@32
(bootloader) aboot_signed.img@100%
(bootloader) adsp.img@100%
(bootloader) apdp-8996-1.img@100%
(bootloader) cache.img@100%
(bootloader) cmnlib32.img@100%
(bootloader) cmnlib64.img@100%
(bootloader) cota.img@100%
(bootloader) devcfg-8996-1.img@100%
(bootloader) dsp.img@100%
(bootloader) fsc.img@100%
(bootloader) cs_CY8C.img@BYPASS
(bootloader) hosd_signed.img@100%
(bootloader) hyp-8996-1.img@100%
(bootloader) keymaster.img@100%
(bootloader) lksecapp.img@100%
(bootloader) modemst1.img@100%
(bootloader) modemst2.img@100%
(bootloader) pg2fs_ship_signkey.img@100%
(bootloader) pmic-8996-1.img@100%
(bootloader) rcdata.img@100%
(bootloader) recovery.img@100%
(bootloader) rfg_3.img@100%
(bootloader) rpm-8996-1.img@100%
(bootloader) slpi.img@100%
(bootloader) tz-8996-1.img@100%
(bootloader) venus.img@100%
(bootloader) xbl-8996-1.img@100%
(bootloader) radio.img@100%
(bootloader) sensor_hub.img@BYPASS
(bootloader) tp_SYN3708.img@BYPASS
(bootloader) usb_typec.img@BYPASS
(bootloader) usb_typec_otp.img@BYPASS
(bootloader) Update zip file OK
(bootloader) end@Done
OKAY [ 15.235s]
finished. total time: 20.547s
htc_fastboot finished. total time: 25.326s
C:\Android\com>
Important: Should you decide to flash in RUUMode (instead of Download Mode like suggested further up), the flash process halts at around 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:
Code:
htc_fastboot reboot
IF you encounter any errors which are not "FAIL90", have a look into Post #3 or ask in the thread! DO NOT reboot the device until you have an idea what happened!
5a.
Code:
htc_fastboot reboot-bootloader
5b. Optional:
Code:
htc_fastboot reboot
How to flash firmware using SDCard Method
Prerequisites:- Compatible SDCard, should be formatted with FAT32 for older firmware, newer firmware can also handle ExtFS formatted cards.
- A firmware.zip you would like to flash, taken from Post #2 (Downloads)
- Phone charged up at least 30% (will fail with low power warning if lower than 30%)
Step-By-Step:
1. Rename your firmware.zip to exactly "2PS6IMG.zip" - make sure you enable "show file extensions" in Windows Explorer, if you rename it on your PC. Else you might end up with a "2PS6IMG.zip.zip" which won't flash.2. Copy your "2PS6IMG.zip" over to the root of your SDCard. Use a cardreader, or MTP protocol in Android or Recovery, or USB Mass Storage protocol in Recovery, or ADB push the file in Android or Recovery - many methods available.
3. Now, if device is booted into Android, reboot into download mode by running:
Code:
adb reboot download
3.a Or else, if your device is in a different state or you just prefer the button method:
In Android: Press and hold Power and VolDown at the same time for approx. 15 seconds, when the screen and charging LED go dark immediately let go of power, keep holding VolDown a little longer.
During Boot and sometimes when booted into Recovery: Press and hold Power, VolDown and VolUp at the same time for approx. 15 seconds, when the screen and charging LED go dark immediately let go of power and VolUp, keep holding VolDown a little longer.
4. Once Download Mode starts, it will "see" the 2PS6IMG.zip and ask you (yellow text at bottom of screen) if you want to flash the firmware. Press VolUp to confirm and proceed with the flash, or press VolDown to cancel and continue into Download Mode UI.
5. Now check the screen while it flashes. It should stop at "end UI updating. Press Power to continue" - the phone will now shut off! To turn it back on, press and briefly hold power again.
Last edited: