Artículo: Firmware al descubierto -> 1.1.3

El iPod/iPhone como aparato electrónico se apoya en un software que lo controla, del mismo modo que un PC por sí solo no sirve para nada. Cuando nos solemos referir a un tipo de software incluido en un dispositivo electrónico como una memoria flash, EEPROM, ROM… generalmente se usa el término de firmware. Luego podemos decir que el firmware del iPod/iPhone no es más que todo el software que lo controla. Decír que es el “Sistema operativo” sería falso. Dentro del firmware podríamos encontrar en este caso un sistema operativo de apoyo, pero la firmware en sí no es un sistema operativo.

Aclarado este punto, ¿por qué de cuando en cuando Apple saca una actualización de Firmware? Bueno, como todo software esto es completamente necesario si se quiere añadir nuevas funciones, pulir fallos, mejorar el rendimiento… Por ello es siempre importante en la medida que se pueda mantenerlo siempre actualizado.

¿Pero que hay realmente dentro de la firmware de Apple? ¿que es lo que se descarga itunes? Bueno, es lo que vamos a aclarar.

Antes de explicar de que se compone esta firmware hay que tener unas nociones mínimas de Linux/Unix. Y esto se debe a que el OS (El sistema operativo) en el que se apoya nuestro jugete es MAC OS, o una versión de él, y MAC OS procede de Darwin, que está basado en UNIX. Es decir, que dentro de MAC OS veremos multitud de similitudes con Linux.

Dicho este pequeño paréntesis, seguimos. Podemos descargar manualmente la firmware desde los servidores de apple y empezar con el análisis:

iPod 1.1.3 -http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw

iPhone 1.1.3 -http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw

Aunque a priori nos pone que es un archivo ipsw no es más que un archivo zip q podremos descomprimir con cualquier programa. Los dos archivos son prácticamente iguales, así que tan solo haremos referencia a uno de ellos, en este caso al del iPod.

Si descomprimismo el archivo iPod1,1_1.1.3_4A93_Restore.ipsw nos encontramos con lo siguiente:

/…
022-3742-100.dmg
022-3745-250.dmg
022-3748-284.dmg
kernelcache.release.s5l8900xrb
Restore.plist -Un archivo descriptivo sobre los archivos que tiene el paquete descargado

Firmware/all_flash/all_flash.n45ap.production
applelogo.img2
batterycharging.img2
batterylow0.img2
batterylow1.img2
DeviceTree.n45ap.img2
iBoot.n45ap.RELEASE.img2
iBoot.n45ap.RELEASE.img2
manifest
needservice.img2
recoverymode.img2

Firmware/dfu
iBEC.n45ap.RELEASE.dfu
iBSS.n45ap.RELEASE.dfu
WTF.s5l8900xall.RELEASE.dfu

———

Eso es todo lo que encontramos. Ahora bien, podemos profundizar más en cada uno de los archivos por separado.

022-3742-100.dmg:

Es la Imagen del OS. Contiene todos los archivos del sistema operativo. Es una imagen DMG estandar encriptada. Para poder acceder a los datos en ella se debe de desencriptar anteriormente. Es como si fuera una imagen de disco ISO o BIN. Las imágenes de disco en MAC son DMG. Cada imagen de OS de cada versión de firmware ha estado encriptada con una key diferente en cada ocasión. En esta ocasión, la key es la misma para tanto el iphone como para el ipod touch, y dado q la key se ha publicado en muchos lugaras, no voy a copiarla aquí, además de no saber exactamente lo legal q pueda ser, pero os dejo el inicio y fin para quien quiera buscarla.

key: 1107..5816

Como hemos dicho, para desencriptarla es necesario usar algún programa para DMG encriptados, como por ejemplo vdecrypt, q se puede obtener en muchso lugares, por ejemplo de aquí:

http://iphoneelite.googlecode.com/files/vfdecrypt.zip

Su uso es simple:

vfdecrypt -i [imagen encriptada] -o [imagen desencriptada ] -k [key]

Una vez realizado todo el proceso se puede montar la imagen … Leer Más...

Unlock y Jailbreak para todas las versiones de iPhone (Actualizado)

Hace un par de días nuestro amigo Zibri sacó un método muy sencillo y rápido para hacer JB y liberar cualquier iphone, sin necesidad siquiera de pasar de una en una versión. Todo lo q se necesita es tener una versión 1.1.3 restaurada y su software. Es muy simple:

1º. Se necesita descargar el programita, tanto para Windows como MAC OS:

http://downloadziphone.org/ZiPhone2.3.zip

2º. Como he dicho tener un iPhone 1.1.3 sin JB
3º. Abrir el programa ziphoneGUI y marcar las opciones q deseemos, lo normal será querer marcar todas, incluyendo el modo debug (verobose).
4º. Darle a START. Al cabo de unos minutos el iphone se reiniciará solo y todo debería de estar funcionando correctamente

No tengo ningún iPhone, así q esto es tan solo informativo.

Parece cer q funcionaría tb para los Ipod Touch, pero dado q despues de hablar con muchos usuarios y el método funcionar a algunos si algunos no… no recomiendo hacerlo por ahora. En el caso del iPod touch tan solo tendríamos q marcar la opcion JailBreak y el modo verbose. Si todo funcionase bien el ipod arrancaría perfectamente con el Installer. Si no es así en la pantalla del Ipod tendríamos una y otra vez el mismo error:

“BSD root: md0, major 2, minor 0”

Llegados a este punto, tendríamos q restaurar con iTunes como tantas veces.

Un saludo amigos.… Leer Más...

Soporte Flash

Esta mañana al despertarme leía una noticia sobre soporte flash para nuestros dispositivos. Esto no tendría mayor importancia dado la tantidad de falsos rumores q siempre inundan este mundo. Pero parece ser q las noticias se consolidan poco a poco.

Flash ha sido sin duda la función mas solicitada para nosotros desde q saliera al mercado. Muchos dijeron q no había sido posible dado a el gran consumo de batería q ello requeriría. Pese a esto ser cierto, la verdad es q no se había incluido por problemas de negociaciones de Apple con Adobe. Recordemos q flash pertenece ahora a Adobe, y si cualquier productor quiere usar flash tiene q pagar.

Bueno, pues parece ser q estamos a punto de ver salir a la luz el soporte para flash, y no hablo de meses, sino de días o semanas. La especulación dice q a la vez del SDK, pero cada cual puede hacer sus propias quinielas.

Os dejo el enlace a la noticia:

http://www.gearlive.com/news/article/q108-flash-on-iphone-is-just-around-the-corner/… Leer Más...

Proyecto: User Agent (Actualizado)

Muchas webs filtran el contenido de estas según el User Agent del navegador que se esté usando. Así por ejemplo si navegamos en google en un PC o en un iPod Touch, el contenido a priori es completamente diferente.

Muchas veces desamos poder acceder a este tipo de contenido en el PC. La solución pasa entonces por modificar el User Agent del navegador. Esto no suele ser algo tan trivial.

En Internet Explorer por ejemplo, no conozco ahora mismo ninguna aplicación que lo haga de manera simple, y la única forma de hacerlo es por medio de un Proxy que capture todo el tráfico por el puerto 80 y modifique las cabeceras para establecer el User Agent que deseamos.

Para Firefox la cosa es más facil, ya q podemos modificarlo si accedemos directamente a las opciones de configuración avanzadas (about:config en dirección) o tb podemos usar addons para crear tantos User Agents q queramos y cambiar de uno a otro con tan solo un clic de ratón. Por supuesto tb se puede usar cualquier proxy para esta labor.

En cualquiera de los casos, bastaría con poner el User Agent del iPod o del iPhone (según queramos) para acceder a dicho contenido.

Esto tb puede resultar treméndamente util a la hora de descargar en el PC ciertas aplicaciones. Me explico. Desde Installer podemos descargar una gran cantidad de aplicaciones, desde fix hasta juegos. Para quien es curioso por naturaleza (dnd me incluyo) no instalo nada sin saber antes q estoy metiendo. Quien nos dice q la app q nos estamos descargando es una app o es un virus? Además, se aprende.

Los repositorios como sabeis no son más q listados en un archivo xml con las rutinas de instalación, desinstalación y actualizción de las app, así como el nombre y la ruta desde la cual se descarga la aplicacion.

Accediendo a los repositorios tendremos acceso al listado de aplicaciones q en ella se encuentran, pudiendo acceder a las rutas de las aplicaciones para su descarga directa en el PC. Pero para evitar esta picardía la mayoría de todos los reposositorios solo responden hacia ciertos tipos de User Agent. Así se evita q un PC acceda. Es decir, si el User Agent no coincide con el q ellos filtran, no tendrás acceso a dicho repositorio o a dicha aplicación.

Un ejemplo Real

Si intentamos acceder al repositorio oficial desde el PC -http://repository.apptapp.com/ nos devolverá una página de información, no al repositorio -http://www.apptapp.com/
El servidor nos redirige pq nuestro User Agent no coincide con el buscado. Sin embargo sabemos q desde el installer, el iPod Touch/iPhone tiene acceso a él.

Otro ejemplo es si queremos descargar la aplicación iPhoneHome. Cuando accedemos al repositorio vemos q la URL es: http://repo.smxy.org/iphone-apps/zips/iphonehome-0.7.3.zip, y sin embargo, todo aquel q intente descargar ese archivo no podrá.

Por ello es necesaio la modificación del User Agent

Antes la mayoría de los repositorios no tenían siquiera ningún tipo de filtrado de User Agent, pero poco a poco lo han ido implementandolo. Antes usaban el mismo User Agent de Safari del iPod/iPhone, pero a día de hoy incluso lo han cambiado para que solo pueda tener acceso el iPod/iPhone a través del installer, el cual usa un User Agent específico.

Dicho esto, tan solo queda poner los diferentes User Agent q podemos necesitar:

iPod 1.1.1 -… Leer Más...

Apollo

Aunque muchas de las aplicaciones para ipot/iphone funcionan correctamente bajo la versión 1.1.3, esto no es así para otras muchas. En este caso ponemos de ejemplo Apollo, por ser una de esas aplicaciones que muchos interpretan como imprescindibles. Tan solo se deben de dar algunos pasos, eso sí, cuanto más se esté familiarizado con unix/linux más facil será también para nosotros:

1º. Instalar BSD subsystem y OpenSSH en el ipot/iphone desde el Installer
2º. Copiado el archivo http://rapidshare.com/files/90812672/suidlibfix.html en la carpeta /bin del ipot/iphone
3º. Instalar Apollo.
4º. Ejecutar Apollo y configurar una cuenta -Al conectar nos dará error, pero el archivo ya se habrá creado
5º. Descargar el nuevo archivo de host http://rapidshare.com/files/90812946/hosts.html Esto es necesario dado que MS de cuando en cuando modifica los servidores. Al parecer Apollo no resuelve las peticiones DNS, sino que se apoya en un archivo host para esta tarea, con lo que es necesario modificar este archivo cada vez que MS modifica algún servidor.
6º. Acceder por SFTP (WinSCTP) al ipot/iphone y sustituir el archivo host por el descargado previamente. Para sustituirlo primero lo eliminaremos y despues lo copiaremos dentro. El archivo se encuentra en las siguientes localizaciones

/Applications/Apollo.app
/private/var/mobile/Library/Preferences
/private/etc

7º. Crear un Symlink a preferences a través de SSH:

ln -s /private/var/mobile/Library/Preferences /private/var/root/Library/Preferences

8º. Ejecutar Apollo y ver si funciona. Si funciona se acabó, si no funciona seguimos con el paso 9
9º. Entramos en SSH y tecleamos lo siguiente:

suidlibfix
chmod +s /Applications/Apollo.app/Apollo
chmod 755 /Applications/Apollo.app/*

Cerramos SSH y listo.

Muchas de las aplicaciones están siendo portadas de todos modos a la versión 1.1.3, desde temas para SummerBoard hasta la gran mayoría de las aplicaciones en activo.
Leer Más...

Volver a arriba

Sobre Mí

Alma Oscura por Theliel is licensed under a Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 Unported License.
Política de Privacidad.
Para otros permisos que puedan exceder el ámbito de esta licencia, contactar en blog.theliel.es/about/contactar.