En mi búsqueda por descubrir todo lo que pudiera sobre la personalización de Android, he hecho muchos descubrimientos poco conocidos, pero interesantes. Les he mostrado cómo acceder alos menús ocultos de su dispositivoexaminando todas las actividades ocultas de las aplicaciones en su teléfono. Más recientemente, les he mostrado cómo acceder a laherramienta de diagnóstico de hardware ocultaen ciertos teléfonos inteligentes. Ahora, me doy cuenta de que algunos de ustedes se sintieron decepcionados por el hecho de que su teléfono inteligente no se cubrió en el artículo anterior, y me disculpo por eso.
Para compensarlo, te voy a enseñar algo mucho, mucho más avanzado y emocionante: cómo vaciar el cargador de arranque de tu dispositivo para descubrir comandos fastboot ocultos. Esta guía, aunque está hecha en miNexus 6P, es definitivamente replicable en la mayoría de los teléfonos inteligentes. Sin embargo, los comandos a los que tendrás acceso variarán significativamente entre dispositivos. La mayoría de los comandos no te ayudarán realmente en ninguna situación real, pero, sin embargo, es bastante interesante sumergirse en la configuración de tu teléfono. Comencemos.
Aviso legal: siempre que sepas lo que estás haciendo y puedas seguir las instrucciones correctamente, no debería pasarle nada malo a tu dispositivo. Sin embargo, todavía estamos trasteando con las particiones de nuestro dispositivo y el cargador de arranque, por lo que no hay forma de saber qué podría pasar si ingresas el comando incorrecto. ¡Asegúrate de tener una copia de seguridad fuera del dispositivo lista!
Preparación
Antes de empezar, hay algo muy, muy importante que tener en cuenta. Para extraer el gestor de arranque de tu dispositivo, necesitarás acceso root en tu teléfono.Si no tienes acceso root, puedes seguir leyendo esta guía con fines educativos, pero no podrás ejecutar ninguno de los comandos necesarios. ¿Entendido? Bien. Otro requisito previo que tendrás que cumplir es asegurarte de que tu ordenador tenga todos los controladores ADB/fastboot adecuados. Si no tienes los binarios ADB/fastboot, te recomiendo instalarMinimal ADB & Fastbootdesde nuestros foros. En cuanto a los controladores, puedes obtener los controladores necesarios para los dispositivos Google Nexusaquí y para todos los demás dispositivos desdeaquí. ¿Cómo sabes si estás listo para empezar? Conecta tu dispositivo, habilita la depuración USB en la configuración del desarrollador, abre un símbolo del sistema y escribe:
adb devices
Si ve aparecer el número de serie de su dispositivo, entonces tiene los controladores correctos.
Volcado del gestor de arranque
Nuestro primer paso es abrir un shell en nuestro dispositivo para poder ejecutar comandos a través de ADB. Es mejor que ejecutemos comandos a través de ADB porque somos mucho más propensos a cometer errores al escribir en un teclado virtual, y cometer errores no es algo que desee hacer aquí. El primer comando que debe ejecutar en su símbolo del sistema es:
adb shell
Si ves que el símbolo del sistema cambia de mostrar el directorio binario de ADB a mostrar el nombre en código de tu dispositivo Android, entonces has ingresado correctamente al shell de línea de comandos local de tu dispositivo. Ahora, para acceder a las particiones que necesitamos volcar, necesitarás acceso de superusuario. Para ello, escribe lo siguiente:
su
El símbolo que se encuentra frente al nombre en clave de su dispositivo debería cambiar de $a #,lo que indica que ahora puede ejecutar comandos con privilegios elevados. ¡Tenga cuidado!
A continuación, averiguaremos la ubicación exacta de la imagen del cargador de arranque de su dispositivo. Para encontrar el directorio exacto, imprimiremos una lista de todas las particiones y sus directorios por nombre y buscaremos uno en particular llamado "aboot".Deberá ingresar dos comandos de la siguiente manera:
cd/dev/block/bootdevice/by-name
ls -all
Como puede ver arriba, se imprime una lista gigante de directorios de particiones. Estas particiones están ordenadas por nombre, por lo que podemos discernir fácilmente la ubicación de nuestra partición del cargador de arranque. En mi caso, el cargador de arranque, que es 'aboot'en la imagen anterior, se puede encontrar en /dev/block/mmcblk0p10. Estovariarásegún su dispositivo, por lo que es importante que siga estas instrucciones para averiguar el directorio real donde se encuentra su cargador de arranque. Sin embargo, tome nota de este directorio, ya que lo haremos referencia en el siguiente comando para volcar el cargador de arranque:
ddif=/dev/block/{YOUR ABOOT PARTITION}of=/sdcard/aboot.img
Una vez que hayas terminado, deberías encontrar un archivo llamado "aboot.img" ubicado en la raíz de tu almacenamiento interno. Ahora que hemos descargado el gestor de arranque, debemos examinarlo para determinar qué comandos ocultos podemos encontrar.
Comandos Fastboot ocultos y sus usos
Es posible que esté familiarizado con algunos de los comandos fastboot más comunes, como fastboot flasho fastboot boot. Existen muchos más comandos fastboot, tal como se define en elprotocolo fastboot de código abierto. Aquí hay una lista de los comandos fastboot disponibles en todos los dispositivos con un cargador de arranque basado en el último código AOSP:
Lo que falta en esta lista son los comandos fastboot oem. Estos comandos son específicosde los fabricantes de dispositivos Android y no hay una lista completa ni documentación en ninguna parte sobre qué comandos fastboot oem están disponibles. Ahora bien, si el fabricante de su dispositivo fue tan amable de proporcionar un comando fastboot que enumera todos los comandos oem (pruebe fastboot oem ?y vea si funciona), entonces no necesitará hacer nada más. Si no hay ningún comando que imprima una lista de comandos fastboot oem disponibles, entonces necesitará imprimir una lista de cadenasdesde aboot.img y buscar los comandos oem manualmente.
'strings' es un comando de Linux, cuya documentación estádisponible aquí. Como puede ver, yo personalmente uso una máquina Windows, así que en su lugar he estado usando unprograma que imita 'strings' de Linux. La salida sin procesar del comando 'strings' en un archivo aboot.img serábastante desordenada, pero si simplemente presiona CTRL+F para 'oem' debería encontrar lo que necesita. Si desea refinar su búsqueda, puede probar este comando (para la versión de Windows que vinculé):
strings * | findstr /i oem
Para el Nexus 6P, compilé la siguiente lista de comandos fastboot oem:
fastboot oemunlock-go
fastboot oem frp-unlock
fastboot oem frp-erase
fastboot oemenablereduced-version
fastboot oem device-info
fastboot oemenable-charger-screen
fastboot oemdisable-charger-screen
fastboot oemenable-bp-tools
fastboot oemdisable-bp-tools
fastboot oemenable-hw-factory
fastboot oemdisable-hw-factory
fastboot oemselect-display-panel
fastboot oem off-mode-chargeenable
fastboot oem off-mode-chargedisable
fastboot oem ramdumpenable
fastboot oem ramdumpdisable
fastboot oem uartenable
fastboot oem uartdisable
fastboot oem hwdog certifybegin
fastboot oem hwdog certify close
fastboot oemget-imei1
fastboot oemget-meid
fastboot oemget-sn
fastboot oemget-bsn
fastboot oem get_verify_boot_status
Tenga en cuenta que no debe intentar ejecutar ninguno de los comandos anteriores ni ninguno de los comandos que descubra en su dispositivo, a menos que esté dispuesto a aceptar los riesgos. Existe una razón por la que estos comandos están ocultos para el usuario.
Dicho esto, he pensado en algunos usos interesantes para algunos de estos comandos fastboot que he encontrado (que pueden o no estar presentes en tu dispositivo, así que sigue las instrucciones anteriores para comprobarlo) que deberían gustarle al más entusiasta de Android. Aquí hay dos comandos que podrían tener algún uso práctico.
En primer lugar, está el comandofastboot oem (enable|disable)-charger-screen. Esto desactiva la pantalla de carga que aparece cuando el dispositivo está apagado. Si no te gusta el brillo cegador de la pantalla de carga cuando el teléfono está apagado, puedes desactivarla mediante este comando fastboot oculto.
A continuación, está el comandofastboot oem off-mode-charge (enable|disable). Este comando determina si su dispositivo se encenderá automáticamente o no cuando se detecte una fuente de energía. De forma predeterminada, está configurado en 'deshabilitar'. Admito que este comando no tiene mucha utilidad para los teléfonos, pero si planea montar su tableta en el tablero de su automóvil, encontrará este comando increíblemente útil. Podrá configurar su dispositivo para que se encienda inmediatamente cuando la tableta reciba energía, como cuando se enciende la batería de su automóvil. Por el contrario, es bastante fácil apagar la tableta cuando se pierde energía usando una aplicación de automatización como Tasker. Este comando, por cierto, funciona exactamente como está escrito en elNexus 7 (2013).
Eso es todo por esta lección sobre personalización de Android. ¡Comparte los comandos que descubras (preferentemente en un enlace de Pastebin) en los comentarios a continuación!
¡Gracias al desarrollador senior reconocido de XDADees_Troypor su ayuda en la realización de este artículo!