Stock system dumps for HTC One & HTC One X


Last two days were very exciting for HTC community, especially for HTC One X users (Android 4.2.2 with HTC Sense 5.0 update described here). However, there is always one problem when it comes to HTC updates - no RUUs (ROM Update Utility) officially available do download for regular users (HTC One Developer Edition and Google Edition seems to be the only exceptions). Why RUU is that important to us?

These executable (.exe) files for MS Windows are installers of complete firmware, including for example system or data partitions. Not having latest RUU means:
  1. users using custom ROMs can't download latest OTA from HTC,
  2. developers have no system dumps they can work with.
Ad. 1) If you want to download and flash latest OTA, your device must have completely stock system partition and recovery. Every OTA update is checking MD5 of each file on system partition to ensure .apk patch can be applied. If even one of 1000 files won't match, OTA update installation will fail. In this case you need to flash the latest official update you can find (even one year old) and later download official OTA updates.

Ad. 2) There are few workarounds, however none of them is as good as having a RUU:
  • adb pull /system in custom recovery mode*
  • cp /system /data/media/dump in custom recovery mode*
  • nandroid backup
  • boot partition can be taken from inside firmware.zip inside OTA .zip package or it can be dumped using dd if=</path/to/boot/partition> of=/data/media/boot.img
* adb pull, cp or dd commands must be executed from custom recovery mode, otherwise system dump will be missing few important files or these files will have 0kb size. Also, keep in mind that adb features are heavily limited on stock un-rooted device. In case of dd command, root access (su) is needed to make such operation.

That's why I created my own stock system dumps (as a custom recovery .zip packages) for both HTC One and HTC One X. I believe this can save a lot of time for many XDA users and developers.



Download links can be found on this blog, under Downloads section - Downloads


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

HTC One X with Android 4.2.2 & HTC Sense 5.0 update

HTC One X is one of the very few (if not the only one) devices from HTC which reached 4.xx.xxx.x software version (4.18.491.2). This only proves how great this device still is and how many users are still actively using it. Today HTC One X users are receiving one of the most important update - Android 4.2.2 with HTC Sense 5.0. Last summer HTC did similar update, upgrading HTC One X with Android 4.1.1 from Android 4.0.4 and bumping HTC Sense from 4.0 to so called "4+". However, HTC Sense 4.0/4+ update wasn't that significant and didn't bring so many new features and improvements as HTC Sense 5.0.






The new update includes well known HTC BlinkFeed™ (available firstly only on HTC One), native Android Quick Settings and completely re-designed HTC Sense interface. Two features are missing from HTC One - HTC BoomSound™ and HTC Zoe™. Unfortunately, both are hardware related. BoomSound™ obviously needs dual speakers audio system, and HTC Zoe™ was created to work with small pictures taken with UltraPixel camera - which allows user to take excellent pictures in natural conditions using only 4 mega pixels resolution in pair with dedicated HTC ImageChip™ 2.








As you can see, there is a changelog attached to the OTA notification, however it is just a "commercial" changelog - that means there are a lot of different changes/improvements under the hood. Android 4.2.2 update brought a lot of changes itself, not to mention new HTC Sense 5.0 features, further optimization in SoC drivers and kernel related improvements.


The new update for HTC One X looks great and surely will bring some fresh air to the device. HTC One X+ already received HTC Sense 5.0 update few days ago, however it was only Taiwanese update so far. Below you can see HTC BlinkFeed screen together with Android Quick Settings on latest HTC One X 4.18.401.2 software.



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

Do you want to write on Android Revolution HD blog?

It's time to expand. This place has a potential and I want it to become even more popular. If you are interested in making this place even better and more crowded, please keep reading!

So, what I am looking for?

Strong written English
This is essential. It's fine if English isn't your first language, it's not if I have to rewrite all your posts. Your grammar and variety of vocabulary must be at an advanced level.

Good understanding of mobile tech and an attention to detail
Know the areas you want to write about, know the sources and strive for accuracy. Your articles must have some particular level of quality, otherwise it can't be published.

Have an opinion
Re-posting news from other tech-sites is not welcomed. You need to be able to understand what things mean, put it in context and share your thoughts with our readers. I'm more interested in creating the opinion rather then passing some news along.

Regular contribution
This isn't a job offer, but this might change in the future. For now I want to create a friendly place where dedicated people can share their thoughts (and there is a lot to share nowadays). I ask that all applicants are able to post on average 1-2 times a week. News posts don't have to be thousands of words, in most cases a couple of hundred will suffice.

Technologies
I'm mostly interested in Android / Windows Phone articles, however the variety of potential topics is: "Linux Kernels" | "Linux General" | "Android General" | "Android Devices" | "Windows Devices" | "Other OS Devices" | "Tablets" | "Gadgets" | "Manufacturers News" | "PC News" | "your idea".


There is no age limitation. Everyone can have hobby and be addicted to gadgets :)

How to apply
Please send me an e-mail with some details about you. Where are you from, how old are you, what topic are you most interested in, and if you've been writing any sort of articles/news before.

EHNDROIX III 13.8.6 - i9001




EHNDROIX III is an aftermarket firmware based on CyanogenMod 10.1,created by Nitrox-developers Team. Edited and customized to the smallest details, is designed to provide users with an Jelly Bean user-friendly experience and is available for a wide range of terminals !


The ROM has been optimized to ensure maximum fluidity and at the same time good battery life and, thanks to Nitrox S, you will have the opportunity to stay up to date on the latest news and download launchers, themes "exclusive" mod and much more ! 


Features

  • Based on CyanogenMod 10.1
  • New theme with new exclusive EhndroiX styles
  • Update the ROM directly from your device with integrated OTA Updater
  • Official bootanimation
  • Use EhndroGapps, refined gapps and in Black or White style
  • Apex Launcher
  • FM Radio Included
  • Flash Player Support
  • No more ads in the apps
  • Send messages with exclusive EhndroiX app with a very attractive look and new features
  • Exceptional audio quality and volume thanks to Sony xLoud and ClearAudio
  • Striking Images Quality thanks to Sony Bravia Engine 2 and a better density
  • See HD videos via 3G or Wi-Fi by Inverted YouTube modded for continuing to use whit the screen off
  • Fantastic Official EhndroiX Wallpapers
  • GPS ultra running in all countries due to the automatic fix satellites
  • ROM in constant development (keep up to date thanks to date version)
  • Keep safe your data with Titanium Backup installed by default
  • ... and much more!


Guide to proper Installation

Coming from a previous EHNDROIX III:
  • Download ROM
  • Download EhndroGapps
  • Wipe Cache
  • Wipe Dalvik / Cache
  • Flash EhndroiX III
  • Flash EhndroGapps
  • Restart

    Coming from EHNDROIX II or EHNDROIX /CM7/CM9/CM10/AOKP/MIUI:
    • Download ROM
    • Download EhndroGapps
    • Wipe Data
    • Wipe Dalvik Cache
    • Flash EhndroiX III
    • Flash EhndroGapps
    • Restart



    Changelog


    13.8.6
    • Changed base to CyanogenMod 10.1 RC5 by ADC Team
    • Changed kernel to K^Kernel 1.9 ( Linux Base 3.4.56 )
    • Rom built with Google GCC 4.9 Toolchain
    • System Improvement
    • Better Fluidity
    • Better Battery Drain
    • Better Data Connection
    • Updated Default Apps
    • Updated White and Black EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!


    13.7.17
    • Changed base to CyanogenMod 10.1 RC4.6 by Davidteri
    • Changed kernel to K^Kernel 1.7 ( Linux Base 3.4.53 )
    • Rom built with Google GCC 4.9 Toolchain
    • AriesParts of CyanogenMod 10.1 RC4 by ADC Team 
    • Added Android 4.3 Camera
    • Added Android 4.3 Sun Bean Live Wallpaper
    • Samsung Galaxy S IV Style Package Available
    • System Improvement
    • Better Fluidity
    • Better Battery Drain
    • Better Data Connection
    • Updated Default Apps
    • Updated White and Black EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!


    13.7.9
    • Changed base to CyanogenMod 10.1 RC4 by ADC Team 
    • Changed kernel to PhenomKernel 4.3 ( Linux Base 3.4.51 )
    • Rom built with Google GCC 4.6 toolchain
    • AriesParts: Corrected German translation
    • AriesParts: Corrected Spanish translation
    • AriesParts: Serbian translation
    • AriesParts: Show the value of vibration strength in percentage instead of the value of the driver
    • AriesParts: Updated cm device settings with tab layout
    • Revert back to system defined dalvik heap)
    • Set resampler quality
    • Fix audio in Hangouts
    • Remove custom oncrpc node permissions 
    • Clean out unused code from liblights
    • Put back dalvik.vm.dexopt-data-only=1
    • Enabled world phone menu
    • Enable volume rocker and home button wake preferences
    • Added PhotoTable live wallpaper
    • AriesParts: Chinese translation
    • AriesParts: Romanian translation
    • AriesParts: Polish translation
    • AriesParts: Spanish translation
    • Updated Default Apps
    • Updated White and Black EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!

    13.6.24
    • Changed base to CyanogenMod 10.1 RC2 by ADC Team 
    • Changed kernel to K^Kernel 1.4 ( Linux Base 3.4.50 )
    • Temporary workaround for flicker brightness after screen on 
    • Battery drain fix for WIFI "Disabled SUPPORT_PM2_ONLY and DISABLE_FW_ROAM_SUSPEND"
    • Fixed data CRC errors for WIFI
    • Updates and fixes to Interactive CPU governor
    • Squashed update of BFQ-V6 to BFQ-v6r2
    • Corrected an unmanaged gamma for autobrightness
    • Customizable timeout for touchkeys backlight
    • Added AccuWeather
    • Removed Yahoo Weather
    • Customizable activation status of touchkeys backlight on touchscreen press 
    • Fix for discharging battery issue while charging to 100%
    • Updated Default Apps
    • Updated White EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!

    13.5.31
    • Base updated to CyanogenMod 10.1 Beta 6.3.5 by davidteri91
    • Kernel updated to Linux Base 3.4.47
    • Fixed Problem with Camera
    • Fixed Wi-Fi Thetering
    • Updated CameraHAL
    • Update BoardConfig
    • Added Global Gps Fix No SSL
    • System Improvement
    • Data Connection Improved
    • Bluetooth Connection Improved
    • New driver autobrightness sensor
    • Updated Display and Media legacy
    • GPS Connection Improved
    • Updated EhndroGapps ( slimmed and changed installation script )
    • Updated default apps
    • Sync to lastest CyanogenMod sources
    • And other news !!!


    13.5.19
    • Update base to CyanogenMod 10.1 Beta 6.2.1 by davidteri91
    • Change kernel into K^Kernel 1.9 ( Linux Base 3.0.78 )
    • ROM Reworked from zero
    • New Bootanimation
    • Graphic Update
    • System Improvement
    • Better Data Connection
    • Fixed Bluetooth 
    • Fixed Google Maps soft reboot
    • New driver autobrightness sensor
    • Updated Display and Media legacy
    • Better GPS Connection
    • Updated EhndroGapps [ only white version, beacuase there are a lot of newest apps not yet in black version )
    • Updated default apps
    • Sync to lastest CyanogenMod sources
    • And other news !!!


    13.4.29
    • Update base to CyanogenMod 10.1 Beta 4.5 by davidteri91
    • ROM Reworked from zero
    • System Improvement
    • Better Data Connection
    • Fix Audio Call
    • Fix Edge Connection 
    • New driver autobrightness sensor and update display driver from SGS2
    • HWC branch now called CM-10.1 compiled Display and Media legacy
    • Now ROM uses Samsung Camera Legacy
    • Added SD storage in stock camera app
    • Better GPS Connection ( Don't use Maps. It is bugged in CyanogenMod 10.1 )
    • Updated default apps
    • Sync to lastest CyanogenMod sources
    • And other news !!!

    13.4.19
    • Update base to CyanogenMod 10.1 Beta 3.5 by davidteri91
    • ROM Reworked from zero
    • System Improvement
    • Better Fluidity ( Never seen before - Very,very fluid)
    • Better Battery Drain
    • Better Data Connection
    • AddedHWC 1.1 Display and Media legacy
    • 30FPS Preview Videocamera
    • New Drivers 3D By Qualcomm ( Fantastic Performance )
    • Better Data Connection
    • Better Battery Drain
    • Better Wi-fi Signal
    • Better GPS Connection
    • Updated default apps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!


    13.4.13
    • Update base to CyanogenMod 10.1 Beta 2.4 by davidteri91
    • Change kernel into Phenom Kernel 3.6 ( Linux Base 3.0.73 )
    • Added EhndroiX III Official Bootanimation
    • Changed some sytem sounds with Samsung Galaxy S IV 's ones
    • Added Universal CleanerScript ( flash in recovery for remove tweaks *Only for how have laggy phone )
    • Added Google Keep
    • System Improvement
    • Better Fluidity
    • Better Battery Drain
    • Better Data Connection
    • Little Graphic Update
    • New display drivers from Samsung Galaxy S II
    • Fixed Button Edit inor remove emmc brick bug
    • Fixed preview videos 480p
    • Fixed universal WEP
    • Fixed Android Keyboard
    • Fixed glitch in frontal camera 
    • Enable WEBGL
    • Updated RIL
    • Updated default apps
    • Updated and added new apps in EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!

    13.4.2
    • Update base to CyanogenMod 10.1 Beta 1 by Xistance
    • Change kernel into Phenom Kernel 3.2.1 ( Linux Base 3.0.71 )
    • Added EhndroiX III Official Bootanimation
    • Added Google Keep
    • Changed some sytem sounds with Samsung Galaxy S IV 's ones
    • Graphic Update
    • Fixed Bluetooth
    • Fixed RIL problems
    • Vsync fully working
    • Fixed WiFi tethering
    • Fixed Bluetooth tethering
    • Fixed USB tethering
    • Removed MIUI Notes
    • Updated default apps
    • Updated EhndroGapps
    • Sync to lastest CyanogenMod sources
    • And a lot of other news !!!

    ___________________________________

    Download: Last ROM Release

    Download: Black and White EhndroGapps 4.2.2
    Download: S IV Style Universal Pack
    Download: LG Style Universal Pack
    Download: NitroX-developers Bootanimations Pack


    (This ROM is certified Nitrox-developers but the staff does not assume any responsibility for any damage to your device)

    New feature on xda-developers - "XDA: DevDB"

    Recently xda-developers presented new forum feature: Development Database, or DevDB for short.

    Here is a short list of what is actually does:
    • Download manager with an XDA torrent tracker
    • ROMs can have multiple "contributors" who can make changes, add files, etc.
    • Ability to tag ROMs (so they are searchable for users)
    • Screenshot management
    • Ability to reserve up to two posts in your ROM thread (below the first post)
    • ROM reviews
    • Q&A thread association
    • Bug tracker / feature requester
    • ROMs will be flashable directly from DevDB *coming soon*
    • Users can "follow" a ROM and get auto-notified of updates

    Of course it's not only about ROMs. Any developer can add f.g. kernel project too.

    What I find interesting so far is the possibilities to write a short reviews and follow the project. Everyone can also contribute by writing some idea for some new feature or submit a bug in a bug tracker.

    If you have free 5 minutes (it's how much it takes!) please take a look at this new system and follow my HTC One "project" under this link - follow project (if you are HTC One owner) and leave your review for my HTC One ROM under this link - write a short review.

    The project is currently in beta stage, and number of supported devices is limited to:

    Galaxy S II, III, and 4
    HTC One

    Sony Xperia Tablet Z
    Sony Xperia Z
    Droid DNA
    Nexus 4, 10, 7
    Galaxy Note II

    Personally I think that DevDB is a great idea, however it surely needs some time before users and developers will get used to it.

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

    EHNDROIX III 13.7.20 - i9003




    EHNDROIX III is an aftermarket firmware based on CyanogenMod 10.1,created by Nitrox-developers Team. Edited and customized to the smallest details, is designed to provide users with an Jelly Bean user-friendly experience and is available for a wide range of terminals !


    The ROM has been optimized to ensure maximum fluidity and at the same time good battery life and, thanks to Nitrox S, you will have the opportunity to stay up to date on the latest news and download launchers, themes "exclusive" mod and much more ! 


    Features

    • Based on CyanogenMod 10.1
    • New theme with new exclusive EhndroiX styles
    • Update the ROM directly from your device with integrated OTA Updater
    • Official bootanimation
    • Use EhndroGapps, refined gapps and in Black or White style
    • Apex Launcher
    • FM Radio Included
    • Flash Player Support
    • No more ads in the apps
    • Send messages with exclusive EhndroiX app with a very attractive look and new features
    • Exceptional audio quality and volume thanks to Sony xLoud and ClearAudio
    • Striking Images Quality thanks to Sony Bravia Engine 2 and a better density
    • See HD videos via 3G or Wi-Fi by Inverted YouTube modded for continuing to use whit the screen off
    • Fantastic Official EhndroiX Wallpapers
    • GPS ultra running in all countries due to the automatic fix satellites
    • ROM in constant development (keep up to date thanks to date version)
    • Keep safe your data with Titanium Backup installed by default
    • ... and much more!


    Guide to proper Installation

    Coming from a previous EHNDROIX III:
    • Download ROM
    • Download EhndroGapps
    • Wipe Cache
    • Wipe Dalvik / Cache
    • Flash EhndroiX III
    • Flash EhndroGapps
    • Restart

      Coming from EHNDROIX II or EHNDROIX /CM7/CM9/CM10/AOKP/MIUI:
      • Download ROM
      • Download EhndroGapps
      • Wipe Data
      • Wipe Dalvik Cache
      • Flash EhndroiX III
      • Flash EhndroGapps
      • Restart



      Changelog


      13.7.20
      • First Release for i9003!

      ___________________________________

      Download: Last ROM Release

      Download: Black and White EhndroGapps 4.2.2
      Download: S IV Style Universal Pack
      Download: LG Style Universal Pack
      Download: NitroX-developers Bootanimations Pack


      (This ROM is certified Nitrox-developers but the staff does not assume any responsibility for any damage to your device)

      EHNDROIX III 13.7.18 - i9100




      EHNDROIX III is an aftermarket firmware based on CyanogenMod 10.1,created by Nitrox-developers Team. Edited and customized to the smallest details, is designed to provide users with an Jelly Bean user-friendly experience and is available for a wide range of terminals !


      The ROM has been optimized to ensure maximum fluidity and at the same time good battery life and, thanks to Nitrox S, you will have the opportunity to stay up to date on the latest news and download launchers, themes "exclusive" mod and much more ! 


      Features

      • Based on CyanogenMod 10.1
      • New theme with new exclusive EhndroiX styles
      • Update the ROM directly from your device with integrated OTA Updater
      • Official bootanimation
      • Use EhndroGapps, refined gapps and in Black or White style
      • Apex Launcher
      • FM Radio Included
      • Flash Player Support
      • No more ads in the apps
      • Send messages with exclusive EhndroiX app with a very attractive look and new features
      • Exceptional audio quality and volume thanks to Sony xLoud and ClearAudio
      • Striking Images Quality thanks to Sony Bravia Engine 2 and a better density
      • See HD videos via 3G or Wi-Fi by Inverted YouTube modded for continuing to use whit the screen off
      • Fantastic Official EhndroiX Wallpapers
      • GPS ultra running in all countries due to the automatic fix satellites
      • ROM in constant development (keep up to date thanks to date version)
      • Keep safe your data with Titanium Backup installed by default
      • ... and much more!


      Guide to proper Installation

      Coming from a previous EHNDROIX III:
      • Download ROM
      • Download EhndroGapps
      • Wipe Cache
      • Wipe Dalvik / Cache
      • Flash EhndroiX III
      • Flash EhndroGapps
      • Restart

        Coming from CM7/CM9/CM10/AOKP/MIUI:
        • Download ROM
        • Download EhndroGapps
        • Wipe Data
        • Wipe Dalvik Cache
        • Flash EhndroiX III
        • Flash EhndroGapps
        • Restart



        Changelog


        13.7.18
        • Added Android 4.3 Camera
        • Added Android 4.3 Sun Bean Live Wallpaper
        • Samsung Galaxy S IV Style Package Available
        • System Improvement
        • Better Fluidity
        • Better Battery Drain
        • Better Data Connection
        • Better GPS Signal
        • Updated Default Apps
        • Updated White and Black EhndroGapps
        • Sync to lastest CyanogenMod sources
        • And a lot of other news !!!

        ___________________________________

        Download: Last ROM Release

        Download: Black and White EhndroGapps 4.2.2
        Download: S IV Style Universal Pack
        Download: LG Style Universal Pack
        Download: NitroX-developers Bootanimations Pack


        (This ROM is certified Nitrox-developers but the staff does not assume any responsibility for any damage to your device)

        Revolution Toolbox

        There is something amazing coming for all Android Revolution HD users. But not only. Every Android user would be able to use it!

        I will just leave it here... ;)


        Hint: Logo





        Hint: App drawer icon




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

        Do we really need S-OFF?

        Lately there has been a lot of confusion about if we - HTC users - really need S-OFF on our devices. I think it's time to make this case as clear as possible, and clear up any remaining doubts.

        First of all, S-OFF stands for "Security OFF" and S-ON for "Security ON". It's a term specific to HTC devices (and refers to digital signature checking on the bootloader "hboot"). Retail devices always come with SHIP S-ON locked bootloaders. Hboot can also be found in an engineering version (ENG as opposed to SHIP), but it's not easy to get such a device.

        You should also know the "fastboot" term: it is a diagnostic protocol used primarily to modify the flash filesystem via a USB connection from host computer. After enabling the protocol on the device itself (entering "fastboot" mode from inside the bootloader), it will accept a specific set of commands sent to it via USB using a command line, for example "fastboot flash boot boot.img" or "fastboot erase cache".


        What's the main difference between S-ON and S-OFF from the end-user point of view?


        With S-OFF you can:

        • Flash in fastboot original parts of the firmware like: Trust Zone (tz.img), Resource Power Manager (rpm.img), Advanced Digital Signal Processor (adsp.img), bootloader (hboot.img), Radio Config Data (rcdata.img), Splash Screen and others, very often device specific firmware like Consumer IR (cir.img) for the television remote controller in HTC One.
        • Flash in fastboot custom parts of the firmware above, however I've never seen in my life anyone compiling custom rpm.img or tz.img. I've seen custom bootloaders and Splash Screens only. You can also flash modified radio.img but there is rarely anyone out there who does this.
        • Use more advanced fastboot commands, for example you can change the CID (Carrier ID) of your device or even MID (Model ID). And this one is the most important one in the context of this article.
        • Reset the Tampered flag, so your device does not show up as "Relocked" if you relock your bootloader.

        For about 2 years you have been able to unlock bootloaders of selected HTC devices on the htcdev.com webpage. Unlocking your bootloader results in an "UNLOCKED" message in the bootloader screen, and allows you to use some of the fastboot commands. For example system, boot and recovery partitions are no longer locked and you can flash a custom boot or recovery onto your device. This doesn't mean S-OFF, but it does give you some more control over your device.

        Sometimes there are differences specific to the SoC ("System on a Chip") of each device. Both HTC One X and One X+ (nVidia Tegra 3) have locked out the capability to flash the boot partition from inside recovery, even if your bootloader is unlocked. It is possible to flash the boot partition only via the "fastboot flash boot <boot image name>" command. On the newest HTC smartphone - HTC One (Qualcomm Snapdragon S600) you can use either fastboot or adb shell (dd if=/... of=/...) to write the boot partition.

        Do we really need S-OFF?

        No, we don't. So what do we need? Because we surely need something. But to understand what we need, it's important to realize where the problem is first.

        First of all, comparing HTC devices with Nexus devices is a pointless activity. Never do that. Why? Because they are all S-ON (they call it Secure Boot), and updates for Nexus devices contain the following (based on my experience with Samsung Galaxy Nexus):
        1. bootloader.img
        2. recovery.img
        3. GSM radio
        4. CDMA radio (in case of CDMA device)
        That's all. On Nexus device you can flash the original bootloader or radio using the "package_extract_file" command in the updater-script. When HTC releases a major update, however, you will get:
        1. adsp.img
        2. cir.img
        3. dzdata_16g.hdr
        4. dzdata_16g.img
        5. dzdata_32g.hdr
        6. dzdata_32g.img
        7. dzdata_64g.hdr
        8. dzdata_64g.img
        9. bootloader.img
        10. radio.img
        11. recovery.img
        12. rpm.img
        13. sbl1-1.img
        14. sbl1-2.img
        15. sbl1-3.img
        16. sbl2.img
        17. sbl3.img
        18. tp.img
        19. tz.img
        20. more...
        See the difference? This firmware images (if updated) are stored inside firmware.zip inside the OTA update. And without S-OFF you can manually update (using fastboot commands or command shell) only recovery, boot, system and sometimes radio. Other partitions are locked and you can't update firmware images other way then only with signed firmware.zip.

        Content of HTC OTA update

        However, very often, flashing only the content of the system and boot partitions is not enough to have the device fully working. For example, in the HTC One X it was necessary to use the new bootloader together with the official HTC Jelly Bean update, otherwise your device wouldn't boot with an older bootloader. This is why flashing a custom ROM for an HTC device is nowhere the same as flashing a custom ROM on a Nexus device. Apart from having the latest system files, you need to have the latest firmware.zip package flashed as well.

        Because HTC sells their devices to different carriers around the world, they need to accept some requirements. For example carrier branding. Because of carrier branding, HTC has more than one version of the RUU (ROM Update Utility) for each device. To indicate the difference between the branded and un-branded versions of the same device, HTC used so called "CID" numbers. 

        To find out your current CID number (together with some other useful info) you can use the "fastboot getvar all" command. Also, keep in mind that every OTA update checks CID/MID numbers before it will start to patch your system:




                                 ifelse( is_ship_bootloader(getprop("ro.bootloader")) == "t" ,
                                 assert(check_cid(getprop("ro.cid"), "00000000" , "11111111" ,
                                 "22222222" , "33333333" , "44444444" , "55555555" , "66666666" ,
                                 "77777777" , "88888888" , "99999999" , "HTC__001" , "HTC__E11" ,
                                 "HTC__102" , "HTC__203" , "HTC__405" , "HTC__Y13" , "HTC__304" ,
                                 "HTC__032" , "HTC__A07" , "HTC__J15" , "HTC__016") == "t"););
                                 ifelse( is_ship_bootloader(getprop("ro.bootloader")) == "t" ,
                                 assert(check_mid("full", "PN0710000") == "t");,
                                 assert(check_mid("simple", "PN0710000") == "t"););

        Obviously "check_cid" includes also SuperCIDs (00000000, 11111111, ...).
        Content of android-info.txt
        It's all in updater-script, so it can be easily edited anyway. But the real problem is different. As mentioned already, every OTA update contains firmware.zip - package with bootloader, radio, touch panel drivers, trust zone and other parts of important firmware. It also contains the "android-info.txt" file, where CIDs/MIDs are listed, so your S-ON bootloader won't let you flash an original firmware.zip if your CID number is not listed there. Yes, I'm not talking here about custom radio, bootloader or anything custom at all. Original, untouched firmware.zip from an OTA update can't be flashed onto the device if the CID number doesn't match. Is it a problem? Yes, this is the real problem we're dealing here with. Not S-ON/S-OFF, but CID restrictions and an inability to change the CID number.

        How this can be resolved? "android-info.txt" is a plain text file, so it can be edited easily. If your CID number is not on the list, just add one more line with your CID. However, as long as your device is S-ON, you won't be able to flash it, because every firmware.zip is signed with a special key. Once firmware.zip is modified, the signature is broken and the bootloader will reject the request to update it. But there is a different method: you can change the CID number on your device with a fastboot command "fastboot oem writecid <cid number>". The best CID number to use is one of the WWE CIDs (for instance HTC__001). But wait - you can't use this particular fastboot command without S-OFF.

        Is this problem a real one, or just some sort of users ill-informed craving? It's very real, because without the ability to flash firmware.zip from a WWE OTA update, every user from any carrier or different world region is forced to wait months to receive OTA updates customized to his CID. Everyone can de-brand his device easily by flashing a stock system image, but it won't be enough: because firmware.zip with corresponding parts of the firmware is needed at the same time. This isn't about the OTA itself, it's about the firmware.zip inside that OTA update.

        Dangers:

        So what are the dangers of obtaining S-OFF on your device? Some of the partitions in the device are extremely sensitive and can result in your device being bricked if they are even slightly corrupted. With S-OFF you can access all of these partitions and the slightest corruption during transfer (whether that be a power spike or you jiggled the cable slightly) can result in a bricked device as it does not check for signatures.

        Here’s an example which has almost happened to me once on an S-OFF device: I was flashing a boot.img via fastboot, the command is: "fastboot flash boot boot.img". However I had made a small but significant typo: "fastboot flash hboot boot.img", simply by mis-hitting the B key; this command would be rejected by a device with S-ON as it is a protected partition, but would be accepted on a device with S-OFF. If I had pressed enter without checking the command, my device would have turned into a paperweight in seconds.
        One of the most popular protected partitions the hacking community enjoy flashing is the radio partition. This is also a partition where the slightest corruption will cause your phone to brick. The FCC guidelines state the the radio must be booted with a separate processor (I guess to decrease the risk of it being tampered with), so what happens in a phone when it turns on is: radio is booted via a dedicated processor by the first stage loader, initialising the radio hardware (Wifi, Data, Bluetooth, etc.). Radio successfully boots and initiates the first stage loader to use the main CPU to load the second stage loader into RAM (also known as the SPL). Depending on the boot operation, it will either initiate the system or recovery. So without a functioning radio, the main CPU will not kick on and boot the phone.

        Some other facts:
        1. You don't need S-OFF to root your device.
        2. You don't need S-OFF to be able to run Titanium Backup or other applications that requires root access. You just need root privileges for that.
        3. You don't need S-OFF to flash custom recovery image onto your device.
        To summarize:

        We don't need S-OFF, but we do need the ability to edit the CID number on the device (let's say at least on officially UNLOCKED devices), or the firmware.zip packages inside an OTA update should not be signed, so that "android-info.txt" can be easily edited, or the CID restrictions from android-info.txt should be removed (MID is enough to ensure that the right firmware gets to the right devices).

        Something to re-think?

        Even if we don't need S-OFF I'm quite worried about the policies of mobile companies and carriers. Their philosophy is "the more you are locked down, the more you are protected". That means Police should not fight with criminals, but everyone should just lock down their doors, windows and stay at home instead. It's far easier and cheaper to lock down mobile devices and not allow root access rather then improving the security in other areas.

        Can you imagine that you just bought a brand new notebook for $3000 and:
        • you can login only as a Guest (no Administrator account available by default),
        • you can't change your operating system,
        • you can't use applications that requires Administrator privileges,
        • you can't browse freely the content of your hard drive.
        You would say "Where the hell is my freedom?!" Here comes the answer from your notebook manufacturer - "For your own security, you don't have any freedom". Sounds like a George Orwell story to me.

        I want the same freedom on my phone that I have on my PC.


        This article was written in a cooperation with Shen Ye


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


        PS. I want thank to Tom Kelsall, my HTC Elevate companion for his help in a proper grammar redaction of the review! Thanks Tom!