Los sitios web orientados a los teléfonos inteligentes tienden a centrarse solo en los dispositivos más recientes, pero una gran parte de los usuarios eligen no actualizar sus teléfonos por una razón u otra. Salvo que haya una falla de hardware, muchos de estos dispositivos aún pueden tener años de uso por delante porque, para sus propietarios, todavía funcionan bien. Si bienlas ROM personalizadaspueden mantener los teléfonos inteligentes antiguos con vida durante años, puede ser una pesadilla para los modders mantener actualizados elementos como la cámara y los controladores gráficos sin el soporte oficial del fabricante.
Actualización de los controladores de la GPU en Android
A diferencia del ecosistema de los teléfonos inteligentes,actualizar el controlador de gráficos de tu PCes algo en lo que siempre puedes pensar. Esto es posible gracias a la arquitectura modular de los controladores de hardware de PC, que permite a los usuarios avanzados modificar paquetes de controladores de código cerrado o incluso optar por controladores de código abierto en lugar de binarios proporcionados por los fabricantes de equipos originales. Sin embargo, en el caso de Android, las actualizaciones de controladores generalmente solo llegan a tu teléfono junto con actualizaciones más importantes del sistema operativo.
Los controladores de GPU actualizables pueden resultar útiles para corregir errores, mejorar el rendimiento gráfico o agregar nuevas funciones de las API de OpenGL o Vulkan. Hoy en día, los teléfonos inteligentes son más grandes y rápidos que nunca, lo que los convierte en el vehículo perfecto para los juegos, por lo que trasladar el diseño de controlador similar al de una PC a ellos tiene sentido.
De hecho, en un esfuerzo por modularizar Android a través del Proyecto Treble, Google hizo posible empaquetar el conjunto de controladores gráficos para una plataforma en particular como una aplicación y actualizarlo a través de Play Store. Desde entonces, varios fabricantes de equipos originales de Android colaboraron con Google y los principales proveedores de GPU, incluidos ARM y Qualcomm, paradistribuir actualizaciones para los controladores de GPU de sus teléfonosindependientemente de las versiones de software más grandes.
¿El diseño del controlador de gráficos actualizable reduce la fragmentación?
Sí, hasta cierto punto. No obstante, todavía quedan algunas preguntas inquietantes sin respuesta. En primer lugar, el mecanismo de Google no ofrece una forma sencilla de sustituir el controlador de código cerrado del proveedor por una oferta de código abierto de terceros. Por supuesto, puedes reemplazar manualmente el paquete de controladores en la partición del proveedor del dispositivo de destino, siempre que tengasacceso rooty de alguna manera consigas los archivos necesarios, pero esa no es una solución ideal para muchos.
A continuación viene la paradoja de estabilidad versus mejora. Android mantiene una disposición jerárquica cuando se trata de cargar el controlador de gráficos. Si bien uno puede cambiar entre la compilación instalada de fábrica y la versión actualizada más reciente medianteOpciones de desarrollador=>Preferencias del controlador de gráficospor aplicación, en última instancia se reduce a la decisión del OEM sobre cuándo actualizar el controlador de gráficos. Como resultado, un usuario final no puede utilizar compilaciones de controladores de última generación directamente del fabricante del SoC, ya que los OEM aún son responsables de implementar las actualizaciones.
Ingresar a Adreno Tools
Como se mencionó anteriormente, es posible actualizar los controladores de la GPU con acceso root, pero nada puede superar un método sin root. Gracias a XDA Senior Member,ahora tenemos una solución genial llamadaAdreno Toolsque permite modificaciones o reemplazos de controladores de GPU sobre la marcha en Android, ¡y eso también sin root! La experiencia del desarrollador en la adaptación de Android a Nintendo Switch ciertamente jugó un papel crucial en esta empresa, ya que todo el proyecto tiene su origen enSkyline, un emulador de Nintendo Switch de código abierto y en desarrollo para Android.
El desarrollador de SkylineMark "Pixelylon"presentó la idea de reemplazar la unidad de tiempo de ejecución alos estatutos, que finalmente se materializó en Adreno Tools. Al ser una biblioteca sin raíz, Adreno Tools puede ayudar a cualquier aplicación normal a cargar controladores de GPU personalizados, manejar texturas BCn y redirigir operaciones de archivos para realizar modificaciones más complejas en la familia de GPU Adreno de Qualcomm. Lo hace conectándose a las bibliotecas del sistema e intercambiando sin problemas el nuevo controlador. Cabe destacar que aún no hay soporte para GPU Mali.
Dado que no hay ninguna limitación en cuanto al origen del controlador, los entusiastas también pueden cargar controladores de terceros a través de Adreno Tools. Esto es particularmente útil para aquellos que desean probar Turnip, un controlador Vulkan de código abierto para hardware gráfico Qualcomm Adreno que se encuentra bajo el paraguasde Freedreno. Por ejemplo,AetherSX2, el emulador de PlayStation 2 para Android, ya utiliza Adreno Tools para brindarles a los usuarios finales laopción de optar por Turnipen lugar del controlador OEM para un mejor rendimiento.
¿Cómo me beneficio de esto?
Tenga en cuenta que el proyecto Adreno Tools se envía como una biblioteca de software. Esto significa que no puede encontrar un archivo APK precompilado que habilite mágicamente la capacidad de usar una pila de controladores de gráficos externos en todo el sistema. En cambio, un desarrollador debe incorporar la biblioteca a su proyecto, de modo que su aplicación pueda ofrecer la posibilidad de cargar archivos de controladores de gráficos actualizados o una alternativa de terceros sin acceso root. Así es exactamente como los desarrolladores de Skyline y AetherSX2 están utilizando Adreno Tools en este momento.
Desde la perspectiva del usuario final, Adreno Tools por sí solo no puede resolver todas las limitaciones de la implementación del controlador de GPU de Android. Es simplemente una herramienta para que la comunidad de desarrolladores evite algunos de los mayores obstáculos de las actualizaciones de controladores de gráficos en dispositivos Android, eso es todo. Solo puede obtener sus beneficios a través de una aplicación, pero una actualización manual del controlador en todo el sistema aún requiere acceso root.
¿Qué puedo hacer si tengo root?
Si eres un usuario avanzado con un dispositivo rooteado, puedes realizar una instalación forzada en todo el sistema de una compilación de controlador de gráficos actualizada en tu dispositivo. Para ello, debes extraer los archivos BLOB (objeto binario grande) del controlador que contienen binarios de software preempaquetados para interactuar con la GPU desde un paquete de firmware actualizado. Puedes usar el firmware de un dispositivo diferente, pero el controlador debe corresponder a la misma familia de GPU del dispositivo de destino.
Después de extraer los archivos necesarios, puedes empaquetarlos como un módulo Magisk e instalarlo en el teléfono inteligente de destino para reemplazar los controladores del proveedor existente sin necesidad de un sistema. Por supuesto, el proceso es un poco más complicado de lo que parece. Es posible que tengas que ocuparte de las incompatibilidades de interfaz entre los controladores heredados y los actualizados, para lo cual sería necesario realizar un shimming.
"Calzar" significa "acomodar (algo) o rellenar un espacio". Esto es lo que hace un desarrollador cuando escribe un shim: agrega códigos adicionales para permitir que el BLOB interactúe con la plataforma con la que está trabajando. Afortunadamente para nuestros lectores,los estatutospara desarrolladores ya escribieron un shim para cerrar la brecha entre las diferentes revisiones del controlador Adreno, y puedes encontrar controladores OpenGL y Vulkan listos para usar y flasheables para la familia de GPUAdreno 500yAdreno 600 en nuestros foros.
¿Tienes curiosidad por conocer los beneficios de instalar manualmente un controlador de gráficos actualizado? Mishaal Rahman de Esper compartió una comparación interesante del rendimiento de la GPU en 3DMark de un Google Pixel 3 XL con Snapdragon 845 y Android 12 con el controlador estándar frente a un controlador más nuevo del Snapdragon 8 Gen 1:
Es fascinante, ¿no? Pero no olvides la disyuntiva entre objetividad y relevancia. Si bien instalar un controlador de GPU actualizado con acceso root tiene sus ventajas, también tiene sus inconvenientes. No está pensado para principiantes y, además, manipular el dispositivo puede anular la garantía. Para empezar, necesitas un gestor de arranque desbloqueado, lo que podría no ser factible en todos los casos.
Conclusión
Teniendo en cuenta las alternativas que ha habido en el pasado en la escena de modificación de controladores de GPU de Android, la biblioteca Adreno Tools es un fantástico paso adelante, especialmente por su naturaleza sin root. Estamos deseando ver cómo crece y madura el proyecto en el futuro. ¡Asegúrate de probarlo y cuéntanos qué te parece en los comentarios!
Fuente:Esper