الثلاثاء، 20 أغسطس 2013

HTC One review - part 2: Hardware


Here is the second part of the HTC One review. If you haven't read the first part yet, you can find it here - HTC One review - part 1. Design. This time we will review what lurks under the hood of the HTC One, and help you to decide if this is your chosen top end phone of 2013.
    Overview

    The HTC One is considered by many to be the Android flagship phone of 2013, and has topped the PhoneDog Smartphone Rankings weekly since March 31st. This not only makes it one of the most successful HTC phones of all time, it also means it has been at the #1 spot for longer than even the immensely popular Apple iPhone 5.

    The success of the HTC One can be credited to the major hardware changes and UI overhaul following the criticism received from One X users. Blighted by build quality issues, the HTC One X launch wasn't the revolutionary moment HTC required to stay on top of their finances and 2012 can be considered the year that HTC fell from grace, edging behind Samsung and Apple in sales. Despite this, the HTC One X was by no means a bad device and still has many devoted users. In fact, it recently received the 4.xx.xxx.x software update (a rare feat among HTC phones) that was pushed via OTA and includes Sense 5.0 (more details here).


    Image source: www.beatsbydre.com
    The HTC One needed to be something special. With profits slipping and their partnership with Beats Audio hanging in the balance, HTC put their team to work. They had one goal in mind: to exceed the build quality of the Samsung Galaxy S4, while maintaining the trademark HTC style of rounded corners and a prominent camera lens.

    On February 19th, as rays of sun began to pierce through the cloud which threatened to engulf the capital, the HTC One was officially launched in London. The album from this launch event can be found here.

    As Peter Chou demonstrated the new features of the device to polite rounds of applause, doubt began to creep through the brains of critics. How could a flagship phone not include a removable battery, or micro SD-card slot? (On a side note, these two main arguments against the HTC One were discussed here "Virtual SD card on Android" and here "Removable battery - do we really need it?"). Also of note was the meagre 4 megapixel camera; with unproven UltraPixel technology, HTC had entered uncharted waters. Indeed, reading through the comments of a blog feed on launch day, it seemed people had instantly passed the HTC One off as a failure, and Samsung fans rejoiced at the imminent demise of HTC.

    How wrong they were. The HTC One really does need to be seen to be admired. It is a real beauty of engineering, with a sleek aluminium casing exceeding even the quality of the iPhone 5, with a superior hardness rating. The unibody polycarbonate body of the HTC One X is a thing of the past, with each individual One casing taking 200 minutes to manufacture.

    The result is a masterpiece - the chamfered edges add another layer of style and the polycarbonate highlights (used for the phones cellular radio) break the monotony of the aluminium and provide a great contrast.

    Camera

    Image source: www.htc.com/www/zoe/
    The large UltraPixel lens is centred like on the One X, however it doesn't extrude which should result in less scratches to the protective glass. A single LED flash is located to the left of this. The camera features a 4 megapixel BSI sensor with 2µm pixels, which are extremely large, and allow for great low light photography. The pixels are capable of gathering 330% more light than typical phone lenses such as the Galaxy S4. The actual lens is a 28mm f/2.0 autofocus, and features Optical Image Stabilisation. This ensures that videos and photos don’t blur while moving. Photos are processed with the HTC ImageChip 2. This allows features such as 60FPS video capture and HDR video. Overall, the camera quality is great and allows for stunning low light shots, matched only by the latest phones in the Nokia Lumia range. A wide-angle 2 megapixel front facing camera is nestled in the top right of the device.

    Sound

    The main feature of the HTC One cannot be directly seen. The two aluminium strips on the top and bottom of the device house the stereo BoomSound speakers, and feature a unique machined hole pattern. Dual amplifiers mean that the sound output is extremely loud, and the clarity and bass are both exceptional. When compared to the output from the Galaxy S4 or iPhone 5, the difference in quality is night and day. No phone to date can match the HTC One for sound quality. Playing for example racing games on HTC One is a really great experience. Stereo system is just amazing.
    Image source: www.corninggorillaglass.com
    Screen

    The front of the phone is no less sophisticated. The black bezel around the 4.7 inch 1080p (468 ppi) SuperLCD 3 screen is invisible with the screen off, which results in a great edge-to-edge effect. The screen itself has fantastic viewing angles and great colour accuracy, as well has being the highest display resolution on a mobile phone. While the screen is excellent, the brightness and colour vibrancy are still not as good as the iPhone retina display, and the black levels and saturation are behind the Samsung AMOLED displays, although those tend to have a bad blue/green tint. To protect the screen surface HTC decided to use Gorilla Glass 2, however it was probably possible to use newer Gorilla Glass 3 instead.

    Few words about the design

    The sides of the HTC One consist of injection moulded polycarbonate, which joins the aluminium panel to the front and maintains the zero-gap promise. The plastic has a soft touch feel, and helps to make the phone to feel even better in the hand. On the right hand side is the volume rocker, which is made of metal and has a nice spiral effect. The rocker is flush with the sides and has a solid click, although it can be difficult to find in a dark room as it doesn't protrude out.

    On the left is the SIM card slot, which requires the SIM removal tool. Using a pin may fail, but paper-clip should do the trick). This could be a problem for people who may need to swap SIMs on the go, as you will need to carry around the SIM removal tool.

    USB / IR

    Up top is the IR power button and the headphone jack. The power button protrudes slightly and clicks well. This means it is easy to find. The IR capabilities are fantastic. It's hard to find a TV which isn't supported, and the inbuilt app has great functionality, including a TV guide. Any case which covers the power button will stop IR working, so bear this in mind when choosing your case. The headphone jack is just the standard 3.5mm.

    Finally, on the base of the phone is the MicroUSB 2 slot for charging and data transfer. This is standard on most, if not all, Android phones. The HTC One uses MTP, which can be slower than USBMS, but supports everything just fine and most users will not notice a difference. The phone tends to charge in around 2-3 hours with the 4.2.2 update. This can be considered quite slow when compared to the iPhone, but it has a much larger battery to charge. The phone features a 2300 mAh battery, which can easily last a day of heavy use. The average screen on time tends to rest around the 4 to 5 hours mark, which is fine for most users, but cannot match the Galaxy Note series, which are known for their large battery capacities.

    System On a Chip

    The processor inside the HTC One is a new Snapdragon 600 by Qualcomm. This is a change from the NVIDIA Tegra 3 found in the One X, and is a quad-core ARM based chip clocked at 1.7GHz. This is the exact chip used in the Galaxy S4, but clocked 200 MHz lower to increase battery life. When HTC One was released, we already knew that Snapdragon 600 wasn't the highest model of the new SoC's family by Qualcomm. It's Snapdragon 800 being the top unit, and it seems to be the only member of new family based on new Krait 400 ARM-based CPU. Is Snapdragon 800 just a higher version of Snapdragon 600? No, it's completely different unit. It has nothing to do with S200, S400 or S600. While Snapdragon 600 is more like upgraded Snapdragon S4 Pro, the 800 is a true successor of S4 Pro. Snapdragon 600 model number is APQ8064T and Snapdragon S4 Pro (presented in 2012) model number is APQ8064. As you can see, "T" is the only difference. However, there are not much differences in the overall specification as well. Both units (S4 Pro and 600) have the same Adreno 320 GPU and Krait 300 CPU.
    Picture source: www.qualcomm.com/snapdragon

    However, S600 seems to have enough power to supply, because the speed and fluidity of the HTC One is something to be admired. Every system app can be launched in under 2 seconds, and the overall experience feels very snappy. In fact, the phone feels faster than Galaxy S4, which experiences many micro lags caused by its TouchWiz custom UI. The HTC One doesn't seem to lag at all. The only instance is caused by Android: poor scrolling in some apps. This can be because of two factors: Android has poor scrolling as a whole, or because GPU Rendering isn't enabled in the app. This can be force enabled under Development Settings, and can really help scrolling in unsupported apps such as Facebook as it means that the GPU is handling the rendering instead the CPU. The voltages of the processor depend on the CPU binning of the chip. Out of a max of 7, mine is 3. This means that it is around average. A higher number should mean better battery life as the voltages supplied to the CPU are lowered. 

    With the new Snapdragon 800 processors due to be included in phones starting September, the 600 will soon be minorly outdated, but it is still an excellent choice. Bundled with this is the Adreno 320 GPU. This is one of the best GPUs currently available, and beats the PowerVR SGX 544MP3 found in the Galaxy S4. The iPhone 5 also uses a PowerVR, and due to it’s smaller screen size and resolution, this phone will generally play games smoother than on the HTC One, however at the cost of screen size.

    Connectivity

    One of the main issues which HTC had to tackle during the designing process of the HTC One was a how to ensure the device wan't susceptible to capacitive detuning, where the human hand would stop the radio form functioning correctly. An example of this was the grip of death experienced by the iPhone 4. HTC solved this issue in a unique and clever way: the antennas tune themselves actively in order to ensure the best Standing Wave Ratio and to match impedance during the presence of a hand or case. HTC introduced a new antenna feeding structure to ensure that attenuation doesn't affect the overall antenna performance regardless of how the HTC One is held in the hand. This active antenna tuning is a first for 2013. The actual antennas HTC uses are the metal strips at the top and bottom of the device.

    The HTC One includes NFC, which allows wireless file transfer with other NFC enabled phones. There is a loop antenna below the aluminium near to the UltraPixel camera, which allows NFC to function. Despite having NFC support, the device lacks wireless charging. This is likely due to the fact that having the full metal phone means that it would not charge correctly.

    GNSS support on the HTC One means that the phone can always find your location, and is excellent for in-car navigation. The phone supports both GPS and GLONASS, which means that it can lock onto satellites extremely quickly, and can track your location to the nearest 4 meters.

    Wi-Fi is where the HTC One really excels, due to being the first smartphone on the market to support the next generation Wi-Fi - 802.11ac. This means that it supports 80MHz channels and a higher maximum PHY rate of 433 Mbps. The support comes from the new Broadcom BCM4335 chip, which also supports Bluetooth 4.0 and FM Radio. The Galaxy S4 only features the BCM4329. This new chip could potentially increase battery life due to a shorter duty cycle for the same throughput amount. The chip also has better range.

    Picture source: www.anandtech.com

    RAM / ROM memory

    The HTC One comes with 2GB of LPDDR2 RAM. This is a boost from the 1GB found in the One X. Applications can cache more with a greater amount of RAM, and this can improve both scrolling and multitasking. The multitasking screen on the One has room for 8 app previews, and you can be pretty safe in saying that at least 6 of these will still be cached and ready to jump straight back into. Android handles multitasking differently to on iOS, and allows things to really run in the background. This means that downloads can continue if the app is closed, and that a YouTube video can continue to play if you leave the browser. One negative point of the RAM is that it is still using LPDDR2, while the Galaxy S4 is using the newer LPDDR3 RAM. This offers more memory bandwidth, and means that the RAM is faster at caching and loading from cache. This means a slicker multitasking experience. Despite this, the Galaxy S4 doesn't show much of an advantage in real world use.

    The HTC One is available in two storage variants - 32GB and 64GB. There are some users saying even 64GB is not enough, but for most average users 32GB is more then they need. Keep in mind that neither HTC One or any other Android device was not created to be media storage. For that purpose we recommend buying mini-PC with at least 1TB HDD drive.

    Modem variants

    There are a few HTC One models available currently on the market. The main difference between them is the modem version and their capabilities to run under particular network frequencies. For more information on this matter please visit this thread - HTC One variants.



    Conclusion

    In conclusion, the HTC One has proven itself to be top of the Android class, and thoroughly deserves its extended period as PhoneDog #1 smartphone. The build quality is second to none, and the overall specs definitely don't fall short. On paper, the phone is a beast, but in the hand it's more of a beauty. 


    Hardware Summary:

    + High-end Snapdragon 600 SoC
    + 2GB of RAM memory
    + Impressive camera capabilities with HTC Zoe™ feature
    + IR (infra-red spectroscopy)
    + BoomSound™ stereo speakers
    + 2300 mAh battery
    + Excellent full HD SLCD3 screen with 468PPI
    + Next generation 802.11ac Wi-Fi modem
    + GNSS support
    + Effective cooling system with aluminium unibody

    - No LPDDR3 RAM memory
    - No Gorilla Glass™ 3
    - Only two capacitive buttons instead of three
    - Under-clocked CPU (from 1.9 to 1.7 GHz)


    Here are the official specifications of the HTC One:
    • 4.7-inch Full HD 1080p SLCD3 @ 468PPI
    • Gorilla Glass 2.0
    • 1.7 GHz Quad Core Snapdragon 600 (Krait 300 core)
    • 2GB LPDDR2 memory
    • 32GB/64GB internal storage (without SD-card slot)
    • Full Aluminium Unibody
    • MicroSIM card 
    • 2300 mAh Li-Polymer Embedded battery (non replaceable)
    • Bluetooth 4.0 with aptX enabled
    • NFC Capable
    • Internal GPS antenna + GLONASS
    • Wi-Fi: IEEE 802.11 a/ac/b/g/n
    • Infrared Remote Support
    • Micro-USB 2.0 (5-pin) port with mobile high-definition video link (MHL) for USB or HDMI connection
    Camera:
    • HTC UltraPixel Camera (4MP)
    • BSI sensor, Pixel size 2.0 µm, Sensor size 1/3'
    • Dedicated HTC ImageChip™ 2
    • F2.0 aperture and 28 mm lens
    • Optical Image Stabilization (OIS)
    • Smart Flash: Five levels of flash automatically set by distance to subject
    • Front Camera: 2.1 MP, 880 wide angle lens with HDR capability
    • 1080p Full HD video recording for both front and back cameras
    • HDR Video
    Sound:
    • Dual frontal stereo speakers with built-in amplifiers (HTC BoomSound™)
    • Studio-quality sound with Beats Audio™
    • HDR Microphone
    Network:
    • HSPA/WCDMA:
    • Europe/Asia: 850/900/1900/2100 MHz
    • GSM/GPRS/EDGE:
    • 850/900/1800/1900 MHz
    • LTE: (optional)
    • EU: 800/1800/2600 MHz
    • US (AT&T): 700/850/AWS/1900 MHz
    • US (TMO): 700/AWS MHz
    • US (Sprint): 1900 MHz
    • Asia: 1800/2600 Mhz

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

    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= 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!

    الاثنين، 19 أغسطس 2013

    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!

    الخميس، 15 أغسطس 2013

    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.

    الاثنين، 5 أغسطس 2013

    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!

    الجمعة، 28 يونيو 2013

    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!

    الجمعة، 14 يونيو 2013

    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 " 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 ". 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!