Vinculos Patrocinados:

domingo, 8 de noviembre de 2009

Guia Fácil Paso a Paso: Corregir Librerias OpenGL en Samsung Galaxy I7500, juegos 3D y aplicaciones [Guía ya obsoleta, pero con apuntes interesantes]



Samsung Galaxy, es el primer terminal de ésta firma Coreana con el SO Android de Google, un estupendo teléfono lanzado en 2009.

Estupendo era en las reviews y demás videos demostrativos que inundaron la red coincidiendo con su lanzamiento, pero, aún compitiendo de tú a tú con el HTC Magic en cuanto a Hardware se refiere, este terminal adolece de varias pegas en su software.

Algunas son comprensibles (bugs, ralentizaciones, etc) ya que Android no está diseñado para un sólo terminal en concreto.
Pero otras son incomprensibles, ya que le restan bastante rendimiento a Android y además, en un pasado estuvieron perfectamente implementadas.

Me refiero particularmente al soporte de aceleración gráfica OpenGL, que simplemente y sin motivo aparente, está mal implementado en las librerias internas de los últimos firmwares para Galaxy basadas en Android 1.5 "Cupcake", provocando una ralentización poco normal en las aplicaciones más exigentes gráficamente, o directamente hace imposible su ejecución.

Personalmente me pareció tremendamente extraño que una aplicación del Market llamada "Armadillo Roll" ni se pudiese casi ejecutar, y ante mi sorpresa, en este video de los chicos de Xataka Móvil corría fluidamente.
Además el movil utilizado por estos blogs suele tener versiones más antiguas de los firmwares que finalmente aparecen con los moviles a la venta.

Además este problema afectaba directamente a otras aplicaciones tan populares como Speed Forge 3D, iLightr (Un curioso simulador de mechero portado desde el iPhone), Space Physics, Meteor y Labyrinth por poner destacados ejemplos.

Me puse en contacto con Xataka Móvil y varios usuarios del Galaxy: No era el único al que le pasaba esto y en el blog confirmaban lo visto en el video, así que le mandé un email al SAT de Samsung, que me han respondido un mes después, diciendome que lleve el terminal al servicio técnico, sin más datos (y sin ser la solución correcta, evidentemente).

MANOS A LA OBRA:

Hace un par de días me enteré gracias a un foro francés de que lo que os he comentado arriba antes se debía al fallo de un archivo ubicado en el directorio /system/lib/ del dispositivo, y se soluciona modificando éste archivo por otro igual perteneciente a las librerias de HTC. Además, la solución aparece por más lugares de la red como éste foro en inglés o éste otro en alemán, pero no en español, asi que sin más, pongámonos manos a la obra.

En primer lugar aclarar que para poder modificar el archivo corrupto/dañado del terminal Galaxy hay que ser ROOT, cosa que no pude conseguir con una aplicacion llamada Instant Root, así que directamente lo rooteé con otra técnica encontrada en el foro hdblog.it.

Todos los pasos de ésta guia han sido realizados bajo Windows XP SP3 y con el firmware I7500XXII5 de Android 1.5 Cupcake instalado en el Galaxy, es posible que con otras versiones no funcione de igual modo, o que en futuras actualizaciones todo esto deje de funcionar o haya que repetir el proceso con archivos actualizados.
No me hago responsable de los daños o pérdidas que estas técnicas puedan ocasionar en el teléfono, cada uno es libre de seguirlas bajo su propio riesgo.


GUIA PASO A PASO:

Los archivos necesarios para los pasos que yo he realizado están disponibles aquí
Éstos archivos se componen de:
- Los drivers usb optimizados por mí para Samsung Galaxy (también es recomendable instalar los del New PC Studio)
- Las aplicaciones adb y fastboot extraidas del SDK 1.5 r3 de Android
- Los archivos de ROOTeo "Recovery v4.2" del blog HDblob.it
- Un programa descompresor de imágenes .img con su dll necesario

Antes de hacer nada, es muy recomendable hacer un Backup de todos nuestros datos, números de teléfono y aplicaciones por si hubiese algún problema en el transcurso de ROOTeo o instalación del archivo.
Yo usé un programa llamado My Backup Pro v 2.0.5.

-Hacer ROOT (basado en el método de HDBLOG.it):

1. Debemos asegurarnos de que el móvil esta en Modo Depuración USB: Ajustes -> Aplicaciones --> Desarrollo --> Depuración USB

2. Descomprimiremos las carpetas root y usb_driver del archivo RAR en nuestro PC.

3. Conectamos el móvil al PC e instalamos con el Administrador de dispositivos de Windows el driver del dispositivo desconocido (dentro de la rama de dispositivos Samsung) indicando que busque el archivo en nuestra carpeta descomprimida /usb_driver/x86.

4. Apagamos el móvil y lo iniciamos en modo fastboot (pulsar tecla llamada + tecla colgar/apagar, a la vez y durante varios segundos). El ordenador nos detectará un nuevo dispositivo Android 1.0, le instalamos nuevamente el driver como en el paso 2. Segúramente mientras se instala el driver en el PC, el movil comenzará a cargar el sistema Android, sacadle la batería para apagarlo directamente.

5. Ya con los drivers correctamente instalados y el movil conectado por USB, pero apagado, nos disponemos a usar los comandos adb. Os recomiendo poner la carpeta descomprimida root en el directorio Disco Local C:, para mayor comodidad.
Abrimos el terminal Simbolo de sistema de Windows (Inicio>Ejecutar>cmd.exe) y nos situamos en la carpeta root (escribimos cd.. , cd.. y cd root).
Ahora escribimos lo siguiente:

fastboot flash recovery recovery.img

y aparecerá el mensaje < Waiting for device > en el PC, entonces volvemos a encender el movil en modo fastboot, el PC lo detectará automaticamente y comenzará a leer y a escribir la partición recovery de nuestro Galaxy, al final el PC y la Galaxy pondran OKAY (si diese error en este paso se debería borrar el cache de fastboot, buscad en google)

6. Encendemos el móvil en Modo Recovery (Botón Volumen abajo + Botón Coger Llamada + Botón Colgar/Apagar pulsados a la vez y durante unos segundos) y aparecerá el menú mini-recovery:



entonces escribimos en el PC lo siguiente:

adb push RECTOOLS.tar.gz /sdcard/

y despues

adb shell sync

(si nos diese el mensaje device offline en el PC, simplemente desenchufad y volved a enchufar el USB).

7. Ahora escribid:

adb shell reboot recovery


y el movil se reiniciará automáticamente en modo recovery y aparecerá esta pantalla en el móvil:



8. Seleccionamos enable root (su) en la lista, pulsamos la tecla OK y confirmamos con la tecla HOME, después seleccionamos Reboot system now en la lista para volver a Android, ya tenemos el ROOT hecho.


- Como modificar el archivo corrupto OpenGL con el de las librerias de HTC:


Para ello debemos conseguir el archivo en cuestion (/system/lib/libhgl.so) desde un HTC ROOTeado o, en su defecto, desde la pagina de los Releases de HTC.
Si optais por bajarlo desde la web de HTC, os debeis descargar el archivo de imágen: Android 1.5 / System Image / signed-google_ion-img-150275(zip).

1. Ahora volvemos a abrir el RAR subido a este blog y descomprimimos la carpeta llamada descomprimir img preferentemente en directorio Disco Local C:, abrimos el archivo que nos acabamos de bajar de HTC y descomprimimos system.img en esta carpeta llamada descomprimir img.

2. Abrimos el terminal Simbolo de sistema de Windows (Inicio>Ejecutar>cmd.exe) y nos situamos en la carpeta descomprimir img (escribimos cd.. , cd.. y cd descomprimir img).

Ahora escribimos lo siguiente:

unyaffs system.img


La imagen se descomprimirá en esa misma carpeta y entonces accedemos a la carpeta /lib/ donde está el archivo libhgl.so, lo copiamos al /sdcard/ del móvil.

3. Conectamos otra vez el PC al móvil y ya sólo nos queda hacer lo siguiente:

En el terminal Simbolo de sistema de Windows nos situamos en la carpeta c:/root, como hemos hecho anteriormente, y escribimos estas frases una tras otra:

adb shell (entramos en el $ prompt del móvil)

su (así activamos el modo root/super usuario del movil)

En éste momento el móvil pedirá permisos para dejar al PC acceder como ROOT, una vez aceptado aparecerá un simbolo #

mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system (así se establece el modo lectura/escritura en la carpeta /system/)

mkdir /system/backup (creamos una carpeta llamada backup)

cat /system/lib/libhgl.so>/system/backup/libhgl.so (copiamos el archivo original a la carpeta que hemos creado, como método de seguridad)

rm /system/lib/libhgl.so (eliminamos el archivo original)

cat /sdcard/libhgl.so>/system/lib/libhgl.so (copiamos el archivo de HTC a la carpeta donde estaba el original)

4. Se acabó.

Para asegurarnos de que las rutas de los archivos copiados son correctas, podemos usar un explorador de archivos como EStrongs File Explorer

Con todos estos pasos vereis un rendimiento 3D en vuestros Samsungs Galaxy como nunca antes habíais probado.

Espero que todo esto os haya ayudado lo suficiente, y que si Samsung no lo hace, debémos ser nosotros los que de algún modo le pongamos solución.

Gracias por tu visita. Puedes seguirme en twiter @rayadesvarios Saludos.

22 comentarios:

Shatya dijo...

Hola Rayadv,

Te sigo desde Gsmspain (donde ya tienes mi verde). Muy bueno el tutorial, de momento ya he rooteado el movil pero me he quedado atascada en las librerías. En los pasos nº 2 y 3, el móvil cómo debe estar?? encendido? apagado? en modo fastboot? en recovery?

No me he animado a seguir hasta tener claro este punto.

Y cambiando de tema, ¿te has animado a cambiarle la rom y probar la famosa galaxhero?? Yo estoy como loca por probarla pero me da "miedito". Si te animas, estaría genial que hicieras un tuto tan clarito como este.

Gracias por la ayuda que ya nos has dado a todos los poseedores de una galaxy y por la que seguro nos seguirás dando.

Un saludo,

Shatya

Shatya dijo...

ooops! te he dicho que te seguía de Gsmspain y no, era desde Htcmania... eso me pasa por tener 8000 ventanas abiertas... ahora lo que no sé es a quién le he dado yo mi voto positivo en gsmspain... toy más pa'allá que pa'acá! :)

Raya dijo...

Hola Shatya!! En los paso 2 y 3 el movil debe estar encendido (si te das cuenta, en el paso 3 aclaro que debes dar permisos Root cuando el movil te pregunte... y los permisos se dan con un programita que se te ha instalado al hacer root) por lo demas... no se si haré lo del Galaxhero, ¿que ventajas tiene esa rom? yo lo de OpenGl lo he hecho porque me parece injusto no poder disfrutar en Galaxy lo mismo que hacen los Htc,y si de paso ayudo a los demás con este post, pues mucho mejor. Y por cierto... estoy en Gsmspain y en htc mania, asi que lo mismo no te has confundido jajaja. Un saludo

Shatya dijo...

Hola Raya,

Pues la rom Galaxero está colgada en el mismo blog italiano de donde sacaste las instrucciones para el root:

http://forum.hdblog.it/showthread.php?t=4842

Tienes un video para que veas cómo va... por lo que comenta la gente va muy fina, agiliza muchas cosas y además estéticamente es más bonita. No sé, igual es una tontería... o igual no

Por cierto, para que no quedaran dudas, te he buscado otra vez en GSMspain y ahora sí que sí tienes mi verde (el prime!)

Shatya dijo...

con que también colaboras en and.roid.es?? chico, te encuentro en todas partes! así el que no se entera de cómo rootear es porque no quiere...

Bueno, ya dejo de monopolizarte el post :P

Raya dijo...

Hola!! en androides estaban haciendo un especial sobre ROOteos de terminales Android y han tomado prestado mi método, pero no colaboro allí.

Y lo del Galaxhero... nose mujer, a mi no me llama mucho la atención, porque tantos efectos chuparán mucha más bateria y con lo que ya gasta éste movil por si solo...

Por ahora no veo necesario intentarlo, aunque tambíen decía lo mismo del Root jeje.

Saludos.

Shatya dijo...

Ya, pero es que tiene una cosa muy chuli que me gustaría poder hacer y que ahora mismo no se puede: Carpetas en la pestaña de las aplicaciones!!

Es que odio que esté todo así de revuelto! Vengo de symbian y aunque sea más básico y todo lo malo que quieras, organizadito sí era. Yo tenía todas las aplis ordenadas en sus respectivas carpetas "teléfono", "oficina", "multimedia", "gps"... y ahora con android me vuelvo loca. Sólo puedo hacer carpetas en los escritorios pero ni siquiera puedo renombrarlas! (o eso o es que todavía no lo he cacharreado lo suficiente para saber cómo se hace)

En fin, que yo creo que sí investigaré a ver cómo meterle la rom pa ver cómo pita. Si me sale bien, te cuento cómo.

Raya dijo...

Para renombrar una carpeta, creala, abrela y arriba, en la barrita donde pone el nombre, tocas y te deja escribir el nuevo nombre.

Si pruebas el Galaxhero, ya me cuentas que tal.

Un saludo.

isra dijo...

Hola Raya,
Si quieres colaborar en androides puedes ;) avisame y te doy una cuenta de escritor

Shatya dijo...

Hola Raya,

Soy yo otra vez. Hoy por fin he encontrado tiempo para ponerme con las librerías.

Resulta que me quedo en la frase
"mkdir /system/backup"

Me da el siguiente mensaje: "mkdir failed for /system/backup, Read only file system"

y claro, aunque continúe, todo el rato me da el error de que la carpeta es inexistente.

qué hago mal?

Raya dijo...

Debes seguir los 2 pasos anteriores al pie de la letra (entrar en modo SU y lo de mount) ya que lo que te ocurre es que no lo has montado aún en modo lectura/escritura, sólo lo tienes en modo lectura.

Raya dijo...

Y lo que estás intentando hacer es crear una carpeta con el comando mkdir... que no me he explicado jeje
De todos modos al lado de cada comando aclaro para que sirve.

Shatya dijo...

Vale, algo mal debía haber hecho en las dos primeras frases.

Lo he vuelto a repetir todo desde el principio y no me ha vuelto a dar ningún error y ya tengo las carpetas y todo bien creado. A ver si noto la diferencia. Voy a instalarme el armadillo roll a ver si me va.

Gracias por todo Raya!

Raya dijo...

Comentanos si ha ido bien la solución a tu problema, ¿funcionan ya las aplicaciones? ¿has probado a instalarte algunas de las que comento en el post?

Shatya dijo...

Pues la verdad es que he hecho lo de las librerías sólo por mejorar el terminal, no porque realmente me hubiera encontrado con ninguna apli que me diera problemas, pero bueno, lo hice por si acaso.

He probado a instalarme el armadillo roll que era el que te iba mal a ti y va perfecto,así que supongo que todo está arreglado. Aunque es cierto que no lo probé antes, pero vamos, si tienes un galaxy y no te iba, es de suponer que a mi tampoco me iba a funcionar sin las librerías OpenGL

Raya dijo...

Shatya, he decidido instalar la ROM Galaxhero, en unas horas tendrás la guia publicada en http://and.roid.es
Saludos

Ana dijo...

Genial!!!

Llevaba unos días pensando en pasarme por tu blog a ver si habías colgado algo nuevo (creo que me voy a suscribir y acabo antes) y también para preguntarte qué tal llevabas el tema Galaxy, si estabas contento con él y tal... (es que no “conozco” a nadie más que lo tenga y después de darte tanto la brasa, te tengo como de la familia :P)

Yo estoy muuuy contenta... de hecho mi alegría va en aumento. Al principio estaba un poco a la espectativa porque no sabía si iba a terminar de convencerme... los primeros días lo veía demasiado básico y como si estuviera a medias, sin terminar y encima después de ver la chapuza del Bluetooth y lo de las librerías estuve en un tris de volver a mi viejecito pero siempre funcional symbian. Pero bueno, tú me solucionaste lo de las librerías (mil gracias!!!) y cuando empecé a descubrir los tesoros que esconde el market -entre tanta porquería- empecé a cambiar de opinión... y la verdad es que ahora estoy encantada y lo cierto es que con las aplicaciones correctas tienes un pedazo de makinón. Y espero que con la rom Galaxhero lo mejore más aún. En cuanto llegue a casa lo pruebo y te cuento.

Lo único que todavía no he conseguido solucionar es el tema del Bluetooth. Aún siendo Root, el Bluex no funciona (y además el programador ha abandonado la apli y no responde) y el Bluetooth Filetransfer tampoco va muy fino, de hecho ya anuncia que en los Galaxy no funcionará hasta que tengamos la Eclair. ¿tú has conseguido hacer que te funcione el BT para enviar y recibir normalmente?

Un saludo,

Ana

Shatya dijo...

La de antes era yo... jejejeje... es que tengo dos id en google y me he liao!

Raya dijo...

Hola de nuevo Ana/Shatya jeje
Hay un montón de usuarios con Galaxy, al menos en GSMSpain y HTCMania hay varios, no somos solo 2 jeje.
Pues a mi me pasaba como a ti, al principio no me convencia mucho y la verdad es que tiene muchos peros... pero te acostumbras y con el Market se mejora.
El Bluex lo instalé y me detecto que era pirata, en HTCMania vi una tecnica para instalarlo y que no te lo detectase, pero era algo larga y no lo hice al final, de todos modos hoy en dia el bluetooth, yo al menos no lo uso mucho, para pasar chorradas por el movil, pues las mando por internet, pero vamos, que con Eclair a ver si de verdad lo solucionan, por esperarnos un par de meses (o menos) pues no pasa nada.
El Galaxhero va genial, mucho mas rápido, la bateria creo que va mejor, y trae un diseño muy chulo, eso si, debes formatear la particion de sistema y reinstalarlo todo otra vez. Y el único problema que le veo es que algunas aplicaciones se quedan congeladas, y no se si es fallo de la ROM, de mi movil o de ambas cosas, pero ya se habría quejado la gente en masa si fuese la ROM, habré metido algo que no debia seguramente...

Ahora escribo en androides, en la dirección que te puse antes, asi que agregate esa, y esta si quieres, pero aqui escribo menos.

Un saludo

Shatya dijo...

Juas! qué mala es la ignorancia!!! lo del nandroid no es un programa sino una opción en el modo recovery, ¿me equivoco?

Vaya telita tengo!

tomas dijo...

Hola, estoy intentando (sin demasiado exito) hacer root en mi galaxy. De momento llego bien hasta el paso 6, enciendo el galaxy en modo recovery sin pegas, pero en el momento pongo los comandos adb "adb push RECTOOLS.tar.gz /sdcard/", me dice: "error: device not found". Alguna idea? Gracias de antemano

tomas dijo...

Ops! Todo solucionado... Eran los drivers, la primera vez no se instalaron al completo. Gracias de nuevo