Las GSI y la pureza de AOSP

Antes de iniciar esta semanal ofrezco mis más sinceras disculpas porque no haya habido publicación la semana anterior y que mis posts hayan estado ausentes desde hace más de 10 días, he estado ocupado y no pude enfocarme de lleno en traeros buenas nuevas -que han sido muchas- al blog. Pude responder algunos comentarios con lentitud, pero no ha sido suficiente. Pues bien, para corregir estos errores, esta semana tenemos un especial. Hay mucha tela por donde cortar y ambos temas podían ser bordados juntos, así que intenté aprovechar esto para ponerme al día. De cualquier manera este será el primer post de varios que estarán listos pronto. Disfrutad.

Este semanal os brindará más conocimientos respecto a Project Treble y a AOSP en general. Sin más preámbulos, vamos a ello.

¿Qué es una GSI?

Para entender este nuevo concepto, primeramente hagamos un recuento de las particiones fundamentales que rigen nuestro sistema Android, las mismas están divididas de acuerdo a su funcionamiento:

  • /boot: En esta partición se encuentran todos los datos necesarios para nuestro terminal encienda correctamente, incluyendo el kernel y el RAMDISK. Estos son los únicos componentes que se encuentran en esta partición, sin los mismos nuestro terminal no puede cargar el sistema.
  • /system: Esta es la partición que básicamente alberga el sistema operativo, incluye la interfaz del sistema y las aplicaciones pre-instaladas con el mismo. Sin esta partición tampoco podemos iniciar el sistema, sin embargo aún podemos entrar al sistema de recuperación o recovery.
  • /recovery: La podemos considerar una partición alternativa a boot que nos permitirá realizar recuperaciones del sistema y mantenimiento del mismo. Cuando flasheamos una custom recovery, estamos sobrescribiendo esta patición
  • /data: Aquí se encuentran todos los datos del usuario, nuestras aplicaciones, llamadas, mensajes. Al deshacernos de esta partición estamos casi llevando a cabo un formateo de fábrica (el formateo de fábrica elimina el almacenamiento interno también)
  • /cache: Contiene datos y componentes de aplicaciones que son accedidos con frecuencia por el sistema, eliminarla no destruye nuestros datos, simplemente los datos que están guardados en esta partición, los mismos se van reconstruyendo a medida que usamos nuestro terminal
  • /misc: Contiene datos misceláneos, los cuales pueden incluir: configuraciones del sistema, datos de hardware, etc. Es una partición importante, dado que se si encuentra en falta o corrupta, determinadas funcionalidades del sistema podrían no funcionar,

Estas son las particiones fundamentales por las que se rigen los sistemas instalados en muchos de nuestros terminales. Sin embargo, no son las únicas, los terminales de Xiaomi poseen una partición extra llamada cust donde se encuentran datos de MIUI, por ejemplo.

Vamos a enforcarnos por un momento en Project Treble, pero ¿por qué? Project Treble probablemente sea el desarrollo para Android más innovativo en términos de actualizaciones que hemos visto en un buen tiempo, sino de por vida. Ya hemos discutido en varias ocasiones las ventajas de Project Treble, pero no hemos cubierto todo su potencial aún. Jorgen hace unos meses nos mostró cómo el Editor en Jefe de XDA-Developers Mishaal Rahman logró instalar una ROM de AOSP en su Mate 9 con soporte Treble, en ese momento comenzamos a evidenciar un futuro brillante para las custom ROMs. Luego de unos meses no mucho se ha avanzado en este sentido, sin embargo, otro tipo de desarrollo ha comenzado a tomar fuerza desde enero alrededor de Treble: las GSI.

Tomado de nuestro Blog

Seguramente se preguntará porqué llevamos tanto rato dando vueltas sin aterrizar, mis disculpas, pero era necesario introducir para despejar algunas dudas que puedan surgir en futuro. Recordar que Project Treble consiste fundamentalmente en separar los arhivos Vendor de la partición system, convirtiendo la primera en una partición propia que contiene el código específico de nuestros terminales.

Una Generic System Image o GSI  es una imagen del sistema que no contiene ningún código específico de hardware, es decir que es posible flashear en cualquier terminal, con soporte Treble obviamente.

Pensemos en ellas como cuando instalamos Windows 10 en nuestra PC, incluso aunque Windows no incluye ningún driver específico para nuestra tarjeta gráfica o de sonido, Windows utiliza algunos génericos para poder ofrecer determinada funcionalidad mínima hasta que los drivers propios sean instalados. Con las GSI es similar, sin embargo, con ellas podemos esperar que en teoría funcionen todos nuestros sensores, cámara y demás sin errores. Es aquí donde Project Treble ha alcanzado gran relevancia actualmente, y esto me permitirá introducir el próximo tema de nuestra semanal especial: la pureza de AOSP.

¿Qué tan puro puede ser AOSP?

En este momento es donde podemos unificar lo que hemos aprendido respecto a AOSP, las GSI y las licencias de la semanal anterior. Dejemos algo claro, todas las capas personalizadas de Android que conocemos están basadas en AOSP: TouchWiz, LG UX, MIUI, HTC Sense, OxygenOS y demás. Dado que Android en general se encuentra regido bajo Apache los fabricantes no tienen porqué poner el código fuente de sus capas personalizadas a disposición de desarrolladores externos, gracias a la flexibilidad de Apache con respecto al producto final de un proyecto que se encuentre basado en Apache como Android. Sin embargo ¿qué podríamos considerar como AOSP puro? Algunos alegarán que LineageOS o una custom ROM similar podrían serlo, cualquier cosa lejos de una capa personalizada como TouchWiz, ¿no? Aunque no estoy completamente de acuerdo, es un buen inicio.

TouchWiz de Samsung

AOSP es Android como Google lo libera para que los fabricantes y desarrolladores lo utilicen para sus capas personalizadas, custom ROMs y demás desarrollo. Esto incluye el software Stock de Google evidentemente. Pero esto ya lo sabemos, no es nada nuevo. Entonces ¿a qué se refieren cuando nos mencionan el término “Android Puro”? En muchas ocasiones hemos creído que LineageOS es la expresión más pura de AOSP disponible en la actualidad, y aunque es verdad hasta cierto punto, hay algo muchísimo más puro. Ciertamente que una custom ROM esté excenta de los Servicios de Google, ayuda a pulir una experiencia libre, pero al añadir características encima de AOSP como hacen los fabricantes como Xiaomi o Samsung, el sistema pierde su pureza y gana en funcionalidad (esto no se discute), por otra parte las custom ROMs añaden personalización con muy pocos límites y rendimiento extra. ¿Qué quedará entonces para Android Puro?

Cabe destacar que Android Stock como lo hemos divisado en los terminales de Android One -por ejemplo el Mi A1, los Nexus o los Pixels– no es en mi opinión Android Puro, aunque sí está bien cerca de serlo.

Android Stock en el Xiaomi Mi A1

Android Puro es AOSP sin modificaciones extra, ni GApps ni acceso root, Xposed o cualquier tipo de código extra que el cual se encuentra disponible en AOSP. 

Gracias al desarrollo de Project Treble, el Desarrollador Reconocido phhusson comenzó en enero a desarrollar GSIs basadas en AOSP Puro, sin nada extra, luego añadió variantes con GApps y con acceso root por si los usuarios necesitaban acceso a sus cuentas de Google y a utilizar apps que requiriesen root, sin embargo ninguna funcionalidad extra fue añadida. La cereza del pastel es la GSI Vainilla -como fue nombrada- que posee solamente lo justo para funcionar, al no estar preparada con nada extra es de esperar que su velocidad y rendimiento de la batería sea superior; y a decir verdad, lo es.

Desarrollo de las GSI de AOSP

Este desarrollo alcanzó gran popularidad desde el inicio, sobretodo con el auge de terminales que comenzaron a soportar Treble de manera no-oficial (Xiaomi Mi 5, Mi 5s, Redmi 3s, Zuk Z1). ¿Queréis saber como luce Android Puro? Acá les dejo algunas capturas, desde ahora les advierto que no es muy bonito, sin embargo sí constituye Android en su forma más pura. Simple, rápido y con lo absolutamente necesario para el día a día.

AOSP Puro con AOSP GSI por phhusson

Conclusiones

AOSP constituye el Big Bang que da vida a todas las variantes y capas personalizadas de Android que utilizamos diariamente. Project Treble ha habilitado con las GSI un desarrollo que no conocíamos anteriormente, gracias a ello han aparecido GSIs de LineageOS, ResurrectionRemix, AOKP (hace poco) y ya se está trabajando con una de Bootleggers. Las GSI permiten disfrutar de nuestras ROMs favoritas en cualquier terminal con soporte Treble gracias a que las mismas se compilan pensando en ofrecer soporte para la mayor cantidad de terminales posibles, y la Vainilla creada por phhusson es la experiencia más pura que he podido probar, lejos de personalizaciones y Servicios de Google Play, quizás no tenga el propósito para ser usada en su diariamente totalidad , sin embargo algunos usuarios sí lo creen así.

Probablemente sean las GSI las que nos permitan a los usuarios dotados de Project Treble, la habilidad de utilizar Android P cuando las sources estén disponibles, antes de que las custom ROMs comiencen a ser liberadas. Sólo el tiempo dirá qué tanto desarrollo alcanzan las GSI.

Me gustaría leer vuestra opinión al respecto: ¿su terminal posee soporte para Project Treble? ¿estaría interesado en probar una GSI? ¿tiene alguna duda respecto a una custom ROM o AOSP en general?

Déjanos tu comentario

Como siempre les pido que sean consecuentes y respetuosos con los comentarios, nada de ataques personales en contra de los Moderadores, Editores, Admnistradores ni otros lectores. De más está decir lo que pasa con los comentarios fuera de regla.

Siéntete libre de contactarme

Comparte en las redes sociales

15 comentarios

Ir al formulario de comentarios

    • Luis Fernando Ceballos Sorí on 29 abril, 2018 at 5:47 pm
    • Responder

    Coincido muchísimo con ese concepto de Android puro, a pesar de que muchas veces cometo el error de asignar este término a las ROMs de AOSP que incluyen Google que a decir verdad son puras, pero no en su 100% (Al menos en mi opnión tienen más del 60% en pureza que Sense, TouchWiz y LG UX ¿O no?)

    Felicidades y buen post, patrick 395x: Cuando crezca quiero ser como tú: Grande.

    Para compensar el agradecimiento, voy a empezar a recuperar mi sección de tutoriales con este post, que me encantó mucho y está interesante.

    Otra cosa: ¿Qué crees de NovaDroid? ¿Sabes algo al respecto? ¿Crees que si le quitamos el bloatware cubano que inluye se pueda decir Android puro? Me gustaría mucho un post relativo a esto, ya que en el blog, se han generado controversias respecto a esto, y mucha gente no conoce que NovaDroid se basa en AOSP.

    Ahhh, importante: ¿Crees que por Bootleggers haya algçun Oreo para mi S4?

    Saludos y Agradecido con esto.

  1. NovaDroid sí puedo afirmar que está basado en AOSP, sin embargo no he tenido en mis manos un tablet GEDEME aún como para saber más al respecto, diablos ni siquiera sé qué SoC posee, aunque voto por un Allwinner por los datos de la GPU
    Bueno si removemos todas las aplicaciones incluídas y demás, no sería NovaDroid, aunque sí sería más cercano a AOSP.
    Con respecto a hacer el post, si tuviera una tablet GEDEME, pudiera revisarlo y chequear el mismo, pero lamentablemente no poseo uno.
    No tenemos ningún maintainer para ningún terminal Samsung en Bootleggers, lo siento.
    Bootleggers no está basado en AOSP, sino en GZOSP

      • Luis Fernando Ceballos Sorí on 30 abril, 2018 at 9:00 am
      • Responder

      Yo no creo que sea un AllWinner, ya sería menos prestigio del que goza. Pienso que tenga un MediaTek 67xx, es el voto más acertado que me llega; y no se por que no me falla. Tuve la oportunidad de tener una GEDEME en mis manos pero no me fijé en eso: Yo que siempre ando con AIDA64 para aquí y para allá: Notuve chance; pero a la próxima, vas a ver… Creo que a mi mamá le van a dar una DEGEME por el trabajo, pero todaavía no es seguro; ya le dieron la laptop, ahora falta ver el tablet.

      Que es GZOSP?

      Como han cambiado los procesadores MediaTek desde la llegada de los MT67xx: de 64 bits (Claro, con la stock ROM trabajando a 32, como hacen muchos fabricantes**) Tremendo rendimiento comparado con antes: Mejores GPU, mucha más fluidez, mayor estabilidad: en fin, casi que se acercan a Qualcomm. Mi primito tiene un BLU R1 HD que se lo envidio, le pasé el Antutu y me quedé loco: Está casi tan bien como mi S4: A la par.
      Quisiera aprender a portar ROMs al menos para MTK, ya que he visto vídeos por ahí y no parece ser tan difícil: Solo que hay que tener un cuidado tremendo. Aunque no tengo conocimientos básicos en programación (lo cual me gustaría mucho poder aprender al menos por abajo, didácticamente) se editar el build.prop ya que a eso me he dedicado haciendo experimentos con BlueStacks AppPlayer: Mi conejillo de Indias y dos o tres emuladores más que tengo bajo la manga que utilizo mucho con fines de testear mis apps y llegar a soluciones rápidamente cuando tengo problemas. ¿Qué me dices?

      Recuerdo que cuando tuve mi BLU STUDIO 6.0 HD lo hice, pero porté mal el kernel para una ROM de 5.1.1 Lollipop y ya que tenía que haber utilizado el de la Stock de Kitkat, lo hice todo al revés: Porté con el de Lollipop 5.0 de mi dispositivo y lo maté sin querer. Juré que si no aprendo a hacer esto, no lo hago más. ¿Es muy difícil aprender a hacer esto? Con los recoveries sé que también se puede, lo que no lo he hecho nunca ¿Será muy difícil?

      Tengo herramientas muy buenas para este fin, ya que cuento con el Notepad++ y el MTK extractor Latest que me deja extraer los archivos IMG casi en su totalidad: No importa si son de Qualcomm, de MediaTek o de lo que sea. Gracias a esta poderosa herramienta, puedo modificar system.img, boot.img, recovery.img, system.new.dat (requiere de los archivos file_contexts, system.transfer.dat y system.patch.dat). Con esta, los puedo extraer y compilarlos a mi gusto, quitar lo que no me guste y poner lo que vea mejor (Siempre que sea compatible) Sería muy interesante esto.

      ** Muchos fabricantes no aprovechan completamente las funcionalidades de los procesadores x64 (Lo he visto mucho con los dispositivos MTK) ya que cuando te venden el cell, el sistema trabaja a 32 bits. Esto yo pienso que sea con aquellos que esperan actualizar sus dispositivos a Nougat (Pienso yo) Esto es algo que es muy notable si cogemos en nuestras manos dispositivos como el Vodafone Smart Turbo 7 (VFD-500) y como mencioné antes, el BLU R1 HD por solo poner pocos ejemplos.

      Patrick395x, gracias una vez más por el tutoria: Realmente muy bueno.

      1. El problema es que ninguno de los MT67xx de MediaTek posee una GPU de PowerVR, todos usan ARM Mali, entonces o el sitio de GEDEME está mal con sus especificaciones respecto a la GPU o no saben nadita respecto a esos SoC (no creo que sea así). De todas formas si logras hacerte con una de esas, pásale un scan con AIDA64 y dame los datos.
        Sí, portar no es tan difícil, hay algunos tutoriales regados por XDA para MediaTek, aunque igual los ports no me parece que sean 100% estables. El grave problema de los terminales con SoC MediaTek para compilar nuevas versiones de Android es el kernel que no está disponible, y sin eso no hay nada que hacer, por eso hay ports para esos dispositivos, para poder trabajar con el kernel original.
        Con el kernel de los MediaTek no puedes jugar, como no tienes las sources para compilar nada, si vas a portar, eso no lo puedes tocar, si pudieras hacerlo, entonces no tuvieras que portar nada.
        Evidentemente tener un SoC o CPU o APU con capacidad de soportar SO de 64bit con un sistema de 32bit es desperdiciar potencial, no sé las razones de MediaTek para hacerlo.
        Con el tema de actualizar, MediaTek es pésima liberando código para sus chipsets además de no permitir ese código sea utilizado en las sources de los kernels de los fabricantes que lo utilizan, entonces tienes buenos SoC como el Helio X20 del Redmi Note 4 MTK que se sabe de sobra que soportan Nougat y tiene poder suficiente para lo que desees, con Android Marshmallow (o Nougat, la versión que tenga) sin actualizar, y jamás actualizará, y entonces comienzas a ver ports de versiones superiores de Android, en los cuales la mitad de las cosas importantes no funcionan. Si ves un port que todo funciona, es de la misma versión de Android.
        Saludos

          • Luis Fernando Ceballos Sorí on 30 abril, 2018 at 12:46 pm
          • Responder

          Saqué esa deducción porque soy fanático a BLU (si quieres me puedes decir loco), y muchos dispositivos utilizan como SOC procesadores MT76xx con GPU PowerVR; como es el caso de los dispositivos BLU VIVO One y el VIVO One Plus. Tampoco deja de existir la chance de que utilicen SpreadTrum, pero estoy convencido de que es un MT67xx. O sea, el hecho de que adore a BLU no quiere decir que esta tablet sea como ellos, pero estoy casi seguro.

          • Luis Fernando Ceballos Sorí on 30 abril, 2018 at 1:17 pm
          • Responder

          Ahh, estudiando:
          Con una GSI serçia más fácil portar ROMs y lograr obtener una mayor estabilidad respecto a los controladores y la cantidad de bugs ¿No? Como Windows, pero Claro, en terminales que soporten Trebble… ¿O voy por el lado erróneo de la explicación? (Eso un ejemplo: suponiendo que yo aprendiese a hacer los port para MTK (Que no es el caso))

          Ahh y respondiendo a algo que leí (3da vuelta): Lo bonito no es lo efectivo en Android, sino el rendimiento y la efectividad del mismo. A mi Android me gusta tal y como es, y yo, lo veo bastante agradable: Desde su interfaz hasta (…) Android no tiene que ser Barbie para lucir bien (En mi opinión) Así que por mi, ni esperen los fabricantes a que yo compre algún terminal que tenga capas de personalización y descubra como mudarme a AOSP: Y si no se puede, ni lo quiero (También se incluye BLU con la Amigo UI)

          1. Ya en el caso de las GSI no estarías portando nada, la GSI es una imagen del sistema como la que tú tienes instalada o la que tengo yo, puede ser de cualquier ROM, por ejemplo existe una de AOKP, la diferencia (que es lo que la hace genérica) es que no posee ningún archivo Vendor en la misma, por tanto es posible flashearla en cualquier dispositivo con soporte Treble porque en estos terminales los archivos y HALs se encuentran en una partición dedicada -Vendor Partition- independiente del sistema.
            Ya lo de querer cambiar el sistema o no depende más de la posibilidad de desbloquear los bootloaders y de la disponibilidad de las sources del kernel, si eso está, puedes compilar lo que quieras (siempre que sea Qualcomm)

          • Luis Fernando Ceballos Sorí on 30 abril, 2018 at 3:10 pm
          • Responder

          Una nueva duda: ¿Podrá mi S4 soportar Treble algún día? ¿Como comprobarlo? ¿TWRP 3.2.0+?

          1. Project Treble se puede portar, sin embargo la tarea no es fácil, primeramente hacen falta los HALs, luego binderizarlos (no tiene traducción exacta) para hacerlos compatibles con Treble, aunque parece poco, los desarrolladores tendrían muchísimo trabajo.
            Lo primero que requiere Project Treble ya lo tiene: una ROM con Android O (aunque no sea estable). Aún así haría falta un espacio dentro del dedicado a las particiones para poder albergar todos los nuevos HALs que tendrá la partición Vendor, eso requiere que el OEM ponga de su parte, teniendo en cuenta la edad del terminal, voto por un no
            Hacer que el custom recovery reconozca una partición Vendor creo que es la parte fácil
            Con Xiaomi y Motorola fue relativamente fácil porque tienen una partición extra dedicada a datos inútiles cuando instalas una custom ROM, como es el caso de la partición /cust en Xiaomi, al estar vacía, solamente fue necesario mover los HALs ahí, binderizarlos y modificar TWRP para que reconociera la nueva partición. Evidentemente hay mucha más explicación al respecto.

      2. GZOSP = Ground Zero Open Source Project, es un proyecto basado en AOSP que incluye código de CAF (Code Aurora Forums) que es el repositorio propio de Qualcomm para sus SoC que no son de terminales Nexus

        • robertol on 3 mayo, 2018 at 2:20 pm
        • Responder

        yo lo comprobé, las Tab de GEDEME son AllWinner

        1. He de imaginarme que es el Allwinner A83T que coincide con los 8 núcleos A7 y la Power VR SGX544 como ya había supuesto.
          No está tan mal el SoC a juzgar por todas sus características, habría que ver el precio en el que se comercializa el tablet

  2. Buenos días, Patrick395x:

    tengo un movil ZTE ba 510 del 2016, quisiera conocer si el fabricante posee soporte para Project Treble. De tenerlo el modelo que opero puede probar una GSI?

    1. No posee soporte Treble, ¿cómo saber si tu terminal posee soporte Treble fácilmente?
      1. Su terminal posee Android Oreo 8.x de fábrica
      R1:Si la respuesta es NO, pues no hay soporte
      R2:Si la respuesta es SI, posee soporte
      2. Su terminal será actualizado a Android Oreo
      Respuesta: A lo mejor puede tener soporte
      Esta es una manera sencilla, no hay que abrir consolas, ni instalar aplicaciones para saberlo
      Todos los terminales que sean lanzados al mercado con Android Oreo TIENEN que proveer soporte Treble, sin embargo si se actualiza de Nougat a Oreo, no es obligatorio
      Saludos

  3. Thanksa lot for the post.Really thank you! Much obliged.

Deja un comentario

Your email address will not be published.