Showing posts with label firmware. Show all posts
Showing posts with label firmware. Show all posts

Sunday, July 24, 2016

HTC One M8 3 28 401 6 new firmware details


While the new OTA update for the HTC One M8 is still hot & fresh (HTC One M8 received Android 4.4.4 update with HTC EYE camera experience!) we decided to take a quick look at the new firmware package included in the 3.28.401.6 update. There are few interesting changes in there!


1. Bootloader (hboot)

The new bootloader version is tagged as 3.19.0.0000 (previously 3.18.0.0000) and one of the most noticeable changes is the new "Software status" text at the very top of the screen in the bootloader mode. There are 2 possible variants of this text:

*** Software status: Modified ***

and

*** Software status: Official ***

This new text apparently replaced the existing until now "TAMPERED" text (or some may call it "flag"). When the "Official" will change to "Modified"? It seems that there are 3 commons situations: flashing custom recovery.img, boot.img (both with no HTC digital signature) or modifying anything on the system partition.
  • How often that component receives an update? Very often
2. ADSP drivers (Advanced Digital Signal Processor)

The OpenDSP version is now 46.2.2-00564-M8974_F0.0811 and it previously was tagged as 38.2.2-00542-M8974.0311. The Harman & Kardon ADSP drivers were tagged as 45.2.2-00542-M8974_HM.0422 so maybe HTC incorporated proper H&K code changes in the international HTC One M8 as well? Audio and video improvements expected!
  • How often that component receives an update? Rarely
3. Boot.img

New boot.img has a few changes in the ramdisk and a new kernel (3.4.0-g222defb) inside.
  • How often that component receives an update? With every update
4. Emmc_fw16.img and emmc_fw32.img

These are totally new. We can only guess that emmc_fw.16/32.img are suppose to update the eMMC (embedded Multi-Media Controller) storage firmware.
  • How often that component receives an update? Never before
5. Radio.img

The new radio in the 3.28.401.6 firmware is tagged as 1.21.21331147A1.19_2G and it replaced the 1.19.21331147A1.09G version.
  • How often that component receives an update? Rarely
6. Recovery.img

As always, recovery images has also been updated (f.g. with a new kernel). Not many use stock recovery anyway.
  • How often that component receives an update? With every update
7. Rpm.img

This component is responsible for a chipset firmware, voltage tables, etc.. Its one of the most crucial firmware parts.
  • How often that component receives an update? Almost never
8. Sbl1-1, sbl1-2, sbl1-3 and sbl1-4

These are probably related to the bootloader security mechanisms. Sbl1-1, sbl1-2, sbl1-3 are updated in the 3.28.401.6 OTA package and sbl1-4 is a brend new one.
  • How often that component receives an update? Almost never
9. Sensor_hub.img

The sensor_hub.img is the firmware for the sensor hub. A sensor hub is in itself a chip with its own LowPower microprocessor that can control the sensors in the device.
  • How often that component receives an update? Almost never
10. Splash1.nb0

This is a splash-screen animation that appears right before you see the regular boot-animation.
  • How often that component receives an update? Almost never
11. Tz.img

Tz.img is responsible for so called Trusted Zone: DRM keys at stuff. Its another crucial firmware part, better not to play with!
  • How often that component receives an update? Rarely
12. wcnss.img

Also known as Wireless CoNnectivity SubSystem (thanks to tonokeemon @XDA for the info!). Its responsible for a Wi-Fi module firmware. Better dont mess with it!
  • How often that component receives an update? Almost never

As you can see, the 3.28.401.6 update is not only based on Android 4.4.3 --> Android 4.4.4 change. It contains a fundamental changes in the device firmware too. Android Revolution HD 20.0 based on the latest 3.28.401.6 update is just about to be released. In a couple of hours you will be able to find the download link in my XDA thread or alternatively on the AndroidNow English board thread, where I keep all links to my custom ROMs.

You can download the new firmware from this thread: HTC One M8 firmware collection for different CID/MID.

Have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!




For latest news follow Android Revolution HD on popular social platforms:

Read More..

Monday, June 27, 2016

How To Flash firmware package on the HTC device


Flashing so called "firmware" is as popular these days as flashing "custom ROM". For HTC old-boys its nothing complicated, but some fresh Android users might find it difficult to understand the differences between "firmware" and a "custom ROM". As a result they might be afraid to upgrade OS on their device or even accidentally hard/soft brick it. Before continuing please read this article: How To: Find the proper firmware variant on the HTC device.


First of all let’s make some definitions clear. Both "Firmware" and "ROM" has their own dictionary definitions, but in this guide we need to use the same context of these words as you can find on popular articles and forums.

Your device is equipped with eMMC memory (embedded MultiMediaCard) - a place where every kind of data is stored. This eMMC memory in Android OS is called mmcblk0. But for a various reasons this memory space has to be divided into several smaller parts (f.g. not every kind of data can be stored on the same type of a filesystem). As a result, the eMMC memory is separated into different partitions (RAW, EXT3, EXT4) - smaller or bigger. To indicate the correct partition, each of them has its own number - p1, p2, p3, p(...) etc. The whole partition name indicates also the eMMC number its located in - mmcblk0p1, mmcblk0p2, mmcblk0p3, mmcblk0p(...) etc.

To see a lit of all the partitions on your device just type cat /proc/emmc in the adb.exe command shell.

Doing that you can also see the original name of each partition. The list you can see above is what we call "firmware", and what "custom ROM" is made of is usually just "boot" and "system" partitions. In other words - custom ROM represents "system", "boot" (sometimes "userdata" too) and everything else you can see on the list is a "firmware".


Important: Every signed and official firmware.zip can be flashed on a particular device only. Information about the device and its variant can be found inside android-info.txt in the firmware.zip package.

Question: Where firmware comes from? There are 2 ways: official and non-official. Usually firmware package comes together with the OTA (.zip) update. Inside the OTA package you can find firmware.zip archive (always signed). The non-official way is based on decrypting and extracting content of the RUU (.exe)

Question: Is everything from the list above always included in the official firmware.zip? No. HTC updates only these components (partitions) where there were changes in the code, usually related to the Android OS update or security changes in the bootloader (hboot). That means firmware.zip might have "adsp", "boot", "radio" inside and weigh 10 MB or it might contain a lot more and weight even 50 MB.


Signed (official) firmware packages can be flashed on both S-ON and S-OFF device. Once modified (unsigned) firmware.zip cant be flashed on the S-ON device. If your device is S-ON then you have to re-lock the bootloader. As long as your device is S-ON you also cant downgrade the firmware version.


Important: Make sure you have a correct MID (Model ID) and CID (Carrier ID). To check that use fastboot getvar all command. Everything you do, including following this guide, you do at your own risk!



Flashing Process
  1. Download this mini-sdk package and extract it to c:mini-sdk
  2. Copy firmware (.zip) package to c:mini-sdk and rename it to "firmware.zip"
  3. Connect your device to the PC
  4. Boot your device in fastboot mode (vol down + power ===> fastboot)
  5. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  6. cd /d c:mini-sdk
  7. fastboot getvar all (open android-info.txt inside firmware.zip and check if MID and CID matches)
  8. <optionally> fastboot oem lock (if your device is not yet re-locked)
  9. fastboot oem rebootRUU
  10. fastboot flash zip firmware.zip and wait for the process to be completed. Sometimes flashing firmware once doesnt work, so flash firmware.zip again using the same command.
  11. fastboot reboot

In case of further questions I prepared a little Q&A part:
  • What is firmware.zip?
Firmware.zip is a part of Over The Air (OTA) update from the HTC. It contains important parts of the firmware like radio, bootloader, recovery, kernel etc.
  • Why its important to flash firmware.zip and when should I flash it?
It is recommended to have the latest firmware on your device for the best modem performance and overall system stability. Sometimes its necessary to have the latest bootloader too, because otherwise your device might not work well with the new system update.
  • Why its important to flash it before flashing custom ROM?
Because firmware.zip contains boot.img (ramdisk and kernel) that will replace custom boot.img from any custom ROM you already have. Thats why you have to flash firmware.zip first, because otherwise boot.img will be overwritten with the stock one. If you already flashed firmware.zip after flashing custom ROM, just flash this particular custom ROM again.
  • Does firmware.zip contain recovery?
Yes, it does contain recovery image, thats why after flashing firmware.zip you will have to flash custom recovery again to be able to flash custom ROM afterwards.
  • Can I flash any firmware.zip on my device?
Not if your device is S-ON. To be able to flash firmware.zip on the S-ON device, your MID number (example: PN0710000) and CID number (example: HTC__001) must match the firmware.zip version you are about to flash.
  • If my MID or CID doesnt match, can I brick my device if I try to flash firmware.zip anyway?
As long as your device is S-ON flashing firmware.zip with non matching MID or CID will result in error and nothing will be flashed, so there is no risk of brick.
  • Do I need to have locked, unlocked or relocked bootloader to be able to flash firmware.zip?
Your bootloader needs to be relocked.
  • If I cant flash newest firmware.zip because of wrong modeid (MID) or cidnum (CID) does it mean I cant use custom ROM based on the latest HTC update?
In most cases you should be able to use any custom ROM as long as hboot update is not mandatory.
  • What if there is no firmware.zip for my MID/CID?
Try to find latest OTA update for your original stock ROM and extract it. Firmware.zip should be inside.

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Read More..

Thursday, May 26, 2016

How To Find a proper firmware variant for the HTC device


This guide is related to the previously published article - How To: Flash firmware package on the HTC device. The goal of this guide is to expose the problem of a matching firmware version for the particular HTC device. Please read it carefully and in case of any questions leave a proper comment in the comments section at the end of this article.

Every firmware.zip has 2 main attributes: modelid (MID) and cidnum (CID).

  • MID contains a codename of your device. For example the "0P6B1000" is the international version of the HTC One M8, while the "0P6B13000" is the T-Mobile U.S. version of the HTC One M8.
  • CID is the carrier software codename. For example the "HTC__J15" code represents the unbranded international version of the HTC One M8, while the "T-MOB010" code represents the T-Mobile U.S. software. Different CID numbers are usually used for mobile operators to include different regional settings, languages or to include some extra software (Wi-Fi Calling, Visual Voice Mail etc.).

Both MID and CID can be found in the android-info.txt inside each firmware.zip. This is how android-info.txt looks like (as an example I used firmware.zip from the international version of the HTC One M8):


Once you know the version of the firmware you have, you need to check if your device can be safely flashed with that particular firmware.zip. To check that:
  1. Download this mini-sdk package and extract it to c:mini-sdk
  2. Connect your device to the PC
  3. Boot your device in fastboot mode (vol down + power ===> fastboot)
  4. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  5. cd /d c:mini-sdk
  6. fastboot getvar all

This is an example output from the international version of the HTC One M8:


What you are looking for is the "modelid" and "cidnum".
  • If your device is S-ON then both modelid and cidnum must match.
  • If your device is S-OFF then modelid is critical to match, but cidnum can be changed either by changing CID of your device or by editing android-info.txt.
  • Edited firmware.zip cant be flashed on the S-ON device.
  • If your device is S-ON then you cant downgrade your current firmware version.
If both CID and MID numbers match you can safely flash the firmware.zip package - How To: Flash firmware package on the HTC device.

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Read More..