Curso de Android

De WikiEducator
Saltar a: navegación, buscar


¿Qué es FastBoot?

  • fastboot es una pequeña herramienta que y puede ser usada para flashear particiones del dispositivo.
  • Es un modo de recuperación alternativo al de recovery.
  • El modo FastBoot arranca antes de cargar el SO Android (arranca incluso si Android no está instalado).
  • Es el modo preferido para instalar la imagen de recovery en muchos dispositivos.
  • Fastboot también se usa para desbloquear el bootloader de los dispositivos Google Nexus.

Instalación y ejecución de Fastboot

  • Viene con el Android SDK
  • No todos los dispositivos soportan fastboot, por ejemplo Heimdall(Linux) y Odin(Windows) para los terminales Samsung
  • El comando fastboot se debe ejecutar siempre con privilegios de root.
  • Los comandos de fastboot solo funcionan si el dispositivo está en modo fastboot.
  • Arrancar el dispositivo en modo fastboot:
juanda@juanda-PC:~$ adb devices
List of devices attached 
01a927828f90ccde	device
juanda@juanda-PC:~$ adb reboot bootloader
juanda@juanda-PC:~$ fastboot devices
no permissions	fastboot
juanda@juanda-PC:~$ sudo fastboot devices
....

Opciones del comando fastboot

juanda@juanda-PC:~$ fastboot
usage: fastboot [ <option> ] <command>
 
commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  format <partition>                       format a flash partition 
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  continue                                 continue with autoboot
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader
  help                                     show this help message
options:
  -w                                       erase userdata and cache (and format if supported by partition type)
  -u                                       do not first erase partition before formatting
  -s <specific device>                     specify device serial number or path to device port
  -l                                       with "devices", lists device paths
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default: 2048
  -S <size>[K|M|G]                         automatically sparse files greater than size.  0 to disable
juanda@juanda-PC:~/Android/sdk/platform-tools$ sudo ./fastboot devices
01a927828f90ccde	fastboot
juanda@juanda-PC:~/Android/sdk/platform-tools$ sudo ./fastboot oem unlock
...
FAILED (remote: Already Unlocked)
finished. total time: 0.001s
juanda@juanda-PC:~/Android/sdk/platform-tools$

Ejemplo de uso

  • Primero habría que descargar la imágen que queremos utilizar o tener alguna disponible (por ejemplo un backup).
  • Es conveniente tener ciertos comandos en nuestro PATH de usuario (fichero $HOME/.bashrc en Linux):
juanda@juanda-PC:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/home/juanda/Android/sdk/tools:/home/juanda/Android/sdk/platform-tools
  • Se verifica que la imagen descargada no está corrupta.
  • Ejemplo: Verificación de una ROM
juanda@juanda-PC:~/Descargas$ md5sum rasbeanjelly_rascarlo_mako_ota_2013-03-10.zip 
ff838596803fe634fccf9cd43fd7110c  rasbeanjelly_rascarlo_mako_ota_2013-03-10.zip
  • ¡Los comandos fastboot los tendremos que ejecutar con usuario root!
  • Flasheo (instalación) del kernel:
fastboot flash boot boot.img
 ./fastboot flash boot boot.img
  • Normalmente el fichero con boot.img corresponde al kernel.
  • El "./" no es necesario si tenemos fastboot en la variable de entorno $PATH:
  • Flasheo de la ROM:
./fastboot flash system systemfile.img
  • Normalmente las ROM van ya con el kernel dentro del fichero de instalación (.zip)
  • Ejemplo fichero zip ROM CyanogenMod:

Romcyanogen.png

  • Normalmente el flasheo de la ROM lo haremos desde el recovery y el zip de la ROM llevará ya el kernel adecuado.
  • Para ello si que necesitaremos a menudo un recovery distinto al original (este se limita a flashear las ROM vía OTA del fabricante).
  • Flasheo de recovery:
 
./fastboot flash recovery recovery.img