2012/09/26

Samsung Galaxy Nexus GT-I9250 Google Factory Images

El Samsung Galaxy Nexus es un telefono muy bueno que se vende en todo el mundo, existen tres modelos:
Este tutorial enseña como flashear nuestro equipo para la version GT-I9250 GSM/HSPA+, pero tambien debe funcionar si estas en Estados Unidos y tienes el de Verizon o Sprint, solo hay que poner cuidado de descargar la imagen correcta para nuestro modelo de hardware ("maguro", "toro" o "toroplus").

Los telefonos "NEXUS" son los que Google manda a hacer con alguno de los fabricantes, Samsung en el caso del Galaxy Nexus, por eso Google es quien nos proporciona las actualizaciones directamente si lo compramos en la tienda Google Play Store o en alguna otra tienda libre.

Si compramos nuestro "NEXUS" con algun operador, viene con un firmware de Android "ajustado" por Samsung y hasta puede venir con algunas aplicaciones del operador, en este caso las actualizaciones se demoran mas, mientras Samsung ajusta la nueva version de Android y las aplicaciones solicitadas del operador. Esto logicamente genera demoras!

Si tenemos un "NEXUS" y Google nos da las imagenes de fabrica, podemos flashear nuestro equipo con el Android y ya seguir recibiendo las actualizaciones directamente via "OTA" (Over-The-Air) sin tener que esperar a Samsung y/o al operador.

Las imagenes se pueden ver aqui https://developers.google.com/android/nexus/images

Contar con la ultima version de Android nos puede brindar muchas cosas buenas, correccion de errores, nuevas funcionalidades y optimizaciones. Lo ideal es poder disfrutar de esos beneficios durante el tiempo de vida del telefono mientras Google le saque actualizaciones (el modelo anterior llamado Nexus S tiene casi 3 años y aun le sacan actualizaciones).

Otro tema y que por fortuna no afecta a los "NEXUS", es una capa que los fabricantes le ponen a Android para que se vea diferente, dicha capa puede hacer aun mas demorada la actualizacion de Android, algunos ejemplos son el "TouchWiz" de Samsung, el "Motoblur" de Motorola, el "Sense" de HTC. Todo eso es mas trabajo de programacion, es costoso, quita tiempo y que con las ultimas versiones de Andriod ya no son necesarias.

En el caso del Galaxy Nexus GT-I9250 GSM/HSPA+, todos los equipos son iguales en hardware denominado "maguro", y que vienen con alguna variante de Android "yakju" para los que se venden en Europa o "takju" para los que se venden en Estados Unidos y que vienen con el Google Wallet.

Para saber si nuestro equipo recibe las actualizaciones directamente de Google o de Samsung, podemos mirar los datos de "Baseband version" vemos que puede tener algo como esto:

I9250XXLA2 <- version de Samsung para Latino America

I9250XXLF1 <- version de Google para Estados Unidos

Para ver estos datos, vamos a Settings -> About phone

Al instalarle a nuestro telefono la imagen de fabrica, es como si se lo compraramos directamente a Google en lugar de a el operador! Por eso al eliminar la dependencia Samsung y operador, las actualizacines nos llegaran mas rapido, para hacer esto, debemos flashear el equipo...

Flashear un equipo es algo delicado, se debe hacer con cuidado y bien o nos podemos quedar con un ladrillito en lugar de un telefono!

Si se hace bien no debemos tener problemas, pero todo tiene un minimo de riesgo y puede que la garantia no lo cubra si lo dañamos haciendo mal el proceso, las instrucciones de abajo son de como yo lo hice, pero no puedo garantizar que les funcione o que el telefono no tenga que pasar por el centro de servicio si usted lo hace mal, es bajo su responsabilidad.

Para realizar el flasheo, se necesita de un computador Mac, tambien se puede hacer desde un computador con Windows, pero yo no tengo este ultimo (no me gusta Windows) y en Windows se requiere la descarga de otras cosas...

El proceso de flasheo elimina toda informacion del equipo como son fotos y musica, los contactos se almacenan en la cuenta de Google con lo que al iniciar nuevamente luego del flasheo se sincronizaran automaticamente. Por esto debemos hacer backup de nuestas fotos y musica!

Las imagenes para la version GSM/HSPA+ son:
 Factory Images "yakju" for Galaxy Nexus "maguro" (GSM/HSPA+)
 https://developers.google.com/android/nexus/images#yakju
 Factory Images "takju" for Galaxy Nexus "maguro" (GSM/HSPA+) (with Google Wallet)
 https://developers.google.com/android/nexus/images#takju

Se pueden usar "yakju" o "takju" indistintamente siempre que nuestro equipo sea "maguro", osea la version GT-I9250 GSM/HSPA+ ;-)

Actualizacion manual a 4.1.1 (JRO03C) <- Jelly Bean para "yakju":

1 Descargar Factory Image https://dl.google.com/dl/android/aosp/yakju-jro03c-factory-3174c1e5.tgz
2 Descomprimir el archivo .tgz en el home de nuestro usuario de Mac OS X
3 Descargar el fastboot de aqui ADT Bundle http://dl.google.com/android/adt/22.6.2/adt-bundle-mac-x86_64-20140321.zip tambien de aqui Google Drive
4 Descomprimir el archivo .zip y meterlo dentro de la carpeta  yakju-jro03c creada en el paso 2
5 Apagar el telefono
6 Encenderlo en "FASTBOOT MODE" presionar volumen arriba + volumen abajo + power

FASTBOOT MODE
LOCK STATE - UNLOCKED  <- si vemos esto podemos continuar, en caso contrario, mirar las notas al final

7 Abrimos el terminal
8 Darle permisos de ejecucion al archivo fastboot
$ chmod +x ~/yakju-jro03c/fastboot
9 Darle permisos de ejecucion al archivo flash-all.sh
$ chmod +x ~/yakju-jro03c/flash-all.sh
10 Con el editor del computador editamos el archivo llamado flash-all.sh para ajustar los path (rutas) y guardar los cambios, la parte de las rutas se ven asi:
...
  ~/yakju-jro03c/fastboot flash bootloader bootloader-maguro-primelc03.img
  ~/yakju-jro03c/fastboot reboot-bootloader
  sleep 5
  ~/yakju-jro03c/fastboot flash radio radio-maguro-i9250xxlf1.img
  ~/yakju-jro03c/fastboot reboot-bootloader
  sleep 5
  ~/yakju-jro03c/fastboot -w update image-yakju-jro03c.zip

11 Entrar al directorio donde tenemos el archivo fastboot junto con los archivos de la imagen
$ cd ~/yakju-jro03c
12 Correr el script
$ ~/yakju-jro03c/flash-all.sh
...
sending 'bootloader' (2308 KB)... OKAY
writing 'bootloader'... OKAY
rebooting into bootloader... OKAY
sending 'radio' (12288 KB)... OKAY
writing 'radio'... OKAY
rebooting into bootloader... OKAY
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: PRIMELC03
Baseband Version.....: I9250XXLF1
Serial Number........: 015y73651A122021 <- he cambiado esto para no publicar mi IMEI
--------------------------------------------
checking product... OKAY
checking version-bootloader... OKAY
checking version-baseband... OKAY
sending 'boot' (4366 KB)... OKAY
writing 'boot'... OKAY
sending 'recovery' (4708 KB)... OKAY
writing 'recovery'... OKAY
sending 'system' (396675 KB)... OKAY
writing 'system'... OKAY
erasing 'userdata'... OKAY
erasing 'cache'... OKAY
rebooting...

Nuestro telefono se re-inicia solito y ya lo podemos usar metiendo los datos de nuestra cuenta y clave de Google.

Si todo lo hicimos correctamente, al mirar nuestro telefono, nos debe mostar algo como esto ;-)


Es posible que luego cada que encendemos el equipo, nos muestre un cadadito abierto, para que el telefono no quede con el candadito abierto luego de hacer la actualizacion, seguimos los pasos 5, 6 y ejecutamos el comando de las notas y lo re-iniciamos.
-------------------------------------------------------------
Notas:
LOCK STATE - LOCKED para cambiarlo
$ ~/yakju-jro03c/fastboot oem unlock
volumen arriba + power para cambiarlo

LOCK STATE - UNLOCKED para cambiarlo
$ ~/yakju-jro03c/fastboot oem lock
-------------------------------------------------------------

Actualizacion:
Hoy (10/10/2012) salio la version 4.1.2 (JZO54K) <- Jelly Bean, siguiendo el manual y ajustando los nombres para la nueva version, he usado la imagen "Factory Images "takju" for Galaxy Nexus "maguro" (GSM/HSPA+) (with Google Wallet)" https://dl.google.com/dl/android/aosp/takju-jzo54k-factory-92830c0b.tgz sin ningun problema para actualizar mi telefono.

Al correr el script en el paso 12, nos muestra unos errores, pero no es importante, vemos algo como esto:
...
ERROR: could not get pipe properties
sending 'bootloader' (2308 KB)... OKAY
writing 'bootloader'... OKAY
ERROR: could not get pipe properties
rebooting into bootloader... OKAY
ERROR: could not get pipe properties
sending 'radio' (12288 KB)... OKAY
writing 'radio'... OKAY
ERROR: could not get pipe properties
rebooting into bootloader... OKAY
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
ERROR: could not get pipe properties
--------------------------------------------
Bootloader Version...: PRIMELC03
Baseband Version.....: I9250XXLF1
Serial Number........: 015y73651A122021
--------------------------------------------
checking product... OKAY
checking version-bootloader... OKAY
checking version-baseband... OKAY
sending 'boot' (4368 KB)... OKAY
writing 'boot'... OKAY
sending 'recovery' (4710 KB)... OKAY
writing 'recovery'... OKAY
sending 'system' (407055 KB)... OKAY
writing 'system'... OKAY
erasing 'userdata'... OKAY
erasing 'cache'... OKAY
rebooting... 

al mirar nuestro telefono, nos debe mostar algo como esto ;-)