|
ROMs y desarrollo Xiaomi Mi 8 ROMs y desarrollo Xiaomi Mi 8 |
|
Herramientas |
#1
|
||||
|
||||
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 Ú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 |
Los siguientes 35 usuarios han agradecido a descarao81 su comentario: | ||
|
#2
|
||||
|
||||
Reservo
|
#4
|
||||
|
||||
Explicación muy completa y clara, perfecta para 'newbies'
No sé si yo tengo cuenta autorizada para EDL, quisiera poder comprobarlo de algún modo. Mi cuenta es de las antiguas y de hecho flasheé el año pasado un MI4c poniéndolo en EDL por comandos desde fastboot. Aún así puede que haya una manera de saberlo sin tener que flashear. |
Gracias de parte de: | ||
#5
|
||||
|
||||
Explicación muy completa y clara, perfecta para 'newbies'
No sé si yo tengo cuenta autorizada para EDL, quisiera poder comprobarlo de algún modo. Mi cuenta es de las antiguas y de hecho flasheé el año pasado un MI4c poniéndolo en EDL por comandos desde fastboot. Aún así puede que haya una manera de saberlo sin tener que flashear. |
#6
|
||||
|
||||
En otro hilo apuntan esto:
A ver, si tenéis un móvil chino con rom global y queréis tener el control del boot tenéis que hacer lo siguiente: 1- Instaláis una rom china estable y cerráis el boot. 2- Una vez cerrado el boot, lo asociáis a vuestra cuenta en opciones de desarrollador y ya te sale el contador de horas a esperar (A mi ya me está contando y me quedan unas 260/270) luego ya tendrás el control absoluto de tu móvil y podrás abrir y cerrar a tu antojo. ¿ Es esto verdad ? , el usuario que lo posteo, no ha dicho si lo ha podido desbloquear, ¿ Cual es vuestra opinion ? |
Gracias de parte de: | ||
#7
|
||||
|
||||
Explicación muy completa y clara, perfecta para 'newbies'
No sé si yo tengo cuenta autorizada para EDL, quisiera poder comprobarlo de algún modo. Mi cuenta es de las antiguas y de hecho flasheé el año pasado un MI4c poniéndolo en EDL por comandos desde fastboot. Aún así puede que haya una manera de saberlo sin tener que flashear. Las recientes y penosas novedades de Xiaomi han hecho que ya sólo se pueda iniciar en edl desmontando parte del teléfono para realizar un testpoint (no como antes que se podía iniciar por comandos o con un cable especial); y además la otra novedad es que "castiga" a quienes compran un teléfono en el mercado chino para usarlo con una rom internacional, y a quienes lo hacen con bootloader cerrado les deja el teléfono en un estado sólo reparable con su consentimiento expreso (cuentas autorizadas) |
#8
|
||||
|
||||
En otro hilo apuntan esto:
A ver, si tenéis un móvil chino con rom global y queréis tener el control del boot tenéis que hacer lo siguiente: 1- Instaláis una rom china estable y cerráis el boot. 2- Una vez cerrado el boot, lo asociáis a vuestra cuenta en opciones de desarrollador y ya te sale el contador de horas a esperar (A mi ya me está contando y me quedan unas 260/270) luego ya tendrás el control absoluto de tu móvil y podrás abrir y cerrar a tu antojo. ¿ Es esto verdad ? , el usuario que lo posteo, no ha dicho si lo ha podido desbloquear, ¿ Cual es vuestra opinion ? Edito: acabo de recordar un método para cambiar (con el bootloader desbloqueado) la cuenta asociada al desbloqueo, que es lo que podría servir para cerrar con más seguridad el bootloader que ha sido abierto por el chino, aunque había que usar Magisk. Le echaré un ojo y puede que lo incluya en el post. Última edición por descarao81 Día 10/09/18 a las 17:08:31. |
#9
|
||||
|
||||
El flasheo EDL se puede hacer tanto mediante el Test Point como con el cable Deep Flash, que emula el efecto de unir los puntos del Test Point pero sin necesidad de abrir el móvil.
En ambos casos necesitas tener una autorización, antes Xiaomi las daba gratis, ahora se tienen que comprar con puntos Mi o a través de terceros como s-unlock. Esas cuentas las pueden usar varias personas durante un día. Si le escribís al soporte global de Xiaomi también se pueden conseguir esas cuentas. Otra opción es usar un programador EMMC. También te falta poner lo de los tiempos de espera para el desbloqueo, y como se puede reducir un poco si primero flasheas una ROM beta. Y te falta poner lo del ARB y ya te queda muy aseadito. Última edición por skanskan Día 10/09/18 a las 17:27:10. |
Gracias de parte de: | ||
#10
|
||||
|
||||
Por lo general son cuentas que han sido autorizadas expresamente bajo petición. Ten en cuenta que antes flashear una rom desde edl era algo relativamente común y seguramente el caso que tú nombras no requería de ninguna autorización especial, servía cualquier cuenta.
Las recientes y penosas novedades de Xiaomi han hecho que ya sólo se pueda iniciar en edl desmontando parte del teléfono para realizar un testpoint (no como antes que se podía iniciar por comandos o con un cable especial); y además la otra novedad es que "castiga" a quienes compran un teléfono en el mercado chino para usarlo con una rom internacional, y a quienes lo hacen con bootloader cerrado les deja el teléfono en un estado sólo reparable con su consentimiento expreso (cuentas autorizadas) |
#11
|
||||
|
||||
El flasheo EDL se puede hacer tanto mediante el Test Point como con el cable Deep Flash, que emula el efecto de unir los puntos del Test Point pero sin necesidad de abrir el móvil.
En ambos casos necesitas tener una autorización, antes Xiaomi las daba gratis, ahora se tienen que comprar con puntos Mi o a través de terceros como s-unlock. Esas cuentas las pueden usar varias personas durante un día. Si le escribís al soporte global de Xiaomi también se pueden conseguir esas cuentas. Otra opción es usar un programador EMMC. También te falta poner lo de los tiempos de espera para el desbloqueo, y como se puede reducir un poco si primero flasheas una ROM beta. Y te falta poner lo del ARB y ya te queda muy aseadito. Dos cosillas: 1. El cable deep flash, todo lo que yo he leído es que en este terminal no funciona. Funciona realmente? 2. El programador EMMC, tienes algún link en el que pueda leer sobre ello? Me interesa mucho. Y además me sorprende no haber leído sobre ello después de haber leído cientos de posts en hilos sobre brickeos, o no lo recuerdo. Edito. Sobre reducir el tiempo de espera flasheando la beta. A mí me funcionó la primera vez que desbloqueé reduciendo en 120 horas, pero no he conseguido reducir nada la segunda vez que he desbloqueado. Última edición por descarao81 Día 10/09/18 a las 19:05:05. |
#12
|
||||
|
||||
Muchas gracias por la respuesta y las sugencias!
Dos cosillas: 1. El cable deep flash, todo lo que yo he leído es que en este terminal no funciona. Funciona realmente? 2. El programador EMMC, tienes algún link en el que pueda leer sobre ello? Me interesa mucho. Y además me sorprende no haber leído sobre ello después de haber leído cientos de posts en hilos sobre brickeos, o no lo recuerdo. Edito. Sobre reducir el tiempo de espera flasheando la beta. A mí me funcionó la primera vez que desbloqueé reduciendo en 120 horas, pero no he conseguido reducir nada la segunda vez que he desbloqueado. |
Gracias de parte de: | ||
#13
|
||||
|
||||
Tema muy interesante. Gracias por el currazo.
Hoy recibo mi Mi 8 con el BL abierto "por el chino". La verdad es que ya llevo mucho tiempo con la marca y todos estos cambios me están dando tanta pereza que seguramente venda el móvil esta misma semana sin tocarlo siquiera. Una lástima. PD: me la jugaría a cerrar el BL para luego reasignar mi cuenta. Pero, ¿quién se juega un brick de 300€? |
Gracias de parte de: | ||
#14
|
||||
|
||||
Tema muy interesante. Gracias por el currazo.
Hoy recibo mi Mi 8 con el BL abierto "por el chino". La verdad es que ya llevo mucho tiempo con la marca y todos estos cambios me están dando tanta pereza que seguramente venda el móvil esta misma semana sin tocarlo siquiera. Una lástima. PD: me la jugaría a cerrar el BL para luego reasignar mi cuenta. Pero, ¿quién se juega un brick de 300€? |
#15
|
||||
|
||||
hay que añadir un detalle pienso yo una vez recuperado del brick complejo edl (el que te lo desbloquea el vendedor) el bootloader se bloquea de nuevo y ahí ya podriamos meter nuestra propia cuenta de mi para desbloquearlo y asociarlo.
|
#16
|
||||
|
||||
si algún tester o valiente que le haya venido con el bootloader abierto se anima a bloquear de nuevo el bootloader con la rom china que lo comente, así saldríamos de dudas si se puede volver a bloquear sin causar un brick, y en el supuesto de que haya brick ya podemos afirmar que si te viene abierto por el vendedor cerrando el bootloader con cualquier rom sea china o global se jode y habría que utilizar el método edl
|
#17
|
||||
|
||||
Tema muy interesante. Gracias por el currazo.
Hoy recibo mi Mi 8 con el BL abierto "por el chino". La verdad es que ya llevo mucho tiempo con la marca y todos estos cambios me están dando tanta pereza que seguramente venda el móvil esta misma semana sin tocarlo siquiera. Una lástima. PD: me la jugaría a cerrar el BL para luego reasignar mi cuenta. Pero, ¿quién se juega un brick de 300€? |
#18
|
||||
|
||||
Si alguien quiere profundizar algo más en el tema aquí hay más info:
https://www.xda-developers.com/xiaom...n-brick-phone |
Gracias de parte de: | ||
#19
|
||||
|
||||
Una pregunta, estoy esperando a recibir mi nuevo Mi8 Global Version y de momento no tengo pensado cambiarle la rom a la .EU u otra, pero he leido que es posible que xiaomi empiece a capar y no deje abrir el bootloader, si cuando lo reciba el telefono lo conecto a Mi Unlock para solicitar los permisos de desbloqueo y cuando pasen las 720 horas decido no desbloquearlo, ¿el permiso de desbloqueo lo pierdo o ya lo tengo ese permiso para desbloquearlo cuando yo quiera?
|
|
#20
|
||||
|
||||
A mí nunca me ha hecho esperar, no sé qué sistema usan ahorabsi por dispositivo o cuenta como antes. Yo que tú desbloquearía y volvería a bloquear y a ver si en unas semanas te deja desbloquear sin esperas.
Y ya de paso nos cuentas qué tal |
Estás aquí | ||||||
|
Herramientas | |