La nueva versión del sistema operativo de Google, Android 10, trae muchas novedades y ventajas frente a la anterior, Android Pie. Entre ellas, están una mejora en la privacidad, una mejor gestión de los permisos, el modo oscuro y una mejora en rendimiento.

Si bien hay rumores sobre si Xiaomi actualizará el Mi A1 (tissot) a Android 10, hoy vamos a ver cómo poder instalarlo nosotros manualmente con un poco de paciencia y pericia.

Ya que, oficialmente, no hay ninguna versión del sistema para el terminal, vamos a instalar lo que se conoce como GSI: Generic System Image. Básicamente, es una imagen genérica del sistema la cual solo necesita del kernel y del vendor para funcionar. Por suerte, la comunidad del Mi A1 es muy activa, y existen kernel muy actualizados (como DPA) así como vendor funcionales. De este modo, podemos tener el sistema actualizado siempre a la última versión sin necesidad de que algún desarrollador o la propia Xiaomi se dedique a hacer una versión del sistema operativo específica para el móvil. Además, en este caso, las últimas versiones GSI ofrecen un rendimiento similar o mejor frente a una ROM dedicada.

Disclaimer

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  Este tutorial se ha hecho con fines educativos y no busca en ningún
  momento criticar ninguna marca y/o empresa.

  Así mismo, cada uno es responsable del trato que haga con su dispositivo, 
  no haciéndome ni yo ni, cualquiera relacionado con los grupos de
  [Xiaomi Mi A1 - CASTELLANO](https://goo.gl/VpLnw7) o 
  [Xiaomi Mi A1 Development](https://goo.gl/PaAsyQ), o desarrollador(es) 
  de las distintas aplicaciones y/o métodos para conseguir niveles privilegiados
  de acceso al dispositivo y otros equipos, ni ninguna persona física implicada 
  directa o indirectamente en los procesos aquí descritos, responsables de 
  cualquier daño, perjurio, pérdida de garantía, avería, percance o mal 
  que le pueda ocurrir al dispositivo durante la realización de los pasos 
  descritos en este tutorial, los cuales se han comprobado que funcionan 
  en las últimas actualizaciones recibidas por el terminal. En caso de 
  que la última actualización no haya sido comprobada todavía, es recomendable 
  esperarse para tener ciertas garantías de éxito.

  Así mismo, este post se ha hecho de buena fe, buscando ayudar a la comunidad, 
  y es posible que la información no sea todo lo concisa que un determinado 
  usuario necesite o que dicha información no consiga solucionar o alcanzar el 
  fin para la cual fue redactada. En este caso, el susodicho usuario es libre de 
  acceder a diversos foros y grupos para pedir ayuda, 
  no siendo necesario prestársela.

  Recomendamos encarecidamente, en cualquier caso e independientemente del nivel 
  de cada lector de este post, realizar una lectura intensiva y comprensiva del 
  contenido de éste, para evitar los posibles daños mencionados anteriormente 
  causados por la falta de un entendimiento conciso del mismo.

1. Instalando un custom recovery

Ya que necesitamos cambiar el sistema operativo, vamos a tener que instalar un custom recovery. El menú de recuperación (recovery) es un elemento del sistema el cual nos permite, como dice el nombre, recuperar el teléfono en caso de errores. Las versiones personalizadas, además de las distintas opciones de recuperación, te permiten modificar las entrañas del dispositivo sin necesidad de tener grandes conocimientos e intentando mantener todo en su sitio. Aquí, lo vamos a usar para cambiar las particiones del terminal e instalar el nuevo sistema operativo.

En este caso, vamos a usar el TWRP de Giovix92 – también es posible usar el de CosmicDan, pero hace tiempo que no se actualiza y Giovix cogió el relevo del proyecto. La instalación es muy sencilla:

  • Vamos al siguiente enlace: https://s.javinator9889.com/giovix_twrp y descargamos el zip con el boot y el instalador.
  • Descomprimimos el archivo boot – vamos a usar de ahora en adelante la carpeta “Mi A1” para este proyecto.

A continuación, tendremos que desbloquear el bootloader – aquí no se va a explicar, ya que se muestra en el tutorial de la Google Camera: https://blog.javinator9889.com/install-gcam-xiaomi-mi-a1/#bootloader_unlock. Seguid los pasos ahí explicados y no tendréis problemas.


En este momento, necesitamos tener a mano un ordenador y un cable USB Tipo-C, ya que vamos a necesitar ejecutar comandos. Iniciamos el dispositivo en modo fastboot, manteniendo pulsado el botón de encendido (E) junto con bajar volumen (Vol-) y entraremos en modo fastboot.

Imagen que aparece al reiniciar correctamente en modo fastboot en el Xiaomi Mi A1

Si has seguido los pasos anteriores, tendrás las herramientas de fastboot guardadas en la carpeta adb. En este caso, mueves los archivos descargados anteriormente a dicha carpeta, y abres una consola de comandos.

Ejecutando CMD en la carpeta actual desde Windows Explorer

A continuación, ejecutamos los siguientes comandos:

1
fastboot devices

Comprobamos que aparece nuestro dispositivo

1
fastboot boot boot-recovery.img

E iniciamos el sistema con la imagen del recovery.

Una vez dentro, vamos al apartado “Install” y seleccionamos el archivo zip que hemos descargado anteriormente – el archivo se puede enviar por MTP, conectando el terminal al ordenador, o bien guardándolo en la tarjeta SD.

Vista principal de TWRP

Una vez se haya completado el proceso, vamos al menú “Reboot” y seleccionamos la opción “Recovery”. Si todo ha ido bien, debería iniciarse en el recovery directamente, sin necesidad ya de ejecutar comandos.

Menú de reinicio en TWRP

2. Re-particionando el dispositivo (Treble)

Las ROMs GSI necesitan que el dispositivo esté particionado siguiendo la configuración Treble, esto es, disponer de una partición vendor así como dual-boot AB. El Mi A1 ya tiene por defecto la configuración de dual-boot, por lo que únicamente queda generar la partición vendor.

ATENCIÓN: ESTO ELIMINARÁ TODOS LOS DATOS DEL ALMACENAMIENTO INTERNO – APPS, MULTIMEDIA, ETC.

Es importante tener en cuenta que el procedimiento actual eliminará por completo todos los datos que hay en nuestro dispositivo, así que es recomendable usar TWRP para hacer un backup del sistema.

Usando el TWRP de Giovix, el procedimiento es muy sencillo:

  • Vamos a “Advanced” y ahí, “Tissot Manager“.
  • Pulsamos en la opción que dice “Treble” y, una vez aceptado, el proceso comenzará.
  • Reiniciamos de nuevo en recovery, esta vez con el terminal ya trebleizado.

Menú Treble en TWRP

Tenéis más información sobre el proceso de Treble en el siguiente enlace: [GUIDE] [Q&A] [TREBLE] From Stock to Treble – everything you need to know!

3. Formateando las particiones

Ahora que hemos hecho Treble en el Mi A1, necesitamos formatear las particiones del terminal para poder instalar la custom ROM.

ATENCIÓN: LOS PASOS QUE SE DESCRIBEN A CONTINUACIÓN SON CRÍTICOS Y PUEDEN DEJAR EL DISPOSITIVO INUTILIZABLE – HACER COPIA DE SEGURIDAD

Necesitamos, por cada slot del dispositivo, formatear las siguientes particiones:

  • system
  • vendor
  • dvalik
  • data
  • internal storage

Particiones a formatear

Una vez hechos los wipes, tenemos que cambiar el slot activo. Para ello, nos dirigimos al menú “Reboot” y anotamos en el slot en que estamos:

Slots en TWRP

de manera que cambiamos al slot inactivo, en este caso, slot B. Le damos a “Recovery” y se debería iniciar en recovery. Antes de hacer ningún wipe, comprobamos que en efecto el slot activo es el B, ya que en otro caso el sistema no funcionará. Si no se ha cambiado el slot, reiniciamos en el bootloader y ejecutamos el siguiente comando desde el ordenador:

1
fastboot --set-active=b  # se cambia b por el slot en cuestión

y reiniciamos en recovery de nuevo (Botón de encendido + Vol. +).

Una vez hayamos completado los formateos, procedemos al siguiente paso.

4. Instalando la imagen boot, vendor y system

Ahora quedan los pasos más importantes: la instalación de las diferentes partes del sistema.

Por una parte, hace falta instalar boot (el kernel). En el siguiente enlace, podéis descargar los boot para diferentes tipos de kernel: https://www.elranchodecornelio.com/a1index/content/treble/boot.html.

Del mismo modo, también podéis instalar un kernel personalizado. El que ahora mismo funciona mejor en todo el Mi A1 es el kernel DPA, el cual podéis descargar desde aquí: https://t.me/dpakernel. Si queréis obtener una lista completa de las características, el enlace es este: https://telegra.ph/DPA-Features-11-07.

El vendor se puede descargar desde el siguiente enlace: https://www.elranchodecornelio.com/a1index/content/treble/vendor.html. Tanto el vendor de Flex como el Sooti muy bien. Además, Chon Doe ha desarrollado su propio vendor con un gran rendimiento, el cual podéis obtener desde aquí: https://s.javinator9889.com/vendor_chondoe.

Finalmente, las ROMs GSI se pueden descargar desde este enlace: https://www.elranchodecornelio.com/a1index/content/treble/qgsi.html. De forma particular, las más recomendables son las ExpressLuke GSI: https://sourceforge.net/projects/expressluke-gsis/files/. Las ROMs que son compatibles con el Mi A1 son todas aquellas que sean ARM64 A/B – no confundir con A64 A/B.

Una vez descargada la ROM, si está en formato img.xz, hay que descomprimirlo para obtener la imagen img. En Linux, se puede usar el comando unxz; en Windows, se puede usar un descompresor como WinRAR o similar.

Movemos todos los archivos al dispositivo (recomendable la tarjeta SD) y procedemos a instalarlos en el siguiente orden:

  • Instalamos boot como imagen boot en el sistema (hay que seleccionar la opción “Install image“)

    Instalando el kernel como partición boot

    • A continuación, instalamos el zip con el vendor (volvemos a seleccionar la opción “Install zip“).

    • Finalmente, instalamos la imagen del sistema (seleccionando la opción “Install image“).

      Instalación de la imagen del sistema en la partición system

      • No tiene por qué ser necesario, pero por seguridad instalamos de nuevo el TWRP Recovery (opción “Install zip“).
      • Reiniciamos en recovery de nuevo.

    Al reiniciar, debemos comprobar, al igual que en el paso anterior, que el sistema todavía es capaz de cambiar el slot activo. En otro caso, habrá que realizar el procedimiento anterior para habilitar de nuevo el cambio de slot.

    5. Pasos finales en la instalación

    Una vez hemos llegado aquí, lo más difícil ya está hecho. Ahora, toca cambiar el tamaño de la partición del sistema. Debido al proceso de hacer Treble, la imagen de system queda más pequeña de lo normal, de forma que no se pueden añadir más componentes.

    Para cambiar el tamaño de la partición, vamos al menú “Wipe” y seleccionamos la partición System. Ahora, en lugar de deslizar para formatear, vamos a Repair or Change filesystem y seleccionamos la opción que dice “Resize file system“. Si el proceso falla (código de error 1), no te preocupes: reinicia en recovery de nuevo y vuelve a intentarlo hasta que funcione.

    En el menú wipe, opción para cambiar y modificar el sistema de ficheros

    Finalmente, instalamos las Google Apps (para tener acceso a las apps de Google, como la Play Store, etc.) y Magisk, en ambos casos solo si queremos, ya que no es imprescindible.

    Las Google Apps se pueden descargar desde aquí: https://www.elranchodecornelio.com/thegappsinstaller – sirven por igual las Mini-ME y Standard.

    Magisk puede ser descargado desde el siguiente enlace: https://github.com/topjohnwu/Magisk/releases – es importante que la versión de Magisk sea mayor a la 17, en otro caso fallará.

    Y ya estaría, tenemos instalada una ROM Android 10 en el Mi A1 😱

    Si te ha sido útil, por favor dedica un minuto a compartirlo 🙂

    6. Sección de ayuda [Q & A]

    Bootloop

    El terminal entra en bootloop cuando nunca se llega a iniciar el sistema. Si te ocurre esto, lo más probable es porque el TWRP ya no es capaz de cambiar de slot. Si sigues teniendo acceso al recovery, solucionarlo es muy sencillo:

    • Inicia a fastboot manteniendo pulsadas las teclas de Power (E) y bajar volumen (Vol -).

    • Conecta el móvil al PC y comprueba que el ordenador es capaz de encontrarlo (puede que necesites descargar los drivers; puedes hacerlo desde este enlace: https://goo.gl/YReSLX):

      1
      
      fastboot devices
      
    • Finalmente, hacemos que el móvil cambie de slot – si estaba en el slot A, se cambia al slot B y viceversa:

      1
      2
      
      fastboot current-slot    # anotamos el slot actual
      fastboot --set-active=b  # ponemos el otro slot
      
    • Reiniciamos en recovery y comprobamos que, en efecto, podemos ya cambiar el slot desde allí.

    Tras seguir estos pasos, se suele poder iniciar el sistema. Igualmente, es recomendable volver a seguir los pasos para evitar errores.

    Error en la partición data

    Hay muchas veces en las que, al hacer un wipe sobre la partición data, se produce un fallo que se muestra con texto en rojo en la pantalla.

    Error en la partición data

    Para solucionar esto, los pasos a seguir son muy sencillos (obviamente, se borrarán todos los datos en esa partición):

    • En el recovery, revisar que, en los ajustes, la opción Use rm -rf instead of formatting esté desactivada.
    • Ve al menú Wipe y selecciona la opción Format data. Cuando te pregunte por la confirmación, escribe yes y el error debería de haberse ido.

    Instalando una ROM normal (no Treble)

    Para instalar una ROM normal, es tan sencillo como ir al menú Install y seleccionar el zip instalable de dicha ROM: las particiones vendor y boot no afectan a la instalación, en principio.

    Sistema congelado por la GCam

    La actualización de Android 10 tiene algunos problemas con las cámaras de Google (no es por usar GSI, está generalizado inclusive en los teléfonos Pixel, el cual provoca que el sistema se congele, se reinicie y se desconfigure.

    Para solucionar este problema, hay que ejecutar las siguientes órdenes, o bien usando ADB o bien ejecutando una consola como root (por ejemplo, Termux):

    1
    2
    3
    
    settings put global setup_wizard_has_run 1
    settings put secure user_setup_complete 1
    settings put global device_provisioned 1
    

    Hay algunas GCam que evitan este problema, puedes buscarlas si estás interesado en poder usarlas sin muchos problemas (la que he probado y que funciona es la Razer V2.0 o algunas GCam 5).

    Actualización del sistema

    Si hay una nueva actualización del sistema, la forma de proceder es muy sencilla, y si se siguen los siguientes pasos no habrá ningún problema:

    1. Descargamos la nueva actualización y la descomprimimos. Además, descargaremos las GApps (Google Apps) en caso de que las necesitemos (en el punto 5. Pasos finales en la instalación. viene detalladas qué Google Apps se pueden usar y cuáles son recomendables). Si es la primera vez que hacemos una actualización del sistema, es imprescindible instalar también la imagen boot. En el punto 4. Instalando la imagen boot, vendor y system. se detalla cómo descargarlo e instalarlo.

    2. Ponemos el archivo img en una carpeta que tengamos localizada, preferiblemente en la tarjeta SD.

    3. Apagamos el terminal y lo iniciamos en modo recovery (pulsando el botón de encendido (E) y subir volumen (Vol. +)).

    4. Cambiamos el slot activo. Para ello, vamos al menú Reboot y seleccionamos el otro slot (si estamos en el slot A, por ejemplo, elegimos el slot B y viceversa). Después, reiniciamos de nuevo en recovery.

      Cambio de slot en TWRP

      Esto permite instalar la actualización en el otro slot, de manera que si algún paso de la actualización fuera mal o existiera algún error, podríamos cambiar al slot anterior y recuperar nuestro dispositivo sin errores.

      • Una vez el dispositivo se haya iniciado de nuevo, comprobamos que en efecto se ha cambiado el slot, y nos dirigimos al menú Install. Allí, navegamos hasta la ruta en la que hemos descargado anteriormente la actualización de la ROM y escogemos la opción de Install image.

        Instalando la imagen del sistema

        Seleccionamos el archivo img que hemos descomprimido anteriormente y lo instalamos. Cuando haya finalizado la instalación, vamos al menú de Reboot y reiniciamos de nuevo en recovery.
        Si, además, es la primera vez que actualizamos el sistema por este método, será necesario instalar la imagen boot también. Para ello, en la ruta donde se haya descargado, la seleccionamos y la instalamos por el mismo método por el que hemos instalado el sistema. En principio no sería necesario, pero por precacución después de hacer este paso también instalaremos el recovery de nuevo.

        Instalando boot como partición boot

      • Ahora, cambiamos el tamaño a la partición del sistema. Para ello, seleccionamos la opción Wipe y marcamos la partición System. Pulsando el botón Repair or change filesystem, accedemos a un nuevo menú en el cual debemos escoger la opción de Resize filesystem.

        Una vez el proceso haya finalizado sin errores (si hay algún problema, reiniciamos de nuevo en recovery y volvemos a intentar el proceso), estamos listos para instalar los extras que usemos.

      • Finalmente, procedemos a instalar las GApps en caso de que queramos usarlas. Al igual que en el paso 5, vamos a la ruta donde estén descargadas y seleccionamos la opción Install zip. Escogemos las GApps que queramos usar y las instalamos.

      • Ya estamos listos para iniciar de nuevo en el sistema y disfrutar de la nueva actualización de la ROM.