Swap de 4GB en un Galaxy Spica. Te lo tengo

En realidad, es bastante sencillo. Tomé la referencia de este post de samdroid, y funcionó básicamente a la primera.

El escenario es el siguiente: Un Samsung Galaxy Spica rooteado, y con CyanogenMod 7.9 (usando este tutorial), con Kernel 3.0.55, corriendo Gingerbread. Desde que se realizó la actualización, el equipo presenta problemas serios de funcionamiento, debido a la poca memoria RAM que posee. En un primer lugar, se aplicó una forma de usar la SD como partición swap, pero sólo logró incrementar en 512mb la misma, lo que en realidad hacía un flaco servicio, a pesar de ser bastante configurable.

Al poseer tan poca memoria, correr aplicaciones que consuman bastante RAM, como la cámara o el navegador, se hacía una verdadera pesadilla. Al punto de no poder usar el botón de cámara, la galería de CM7 y otros. Al principio, no presentaba demasiado problema, porque siempre puedes usar aplicaciones más ligeras o prescindir de algunos servicios por no ser vitales. La cosa cambia cuando quieres usar whatsapp, o line o el mismo reluciente hangouts, lo que me llevó a googlear un poco y dar con esta solución sencilla:

Necesitas:
1. Tener el teléfono rooteado (paso previo para poder instalar algún mod)
2. Algún cliente de terminal (si tienes CM7, lo más probable es que ya tengas uno instalado)
3. Una SD con suficiente espacio.
4. Un respaldo general (puedes googlear para averiguar cómo se hace), en caso de que rompas algo.
5. Conocimientos generales de comandos CLI. Recuerda que Android es una especie de Linux.
6. Alguna aplicación para correr comandos automáticamente al [re]iniciar el dispositivo. Recomiendo Autostart
7. Root explorer. Lo consigues en el play store.
8. Algún cliente para mover archivos de la pc al teléfono o algún editor de texto plano.

Mise en place:
1. Haz el respaldo general.
2. Particiona tu sd (Paso opcional, pero altamente recomendable)
3. Instala Autostart y todas las demás apps que necesites.
4. Crea un archivo (Y los directorios, si hace falta) /sdcard/data/opt/autostart.sh. Puedes hacerlo en la pc y usar algún app para moverlo al teléfono, o usar un editor de texto plano.
5. Darle permisos 777 a /mnt/sdcard/data/opt/autostart.sh.

Proceso:
1. En el terminal, te logueas como root. (O sea, tecleas «su», sin las comillas). Eso hará que aparezca un popup preguntándote si realmente quieres darle acceso de superusuario a esa aplicación. Dile que sí.
2. Luego de logueado como root, escribirás en el terminal: dd if=/dev/zero of=/sdcard/swapfile bs=1024 count=xyz, donde:
xyz = Cualquier número múltiplo de 1024: 2048, 3072, 4096… O, si lo hacemos como dice el tutorial, Cualquier número cuyo módulo de 1024 sea igual a cero (xyz % 1024 == 0).
Ahora bien, ¿qué hace este comando? Crea un archivo llamado /sdcard/swapfile, que es básicamente la ubicación de tu nuevo swap. bs es el tamaño del bloque (en este caso 1024 bytes) y count es la cantidad de bloques que quieres crear.
3. En el mismo terminal, ahora ejecutas swapon /sdcard/swapfile. Es decir, activas la swap.
4. Ejecuta free. Debe aparecer una pantalla así:
Nota el 4227064, es decir, 4GB.
5. Ahora, pones en el terminal echo 'swapon /sdcard/swapfile' > /sdcard/data/opt/autostart.sh Para añadir el comando de activar el swap en el script de inicio. O, puedes abrir de nuevo tu editor de texto y pones swapon /sdcard/swapfile
6. Reinicia el teléfono, abres el terminal y ejecutas «free» de nuevo. Debería haber funcionado.