Lunes, 29 de noviembre de 2010
Voodoo 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
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:
- Para Eclair (Android 2.1): Voodoo-beta4-GT-I9000-odin-pda.tar.
Para Froyo previo a firmware JPU (Android 2.2) (por ejemplo JPO): Voodoo-stable-5.0.1-Froyo-GT-I9000-odin-pda.tar.- Para Froyo entrad en la página de descargas y buscad el archivo más reciente, todos son compatibles con todas las versiones de Froyo (2.0, 2.1, 2.2.1, etc). Por ejemplo ahora mismo la más reciente es la 5.4.1. Van saliendo versiones de Voodoo para los diferentes firmwares. Lo mejor es que, como os digo, vayáis a la página de descargas ordenadas por fecha y elijáis el que corresponda con vuestro firmware.
- Editado: ya hay versión para los Samsung Galaxy S sudamericanos (modelo i9000B). Buscadlo en esta carpeta.
- 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
- 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
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!
Por: Marcos González Troyas en Trucos Android
RSS comentarios | Trackback |
Imprimir este post


























se puede aplicar esto en un galaxy s de movistar??
de la pagina de vadoo salen muchos archivos que nos podemos descargar, cual es el que tengo q bajar para el galaxy de movistar? 1 saludoo
Se Puede hacer en un Galaxy de Movistar, es lo que he hecho yo.
El archivo, si has actualizado tu Galaxy a Froyo (2.2), es este:
http://project-voodoo.org/downloads/Voodoo-5-stable-RC1-Froyo-GT-I9000-odin-pda.tar
Para Eclair (2.1) este otro:
http://project-voodoo.org/downloads/Voodoo-beta4-GT-I9000-odin-pda.tar
Hola! TodavÃa no tengo mi Galaxy S, la semana que viene lo tendré, pero planeo instalarle el Vodooo. Tengo unas cuantas dudas acerca del método :
1) Se necesita el teléfono rooteado? Si es asÃ, podrÃas pasarme una App del Market para hacerlo? Gracias.
2) Hay peligro de dejar inutilizado el teléfono completamente (Sin posibilidad de recuperarlo)
3) Hay algun tipo de problema después de apagar el teléfono y volverlo a cargar? (Por las dudas xD)
Gracias por adelantado
Ah! Y una cosa que se me olvidó? También necesitaré desactivarlo cuando quiera actualizarlo a Froyo ? (Mi Galaxy S vendrá por Movistar, y según sé, no hay actualización oficial a Froyo aún)
Gracias de nuevo
Hola Enrique,
1) No, no hace falta rootear el teléfono para aplicar el Voodoo. De todas formas si lo quieres rootear busca en el market la aplicación “z4root”.
2) No si tienes posibilidad de entrar en modo download mediante la combinación de teclas (bajar volumen+home+encendido). La única manera de inutilizar el teléfono es desconectar el cable USB cuando estás en medio del flasheo de la ROM, y puede que ni asÃ.
3) No te entendà la pregunta
4) SÃ, antes de instalar una ROM que no sea la Voodoo es necesario desactivarlo (crear la carpeta “disable-lagfix”) y reiniciar el teléfono para que convierta las particiones internas de ext4 al RFS original, si no no terminará de arrancar (los kernel por defecto no llevan drivers ext4). Si llegas a ese caso, simplemente flashea de nuevo Voodoo, arranca el teléfono y entonces desactÃvalo bien y vuelta a empezar.
Gracias!
Ahora, depende de si mi Galaxy S sufra lags evidentes o no, pero parece que no hay problema con el teléfono después de instalar Vodoo. Por cierto, antes me referÃa, a después de un reinicio del teléfono por falta de baterÃa, o etcétera.
A parte del método de Odin, en la web de vodooo está uno alternativo y recomendado, que consiste en colocar en la raÃz de la SD el archivo, y ejecutarlo por el recovery, si estoy en lo cierto. Cual de los dos metodos recomiendas para un user novato?
Gracias de nuevo
Por cierto, hay forma de realizar Backup de la carpeta /efs sin ser root? Gracias again x3
Los lags han mejorado bastante en las últimas ROMs pero parece que hay unanimidad en que siguen ocurriendo. No es sólo tema de lags, por ejemplo con Voodoo el arranque del teléfono (que hace bastante lectura/escritura a disco, escaneado de música y fotos en tarjeta SD, etc) es bastante más rápido.
El sistema de ficheros ext4 es transaccional (implementa journaling), lo que significa que tras un apagado repentino como el que comentas, puede reconstruir las últimas transacciones para evitar que los datos queden en estado inestable y por tanto se pierdan datos (hasta cierto punto, como en cualquier sistema de ficheros). Por eso recomiendo Voodoo y no otros lagfix que usan ext2, más rápido pero sin journaling…
El método que comentas desde modo recovery tengo entendido que no funciona con el recovery estándar del teléfono, al no estar la ROM (archivo ZIP) firmada digitalmente por el fabricante u otra entidad permitida. Hay que usar el CWM (ClockWorkMod) recovery, un recovery mejorado que debe instalarse previamente en el teléfono mediante un flasheo.
Sin embargo mi Samsung Galaxy S era de los que tenÃan el modo recovery y download por combinación de botones desactivado de fábrica, y aunque por software pude recuperarlo, no es exactamente el mismo modo recovery (es el 3e en lugar del 2e) lo cual hace que el CWM a mà no me funcione (necesita acceso al 2e).
Además el CWM no era compatible con Voodoo hasta esta última versión, por lo que preferÃa no dejar el teléfono inoperativo y acabar usando igualmente ODIN. Desde la versión 5.0.1 Voodoo lleva el CWM ya instalado con lo que sà que se puede usar el método que comentas. Es más cómodo que usar ODIN al no necesitar PC, pero es bueno tener ODIN a mano porque si nos cargamos el sistema operativo del teléfono y no arranca, es el único método para recuperarlo.
Se me olvidaba, a la carpeta /efs sólo se puede acceder como root. Sin ser root no puedes subir de la carpeta /sdcard.
Gracias por solucionar todas mis dudas! Ahora sà me animo a usar Vodooo cuando mi Galaxy adolezca de lags insufribles =D
Una consulta, esto funciona para el I9000b (la versión sudamericana)?. Muchas gracias de antemano
Hola Hernan,
No, el I9000B no está completamente soportado, en este post comentan que es algo diferente a nivel hardware del I9000 y al aplicar el Voodoo la pantalla táctil es casi insensible a las pulsaciones y el bluetooth deja de funcionar, entre otros problemas.
Las ROMs para i9000 en general no parecen ir bien en el I9000B. Desconozco si habrá versión de Voodoo para el I9000B en un futuro, pero puedes preguntárselo directamente a su creador en su twitter.
Buenas. Mi pregunta es la siguiente. Tengo instalado el voodoo. Puedo acceder a modo roecovey mediante 3 botones sin problemas. Pero como accedo al menu download? Si pulso el combo de 3 botones entro en recovery. Al instalar el voodoo se desactivo el modo downloading?
gracias
Buenas!
Cuando dices “Una vez finalizado, el teléfono arrancará normalmente y habremos acabado” te refieres a que el teléfono arranca automáticamente o hay que arrancarlo de modo manual? Ya que en mi caso el proceso creo que ha acabado pero el teléfono no arranca por sà solo.