Vinculos Patrocinados:

miércoles, 18 de noviembre de 2009

Tensa histora de amor entre "Jonatan" y "Jeni"

"De como la damisela Jeni intentaba embaucar al masculino Jonatan a base de bajadas de tensión y patadas en la boca al diccionario de la RAE"

(Clic en la imagen para ampliar)

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.