Ver Mensaje Individual
  #1  
Viejo 23/05/19, 21:43:04
Array

[xs_avatar]
Fignon Fignon no está en línea
Usuario muy activo
 
Fecha de registro: jun 2017
Mensajes: 538
Modelo de smartphone: Oneplus 7 Pro
Tu operador: Lowi
Abrir Bootloader, instalar TWRP, Rootear y actualizar sin perderlo.

Antes de tocar nada, lo mejor es actualizar el sistema vía OTA a la última versión. Si queréis la última rom completa siempre podréis descargarla de la web de Oneplus. Además, podréis encontrar todas las versiones del sistema, así como todas sus imágenes boot stock, en este hilo de XDA.

Recordad que el modelo europeo es el GM1913 y las roms que se corresponden a él son las que terminan en GM21BA.

También aconsejo que durante estos procedimientos, no tengáis ni huella ni patrón configurados en el móvil. Ya se pondrán cuando terminemos.

Abrir el bootloader

En este terminal es sumamente sencillo, pero tened en cuenta que se borrará todo el almacenamiento interno y también pasaremos de Widevine L1 a L3, aunque esto último se revierte cerrando de nuevo el bootloader:
  1. Ir a Ajustes --> Información del teléfono --> Pulsar 7 veces sobre Número de compilación. Ahora en Ajustes --> Sistema se nos ha habilitado el menú Opciones para desarrolladores. Entramos y activamos lo siguiente:
    * Desbloqueo de OEM
    * Reinicio avanzado (opcional)
    * Depuración por USB
  2. Nos descargamos en el pc la última versión de plataform tools para tener comandos adb y fastboot. Descomprimimos esa carpeta en nuestra unidad C:\ Entramos en esa carpeta y en la barra de direcciones del explorador de windows, pinchamos donde señala la imagen y escribimos CMD para que se abra la ventana de comandos.

    captura.PNG

  3. Enchufamos el teléfono al pc, dejamos que se descarguen los drivers si es necesario y en la ventana CMD escribimos
    Código:
    adb devices
    El teléfono nos pedirá permisos que aceptamos. Si en la ventana de cmd sale un número de serie es que detecta el teléfono y todo marcha bien.

  4. Ya podemos entrar en modo fastboot, para lo cual, al haber activado la opción de reinicio avanzado, podemos dejar pulsado el botón power y nos dará la opción. También podemos escribir en la ventana CMD
    Código:
    adb reboot bootloader
    Una vez en modo fastboot, para asegurarnos de que todo está ok, escribimos en la ventana CMD
    Código:
    fastboot devices
    Si devuelve el número de serie todo marcha bien. Ya solo queda abrir el bootloader con el siguiente comando
    Código:
    fastboot oem unlock
    Con los botones de volumen del móvil seleccionamos aceptar la operación y pulsamos el power para confirmar. Ya tenemos el bootloader abierto.

Instalar Team Win Recovery Project y Rootear con Magisk

Después de abrir el bootloader el teléfono se reiniciará con el almacenamiento interno wipeado. Tendremos que volver a habilitar la depuración USB según el paso 1 del punto anterior.
  1. Descargamos el último zip y la última imagen del TWRP no oficial.
  2. También descargamos la última versión de Magisk. Aconsejo descargar también, por si acaso, la última versión de la apk Magisk Manager y la última versión del desinstalador.
  3. Estos archivos los podemos guardar en la carpeta del pc que nosotros queramos. No es necesario que estén dentro de plataform tools. Eso sí, aprovechamos para copiarlos a la memoria interna del teléfono. Es aconsejable tener a vista tanto la carpeta del pc que contiene los archivos como la ventana de comandos. Es decir, no usar ventana completa. Esto es útil porque cuando flasheemos lo que sea desde fastboot, simplemente arrastraremos el archivo a la ventana de comandos, haciendo que la ruta donde se aloja se pase a la propia ventana de comandos. Con esto evitamos tener que renombrar archivos con nombres complejos y también tenerlos que mover a la carpeta plataform tools.
  4. Reiniciamos el teléfono en modo fastboot, con botones o con el comando adb que puse en el punto 4 del apartado anterior.
  5. Desde el bootloader, vamos a arrancar la imagen del TWRP en el teléfono
    Código:
    fastboot boot (arrastramos la imagen del TWRP a la ventana de comandos y pulsamos enter)
  6. El teléfono hará un reboot y entrará en el nuevo recovery. Si todo ha ido bien, ya no es necesario mantener el teléfono enchufado al pc. En la pantalla de inicio le damos permisos de escritura desplazando la barra inferior.
  7. Desde el menú Install seleccionamos el zip de TWRP y lo flasheamos.
  8. Desde el menú Reboot seleccionamos Recovery para cerciorarnos de que todo ha ido bien.
  9. Una vez de nuevo en el recovery, sólo queda entrar en el menú Install, flashear el zip de Magisk y reiniciar el sistema.

Actualizar manteniendo el Root

Más que poner unos pasos concretos, creo que es mejor un breve resumen, dentro de mis conocimientos de andar por casa, de cómo funcionan estos sistemas seamless A/B, para prever qué es lo que pasará antes de que suceda. Si flasheas muchas cosas, antes o después tendrás un susto, pero sabiendo lo mínimo indispensable, no tiene por qué haber mayor problema.

En los sistemas A/B las particiones /boot /system y /vendor están por duplicado. Como el sistema es capaz de actualizar en segundo plano sobre la partición que no está activa, el recovery ya no es necesario en absoluto para las OTAs. Si todavía existe, es porque aún vale para hacer los wipes. Esto implica que ya no hay una partición dedicada para el recovery. Ahora se aloja en la partición boot, con lo que esta partición es importante entenderla un poco, porque afecta al recovery, al kernel y a Magisk...

La partición boot está dividida en 2. En la ramdisk se aloja el recovery y la otra parte está dedicada al kernel. Cuando instalamos una actualización (full zip; nada de OTAs incrementales si tienes Root), estamos sobreescribiendo por completo la partición boot, obteniendo una 100% stock, así que no se puede pretender conservar el TWRP, ni el Root ni el custom kernel que podamos llevar. Por tanto, toca volver a aplicar todos estos cambios.

Pero en qué orden habría que hacerlo?

Pues teniendo en cuenta que Magisk parchea (sólo edita) la ramdisk, mientras que el TWRP la sobreescribe por completo, podemos entender que flashear un recovery nos hará perder el Root sí o sí, mientras que Rootear no hará que perdamos el recovery.

En consecuencia, y para finalizar, cuando actualicemos, tenemos que tener estas cosas en cuenta, distinguiendo entre usuarios de TWRP y usuarios que sólo quieren Magisk:
  • Quiero Root y TWRP para sacar partido a un recovery avanzado
Aunque hay apps que pueden perfectamente instalar un kernel sin necesidad de un recovery avanzado, si realmente vas a andar trasteando con kernels es muy recomendable llevar el TWRP.

Sería el old school de toda la vida...
  • Descargamos la rom de alguno de los enlaces que puse
  • Hacemos reboot al TWRP
  • Flasheamos la rom
  • Flasheamos el TWRP
  • Hacemos Reboot al TWRP
  • Flasheamos el zip de Magisk
  • Flasheamos el custom kernel*
  • Hacemos reboot system

* No todos los kernels hay que flashearlos después de Magisk. Siempre mejor informarse antes en el hilo del kernel en cuestión.
  • Solo quiero Magisk, nada de TWRP ni de custom kernels

Si voy a actualizar desde el instalador del sistema, debo saber que se usará el slot inactivo (si estoy en A, se instala en B) y en el siguiente reinicio, el slot inactivo (B) pasará a ser el activo. Antes de reiniciar, debo reinstalar Magisk desde la apk, utilizando la opción de instalarse en la ranura inactiva (después de OTA)

Si la lío y me olvido de hacer esto, habré perdido el Root y tendré que parchear una imagen boot desde la apk de Magisk o, desde fastboot, volver al antiguo slot para tratar de arrancar el sistema (no actualizado) y, si hay suerte y aún conserva el Root, repetir la operación.

Desde Fastboot, para ver en qué slot estás actualmente
Código:
fastboot getvar current-slot
Y para cambiar el slot activo, en el supuesto anterior, que tras el despiste, estábamos en B
Código:
fastboot --set-active=a


Hacer backup de las particiones PERSIST y EFS

Además de hacer backup desde TWRP (no siempre son muy fiables), si vamos a andar cacharreando, es muy aconsejable perder 2 minutos guardando esos valiosísimos archivos que nos pueden salvar de un gran disgusto. Yo siempre lo hago, evidentemente desde que tuve el disgusto...

Desde una app de terminal o desde adb, escribimos
Código:
adb shell
su
dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
dd if=/dev/block/sdf2 of=/sdcard/modemst1.bin
dd if=/dev/block/sdf3 of=/sdcard/modemst2.bin
Después lo pasamos al pc o a la nube

Última edición por Fignon Día 25/04/20 a las 20:56:32.
Responder Con Cita
Los siguientes 15 usuarios han agradecido a Fignon su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]