Como cambiar la Rom de un dispositivo Android

Gracias a las herramientas ADB y Fasbbot podemos ejecutar una serie de comandos que vamos a necesitar, y que nos permiten desinstalar las aplicaciones que no necesitamos sin tener que contar con permisos de  root en nuestro  dispositivo Android ( smartphone, tablet u incluso otros dispositivos). 

  • En efecto ADB, o lo que es lo mismo Android Debug Bridge ( Conector o puente para depuración de Android ), es un juego de herramientas incluido en el paquete SDK de Android  que consiste en una serie de programas con función tanto de cliente, como de servidor, que se comunican entre ellos . Como es sabido el uso normal del ADB se realiza desde la línea de comandos, aunque  existen numeroso interfaces gráficos para controlarlo.
  • Fastboot es una herramienta que nos proporciona Android para flashear archivos y modificar algunos factores de software. Es decir, con ella podemos abrir el bootloader y tener la posibilidad de cambiar la ROM.

Por tanto ADB Android y Fastboot son dos herramientas muy utilizadas y de obligatorio uso para desarrolladores Android asi como para aquellos usuarios que necesiten, por ejemplo, cambiar la ROM o instalar un Recovery personalizado, por ejemplo, para hacer root.

 

  

 

Estas dos herramientas funcionan en modo de comandos, desde una ventana de MS-DOS, por lo que a simple vista para muchos usuarios puede resultar confusa e incluso complicada, veamos primero como instalamos estas herramientas en nuestro ordenador  y después como podemos usarlas

 

Archivos necesarios para adb  y fastboot en Android

Para poder hacer uso de estas herramientas necesitaremos los binarios correspondientes y las dependencias, en forma de librerías .dll. La lista de estos archivos es:

  • adb.exe
  • fastboot.exe
  • AdbWinUsbApi.dll
  • AdbWinApi.dll

Tanto el adb en Android como el fastboot y las librerías suelen instalarse automáticamente junto a Android Studio y todo el SDK de Android. Como el entorno de desarrollo de Android ocupa varios gigas y estas sencillas aplicaciones apenas superan los 10 megas podemos descargarlas separadas del SDK desde múltiples sitios, por ejemplo, desde los foros de XDA.

Una vez tenemos estos archivos podemos optar por dos opciones:

  • La primera de ellas y la más sencilla y segura es guardarlos todos ellos en una misma carpeta en nuestro disco duro (por ejemplo en C:\ o en el mismo escritorio) y cuando abramos una ventana de MS-DOS situarnos mediante el comando cd en ella, para poder ejecutar las herramientas que deseemos.

  • La segunda de ellas, recomendable si hacemos uso habitual de adb y fastboot, es copiar los 4 archivos anteriores a la ruta C:\Windows\System32. De esta manera simplemente abriendo una ventana de MS-DOS, independientemente de nuestra ruta, podremos ejecutar las aplicaciones escribiendo adb o fastboot.

 

Para que querido lector se haga una idea ,una vez instalada la utilidad adb  la ejecución desde  linea de comandos desde un equipo con windows 10 del comando adb  sin parámetros , se ve así:

Microsoft Windows [Versión 10.0.17134.590]
(c) 2018 Microsoft Corporation. Todos los derechos reservados.

C:>adb
Android Debug Bridge version 1.0.31

-a – directs adb to listen on all interfaces for a connection
-d – directs command to the only connected USB device
returns an error if more than one USB device is present.
-e – directs command to the only running emulator.
returns an error if more than one emulator is running.
-s – directs command to the device or emulator with the given
serial number or qualifier. Overrides ANDROID_SERIAL
environment variable.
-p – simple product name like ‘sooner’, or
a relative/absolute path to a product
out directory like ‘out/target/product/sooner’.
If -p is not specified, the ANDROID_PRODUCT_OUT
environment variable is used, which must
be an absolute path.
-H – Name of adb server host (default: localhost)
-P – Port of adb server (default: 5037)
devices [-l] – list all connected devices
(‘-l’ will also list device qualifiers)
connect [:] – connect to a device via TCP/IP
Port 5555 is used by default if no port number is specified.
disconnect [[:]] – disconnect from a TCP/IP device.
Port 5555 is used by default if no port number is specified.
Using this command with no additional arguments
will disconnect from all connected TCP/IP devices.

device commands:
adb push – copy file/dir to device
adb pull [] – copy file/dir from device
adb sync [ ] – copy host->device only if changed
(-l means list but don’t copy)
(see ‘adb help all’)
adb shell – run remote shell interactively
adb shell – run remote shell command
adb emu – run emulator console command
adb logcat [ ] – View device log
adb forward –list – list all forward socket connections.
the format is a list of lines with the following format:
» » » » «\n»
adb forward – forward socket connections
forward specs are one of:
tcp:
localabstract:
localreserved:
localfilesystem:
dev:
jdwp: (remote only)
adb forward –no-rebind
– same as ‘adb forward ‘ but fails
if is already forwarded
adb forward –remove – remove a specific forward socket connection
adb forward –remove-all – remove all forward socket connections
adb jdwp – list PIDs of processes hosting a JDWP transport
adb install [-l] [-r] [-s] [–algo –key –iv ]
– push this package file to the device and install it
(‘-l’ means forward-lock the app)
(‘-r’ means reinstall the app, keeping its data)
(‘-s’ means install on SD card instead of internal storage)
(‘–algo’, ‘–key’, and ‘–iv’ mean the file is encrypted already)
adb uninstall [-k] – remove this app package from the device
(‘-k’ means keep the data and cache directories)
adb bugreport – return all information from the device
that should be included in a bug report.

adb backup [-f ] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] []
– write an archive of the device’s data to .
If no -f option is supplied then the data is written
to «backup.ab» in the current directory.
(-apk|-noapk enable/disable backup of the .apks themselves
in the archive; the default is noapk.)
(-obb|-noobb enable/disable backup of any installed apk expansion
(aka .obb) files associated with each application; the default
is noobb.)
(-shared|-noshared enable/disable backup of the device’s
shared storage / SD card contents; the default is noshared.)
(-all means to back up all installed applications)
(-system|-nosystem toggles whether -all automatically includes
system applications; the default is to include system apps)
( is the list of applications to be backed up. If
the -all or -shared flags are passed, then the package
list is optional. Applications explicitly given on the
command line will be included even if -nosystem would
ordinarily cause them to be omitted.)

adb restore – restore device contents from the backup archive

adb help – show this help message
adb version – show version num

scripting:
adb wait-for-device – block until device is online
adb start-server – ensure that there is a server running
adb kill-server – kill the server if it is running
adb get-state – prints: offline | bootloader | device
adb get-serialno – prints:
adb get-devpath – prints:
adb status-window – continuously print device status for a specified device
adb remount – remounts the /system partition on the device read-write
adb reboot [bootloader|recovery] – reboots the device, optionally into the bootloader or recovery program
adb reboot-bootloader – reboots the device into the bootloader
adb root – restarts the adbd daemon with root permissions
adb usb – restarts the adbd daemon listening on USB
adb tcpip – restarts the adbd daemon listening on TCP on the specified port
networking:
adb ppp [parameters] – Run PPP over USB.
Note: you should not automatically start a PPP connection.
refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1

[parameters]

– Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ ]
can be interpreted in several ways:

    • If is not specified, both /system and /data partitions will be updated.
    • If it is «system» or «data», only the corresponding partition
      is updated.

environmental variables:
ADB_TRACE – Print debug information. A comma separated list of the following values
1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
ANDROID_SERIAL – The serial number to connect to. -s takes priority over this if given.
ANDROID_LOG_TAGS – When used with the logcat option, only these debug tags are printed.

C:>

Como  se puede apreciar en las lineas anteriores , existe infinidad de opciones para esta versatil  utilidad , pero no se preocupe porque vamos a recopilar los principales comandos más utilizados para realizar tareas básicas de configuración avanzada de sistemas Android.

 

Comandos básicos de ADB

adb devices

Este comando nos muestra en pantalla la lista de dispositivos conectados en modo adb a nuestro ordenador. Es el primer comando que debemos ejecutar ya que si nuestro smartphone aparece es que la comunicación es correcta y los drivers son los adecuados.

adb push  <ruta>

Con este comando enviamos un archivo a nuestro dispositivo. Es muy práctico cuando las funciones de almacenamiento masivo no funcionan correctamente. Debemos especificar la ruta donde se guardará el archivo enviado.

adb pull

Justo el comando inverso. Nos permite copiar un archivo desde nuestro smartphone al ordenador.

adb install <aplicación.apk></aplicación.apk>

Este comando nos permite instalar aplicaciones en formato apk en nuestro dispositivo.

adb uninstall <aplicación.apk></aplicación.apk>

Nos permite desinstalar una aplicación, al contrario que el comando anterior.

adb shell

Nos carga un terminal que nos permite controlar nuestro dispositivo en modo texto. Es una opción para usuarios avanzados, pero muy práctica, por ejemplo, si tenemos problemas con los permisos.

adb reboot

Este comando reinicia nuestro dispositivo en modo normal, para cargar Android (o el sistema operativo instalado) automáticamente.

adb reboot-bootloader / reboot recovery

Con estos comandos podemos reiniciar el teléfono en el modo bootloader o en el modo recovery, según lo que necesitemos en cada momento.

Comandos básicos de Fastboot

Los comandos de fastboot sólo funcionan cuando nuestro dispositivo está en modo bootloader, por lo que si tenemos el dispositivo en modo adb estos comandos no funcionarán.

Siempre podemos utilizar el comando adb reboot-bootloader para que el dispositivo se reinicie automáticamente en el modo compatible con Fastboot.

fastboot devices

Su función es la misma que la de adb devices, es decir, comprobar que el dispositivo está correctamente conectado al ordenador y es detectado por esta herramienta.

fastboot oem unlock

Este comando es utilizado por muchos fabricantes como Sony o Google en sus dispositivos para liberar el bootloader y poder, por ejemplo, instalar un recovery o hacer root.

Este comando nos mostrará una serie de pasos (entre los que nos pedirá la clave secreta de desbloqueo) para proceder con la tarea.

fastboot flash

Este comando nos permite flashear cualquier archivo .img descargado para nuestro dispositivo.

4 sencillos ejemplos de flash más comunes son:

  • fastboot flash recovery recovery.img -> Flashea e instala el recovery en nuestro dispositivo.
  • fastboot flash boot boot.img -> Cambia el sistema de arranque (boot) de nuestro dispositivo, necesario para poder cargar el recovery en muchos casos.
  • fastboot flash radio radio.img -> Instala los nuevos controladores de radio.
  • fastboot flash system system.img -> Instala un nuevo sistema completo.

fastboot flashall

Este comando nos permite flashear automáticamente todos los archivos .img que tengamos descargados y copiados en la ruta de adb y fastboot. Muy útil cuando hay que flashear varios archivos en un dispositivo, por ejemplo, cuando ha quedado en modo soft brick.

fastboot boot <imagen>

Esta función nos permite cargar “en modo live” una imagen del sistema operativo para probarla sin necesidad de escribir los datos en la memoria interna. La suelen utilizar los desarrolladores para probar un nuevo kernel o recovery, aunque de cara al usuario la utilidad práctica está algo reducida.

Un comentario sobre “Como cambiar la Rom de un dispositivo Android

Deja una respuesta