Ver Mensaje Individual
  #1  
Viejo 10/09/18, 08:58:57
Array

[xs_avatar]
descarao81 descarao81 no está en línea
Miembro del foro
 
Fecha de registro: ene 2012
Mensajes: 118
Tu operador: Movistar

Post Mi8. Bootloader, Anti Roll-Back y otras nociones elementales

Este post pretende ayudar con una descripción de algunos conceptos elementales relacionados con Xiaomi, y más concretamente con el Mi8.
Recientemente Xiaomi ha modificado algunos aspectos de su política que afectan a la forma tradicional en la que se realizaban algunos procedimientos como el desbloqueo del bootloader o la instalación de ROMs de diferentes versiones, y que debido a una mala comunicación por su parte han dado lugar a resultados bastante desafortunados. Con estas nociones elementales pretendo ayudar a esclarecer algunas dudas y situar un poco mejor el escenario en el que nos encontramos.
Agradeceré cualquier sugerencia o corrección sobre el contenido.

Agradezco especialmente al 'grupo Xiaomi Mi8 de Telegram' del que he recibido gran parte de estas explicaciones y en el que hemos colaborado realizando algunas pruebas.



¿Qué es el bootloader?

Bootloader es la traducción en inglés de gestor de arranque. En pocas palabras, es el programa que se encarga de que cuando presionamos el botón de encendido se cargue el kernel y se inicie el sistema, o que con una combinación de botones el teléfono se inicie en modo recovery. Y para ello realiza una comprobación de en qué partes -o mejor dicho particiones- de la memoria se encuentran esos elementos.

¿Qué significa que el bootloader está bloqueado o desbloqueado?
El bootloader es un programa creado por el fabricante y por defecto está bloqueado, esto significa que sólo arrancará una partición que lleve la firma digital de ese fabricante; es decir que el bootloader sólo iniciará el teléfono con una ROM o un recovery que el fabricante haya establecido.
Un bootloader desbloqueado ha sido modificado, o incluso reemplazado, para que no se realice o no se tenga en cuenta esa comprobación permitiendo la carga de particiones con recoveries o ROMs que en principio no le corresponden e incluso ajenos al fabricante (custom roms y custom recoveries)

¿Cómo se desbloquea el bootloader?
El bootloader se desbloquea con un programa llamado MiUnlock y utilizando nuestra cuenta Mi. Aunque el desbloqueo no es inmediato, ya que la primera vez que lo intentemos nos obligará a esperar 720 horas (sí, habéis leído bien, un mes) antes de poder terminar el proceso. Hasta hace poco se podía reducir ese tiempo de espera actualizando a la rom developer o beta (dependiendo de la versión de nuestro teléfono) aunque al parecer -yo no lo sé con seguridad- esto ha cambiado y ya no es posible reducir ese periodo de espera.


Versión china y versión global (firmwares oficiales)
Teléfono versión china, versión global, teléfono chino con ROM china, teléfono chino con ROM global, teléfono global con… ¿Qué significa todo esto?
El teléfono es el mismo sea versión china o versión global, lo que cambia es su sistema operativo. El teléfono versión china sale de fábrica con una ROM diseñada para China, y el mismo teléfono pero en su versión global o internacional sale de fábrica con una ROM global. Y es el bootloader que estando bloqueado se encarga de controlar que el teléfono sólo funcione con ROM china o con ROM global según de qué versión se trate.

Versión estable (stable version) y versión beta (developer version)
La ROM china tiene una versión estable en la que (se supone) no se producen errores y tiene una versión developer en la que introduce nuevas características para ponerlas a prueba antes de incorporarlas a la versión estable. Y lo mismo sucede con la ROM global, hay una versión estable de la ROM global y otra versión beta.
El bootloader bloqueado permite pasar de versión estable a versión beta y viceversa, siempre que el movimiento sea china-china o global-global.

Instalar ROMs con bootloader bloqueado
Con el bootloader bloqueado o cerrado sólo se pueden instalar ROMs desde el recovery stock y utilizando en el ordenador aplicaciones como MiPCSuite, o desde la aplicación Updater que se encuentra en los ajustes del teléfono.
El bootloader sólo permitirá instalar rom china (stable o developer) o rom global (stable o beta) según cuál sea la versión de fábrica del teléfono. Y además sólo permitirá instalar las versiones más recientes, sean estables o betas. La ventaja de esto es la tranquilidad de que con el bootloader cerrado nunca instalaremos algo que produzca problemas graves como bricks o bootloops, simplemente porque el propio bootloader no lo permitirá.

Instalar ROMs con bootloader desbloqueado
El bootloader desbloqueado o abierto permite que nosotros instalemos casi cualquier cosa; para bien, para mal e incluso para muy mal. Ya no es el bootloader quien se asegura de que el teléfono no corra peligro con sistemas incompatibles, los responsables somos nosotros.
Con el bootloader desbloqueado podemos instalar ROMs a través de Fastboot con aplicaciones como MiFlash, a través de Recoveries modificados como TWRP o por la aplicación de Updater de los ajustes. Veamos las diferentes posibilidades.

De china stable a china developer y viceversa
Se puede instalar la ROM en archivo .zip por Updater pero sólo la última versión, sea estable o beta. El propio Updater borrará (aunque lo avisará previamente) toda la memoria interna del teléfono.
Se puede instalar el archivo .zip por custom recovery. Se pueden instalar versiones anteriores pero será recomendable (si no obligatorio) realizar wipes para evitar problemas.
Se puede instalar por fastboot (MiFlash). CUIDADO con la opción ‘clean and lock’ que dejaría bloqueado el bootloader).

De global stable a global beta y viceversa
Lo mismo que lo descrito en el apartado anterior.

De china (stable o developer) a global (stable o beta)
Hay que instalar por fastboot (MiFlash)
Mucha precaución porque si el móvil es versión china e instalamos global o viceversa y lo hacemos con la opción ‘clean and lock’ seleccionada, no sólo cerraremos el bootloader sino que dejaremos el teléfono en un brick que puede llegar a ser irreparable.


De china o global a custom rom
Hay que instalar desde custom recovery (TWRP)

¿Si cerramos el bootloader podemos volver a abrirlo?
Depende. Pueden darse varias situaciones que vemos a continuación.
Si cerramos el bootloader flasheando ROM china en teléfono versión china, o ROM global en teléfono versión global, podemos volver a abrirlo sin problemas. Si había sido desbloqueado con nuestra cuenta Mi lo haremos de forma instantánea; si no había sido desbloqueado por nosotros, nos obligará a esperar 720 horas antes de poder desbloquearlo con nuestra cuenta.
Si cerramos el bootloader flasheando ROM china en teléfono versión global o ROM global en teléfono versión china, el bootloader se cerrará pero además el teléfono quedará en brick.

¿En qué consiste un brick?
Brick en inglés significa ladrillo y decimos que el teléfono está en brick cuando tratamos de iniciarlo y no arranca su sistema operativo. Hablamos de soft brick cuando el teléfono arranca en modo de recuperación y/o fastboot, y hard brick cuando el teléfono no arranca de ninguna manera y lo único que tenemos es una pantalla en negro.
En el Mi8 se han producido muchísimos bricks y principalmente se han dado cuando el usuario voluntaria o accidentalmente cierra el bootloader instalando con MiFlash una ROM de una versión que oficialmente no le corresponde; es decir instalando una ROM global en un teléfono versión china o una ROM china en un teléfono versión global.

¿Cómo se soluciona ese brick?
Si el bootloader había sido desbloqueado por el usuario con su cuenta Mi y al cerrarlo ha caído en ese brick, es tan sencillo como volver a desbloquear el bootloader con esa misma cuenta y se podrá volver a usar MiFlash de manera normal.

Otro caso bien distinto es si el bootloader estaba abierto por el vendedor (u otra cuenta). Lamentablemente a día de hoy es prácticamente imposible revivir el teléfono de ese brick. La explicación es la siguiente.
Ese brick es especialmente difícil de recuperar ya que el bootloader no sólo no permite que la ROM instalada se cargue sino que además, mientras el bootloader esté bloqueado, no permite la instalación de ninguna ROM por los métodos comunes explicados hasta ahora. La única posibilidad de sacar el teléfono de ese brick es instalando una ROM estable de la versión del teléfono (es decir rom china estable si el teléfono es versión china) con MiFlash pero con el teléfono en modo EDL (Emergency Download Mode). Esto realmente se complica cuando en el Mi8 la única manera de iniciar el teléfono en EDL es realizando un testpoint (implica abrir la parte trasera del teléfono y desmontar algunas partes físicas) y, además, en el proceso de flasheo (instalación) hay que identificarse con el usuario y contraseña de una cuenta autorizada para flashear en ese modo., que a día de hoy es prácticamente -por no decir totalmente- imposible de conseguir.

Anti Roll-Back (ARB). En qué consiste, cómo funciona y cómo evitar el brick
Un artículo de xda-developers ayuda a comprender perfectamente qué es y cómo funciona el ARB, y qué medidas se pueden tomar para evitar que nuestro teléfono acabe en brick por la protección Anti-Rollback. Dejo el enlace a la fuente original y adjunto una traducción al español de dicho artículo

https://www.xda-developers.com/xiaomi-anti-rollback-protection-brick-phone
Archivos Adjuntos
Tipo de Archivo: pdf Anti Roll-Back.pdf (108.4 KB, 1309 visitas)

Última edición por descarao81 Día 30/01/19 a las 04:30:46. Razón: Editar información sobre el cierre voluntario del Bootloader
Responder Con Cita
Los siguientes 35 usuarios han agradecido a descarao81 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]