La columna 80

El blog técnico-personal de Ángel J. Vico… en español

Instalación de Android 2.2 (no oficial) en un Samsung i5700

Posted by Ángel J. Vico en 27 de abril de 2011

Mi paciencia se ha terminado. Estaba decidido a aguantar con la única actualización que Samsung se ha dignado a sacar para mi móvil, el Samsung i5700 (también conocido como Galaxy Spica o Lite), hasta que saliera otra o terminase el periodo de garantía. Pero lo primero no va a suceder y lo segundo está demasiado lejano para soportar a diario las carencias de la versión 2.1.

No es que Android 2.1 sea una mala versión, de hecho mejora bastante sobre la 1.5 que traía el teléfono cuando lo compré. Pero Samsung ha decidido centrarse en sus terminales más recientes y abandonar completamente uno que hasta hace muy poco se seguía vendiendo. Y aunque puedo vivir sin jugar al Angry Birds, sin tethering gratuito, sin usar dos dedos para hacer zoom e incluso sin permisos de administrador (root), hay una característica del firmware 2.2 que me hacía falta como el comer: la posibilidad de mover aplicaciones a la tarjeta SD.

Vale, quizás no todo el mundo tenga mi mismo problema, pero con las aplicaciones cada vez ocupando más espacio y la cantidad de ellas que no paran de salir, muchas francamente interesantes, el odioso mensaje de “se está quedando sin espacio” era ya un habitual en mi móvil, obligándome a desinstalar cosas una y otra vez.

Pero eso se acabó. He actualizado el teléfono y ahora tengo una flamante CyanogenMod 6.1.1 alpha-8.3, que va bastante bien, y que me permite mover las aplicaciones a la tarjeta… incluso de varias formas. Pero no penséis que el proceso de actualización ha sido fácil. Partía de uno de los peores firmwares que se pueden tener si lo que quieres es instalar una versión no oficial: un JC1. Pero tras unos cuantos pasos, más o menos laboriosos, lo he conseguido.

He aquí la crónica de mi éxito…

Backup

Quizás no te lo hayas planteado aún, pero instalar un nuevo firmware va a hacer que todo lo que tienes ahora en el teléfono desaparezca. Eso incluye opciones de configuración, contactos, SMSs, registros de llamadas y, por supuesto, todas las aplicaciones y la mayoría de sus datos (marcadores del navegador, correos electrónicos, los avances y puntuaciones de los juegos, notas, etc).

Así que creo que está claro que lo primero que hay que hacer es una copia de seguridad de todo lo que podamos.

Revisión de aplicaciones

Si tienes el teléfono asociado a una cuenta de Google tendrás mucha información ya almacenada en Internet: contactos, correos de Gmail, etc. De eso no será necesario que hagas copia de seguridad. Esto también aplica a otras aplicaciones que almacenan sus datos en la nube: Evernote, Catch, Dropbox, Springpad, etc. Cuando las instales de nuevo e introduzcas tus credenciales, volverás a tener toda la información.

También hay muchas aplicaciones que no almacenan datos o los guardan en la tarjeta SD. De esas tampoco tendremos que preocuparnos mucho, dado que, a lo sumo, tendremos que configurarlas de nuevo cuando las volvamos a instalar.

Tendremos que revisar con más cuidado el resto, aquellas que tengan información que no queremos perder almacenada en la memoria del teléfono. Es posible que tengan alguna forma de exportar los datos o de hacer su propia copia de seguridad. Si es así, nos aseguraremos de hacerlo. Incluso aunque guarden los datos en la tarjeta SD, si tienen además opción de copia de seguridad, es muy recomendable utilizarla. Mejor dos copias que ninguna.

Hay que hacer esto aplicación por aplicación (al menos de las que nos interese guardar los datos) antes de seguir o lo lamentaremos más adelante.

Aplicación de backup

El siguiente paso es instalar una aplicación de copia de seguridad, que nos permita poner a salvo el resto de datos que no tenemos forma de exportar. Casi cualquier aplicación de backup te va a permitir hacer copia de seguridad de los SMSs o el registro de llamadas (incluso hay aplicaciones específicas para eso, como SMS Backup & Restore, Call Logs Backup & Restore o SMS Backup +), pero en cuanto a las aplicaciones, sólo podrán guardar una lista de las instaladas o, a lo sumo, los paquetes descargados. A menos que tengas permisos de root en el teléfono, en cuyo caso podrán hacer copia de seguridad también de los datos.

En mi caso eso plantea algunas dificultades, debido a que la versión de firmware que tengo instalada, la famosa JC1, no permite tener acceso root de forma constante (es una larga historia de sistemas de archivos y bits especiales que no viene ahora al caso). Lo máximo que puedo conseguir es un root temporal utilizando SuperOneClick, que se mantiene mientras no reinicie el teléfono, pero que no permite usar cualquier aplicación de las que requiere root para funcionar.

De hecho, no he conseguido hacer funcionar ni Titanium Backup (una de las mejores aplicaciones gratuitas para copias de seguridad que existen), ni MyBackup Root ni Backup for root. La única aplicación con la que he podido hacer backup de aplicaciones y datos ha sido MyBackup Pro, de pago (hay una versión de evaluación de 30 días que también podemos utilizar). Aunque, para lo que me ha servido…

Aunque las copias de seguridad parecían haberse hecho correctamente, no he conseguido recuperarlas después de actualizar el firmware. No he insistido mucho, dado que las aplicaciones cuyos datos más me interesaban tienen su propia forma de guardarlos en la SD. Lo único que he perdido han sido los SMSs, el registro de llamadas y el progreso en algún juego. Nada esencial.

Por eso mi consejo es utilizar diversas aplicaciones, alguna que haga backup de todo y otras para guardar cosas sueltas, como las que he comentado antes.

Lista de aplicaciones instaladas

Si no nos interesa hacer copia de seguridad de todas las aplicaciones, o para el caso en que hubiera algún problema a la hora de restaurarla, puede ser recomendable guardar, al menos, una lista de las aplicaciones instaladas para poder volver a instalarlas después (si usas muchas aplicaciones es muy probable que no te acuerdes de los nombres de todas).

Las aplicaciones que hayas comprado están asociadas a la cuenta de Google con las que las pagaste y siempre aparecerán en la lista de descargas del Android Market para que las instales de nuevo. Son las gratuitas las que conviene recordar.

Hay aplicaciones que exportan la lista de las aplicaciones instaladas a un archivo en la SD, como aTrackDog o AppBak. Esta última permite también instalar después las aplicaciones de la lista exportada, e incluso de listas exportadas por aTrackDog.

Otra forma de guardar la lista de aplicaciones es utilizar AppBrain. Si instalas la aplicación e inicias sesión con tu cuenta de Google obtendrás una lista de las aplicaciones instaladas accesible desde su web. Desde esa misma web se puede crear otra lista de aplicaciones y agregar a ella las instaladas en el teléfono:

  1. Iniciamos sesión en la página web con la cuenta de Google a la que está asociada el teléfono.
  2. Pulsamos en Mis aplicaciones. La lista Apps on the phone muestra todas las aplicaciones instaladas actualmente en el teléfono.
  3. En Select, pulsamos en All para marcar todas las aplicaciones.
  4. Desplegamos Add to list y escogemos Create new list.
  5. Escribimos un nombre para la lista en List name y decidimos si queremos que la lista sea pública o privada. Pulsamos en Create list.
  6. La nueva lista aparece en Your app list y estará seleccionada. Deberíamos revisar la lista para ver si están todas nuestras aplicaciones en ella.

Esto es necesario hacerlo porque la lista inicial refleja las aplicaciones instaladas y se vaciará cuando actualicemos el firmware. Después de actualizar tendremos que instalar primero la aplicación de AppBrain y marcar para instalar las aplicaciones de la lista guardada desde la web para que se instalen. Puede que sea necesario acceder a la página de cada una de las aplicaciones y pulsar Install. Si instalamos también la aplicación Fast Web Installer podremos instalar todas las aplicaciones marcadas en un sólo paso.

La tarjeta SD

En principio, el proceso de actualización del firmware no tiene porqué tocar la tarjeta SD. De hecho, salvo que quisiéramos mover los directorios de las aplicaciones a la tarjeta (algo que explicaré más adelante, en este mismo post), no sería necesario hacer copia de seguridad de su contenido. Pero, dado que hemos guardado en la SD los datos de las aplicaciones y las copias de seguridad, y teniendo en cuenta que los accidentes ocurren, recomiendo encarecidamente hacer un backup de la tarjeta en este mismo momento.

Para ello podemos sacarla y usar un lector de tarjetas o conectar el teléfono al ordenador y copiar directamente. En el segundo caso, y con la versión 2.1 de Android, será necesario:

  1. Desplegar la barra de notificación y pulsar en Conectado por USB.
  2. Pulsar el botón Activar.
  3. Windows le asignará una letra de unidad a la tarjeta SD del teléfono, que podremos usar para acceder al contenido y copiarlo al disco duro.

Para evitar problemas es recomendable hacer la copia en un directorio que esté directamente en la raíz del disco duro de nuestro PC, debido a que la profundidad de carpetas y los nombres largos de los archivos de la tarjeta podrían superar el límite de Windows si le añadimos una larga ruta de subcarpetas del PC.

¿Algo más?

Pues cualquier otra cosa que te pueda suponer un gran esfuerzo volver a introducir manualmente o que resulte imposible de recuperar.

Por ejemplo, aunque normalmente Android genera automáticamente los APNs de tu operadora (datos para conectarse a Internet o enviar MMSs), hay veces que no ocurre y hay que crearlos manualmente tras actualizar.  Podemos evitar esto haciendo una copia de seguridad con alguna aplicación, como APN Backup & Restore.

Instalar un firmware 2.1 oficial decente

Como ya he comentado antes, el firmware que tengo tiene algunos problemillas, como no permitir acceso root permanente. Esos problemas son, al parecer, impedimento para instalar algunos de los componentes que necesitamos durante el proceso de actualización. Por lo que no queda más remedio que realizar un paso previo: instalar una versión 2.1 oficial que no tenga esos problemas.

En concreto, es necesario un firmware JC3 o posterior. Yo tengo un JC1, el oficial para la versión libre y española del Spica. Para actualizarlo, necesitamos algunas cosas:

  • El firmware que vamos a instalar. En SamFirmware podemos encontrar todos los firmwares oficiales que se han publicado. La página requiere registro (gratuito) para acceder a los enlaces de descarga. Yo voy a instalar el JE1 (mirror)
  • Odin, el programa que permite escribir el firmware en la flash del teléfono. Podemos descargarlo desde aquí, y si esa versión te diera problemas, hay otra aquí.
  • Necesitamos un archivo que le indique a Odin la estructura de la flash de nuestro teléfono. El archivo se puede conseguir también en SamFirmware. Como vamos a instalar una versión posterior a la JC3, necesitamos spica_jc3.ops.
  • También es necesario tener instalado el driver del teléfono. Puedes probar con este driver (la explicación sobre cómo lo he obtenido está en este post). Si no funciona, tendrás que instalar New PC Studio o Samsung Kies, disponibles en la página de Samsung.

El driver se instala y el resto se descomprime. En el caso de Odin, recomiendan tener el ejecutable en la raíz del disco que tiene Windows instalado, aunque yo no he tenido problemas ejecutándolo desde otro sitio. Si la versión que vas a usar es la 3.88, tendrás que ejecutar primero el archivo install.bat para que registre la DLL.

Finalmente, conviene que la batería del teléfono esté, al menos, al 80% del total de su carga.

El proceso es como sigue:

  1. Si tenemos el móvil conectado al PC, lo desconectamos.
  2. Arrancamos Odin como administrador, usando botón derecho del ratón y escogiendo Ejecutar como administrador. Si se nos solicita la contraseña del administrador, la introducimos.
  3. Pulsamos el botón OPS en la sección Select OPS. Seleccionamos el archivo spica_jc3.ops.
  4. En la sección Select Images to download vamos pulsando cada botón, BOOT, PHONE, PDA y CSC, y seleccionando el archivo correspondiente entre los incluidos en el ZIP del firmware que hemos descargado. En el caso del JE1, los archivos son, por este orden, I570EXXJA1_CL132638_Bootloader.tar, I570EXXJD1_Phone.tar, I570EXXJE1_CL291902_PDA.tar y I570EOXEJE1-CSC-MULTI-CL311107.tar. Como tenemos archivos separados para cada parte, tenemos que asegurarnos de desmarcar la opción One Package. Al final tiene que quedar todo como en la siguiente captura:
    Configuración de Odin
  5. Apagamos el teléfono y le quitamos la tarjeta SIM y la tarjeta SD (si la tiene).
  6. Ahora tenemos que encender el teléfono en modo descarga. Para ello hay que pulsar y mantener los botones bajar volumen y cámara y, sin soltarlos, pulsar y mantener el botón de encendido hasta que aparezca la pantalla de descarga (icono azul con forma de disco y una flecha, un mensaje que pone Downloading sobre una barra de progreso y una advertencia: DO NOT TURN OFF TARGET !!!).
  7. Sin tocar nada más en el teléfono lo conectamos al PC donde estamos ejecutando Odin con el cable USB. Si Odin lo detecta, aparecerá el número de puerto en la sección COM Port Mapping, con el fondo en amarillo. Si no lo detecta, apagamos el teléfono, cerramos Odin y repetimos los pasos del 2 al 6 hasta que lo consigamos. Es bastante frecuente tener que repetirlo varias veces hasta que lo detecte. Puede ocurrir, incluso, que el teléfono se niegue a apagarse. En ese caso, será necesario quitarle la batería. Suele funcionar mejor si tardamos poco en conectar el teléfono después de activar el modo de descarga. Cuando Odin lo reconozca se verá así:
    Odin con teléfono detectado
  8. Si está todo bien, pulsamos Start (tampoco conviene demorarse mucho en hacerlo desde que Odin detecte el teléfono). Comenzará el proceso de escritura del firmware en la memoria flash, mostrándose una barra de progreso sobre el puerto COM. Si no empezara, hay que desconectar el teléfono, apagarlo, cerrar Odin y repetir los pasos del 2 al 8 hasta que funcione.
    Odin flasheando
  9. Durante el proceso se reiniciará el teléfono, apareciendo la pantalla de primera instalación. Hay que esperar a que termine de arrancar sin tocar nada. Cuando arranque saldrá el mensaje Initializing..Please wait…
  10. Cuando termine de arrancar, tendremos la versión JE1 instalada. Puede que Odin siga esperando aún, dado que, por defecto, espera 5 minutos (tiempo que se establece en la opción Reset Time (Sec)). Cuando termine pondrá PASS.
    Odin ha terminado con éxito

Podemos comprobar que tenemos el firmware correcto instalado mirando en Ajustes (Settings) | Acerca del teléfono (About Phone) | Número de compilación (Build number). Debe aparecer ECLAIR.XXJE1.

Instalar el recovery

El firmware 2.2 que queremos instalar se instala desde el menú de recuperación del teléfono, pero para que sea posible necesitamos primero disponer de un menú de recuperación que permita instalar firmwares, además de tener acceso root al teléfono.

Hasta ahora, lo único que tenemos es un firmware 2.1 oficial de Samsung. Aunque, eso sí, uno que nos permite obtener acceso root y así seguir con el proceso.

Para ello vamos a instalar LK2.08. No voy a entrar en muchos detalles sobre lo que proporciona esta modificación. Quien tenga interés puede consultar el hilo en Samdroid. Hay que seguir los siguientes pasos:

  1. Descomprimimos el archivo descargado para obtener el archivo i5700_LK2-08_PDA.tar.
  2. Si no está abierto, abrimos Odin como administrador.
  3. Si aparecen archivos de una instalación anterior, pulsamos el botón Reset Files.
  4. Si en la sección Select OPS no aparece el archivo spica_jc3.ops seleccionado, pulsamos el botón OPS y lo buscamos.
  5. Nos aseguramos de que la opción One Package esté desmarcada.
  6. Pulsamos el botón PDA y seleccionamos el archivo que hemos descargado y descomprimido: i5700_LK2-08_PDA.tar. Quedará todo así:
    Configuración Odin para el recovery
  7. Repetimos el mismo proceso de arrancar el teléfono en modo descarga, conectarlo al PC e instalar con Odin que utilizamos en el apartado anterior.
  8. Al terminar se reiniciará el teléfono. Iniciará con un nuevo logotipo (Samdroid). Hay que esperar a que termine.

Ahora ya tenemos un recovery instalado (y, además, hemos rooteado el teléfono). Podemos comprobarlo mirando, como antes, el número de compilación. Tiene que poner LK2.08.1 [samdroid.net].

Ya podemos volver a insertar la SIM y la SD.

Instalar la versión 2.2

En el mundo de los firmwares 2.2 no oficiales para el Samsung i5700 hay básicamente dos grandes opciones: Samdroid y CyanogenMod. Las dos parecen tener características similares, tanto en lo bueno como en lo malo. Sin embargo, he visto más gente recomendando la Cyanogen, así que he decidido instalar esa. En concreto, la CyanogenMod 6.1.1 Alpha 8.3.

Nota: A la hora de publicar este post ya habían salido nuevas versiones, tanto de Samdroid como de CyanogenMod. De esta última ya circula la versión 8.4. Hay muchos que opinan que, ahora, la Samdroid va tan bien como la CyanogenMod, aunque se están notificando muchos errores en ambas. Además, hay otro firmware que está ganando bastantes adeptos: SpicaGenMod. Es difícil dar un consejo: lo que a uno le funciona estupendamente, a otros les falla una y otra vez. No queda más remedio que ir probando hasta encontrar algo que sea lo suficientemente estable para el día a día, teniendo en cuenta que todos los firmwares tienen fallos (incluso los oficiales). En cualquier caso, el método que describo aquí es muy similar para cualquiera de las versiones, por lo que no deberías tener problemas para instalar tu firmware favorito (y si los tienes, escribe un comentario y trataré de ayudarte).

Habernos decidido por la CyanogenMod no es suficiente porque, sin salirnos de esa versión, tenemos diferentes “empaquetados”. En concreto, disponemos de tres opciones (principalmente):

Sea cual sea la opción que escojamos, acabaremos teniendo un archivo ZIP que contiene todos los archivos del firmware y lo necesario para su instalación. Además, es muy probable que también tengamos que descargar uno o más parches (también en formato ZIP), para actualizar algunas de las aplicaciones incluidas, corregir errores o añadir herramientas. El procedimiento que describo aquí es genérico (sirve para cualquiera de las versiones enumeradas) y contempla la instalación del firmware y de los parches, todo ello desde el menú de recuperación:

  1. Conectamos el teléfono al PC y copiamos el archivo ZIP que contiene el firmware y los de los parches que tengamos a la raíz de la tarjeta SD. Es posible que haya que activar el modo de depuración (al reinstalar el firmware habrá quedado desactivado). También podemos sacar la tarjeta y copiarlo directamente.
  2. Desconectamos el teléfono del PC y lo apagamos.
  3. Encendemos el teléfono en modo recuperación: pulsamos y mantenemos los botones bajar volumen y descolgar y, sin soltarlos, pulsamos y mantenemos el botón de encendido hasta que aparezca la pantalla de recuperación (no hay que soltar cuando sale el logotipo de Samdroid), con el texto Android system recovery y un menú de opciones en verde:
    Recovery LK
  4. En el menú seleccionamos Apply any zip from SD, usando los botones de dirección para movernos y el botón OK para seleccionar.
  5. Escogemos el archivo que hemos copiado antes y pulsamos OK.
  6. Nos pide confirmación. Pulsamos el botón Inicio (Home).
  7. Cuando termine aparecerá de nuevo el menú de recuperación. Seleccionamos Wipe, choose what y pulsamos OK.
  8. Seleccionamos Wipe data/cache (factory reset) y pulsamos OK.
  9. Pulsamos el botón Inicio para confirmar.
  10. Seleccionamos Reboot system now [Home+Back] y pulsamos OK.
  11. Ahora tendremos otro logotipo diferente (Android con un robot en la O primero, y el de CyanogenMod después). Hay que esperar a que arranque. Puede que reinicie varias veces seguidas hasta que termine completamente el proceso. Cuando acabe aparecerá el tutorial de la versión 2.2. Salimos de él.
  12. Reiniciamos en modo recuperación, escogiendo la opción del menú de apagado (Recovery). Ahora tenemos el menú de recuperación de CyanogenMod:
    Recovery Cyanogen
  13. Si no tenemos ningún parche que instalar, continuamos por el paso 20.
  14. Seleccionamos Install zip from sdcard y pulsamos OK.
  15. Seleccionamos Choose zip from sdcard y pulsamos OK.
  16. Seleccionamos el archivo del parche y pulsamos OK.
  17. Pulsamos Inicio para confirmar. Esperamos a que termine de instalarse.
  18. Seleccionamos +++++Go Back+++++ y pulsamos OK.
  19. Si tenemos más parches que instalar, repetimos los pasos del 14 al 18 hasta que queden todos instalados.
  20. Seleccionamos Wipe y pulsamos OK.
  21. Seleccionamos Wipe dalvik-cache y pulsamos OK.
  22. Pulsamos Inicio para confirmar.
  23. Seleccionamos Leave Recovery y pulsamos OK.
  24. Seleccionamos Reboot to system y pulsamos OK.

Ya tenemos la versión 2.2 instalada. Pero aún podemos mejorar algunos detalles: sigue leyendo.

Formatear particiones internas

Para que la versión 2.2 que acabamos de instalar funcione correctamente hay que cambiar el sistema de archivos de las particiones internas del teléfono, aquellas donde está instalado el sistema operativo y sus archivos. Esto lo hacemos porque el sistema de archivos propio de Samsung, el RFS, aunque bastante seguro, es muy lento. Si eso lo unimos a la sobrecarga que supone la versión 2.2, si no cambiamos el sistema de archivos el día a día del teléfono podría llegar a ser muy exasperante.

Tenemos que tener 1 GB libre en la tarjeta SD y al menos 10 MB libres en la carpeta data (con el firmware recién instalado, los tendremos). El proceso es el siguiente:

  1. Encendemos o reiniciamos el teléfono en modo de recuperación, de alguno de los modos que hemos visto antes.
  2. En el menú de recuperación, seleccionamos Advanced y pulsamos OK.
    Recovery Cyanogen - Advanced
  3. Seleccionamos Filesystem conversion y pulsamos OK.
  4. Seleccionamos CACHE y pulsamos OK.
  5. Seleccionamos ext2 y pulsamos OK.
  6. Pulsamos Inicio para confirmar.
  7. Seleccionamos DATA y pulsamos OK.
  8. Seleccionamos ext4 o ext2 y pulsamos OK. Nota: Nuevamente, es cuestión de gustos. Se supone que ext4 es más seguro porque utiliza journaling (sistema para evitar corrupciones en archivos), pero también usa más CPU y consume más batería. Últimamente, la mayoría prefiere utilizar ext2. En cualquier caso, se puede cambiar fácilmente después, repitiendo este mismo proceso.
  9. Pulsamos Inicio para confirmar. Ésta tarda algo más porque tiene que hacer copia de seguridad de los datos (aunque no mucho, porque aún no hemos instalado aplicaciones).
  10. Finalmente, seleccionamos SYSTEM y pulsamos OK.
  11. Seleccionamos ext2 y pulsamos OK.
  12. Pulsamos Inicio para confirmar. Ésta es la que más tarda.
  13. Cuando termine nos aseguramos de que tenemos las tres particiones en el formato adecuado: CACHE y SYSTEM en ext2, DATA en ext4 (o ext2, según hayamos escogido).
    Particiones formateadas
  14. Seleccionamos +++++Go Back+++++ y pulsamos OK.
  15. Seleccionamos +++++Go Back+++++ de nuevo y pulsamos OK.
  16. Seleccionamos Wipe y pulsamos OK.
  17. Seleccionamos Wipe dalvik-cache y pulsamos OK.
  18. Pulsamos Inicio para confirmar.
  19. Seleccionamos Leave Recovery y pulsamos OK.
  20. Seleccionamos Reboot to system y pulsamos OK.

Crear partición en la SD para las aplicaciones

Este paso es opcional y requiere algo de explicación para poder tomar la decisión que más nos convenga.

Una de las grandes ventajas que tiene el haber realizado todo el proceso que nos ha llevado hasta este punto es que podemos mover las aplicaciones a la tarjeta SD para que no nos ocupen la escasa memoria que tiene nuestro teléfono. Lo que ocurre es que, como era de esperar, tenemos varias opciones para hacerlo y algunas de ellas requieren realizar algunos cambios en la tarjeta SD para poder utilizarlas. Veamos cuales son las opciones:

  • El método de la versión 2.2: una de las mejoras que introdujo Google en la versión 2.2 fue precisamente la posibilidad de mover las aplicaciones a la tarjeta SD. En principio, no todas las aplicaciones se pueden mover a la tarjeta SD (depende del desarrollador de la aplicación), pero CyanogenMod incluye una opción para hacer que todas las aplicaciones se puedan pasar a la tarjeta (Ajustes | Parámetros CyanogenMod | Application | Permitir movimiento de aplicaciones). En cualquier caso, activar esta opción no garantiza que la aplicación vaya a funcionar desde la SD. En concreto, los widgets no funcionarán si su aplicación se mueve a la SD. Además, cuando se activa la transferencia de archivos vía USB, la tarjeta SD se desmonta, por lo que cualquier aplicación que esté en la SD y se esté ejecutando se cerrará inmediatamente.
  • Apps2SD: en lugar de mover aplicación por aplicación, lo que hace este método es aprovechar los enlaces simbólicos de Linux para hacer que la carpeta donde se instalan las aplicaciones apunte realmente a una carpeta en la tarjeta SD. De esta forma, las aplicaciones se instalarán directamente en la tarjeta SD, mientras el sistema operativo sigue pensando que las está instalando en la memoria principal. Sirve para todas las aplicaciones (widgets incluidos) y no afecta al rendimiento si la tarjeta SD es lo suficientemente rápida (se recomienda clase 6, aunque con una de clase 4 no va mal).
  • Link2SD: aprovechando que tenemos permisos de administración en el teléfono, esta aplicación nos proporciona una opción intermedia entre las dos anteriores. También utiliza enlaces simbólicos, pero no para la carpeta de todas las aplicaciones, sino para la de cada aplicación que queramos mover. Permite escoger qué aplicaciones mover y cuales no, aunque funciona con todas (incluso widgets). Sirve para dejar algunas aplicaciones en la memoria interna, lo que puede ser útil si moverlas a la SD afecta muy negativamente al rendimiento o si queremos que sigan disponibles tras extraer la tarjeta.

La segunda opción es la más cómoda de todas puesto que, una vez activada, todas las aplicaciones van directamente a la SD, mientras que los otros métodos requieren moverlas manualmente (aunque hay aplicaciones para mover varias a la vez). Sin embargo, esta opción es la menos flexible, dado que no nos permite dejar ciertas aplicaciones en la memoria interna y si extraemos la tarjeta SD nos quedamos sólo con las del sistema.

Las dos últimas opciones tienen un requisito más: una partición dedicada en la SD. En el caso de App2SD, la partición tiene que tener un sistema de archivos Linux (normalmente, ext2). Link2SD, sin embargo, permite que la partición esté en formato FAT32. Es necesario que sea una segunda partición para poder seguir teniendo la partición FAT32 habitual de la tarjeta SD, necesaria para muchas aplicaciones. Además, tener las aplicaciones en una partición aparte elimina el problema que se produce al activar la copia de archivos por USB, dado que sólo se desmonta la partición habitual, dejando la secundaria montada y sus aplicaciones, accesibles.

Es muy importante tener en cuenta que para crear la segunda partición en la tarjeta SD hay que formatearla entera, eliminando todo su contenido. Así que, si no lo hemos hecho aún, es el momento de hacer una copia de seguridad de todos los archivos. El proceso para crear una partición Linux es como sigue:

  1. Accedemos al menú de recuperación, ya sea usando el botón de apagado o encendiendo el teléfono como ya se ha explicado antes.
  2. Seleccionamos Advanced y pulsamos OK.
  3. Seleccionamos Partition SD Card y pulsamos OK.
  4. Seleccionamos el tamaño que queremos para la partición. Dependerá del tamaño de la tarjeta SD y de la cantidad de aplicaciones que tengamos previsto instalar. 512M deberían ser suficiente. Pulsamos OK.
  5. La siguiente pregunta es sobre el tamaño de la swap. Sobre esto hay diferencias de opiniones. Yo creo que en nuestro terminal no es necesario el uso de swap y que sólo serviría para que fuera más lento (sobre todo si la tarjeta SD no es muy rápida). Así que escogemos 0M y pulsamos OK.
  6. Se inicia el proceso de crear las particiones, dependiendo del tamaño de la SD, puede llevar un rato.
  7. Seleccionamos +++++Go Back+++++ y pulsamos OK.
  8. Seleccionamos Leave Recovery y pulsamos OK.
  9. Seleccionamos Reboot to system y pulsamos OK.
  10. Conectamos el teléfono al PC y recuperamos los archivos de la tarjeta SD.

Si queremos usar la segunda opción, hay que activarla:

  1. Abrimos la aplicación Samdroid Tools.
  2. Seleccionamos Apps2sd settings | Enable Apps2sd. Si pide permisos de superusuario, pulsamos en Permitir.
  3. Volvemos atrás y seleccionamos Reboot | Reboot system. Pulsamos Yes para reiniciar.

A partir de este momento, todas las aplicaciones de usuario (no las que vienen con el firmware) se habrán movido a la tarjeta SD, y todas las que se instalen más tarde se copiarán directamente a la tarjeta SD.

Para crear la segunda partición con formato FAT32 (para usarla con Link2SD) será necesario utilizar un gestor de particiones, extrayendo la tarjeta del teléfono y conectándola a un PC con un lector de tarjetas. Este método también se puede utilizar para crear la partición Linux, pero hacerlo desde el menú de recuperación resulta bastante más cómodo.

Restaurar la copia de seguridad

Si pudimos hacer copia de seguridad de la configuración, SMS, aplicaciones y datos, es el momento de restaurarla. Para ello tendremos que instalar la aplicación que usamos para hacer la copia de seguridad y recuperar lo que nos interese. Lo mismo para los APNs, si no se han creado automáticamente (algo que podemos comprobar en Ajustes | Conexiones inalámbricas | Redes móviles | APN).

Si utilizamos la web de AppBrain para guardar la lista de aplicaciones, podemos instalar ahora su aplicación y el plugin Fast Web Installer. Introduciendo nuestras credenciales en la aplicación y sincronizándola al menos una vez, podremos instalar todas las aplicaciones directamente desde la web.

Otra opción es irnos directamente al Android Market e instalar lo que queramos.

Las dos últimas alternativas pueden requerir la transferencia de una gran cantidad de datos, por lo que es recomendable utilizar la conexión WiFi, si disponemos de una.

Problemas

Nada es perfecto y no es totalmente descartable la aparición del algunos problemas a la hora de utilizar la nueva versión. Yo mismo he sufrido algunos, pero este post es ya demasiado largo como para contarlos aquí y, al mismo tiempo, tratar de explicar la forma de solventarlos. Así que en los próximos días iré publicando información sobre algunos de esos problemas, añadiendo aquí los enlaces oportunos.

Como, por ejemplo:

  • Cómo calibrar la batería si empieza a hacer cosas raras después de actualizar.
  • Qué hacer si todas las aplicaciones empiezan a dar errores o a comportarse como recién instaladas.

Como regla general, si ves que el móvil está demasiado inestable, con muchas aplicaciones dando errores, reinicios inesperados o cosas así, lo mejor es hacer una instalación limpia: instalar un firmware 2.1 oficial con Odin, instalar el LK2.08 y después el firmware 2.2 (puedes probar con diferentes versiones o parches). Una vez que tienes los archivos descargados y conoces el proceso no se tarda mucho en repetirlo de nuevo.

Si ya tienes la partición Linux en la tarjeta SD no tendrás que volver a crearla, aunque sí puede ser recomendable borrar su contenido. Algo que podrás hacer utilizando el SDK de Android (con adb shell) o con una aplicación como Android Terminal Emulator. La partición se monta en /system/sd y se requieren permisos de root (obtenibles con su) para acceder a ella.

El firmware CyanogenMod es muy estable (al menos cuando encuentras la versión que mejor te funciona), por lo que si hay demasiados problemas es mejor reinstalarlo de nuevo. Y si persisten, conviene probar otras versiones. Pero no desistas, que al final merece la pena.

Recuerda que en esta página dispones de enlaces a todos los artículos sobre Android que he publicado en La columna 80.

21 respuestas to “Instalación de Android 2.2 (no oficial) en un Samsung i5700”

  1. Martin said

    Excelente documento, muy bien armado y explicado. Hay mucha información del Samsung i5700 o Galaxy Spica, pero en este caso arranca de cero y llega a temas avanzados. Ya pasé por varias instalaciones y vuelta a empezar, pero quería felicitarte y agradecerte por compartir tanto tiempo y trabajo con todos.

  2. Miguel said

    Me puse la 8.3 como tú. Por ahora genial, pero el menú fijo a veces me desaparece cuando pulso sobre él. ¿Es cosa de Froyo o un bug?

    • ¿A qué menú en concreto te refieres?

      • Miguel said

        Donde de fábrica está el botón para llamar, ir a las aplicaciones y navegar. Estuve buscando y tocando en el ADWlauncher lo de dockbar y parece que ya no lo hace.

        AWDLauncher > Interfaz > Dockbar = desmarcado

      • Creo que ya sé a qué te refieres.

        A mi también me ha pasado alguna vez, al hacer el gesto de deslizar el dedo hacia abajo (para desplegar la barra de notificación) demasiado cerca de la barra de botones.
        A veces he conseguido hacerlo aparecer de nuevo haciendo el gesto contrario, pero casi siempre he tenido que desactivarlo y volverlo a activar desde las opciones del AWD.Launcher.

        No estoy seguro si es un bug o una funcionalidad implementada de forma poco práctica.
        Puedes configurar qué quieres que haga concretamente ese gesto, pero se sigue ocultando la botonera aunque lo configures para otra cosa si lo haces muy abajo.

        Igual convendría comentárselo a AnderWeb.

  3. Miguel said

    Una pregunta.

    Para cambiar la SD por otra de mayor tamaño, ¿he de hacer todo el proceso de nuevo?

    Un saludo.

    • Si no tienes partición para aplicaciones en la SD, sólo tendrás que copiar el contenido de la SD antigua a la nueva usando un PC.
      Lo mismo si la segunda partición es FAT32: copias el contenido de ambas particiones, creas la segunda partición en la tarjeta nueva y copias el contenido anterior en las dos particiones de la tarjeta nueva.

      Pero supongo que si preguntas es porque has creado una partición Linux para las aplicaciones. Para ese caso se me ocurren diferentes opciones. Te las enumero de más sencilla a más compleja:

      – Hacer un backup de todas las aplicaciones instaladas y sus datos (Titanium Backup es una opción excelente para esa tarea), desinstalarlas todas (también lo puedes hacer con Titanium Backup), copiar el contenido de la partición FAT32 a un PC, formatear la nueva tarjeta desde el recovery (igual que hiciste con la antigua), transferir los datos copiados a la partición FAT32 de la nueva carpeta y recuperar la copia de seguridad de las aplicaciones.

      – Si las aplicaciones instaladas en la SD cupieran en la memoria principal podrías copiarlas y después desactivar el Apps2SD desde Samdroid Tools (si lo haces al revés podrían no funcionar después). Lo malo es que tendrías que copiarlas desde línea de comandos (con un emulador de terminal o usando el «adb shell» del SDK). Con las aplicaciones ya en memoria principal sólo tendrías que formatear la tarjeta nueva, copiar el contenido de la partición FAT32 de una tarjeta a otra y activar de nuevo el Apps2SD.

      – Con el teléfono apagado, cambiar la tarjeta antigua por la nueva. Arrancar directamente en el recovery (si arrancas en modo normal tendrías multitud de errores y seguramente no podrías recuperar las aplicaciones después) y formatear la tarjeta nueva. Transferir el contenido de las dos particiones desde un PC, de la tarjeta antigua a la nueva. Para transferir el contenido de la partición Linux lo más seguro es comprimirlo primero. Aquí explican como: http://forum.xda-developers.com/showpost.php?p=4432416&postcount=3. Dicen que se puede hacer también usando el adb del SDK (supongo que desde Linux), aunque yo no estoy muy seguro de que así se mantengan los permisos. Aquí hacen algo parecido: http://forum.xda-developers.com/showpost.php?p=5050350&postcount=21

      La primera opción es la más sencilla y segura si no te apañas mucho con Linux, lineas de comandos y demás. Aunque es la opción que más tiempo te llevará, sobre todo si tienes muchas aplicaciones instaladas.

      Si tienes alguna duda sobre alguno de los métodos que propongo, pregúntame antes de hacer nada.

  4. Miguel said

    No hay manera de que sepa particionar la tarjeta en FAT32 para link2SD, ¿algún programa recomendado? Easeus no me deja tener dos particiones primarias a la vez con letra.

  5. pablo said

    hola termine de actualizar siguiendo todos tus pasos y salio de 10 te agradesco. pero tengo un problema no tengo la app samdroid tools en mi cel y no pude encontrar para bajarla

    • Aquí explican (en inglés) como instalar Samdroid Tools en un firmware CyanogenMod: http://forum.samdroid.net/f57/samdroid-tools-ported-cyanogenmod-2547/

      Descarga este ZIP: http://forum.samdroid.net/attachments/f57/3403d1285958737-samdroid-tools-ported-cyanogenmod-samdroidtools.zip

      Tienes que copiarlo a la raíz de la tarjeta SD e instalarlo desde el recovery, seleccionando Install zip from sdcard | Choose zip from sdcard en el menú y escogiendo el archivo ZIP copiado.

      • pablo said

        lo pude hacerlo muy facil muchas gracias.
        te puedo joder de nuevo, perdon, sabes que ahora no me deja poner widgets de las app que instalo pense que era xq estaban en la sd pero al principio si me dejaba ahora ya no sabrias que puede estar pasando?

      • Pero, ¿te da algún error o simplemente no aparece el menú cuando pulsas sobre el fondo de la pantalla?

        ADW.Launcher tiene una opción para bloquear el escritorio. Esa opción no aparece entre las opciones de configuración del launcher, sino que se muestra directamente pulsando el botón Menú desde el escritorio. Es la última opción, después de ADWSettings (puede que tengas que pulsar primero en Más).
        Si pone Unlock Desktop es que está bloqueado. Escoge esa opción para desbloquearlo.
        Si pone Lock Desktop es que está desbloqueado.

        No sé si Launcher Pro tiene alguna opción parecida (en caso de que estés usando ese).

        Además, incluso con el escritorio bloqueado, si usas la opción Añadir del menú te deja agregar widgets.

  6. hawk4295 said

    oye felicitaciones x este gran aporte esta super completo y perfectamente explicado.
    tengo un pequeño problema al instalar cualquier ron 2.2 o superior y eso que he probado como 10 y todos lo mismo.
    todas las app que dependen de la conexión para funcionar lo hacen perfectamente excepto el explorador, bien sea el nativo o cualquiera que instale. solo se queda conectando y nunca abre.
    quisiera saber si soy el unico al que le pasa esto y si hay alguna solucion. GRACIAS espero puedan ayudarme……….

    • Pues tu problema no parece ser muy común.
      He visto un par de hilos donde comentan cosas parecidas:
      http://forum.xda-developers.com/showthread.php?t=711213
      http://forum.xda-developers.com/showthread.php?t=687320

      Algunos lo resuelven reseteando todo el sistema a las opciones por defecto y otros reseteando los APNs.
      Por lo que he leído, todo apunta a que el problema tiene relación con los APNs. Busca los que deberías tener según tu operador y trata de introducirlos manualmente.
      Mira a ver también si tienes alguna configuración de proxy activa, en las opciones del sistema operativo o en el propio APN.

      He visto también que a algunos que tienen un problema parecido sí les funciona el Opera Mini.

      • hawk4295 said

        oye gracias x los link! creeme que me he andado por todos lados buscando solución a mi problema y todos comentan que el cyanogenmod y gingerbread les corren super que solo han tinido problemas con honeycond. he llegado ha pensar que es el kernel que instale que tiene alguna incompatibilidad! el opera mini tampoco funciona ni el mirenweb ni nada.
        creo que mi i5700 sera el unico que nunca tendra multi-touch en el explorador………

  7. Sabes Como solucionar el Problema del Market Descarga en pausa No puedo Bajar nada siempre me pasa eso Con el market si sabes q es porfavor ayudame..

    • Normalmente eso ocurre por problemas con el acceso a la cuenta de Google desde el teléfono.
      Se suele solucionar (por extraño que parezca) iniciando sesión en Google Talk desde el teléfono.

      Si eso no soluciona completamente el problema, también puedes probar a borrar la caché o los datos del Android Market o incluso a desinstalar sus actualizaciones recientes. Para ello tienes que ir a Ajustes | Aplicaciones | Administrar aplicaciones | Market. Los botones son Borrar caché, Borrar datos y Desinstalar actualizaciones. No los pulses todos a la vez, empieza por borrar caché y prueba a ver si es suficiente. Si no funciona, sigue con los demás uno por uno.

Deja un comentario