Lunes, 29 de noviembre de 2010

Trucos AndroidVoodoo Project: Samsung Galaxy S mucho más rápido y sin lags

Como comentaba en mi análisis personal del Samsung Galaxy S, uno de los problemas de este teléfono son las contínuas ralentizaciones del sistema, que si al principio son casi inapreciables, van en aumento a medida que el teléfono lleva días sin reiniciar, o instalamos más y más aplicaciones. Estos parones o “lags” son debidos a un mal diseño por parte de Samsung, y la buena noticia es que pueden eliminarse, haciendo que nuestro Galaxy S, que es uno de los más potentes actualmente en el mercado, se comporte como tal. Y la diferencia es realmente impresionante.

Mediante el programa de benchmarking Quadrant podemos ver la impresionante mejora de rendimiento desde el Galaxy S “stock” y el que tiene aplicado el lagfix Voodoo del que hablaremos hoy:

El lagfix Voodoo multiplica por dos el rendimiento del Galaxy S
El lagfix Voodoo multiplica por dos el rendimiento del Galaxy S

Este teléfono cuenta con una memoria interna de 4 u 8Gb, dependiendo del modelo. Lo que ha hecho Samsung es montar una unidad de memoria de estado sólido, es decir una “tarjeta SD”, directamente integrada en el equipo, y hacer que el sistema utilice esta memoria para instalar las aplicaciones y demás datos de usuario.

Sin embargo, a la hora de elegir el sistema de archivos con el que formatear esta memoria, Samsung decidió no utilizar ninguno de los existentes actualmente (NTFS, EXT2, ReiserFS, ZFS, FAT32…) sino crear el suyo propio, tomando como partida el veterano FAT, y añadiéndole algunas características nuevas como permisos POSIX y transaccionalidad para cumplir con los requisitos mínimos que pide Android para su correcto funcionamiento. Este nuevo sistema de ficheros es el Robust File Sysem (RFS).

Breve detalle sobre las particiones del Galaxy S

Jose me pregunta en un comentario por qué no se puede simplemente formatear la tarjeta SD desde el modo recovery del teléfono. La respuesta es que las cosas no son tan sencillas como parecen. El Galaxy S tiene divididos los 8Gb (ó 16Gb en el modelo de Vodafone) de memoria interna, en varias particiones. La más grande (5,78Gb en mi Galaxy de 8Gb de Movistar) es la que ve el usuario, y aparece como directorio “sdcard” en un navegador de archivos. Es la que se puede formatear desde el recovery, como Jose comenta.

Sin embargo, las que usan RFS y generan los lags son las particiones “data”, “system” y “cache”, que el usuario no ve, y que son lo que se come esos pocos Gb hasta completar los 8 ó 16. En la partición “system” está el sistema operativo, la “cache” es almacenamiento temporal del sistema, y en la “data” es donde se instalan los programas (memoria interna del teléfono).

Si vais a “Ajustes -> Almacenamiento en tarjeta SD y teléfono” podréis ver desglosado el uso de la tarjeta SD externa (si habéis comprado una microSD), tarjeta SD interna (a la que Jose se refiere) y almacenamiento interno del teléfono (como decía partición “data”, una de las que el lagfix convierte a EXT4). Las particiones “system” y “cache” no aparecen ahí pero también se ven convertidas a EXT4 por el lagfix.

Causa y solución del bajo rendimiento del Galaxy S

Sin embargo, en el mundo real este sistema de ficheros es muy poco eficiente, causando un bloqueo general del sistema cuando se produce una operación de lectura o escritura en la memoria. Esa es la causa de los “lags”, el sistema está esperando a escribir datos para seguir. La clave pues para evitar estos problemas de rendimiento es eliminar de raíz el sistema de ficheros RFS. Los “lagfix” que han aparecido desde que se descubrió este tema, son pues modificaciones a la memoria interna del Samsung Galaxy S, que evitan que se utilice el sistema de ficheros RFS, y se pueden dividir en varias generaciones:

  • La primera generación se apoyaba en el uso de una tarjeta microSD externa. En ella se creaba un sistema de archivos EXT2 (el sistema de archivos más estable de Linux) de un tamaño a elegir, y se usaba este espacio para almacenar las aplicaciones instaladas, en lugar de la memoria interna del teléfono. El problema era la neccesidad de comprar una microSD, y la pérdida de espacio ocupado.
  • Posteriormente se consiguió crear este sistema de archivos EXT2 dentro del propio sistema de archivos RFS interno. Ya no era necesaria la tarjeta microSD, aunque el espacio que se utilizaba para el nuevo sistema de archivos, “desaparecía” de la memoria interna, y había que hilar fino para elegir un tamaño adecuado.
  • Finalmente apareció el “lagfix” de tercera generación, que es el que os voy a comentar hoy. Consiste en convertir directamente la memoria interna del teléfono de RFS a EXT4, con lo que no hay extraños hacks de por medio, sino simplemente el uso de un sistema de archivos más eficiente de manera nativa.

Project Voodoo

El lagfix EXT4 que os recomiendo es el llamado Proyecto Voodoo. Lo vengo usando desde hace ya semanas y puedo atestiguar su estabilidad, limpieza y buen rendimiento. Sus ventajas son las siguientes:

  • Se trata simplemente de un kernel que soporta EXT4 y el proceso que convierte la memoria interna a EXT4. No se modifica en mayor medida nuestro teléfono.
  • Es muy fácil de instalar: se flashea el kernel y en el primer arranque del teléfono se convertirá el sistema de ficheros de manera automática, con una bonita voz femenina que nos irá informando de los avances del proceso, hasta que finalmente el teléfono llega al arranque normal, aunque ya utilizando EXT4 internamente.
  • La conversión se hace en caliente, es decir, manteniendo los datos que en el teléfono existen previamente: no es necesario hacer un backup y luego restaurarlos. El proceso tarda entre 5 y 10 minutos.
  • Es completamente reversible: creando una simple carpeta que se llame “disable-lagfix” dentro de la ruta “/sdcard/Voodoo/”, el el próximo reinicio se convertirá de nuevo la memoria interna de EXT4 a RFS. Entonces ya podemos flashear nuestro teléfono, si queremos, con otro kernel (por ejemplo actualizar a Froyo, Android 2.2).
  • Se Puede hacer en un Galaxy de Movistar, es lo que he hecho yo. Supongo que con uno de Vodafone también.

Hay que tomar, sin embargo, ciertas precauciones básicas:

  • Este lagfix es específico del Samsung Galaxy S i9000 Internacional, así como T-Mobile Vibrant y AT&T Captivate. Por favor comprueba que tu teléfono esté soportado antes de aplicarlo.
  • Hay una versión para Android 2.1 (Eclair) y otra en desarrollo para Android 2.2 (Froyo). Comprobad que aplicáis la adecuada a vuestro teléfono.
  • Una vez activado el lagfix, recordad que para hacer modificaciones importantes tales como flashear un nuevo kernel, será necesario primero desactivarlo para que la partición vuelva a ser RFS.

Instalación

Estos son los pasos para instalarlo:

  • Por si acaso, hacer un backup de vuestros datos, y de la carpeta “/efs” del teléfono, por ejemplo utilizando el navegador de archivos Root Explorer.
  • Aseguraros de que podéis entrar en modo download mediante la pulsación de tres botones.
  • Instalar el software de Samsung Kies en el PC.
  • Si tenéis Kies corriendo en el PC, cerradlo.
  • Cargar el teléfono como mínimo hasta el 70%, si la batería está al 100% mucho mejor.
  • Desconectad el teléfono del PC, si lo teníais conectado por cable USB.
  • Descargar y descomprimir el software Odin 1.7, el cual utilizaremos para flashear el teléfono con el kernel de Project Voodoo. Ejecutadlo.
  • Comprobad la versión del firmware que tiene instalado vuestro teléfono: en el menú principal id a “Ajustes” > “Acerca del teléfono” > “Versión del firmware”.
  • Descargad el archivo a flashear de la web de Project Voodoo. Será un archivo con extensión .tar:
  • En ODIN Pulsad en el botón “PDA” y seleccionad el archivo que acabáis de descargar.
  • No cambiéis ninguna opción, todo debería quedar como en la siguiente captura:

ODIN configurado para iniciar el proceso de flasheo
ODIN configurado para iniciar el proceso de flasheo

  • Apagad el teléfono y extraed la tarjeta SIM y la microSD.
  • Poned el teléfono en modo download, pulsando a la vez los tres botones Bajar Volumen + Home + Encender. A los dos segundos debería aparecer el modo download. Si no es así, arreglad ese problema antes de nada.
  • Conectad el Samsung Galaxy S al PC. Preferiblemente a un puerto de la placa base, no al frontal de la torre, o a través de un hub USB.
  • En ese momento ODIN debería detectarlo.
  • Pulsad en ODIN el botón Start y esperad, el proceso tardará unos 20 segundos. El teléfono luego se reiniciará solo, por ningún motivo debéis apagarlo, desconectarlo o reiniciarlo primero.
  • Al reiniciar, una voz femenina nos irá informando de los pasos del proceso. Dependiendo de la cantidad de programas instalados, puede tardar más de 10 minutos.
  • Una vez finalizado, el teléfono arrancará normalmente y habremos acabado.

ODIN tras haber terminado el proceso de flasheo
ODIN tras haber terminado el proceso de flasheo

La diferencia de rendimiento del teléfono, con este fix aplicado, es simplemente bestial. El proceso de arranque inicial, el cambio entre aplicaciones abiertas, el arranque de aplicaciones pesadas… todo se ejecuta de manera rápida y fluida, sin tirones.

Espero que os animéis a dejar vuestro Galaxy S como debería haber venido de fábrica en un principio. Los comentarios están a vuestra disposición para que compartáis vuestra experiencia o consultéis vuestras dudas. Happy hacking!

si te ha gustado este post.



Sin comentarios sobre “Voodoo Project: Samsung Galaxy S mucho más rápido y sin lags”


Deja un comentario


Etiquetas válidas:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Akismet ha protegido ya este blog de miles de comentarios fraudulentos. Pero si por error filtra tu comentario por favor avísame mediante el email de contacto de la derecha.