Diferencia entre revisiones de «Usuario:Juanda/android/fastboot»

De WikiEducator
Saltar a: navegación, buscar
(A brief introduction to fastboot)
(Ejemplo de uso)
 
(28 revisiones intermedias por el mismo usuario no mostrado)
Línea 3: Línea 3:
 
<div class="slides layout-regular template-default">
 
<div class="slides layout-regular template-default">
 
<div class="slide">
 
<div class="slide">
 
+
=FastBoot=
== ¿Qué es FastBoot? ==
+
</div>
 
+
<div class="slide">
*[[wikipedia:fastboot|fastboot]] es una pequeña herramienta que viene con el [http://developer.android.com/sdk/index.html Android SDK] y puede ser usada para flashear particiones del dispositivo.   
+
==== ¿Qué es FastBoot? ====
 +
*[[wikipedia: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.
 
*Es un modo de recuperación alternativo al de recovery.
*El modo FastBoot arranca antes de cargar el SO Android (arrance incluso si Android no está instalado).
+
*El modo FastBoot arranca antes de cargar el SO Android (arranca incluso si Android no está instalado).  
*Es útil para hacer un update del firmware sin tener que usar el modo recovery.  
+
 
*Es el modo preferido para instalar la imagen de recovery en muchos dispositivos.
 
*Es el modo preferido para instalar la imagen de recovery en muchos dispositivos.
*Fastboot también se usa para desbloquear el bootloader de los dispositovos Google Nexus.
+
*Fastboot también se usa para desbloquear el bootloader de los dispositivos Google Nexus.
*No todos los dispositivos soportan fastboot.
+
</div>
 +
<div class="slide">
 +
====Instalación y ejecución de Fastboot====
 +
* Viene con el [http://developer.android.com/sdk/index.html 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.
 
*Los comandos de fastboot solo funcionan si el dispositivo está en modo fastboot.
 +
</div>
 +
<div class="slide">
 +
*Arrancar el dispositivo en modo fastboot:
 +
<source lang="bash">
 +
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
 +
....
 +
</source>
 +
*Otra opción sería apagar el teléfono y encenderlo pulsando una combinación de teclas.
 +
</div>
 +
<div class="slide">
 +
 +
====Opciones del comando fastboot====
 +
<source lang="bash">
 +
juanda@juanda-PC:~$ fastboot
 +
usage: fastboot [ <option> ] <command>
  
[http://www.htcmania.com/mediawiki/index.php/C%C3%B3mo_utilizar_FastBoot Tutorial sobre FastBoot].
+
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====Comando fastboot oem unlock====
 +
[[Archivo:unlockbootloader.png|400px]]
 +
*Éste comando desbloquea el bootloader enterminales Nexus (o HTC mediante su herramienta oficial).
 +
*Si tenemos un teléfono de un fabricante distinto, tendremos un método distinto en cada caso (Odín para Samsung, por ejemplo).
 +
*Se incluye aquí porque, aún sin necesitarlo, es una parte importante del sistema de código abierto de Android.
 +
*A Google le da lo mismo lo que hagamos con nuestros dispositivos, y nos provee de esta herramienta para desbloquear el teléfono. Esto es algo que en otras compañías no se ve, y es una de las razones por las que muchos eligen Android.
 +
</div>
 +
  -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
 +
</source>
 +
</div>
 +
<div class="slide">
 +
====Comando fastboot oem unlock====
 +
[[Archivo:unlockbootloader.png|400px]]
 +
*Éste comando desbloquea el bootloader enterminales Nexus (o HTC mediante su herramienta oficial).  
 +
*Si tenemos un teléfono de un fabricante distinto, tendremos un método distinto en cada caso (Odín para Samsung, por ejemplo).
 +
*Se incluye aquí porque, aún sin necesitarlo, es una parte importante del sistema de código abierto de Android.
 +
*A Google le da lo mismo lo que hagamos con nuestros dispositivos, y nos provee de esta herramienta para desbloquear el teléfono. Esto es algo que en otras compañías no se ve, y es una de las razones por las que muchos eligen Android.
 +
</div>
 +
<div class="slide">
 +
*Comprobamos que el dispositivo esté disponible y desbloqueamos el bootloader:
 
<source lang=bash>
 
<source lang=bash>
 
juanda@juanda-PC:~/Android/sdk/platform-tools$ sudo ./fastboot devices
 
juanda@juanda-PC:~/Android/sdk/platform-tools$ sudo ./fastboot devices
Línea 24: Línea 92:
 
finished. total time: 0.001s
 
finished. total time: 0.001s
 
juanda@juanda-PC:~/Android/sdk/platform-tools$  
 
juanda@juanda-PC:~/Android/sdk/platform-tools$  
 +
</source>
 +
</div>
 +
<div class="slide">
  
 +
====Ejemplo de uso: flashear imágenes====
 +
*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):
 +
<source lang="bash">
 +
juanda@juanda-PC:~$ echo $PATH
 +
/usr/local/bin:/usr/bin:/bin:/usr/games:/home/juanda/Android/sdk/tools:/home/juanda/Android/sdk/platform-tools
 
</source>
 
</source>
 
+
*Se verifica que la imagen descargada no está corrupta.
== Getting fastboot ==
+
*Ejemplo: Verificación de una ROM
 
+
<source lang="bash">
See here for [http://developer.android.com/sdk/index.html instructions on downloading the latest Android SDK], and thus fastboot, for your computer.
+
juanda@juanda-PC:~/Descargas$ md5sum rasbeanjelly_rascarlo_mako_ota_2013-03-10.zip
 
+
ff838596803fe634fccf9cd43fd7110c  rasbeanjelly_rascarlo_mako_ota_2013-03-10.zip
{{tip|tip=On some GNU/Linux distributions, like Debian Sid, you can install [http://packages.debian.org/search?keywords=android-tools-fastboot fastboot] just with this command:
+
</source>
<code>sudo apt-get install android-tools-fastboot</code>
+
</div>
Or on Fedora, you can install [https://apps.fedoraproject.org/packages/android-tools android-tools] package (which contains fastboot) with this command:
+
<div class="slide">
<code>sudo yum install android-tools</code>}}
+
*¡Los comandos fastboot los tendremos que ejecutar con usuario root!
 
+
*Flasheo (instalación) del kernel:
== Troubleshooting fastboot ==
+
<source lang="bash">
{{Paths}}
+
fastboot flash boot boot.img
===<waiting for device> errors===
+
./fastboot flash boot boot.img
If you see <waiting for device> at any point when executing fastboot command, the PC is not configured to use fastboot properly. Most typically, this is because you are not running fastboot with elevated privileges.
+
</source>
 
+
*Normalmente el fichero con boot.img corresponde al kernel.
====Linux/OSX====
+
*El "./" no es necesario si tenemos fastboot en la variable de entorno $PATH:
Run fastboot as root or with sudo.
+
</div>
 
+
<div class="slide">
====Windows====
+
*Flasheo de la ROM:
Run fastboot as an Administrator.
+
<source lang="bash">
 
+
./fastboot flash system systemfile.img
 
+
</source>
Make sure the output of <code>fastboot devices</code> returns your device serial number or you will never get past this error message.
+
*Normalmente las ROM van ya con el kernel dentro del fichero de instalación (.zip)
 
+
*Ejemplo fichero zip ROM CyanogenMod:
{{Recovery_install_fastboot|device_name=device}}
+
[[Archivo:Romcyanogen.png|600px]]
 +
</div>
 +
<div class="slide">
 +
*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:
 +
<source lang="bash">  
 +
./fastboot flash recovery recovery.img
 +
</source>
 +
</div>
 +
</div>

Última revisión de 23:03 13 may 2013


¿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
....
  • Otra opción sería apagar el teléfono y encenderlo pulsando una combinación de teclas.

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====Comando fastboot oem unlock====
[[Archivo:unlockbootloader.png|400px]]
*Éste comando desbloquea el bootloader enterminales Nexus (o HTC mediante su herramienta oficial). 
*Si tenemos un teléfono de un fabricante distinto, tendremos un método distinto en cada caso (Odín para Samsung, por ejemplo). 
*Se incluye aquí porque, aún sin necesitarlo, es una parte importante del sistema de código abierto de Android.
*A Google le da lo mismo lo que hagamos con nuestros dispositivos, y nos provee de esta herramienta para desbloquear el teléfono. Esto es algo que en otras compañías no se ve, y es una de las razones por las que muchos eligen Android.
</div>
  -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

Comando fastboot oem unlock

Unlockbootloader.png

  • Éste comando desbloquea el bootloader enterminales Nexus (o HTC mediante su herramienta oficial).
  • Si tenemos un teléfono de un fabricante distinto, tendremos un método distinto en cada caso (Odín para Samsung, por ejemplo).
  • Se incluye aquí porque, aún sin necesitarlo, es una parte importante del sistema de código abierto de Android.
  • A Google le da lo mismo lo que hagamos con nuestros dispositivos, y nos provee de esta herramienta para desbloquear el teléfono. Esto es algo que en otras compañías no se ve, y es una de las razones por las que muchos eligen Android.
  • Comprobamos que el dispositivo esté disponible y desbloqueamos el bootloader:
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: flashear imágenes

  • 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