Now that Android 7.0 Nougat has been officially made available, smartphone manufacturers are announcing the models that will get the latest version of Android.
Most OEMs have already announced which phones will be getting Android Nougat. HTC has said that HTC 10, HTC One M9 and the A9 will be getting the update. Sony has announced that Xperia Z3+, the Z5 range and the Xperia X and XA series will get the Android N update.
Similarly, Samsung’s Galaxy flagships and LG G4 and G5 will be getting the upgrade.
While on other hand, Google has released Nougat for Nexus 5X, Nexus 6 and Nexus 6P. General Mobile 4G has also been upgraded.
Popular Phones Left Out
Some OEMs, known for upgrading older flagships like HTC, Sony and LG, recently said that their 2014 crop of flagships won’t be getting the upgrade. Popular phones such as the HTC One M8, Xperia Z3 and Z2, LG G2 and G3, and the Nexus 5 were not mentioned by their respective OEMs in the final list of phones getting the upgrade.
All of them have either Snapdragon 800/801 and they’re at least 2 years old.
Why were they left out? Is there some limitation is the hardware or is there someone else at fault? Lets find out.
The OEM Dilemma
As an example, developer preview for Android N was available on the Xperia Z3 up until Developer Preview 4. Right before the final upgrade Sony pulled out so why the sudden change?
Google is The Culprit Behind Older Phones Not Getting Upgrades to Android 7.0
If the OS runs fine on the phone there seems to be no technical/performance limitation in the Snapdragon 801 (SD 801) at least. Why was the next developer preview or the full version not released? There are also phones like the General Mobile 4G with a mere Snapdragon 410 processor and an Adreno 306 GPU running Android N just fine.
Ola Olsson from Sony Mobile Communications said:
Yeah, this is sad but we don’t want to play the blame game which means that we can’t say more about the technical limitations.
Even if we really wanted to give you N on the Z3(c), we wouldn’t [have] been able to do it. Not if we wanted to pass the Google’s Compatibility Test Suite (CTS).
Google’s Stubborn Decision
The statement from Sony clearly confirms it that they are facing issues from some other corporation or partner that they can’t directly blame.
The real culprit here is Google. Its reasoning is that it wants to eliminate software encryption. Perhaps that might as well be the case, or it just wanted to refocus all its strengths on newer phones.
Google has come up with a CTS criteria which limits the OEMs to either upgrade and uncertify the device or forget about the update and follow Google’s footsteps.
So what is Google CTS? Google CTS stands for the Compatibility Test Suite. Each smartphone manufacturer that wants to use a version of Android on its phones need to get approval from Google to use it. They need to pass the CTS to be able to officially sell a phone running any version of Android.
Google releases the Compatibility Definition Document (CDD) which lists the requirements that a phone must fulfill on the hardware and software side to get to use that particular version of Android. For now a CDD hasn’t been released so we can’t say for sure what these phones with SD 801 lack.
So if there are no problems on the software side (as the developer preview worked fine) and the hardware side (even low end phones can run it Android N) then what is the issue?
If phones with 32-bit processors like the Nexus 6 (Snapdragon 805) are getting Android N, we can also rule out the possibility of a 32-bit/64-bit conflict.
What did Qualcomm change from 801 going to the 805? The difference lies in the addition of an extra instruction set for performing hardware encryption. Only 805 comes with it, while the older generation of Qualcomm processors lack this.
Earlier when Android Marshmallow was released it required devices to be able to encrypt the file system while having a “Advanced Encryption Standard (AES) crypto performance above 50MiB/sec.”.
There were however some exceptions which allowed older devices to be able to run Android 6.0 officially, certified via CTS.
Android N added a new file based encryption system allowing for encryption of individual files rather than the whole system. Currently, a CDD isn’t available for Android Nougat but there will be a guaranteed crypto performance limit specified in it when it does come out.
The new addition to the Snapdragon 805 was “full disk encryption and cryptographic functions for Android applications”. Qualcomm implemented special hardware to perform cryptographic functions in the 805 due to the newer ARMv8 architecture which specified its use.
This seems to be the reason why Nexus 5, Sony Xperia Z3, HTC One M8 will not be getting the new OS while Nexus 6 and others are getting it.
These SD 800/801 devices don’t have hardware encryption support but when it comes to software encryption, these devices are more than capable of matching or outperforming the likes of SD 410 even without hardware encryption. The reason being the additional performance benefit that these flagship 800/801 devices carry.
For those that skipped the details and went straight to the conclusion, there is one simple explanation for this issue. There is no performance/software/technical issue with phones which aren’t getting the update.
Google simply opted to favor phones with hardware-based encryption feature leaving the phones that featured only software-based encryption.
In real-time use, most users would never even know the difference since the first encryption happens during system file installation. Xperia Z3 has proven that Android 7.0 runs great on SD 801 and that too without hardware-based encryption.
Google requires high speed file encryption which the Snapdragon 800/801 (and essentially any processor based on ARMv7) don’t have. They will thus not be able to pass the CTS and will not get official update for Android 7.0 Nougat.
So, there’s only one route that you can go (if you have the technical expertise) to get the upgrade, root and get the latest custom ROM available for your device.