La razón por la que algunos smartphones no podrán actualizar a Nougat podría ser la ausencia de hardware de cifrado
Como comentamos ayer, para que un fabricante obtenga el sello de aprobación de Google y tenga acceso a cosas como la Play Store, el dispositivo debe cumplir lo estipulado en el Documento de Definición de Compatibilidad (CCD) de Google y pasar la Suite de Pruebas de Compatibilidad (CTS).
Actualmente sabemos que algunos smartphones como el Xperia Z3, el HTC One M8 o el Nexus 5 no recibirán Android 7.0 Nougat de manera oficial, pero todavía no conocemos las causas – cualquier razón que hayas leído no es más que una elocubración porque el CCD de Android 7.0 aún no ha sido publicado.
El caso más extraño es el del Sony Xperia Z3, con procesador Snapdragon 800, que recibió las primeras betas de Android N pero finalmente no recibirá Nougat por «cuestiones técnicas y legales» que Sony ha preferido no explicar para «no echar las culpas a nadie.»
Si nos fijamos en los dispositivos que sabemos que recibirán Nougat, encontramos lo siguientes:
- Los dispositivos poseen un amplio abanico de GPUs incluyendo Adreno 306, Adreno 430 y Mali-T860
- Los dispositivos tienen una potencia muy variada, desde el Helio P10 y el Snapdragon 410 hasta el potente Snapdragon 820
- La mayoría de los dispositivos tienen procesadores de 64 bits.
La GPU no parece ser el problema ya que, según ha explicado el grupo de GPU Mali de ARM, Android 7.0 no obliga al uso de Vulkan sino que Open GL ES sigue estando soportado además de Vulkan.
El rendimiento tampoco parece ser el problema ya que dispositivos con el Snapdragon 410, menos potente que el Snapdragon 800/801, recibirán Nougat.
Ahora bien, la mayoría de los dispositivos que recibirán Nougat son dispositivos de 64 bits o, más concretamente, dispositivos ARMv8. ¿Qué tienen de especial estos dispositivos para que el Snapdragon 800/801 no reciba Nougat pero el Snapdragon 805 (el procesador del Nexus 6) sí que lo vaya a hacer?
Según los chicos de Android Authority, el problema podría estar relacionado con los requerimientos de velocidad de cifrado.En Android 6.0, el CCD indicaba que «si el dispositivo es compatible con una pantalla de bloqueo segura… entonces el dispositivo DEBE ser compatible con cifrado de disco completo» y que el «cifrado de disco completo DEBE estar habilitado por defecto en el momento en el que el usuario complete la experiencia de configuración inicial»
Sin embargo, Google permitía a un dispositivo funcionar sin cifrado de almacenamiento si no alcanzaba un nivel mínimo de rendimiento de cifrado AES de 50 MiB/segundo.
Android 7.0 Nougat implementa cifrado basado en ficheros, lo que significa que los ficheros individuales son cifrados, en lugar de todo el sistema de ficheros. En el momento de escribir este artículo, el CCD de Android 7.0 no está disponible públicamente, pero es probable que Google especifique un nivel mínimo de rendimiento criptográfico AES, y esta vez podría no ser opcional.
Una de las funcionalidades que llegan con ARMv8 es que incorpora instrucciones adicionales para llevar a cabo cifrado por hardware. Esto significa que todos los procesadores ARMv8 como el Helio P10, Snapdragon 410 y Snapdragon 820 hacen uso de un hardware especial para cifrar usando AES, que es más rápido que una solución por software.
Así que la razones «técnicas y legales» que Sony menciona podrían ser que el Snapdragon 800/801 no alcanza las velocidades de cifrado AES de los chips con ARMv8 porque la ausencia de hardware de cifrado.
Parece que el Snapdragon 805 sí que tiene el hardware necesario, y eso explica por qué el Nexus 6 sí que recibirá Android 7.
En resumen, no hay ninguna razón técnica por la que el Snapdragon 800/801 no pueda ejecutar Nougat – de hecho Sony ha demostrado que el Xperia Z3 corría la beta de Android N sin problemas – pero todo apunta a que nuevos requerimientos de Google sobre el cifrado podrían ser la causa de que el Snapdragon 800/801 no pase las pruebas CTS y no cumpla con el CDD.
Todo esto se aclarará cuando Google decida publicar los CCD con los requerimientos de Android 7.0 en su web y deje de ser algo secreto entre Google y los fabricantes.