domingo, 30 de marzo de 2008

ZiPhone 3.0 (ACTUALIZADO)

Dentro de unas horas, cuando actualice esta entrada, tendremos disponibles el Ziphone 3.0. Entre otras funciones tendremos:

-No más la necesidad de usar el Fix de la NVRAM
-Solución para algunos iphone de la cobertura WIFI
-Solucion para los iphone q tenian problemas con YouTube
-Meter aplicaciones en el mismo JB (si no he entendido mal)
-Posiblidad de aumentar las capacidadades con plugins

http://files.ziphone.org/ZiPhoneWin-3.0.exe

Efectivamente, ziphone ha sido mejorado, aunq personalmente aun no veo muy util su sistema de plugins. Se basa ni mas ni menos de crear un ZIP con las aplicaciones que deseamos subir. Por ejemplo, podríamos crear una zip con lo siguiente:

/Applications/MobileFinder.app
/Applications/Mines
/Applications/Customize2

todo ello comprimo a un zip llamado blucher.zip en la misma carpeta q ziphone. Una vez realizado, con presionar el botón de install plugins, ziphone nos subiría todas las aplicaciones y/o archivos contenidos en dicho zip. En realidad no me parece nada del otro mundo, tan solo q si le das a JB y tienes tu blucher dentro de la misma carpeta, a la hora de hacer el JB lo mete tb.

Lo que creo q si ha mejorado ha sido incluir en el JB OpenSSH y BSD, aunq ello es bueno y malo. Bueno pq ahorra tiempo, malo pq son aplicaciones q podemos querer actualizar, pro ejemplo poner cydia o un OpenSSH más actual

sábado, 29 de marzo de 2008

Pianist 2.0

Esta tarde refrescando fuentes me apareció esta actualización de la magnífica aplicación de MooCowMusic.

Para todos los amantes de la música. Ahora podremos grabar o reproducir nuestras sesiones, así como un control mucho más natural y util del teclado a la hroa de desplazarnos por el teclado de las 88 teclas

Esta actualización sale unos dias despues de que su creador diera a conocer su gran disgusto por la comunidad del SDK y de Apple, por fomentar la competitividad no sana. Basicamente no explicaba su historia.

Resuminedola, cuando el SDK a usar era un ToolChain creado por la misma comunidad de programadores, él y muchos compartian ideas, se ayudaban... todo para fomentar y crear grandes aplicaciones accesibles a todos, gratuitas... Pero la aparición del SDK de apple y el futuro AppStore hizo frontarse las manos a mas de un programador y más de uno lo tenía claro: cojo las ideas de muchos, mucho de codigo abierto por cierto que hay por ahí, la ayuda que me han prestado otros, lo junto todo, lo licencio y si hace falta lo patento y lo meto en el AppStore a 5$ (por poner un precio). Y ahora si quiere que vengan otros y se quejen o digan q la idea o el código fue suyo. Pues por desgracia esto le pasó al creador y posiblemente dentro de poco veamos una app de pago muy similar en ideas y en contenido a Pianinst.

De nuevo queda claro el capitalismo y como las personas se corrompen a la hora de hablar de dinero. Esta bien querer ganar dinero, no es etico ni moral ponerle la pierna a un compañero para enriqucerse a su costa. Al menos tener la decencia de tener tus propias ideas y jugar limpio.

Desde aquí animo a su creador y mas sincero respeto a su trabajo.

Las imágenes las colgaré cuando tenga tiempo... que recuerdo que aun no tengo mi iPod Touch.

viernes, 28 de marzo de 2008

SDK Beta 2

Bueno, sin mucho bombo y platillo se ha liberado la segunda beta del SDK. ¿Como? ¿Beta? Sí. el SDK que vió la luz tan solo hace unas semanas no era más que la primera beta. Apple ha tenido problemas desde un principio con el SDK, cuando el dice que es por controles de calidad para impedir cualquier posible daño al dispositivo en realidad quiere decir invertir mucho dinero en proteger a toda costa el negocio de las aplicaciones. Si apple quiere tener éxito, tendrá que asegurarse una buena forma para la distribución de aplicaciones y que todo el mundo esté contento, cosa muy difil.

Para añadir más pelica al asunto, si el SDK quiere tener éxito Apple se verá forzado poco a poco a implementar en la API más funciones que otorgen al programador más control sobre el dispositivo, dado que de no ser así muchas aplicaciones serán imposibles de ver en el AppStore, empezando por las más conocidas como SummerBoard, Customize, Emuladores... y por supuesto imposibilitará la aparición de los llamados Tweak, como por ejemplo aquellos para cambiar la fuente del dispositivo o añadir opciones "secretas".

Lo que está claro es que hasta que no llege Junio no veremos mucho.

Un saludo.

lunes, 24 de marzo de 2008

iPod Touch en la enfermería





Lamentablemente hoy he debido de hacer una visita al doctor SAT para que cure a mi pobre iPod. Despues de notar durante unos días que el botón de Home empezaba a fallar, esta mañana decidió no volver a funcionar. Dado que se encuentra en garantía no hay necesidad de experimentar ;) y espero tenerlo pronto de vuelta.

Solo espero que tengan cuidado con él ;)

miércoles, 19 de marzo de 2008

Artículo: Copias de seguridad, Rutas de archivos y otros

Raro es el día que no oigo a alguien preguntar por la ruta de algún archivo del que quieren realizar una copia de seguridad, o algún archivo subsceptible de ser editado. Como listar el 100% de los archivos sería un tanto absurdo, mejor hacer un listado de los archivos o rutas que podemos encontrar más interesantes, por querer realizar copias de seguridad, copiar datos... cuanto más sepamos de la estructura interna del dispositivo más control tendremos sobre él, y el por qué un archivo va en un lado u en otro. Hay q tener también en cuenta, que este listado se basa en las ubicaciones por defecto, si se han realiazado SymLinks u otros, se debe de tener esto en cuenta. Por otro lado todos los archivos presentes, están basados en la versión 1.1.4, su uso en cualquier otra versión puede no ser remoendado:


./Applications

En esta carpeta se almacnanestarán las aplicaciones por defecto. Desde calendario, notas, Teléfono... las aplicaciones instaladas a través del Installer también serán almacenadas aquí. Cada aplicación estará dentro de su correspondiente Carpeta.app, exceptuando aquellas aplicaciones que son aplicaciones de linea de comandos o similares

La estructura de cada Carpeta.app dependerá ya de cada caso, pero por regla general la estructura de estas carpetas es la misma.


./Applications/Carpeta.app/Idioma.lproj

Estas carpetas son los diferentes idiomas en los que se encuentra traducida nuestra app. Existirá una carpeta lprog por cada idioma que tengamos. Esto es util saberlo, ya que para ahorrar espacio podremos borrar aquellas carpetas de idomas que no usemos o también editar los archivos descriptivos para hacer nuestras propias traducciones.


./Applications/Carpeta.app/Archivos.png

casi todas las app tienen uno o varios archivos de imágenes .png que se usarán a modo de interfaz de la aplicación. Estos .png por lo tanto se pueden modificar o crear nosotros algunos personalizados. En esto precisamente se basa Customize. Estos archivos serán muy comunes encontrarlos a lo largo de todo el sistema de archivos. Hay que tener en cuenta, eso sí, que apple usa archivos .png no estandares, y puede ser posible convertirlos antes con alguna herramienta para poder editarlos correctamente en el PC.


./Applications/Carpeta.app/Info.plist

Cada aplicación lleva asociado un archivo Info.plist. En el se almacenan datos básicos como la versión de la aplicación, el nombre... y algunas características más de la aplicación.


./Applications/Carpeta.app/Carpeta

Normalmente es la aplicación en sí, el ejecutable por así decirlo.


/Applications/Apollo.app/Host

Archivo Host de Apollo. En un archivo host se asocian nombres a IPs, es como un pequeño archivo que nos hace de servidor de DNS. Este archivo es el responsable que Apollo no funcione correctamente. Si MS modifica los servidores de DNS de Messenger, es necesario modificar este archivo. En el momento de escribir este post, este archivo deberá de tener las siguientes entradas para que funcione correctamente:

64.12.161.185 login.oscar.aol.com
65.54.179.216 nexus.passport.com
65.54.183.203 login.live.com
65.54.239.20 messenger.hotmail.com
65.54.239.21 gateway.messenger.hotmail.com
65.54.179.193 loginnet.passport.com

Seguramente el archivo host antiguo que hace una de las primeras causas de que no funcione, tenga otras IPs asignadas a algunos dominios. Aquí dejo uno ya modificado:

Host


./Applications/Preferences.app

Esta es la ruta de la aplicación Ajustes. Es muy importante dado que dentro de ella se encuentran los archivos de configuración que dicen que opciones podremos manejar dentro de Ajustes. Modificando estos archivos se logran sin mucho trabajo agregar o quitar funciones dentro de ajustes. El ejemplo más clásico por ejemplo es mediante la modificación del archivo de configuración Keyboard.plist que modificándolo se le añade la opción de poder habilitar o deshabilitar la correción automática del teclado. Muchas aplicaciones del tipo Advanced preferences, precisamente se basan mucho en la modificación de estos archivos.

Como se puede observar en dicha carpeta, existe un archivo .plist para casi cada ajuste:

Keyboard.plist -> los ajustes del teclado, modificandolo nos permite por ejemplo añadir una opcion para activar/desactivar la autocorrección del teclado. Para ello bastaría con la creación de las claves:

KeyboardAutocorrection
label
Activar Autocorrección

Keyboard.plist modificado

Settings-iPhone.plist -> Si es un iPhone, es el archivo de ajustes que se cargará, con opciones para modificar el teléfono, EDGE...

Settings-iPod.plist -> Si es un iPod, es el archivo de ajustes que se usará especificamente para Touch.

Quien se de cuenta rapidamente, se elimina el archivo Settings-iPod.plist y se renombra Settings-iPhone.plist a Settings-iPod.plist, cuando entremos en Ajustes tendremos los Ajustes del iPhone.

Hay muchos otros archivos que pueden ser muy útiles, pero comprendereis que tan solo me pare en algunos. Ya entra en cada cual ir investigando y editando los posibles archivos e ir viendo los efectos que va ocasionando.


./Applications/Weather.app/Info.plist

Aunque hemos comentado anteriormente este tipo de archivos, es bueno especificar concretamente el del tiempo. Cuando queremos modificar los iconos del board a través de SummerBoard por ejemplo, rapidamente nos damos cuenta de que el icono del "Tiempo" no cambia. Es debido a este archivo. Se puede modificar para que el icono finalmente se aplique. Para ello debemos de eliminar de dicho archivo las claves:

SBIconClass
SBWeatherApplicationIcon

Info.plist modificado


./bin

En esta carpeta se almacenarán las utilidades de UNIX, como cp, ln... es posible que muchas de las utilidades que instalemos nosotros de este tipo caigan en esta carpeta


./dev

Esta es la carpeta de dispositivos por así decirlo. No hay que engañarse del tamaño de los archivos, ya que en realidad son los dispositivos en sí. Por ejemplo rdisk0s1 es la imagen del OS. Es en esta carpeta donde de echo se monta la primera partición, la partición del OS


./Library/Alarms

Se guardan los diferentes tonos que podemos elegir para las alarmas, como todo, podemos eliminar aquellos que no usemos. El archivo Plist tan solo es el índice de los archivos que se mostrarán luego en la aplicación alarma


./Library/Ringtones

Se guardarán los diferentes tonos de llamadas.


./Library/Wallpaper

Se guardarán los diferentes Wallpaper.


./private/etc/

Carpeta en la que encontramos algunas utilidades más de sistema, como passwd, así como archivos de configuración del sistema como hosts (explicado antes en apollo), master.passwd (que contiene la contraseña de nuestros usuarios)...


./private/etc/bluetool

Algunos script de inicialización y suspension del BlueTooth


./private/etc/racoon

La carpeta de configuración de racoon. Racoon es un demonio IKE, para permitir conexiones IPsec. Imprescindible para conexion VLAN


./private/var

Es el lugar en el que se monta la segunda partición, o la partición de datos. Para llevar un orden, será explicada más adelante, al finalizar con la partición del OS.


./sbin

Al igual que la carpeta ./bin contenía ulitidades de sistema, sbin almacenará las utilidades esenciales más básicas, como mount o reboot


./System/Library/ApplePTP
./System/Library/AppleUSBDevice

Archivos de configuraión para la comunicación USB con el PC


./System/Library/Audio/UISounds

Los archivos de sonido del sistema. Es decir, los click, los correos que llegan, el sonido del deslizante cuando se apaga...


./System/Library/Caches

El caché del Kernel


./System/Library/CoreServices/SystemVersion.plist

Es el archivo que especifica la versión del software que tenemos. Podemos cambiarlo si lo deseamos, y en ajustes, acerca de... podremos ver los nuevos ajustes. Como si queremos poner que tenemos una versión 1.2.0 ó lo que queramos. Este archivo se ha usado mucho para publicar videos falsos de supuestas versiones JB antes de que fuera posible.


./System/Library/CoreServices/Encodings

Conversores para la conversión de diferentes sistemas de codificación (idiomas). Por ejemplo para poder mostrar un texto en cirílico o en chino.


./System/Library/CoreServices/SpringBoard.app

Es la carpeta de la aplicacion SpringBoard. Esta no se encuentra dentro de la carpeta /Applications, es una de las escepciones. En ella se encuentra evidentemente todos lso archivos de configuración del SpringBoard, así como multitud de imágenes .png que pueden modificarse para cambiar la apariencia del SpringBoard. Recordemos que el SpringBoard es por asi decirlo el escritorio.


./System/Library/CoreServices/SpringBoard.app/M68AP.plist

Es el archivo de configuración que se carga al iniciar el iPhone. En este archivo de configuración se le dice al iPhone los ajustes que debe de tener, los iconos, las funciones... Es posible deshabilitar o añadir funciones a este archivo de manera relativamente simple


./System/Library/CoreServices/SpringBoard.app/N45AP.plist

Al igual que el archivo anterior, este es el que se carga al iniciar el iPod Touch. Dado que tanto el iPod como el iPhone comparten prácticamente el mismo software y hardware, simplemente con modificar el nombre de estos archivos, y renombrar N45AP.plist a M68AP.plist, convertiremos el iPhone en un iPod Touch, en cuanto a software me refiero claro está, al enceder el iPhone, el software pensará que se trata de un iPod. Lo mismo pasa al revés. En este caso el iPod se creerá que es un iPhone. Este fue el primer método que se realizó para activar las aplicaciones de Enero, dado que el iPhone las tiene activadas por defecto, era tan facil como modificar este archivo.


./System/Library/CoreServices/SpringBoard.app/SpringBoard

Esta es la aplicación en sí, ha sido ya muy comentado este archivo cuando hablaba de la modificación del SpringBoard.


./System/Library/Extensions

Aquí se encuentran algunas aplicaciones secundarias, como por ejemplo los protocolos para VLAN, las app encargadas de la conexión al PC, etc


./System/Library/Fonts

Las fuentes del sistema. Ya apareció una aplicación que permitía usar cualquier fuente instalada como fuente del sistema. También es posible, aunque un poco más complejo, instalar fuentes propias, fuentes que de por sí no vienen en el dispositivo


./System/Library/Frameworks

Los Frameworks en el mundo de MAC OS podría ser el equivalente a las librerías DLL en los PCs más o menos. Son archivos necesarios para el funcionamiento de las aplicaciones, son rutinas... son subprogramas necesarios para otras aplicaciones. aquí tambien se encuentran las configuraciones de cada aplicación que podamos encontrar en ajustes. Listarlas todas sería muy lento, así que tan solo me detendré en las localidades más importantes.


./System/Library/Frameworks/AppSupport.framework

Podemos encontrar los archivos donde se encuentran zonas horarias y los paises del mundo


./System/Library/Frameworks/Celestial.framework

Otra de esas carpetas interesantes. En este caso aquí encontramos todos los ajustes de volumen, vibración...


./System/Library/Frameworks/Celestial.framework/RegionalVolumeLimits.plist

Este archivo es el que limita el volumen según nos encontremos en una región u otra. Como sabemos, la UE tiene normas para limitar la potencia de salida de algunos dispositivos por posibles problemas de audión que ello pudiera ocasionar. Pero muchas veces necesitamos que este limitador desaparezca. Si lo editásemos veríamos códigos y el nivel de volumen al que se ha limitado, suponiendo un 1 como sin limitación. Así podemos limitar o no limitar la salida. Si quisiésemos quitar la limitación, bastaría con establecer a 1 todos los códigos de region:

RegionalVolumeLimits.plist modificado para eliminar los límites de volumen de región


./System/Library/Frameworks/UIKit.framework

En esta ruta se encuentran el 90% de todas las "pieles" o imágenes del sistema. Mucho del trabajo que realiza Customize se basa en este archivo. Todos aquellos archivos que terminan por ejemplo en .artwork pueden extraerse y obtener de ellos las imágenes que queremos modificar.

Para extraer estos archivos lo mejor es usar una herramienta llamada iPhoneShop, descargable desde aquí:

iPhoneShop

Es una app en java, para hacerla andar hay q teclear:

java -jar iPhoneShop-0.6.jar ARTWORK archivoquesea.artwork export pngs

y despues de modificar los archivos, el proceso contrario:

java -jar iPhoneShop-0.6.jar ARTWORK archivoquesea.artwork import pngs

Por supuesto despues de modificar los archivos artwork, al copiarlos de nuevo en el dispositivo hay que establecer permisos 755, como con todo


./System/Library/Internet Plug-Ins

Es la carpeta dnd se instalan los accesorios para Safari. ya hay algunos por ahí andando, aunque el sueño sería tener uno para soporte flash.


./System/Library/KeyboardDictionaries

Aquí se encuentran los diccionarios de los distintos idiomas. Podemos eliminarlos si no los usamos o incluso modificarlos si queremos


./System/Library/LaunchDaemons

Los demonios que se ejecutan al iniciar el dispositivos con los parámetros concretos


./System/Library/Lockdown

Carpeta imprescindible. En ella se guardan los certificados de seguridad necesarios para por ejemplo la música comprada en itunes con DRM, activación del iPhone...


./System/Library/PreferenceBundles

Básicamente las opciones de configuración que tenemos en ajustes.


./usr/bin
./usr/libexec

Algunas utilidades de liena de comandos más. Además será aquí donde se instalesn las utilidades de Cydia o BSD Subsystem.


./usr/lib

Aquí se encuentran las librerías que serán usadas en los programas y utilidades


./usr/sbin

Los servicios

-----------------
--------------------------

./private/var

Como hemos dicho este es el punto de montaje de la partición de datos. Casi todos los datos que se crean aquí son dinámicos. Toda esta partición nada más tener el dispositivo formateado, estaría casi completamente vacía. Son datos de configuración, nuestros datos, información...


./private/var/logs/

Carpeta en la que se almacenan diferentes logs. Los logs son registros de sucesos.


./private/var/logs/AppleSupport/general.log

Aquí encontraremos los pequeños errores que se detecten en las aplicaciones, pero que no impiden su funcionamiento en el momento de ocurrir. Podemos ver perfectamente que aplicación a que hora como... está muy bien si notamos pequeños mal funcionamientos de las aplicaciones.


./private/var/logs/CrashReporter

En este caso encontraremos en esta carpeta un archivo plist con cada uno de los errores críticos que hemos tenido y que debido a ellos la aplicación se debió de cerrar. Estos reportes pueden ser enviados a Apple. Itunes detecta de forma automática cuando uno de estos errores se ha generado y nos dará la oportunidad de enviarlos a Apple. Evidentemente la gran mayoria de los errores son aplicaciones instaladas, y no son fallos en de Apple. Si queremos podemos eliminar aquellos reportes que creamos inservibles.


Por último, las carpetas mobile y root las trataremos indistintamente. A efectos prácticos es muy diferente, pero a efectos teóricos para saber que hay en cada lado es lo mismo. En Root irían los archivos creados y usados por root y en mobile lo propio, así que para no repetir lo mismo, siempre haré mención a mobile, pero puede que el archivo en realidad esté en root:

./private/var/mobile/Library

Aquí estarán la gran mayoría de los datos de las aplicaciones, así como nusetros ajustes, datos... usados en las mismas aplicaciones. En cuanto veamos algunos importantes, el resto se comprenderá perfectamente:


./private/var/mobile/Applications/

Esta carpeta por ahora casi en deshuso, por ahora tan solo alberga el archivo de configuración de Apple para activar las app de la actualización de Enero para el iPod Touch. Sin embargo en el futuro, es casi seguro que las app del SDK vengan instaladas aquí, en vez de en ./Applications


./private/var/mobile/Library/AddressBook

La libreta de contactos. En esa carpeta se guardan nuestros contactos. Apple no ha usado en esta ocasión un formato estandar, sino que se basa en un formato de bases de datos. Que no es que no sea estandar, pero el estandar dice que los contactos deberían de estar en ldif por ejemplo. Si queremos realizar una copia de seguridad de nuestros contactos, estas es la carpeta a guardar


./private/var/mobile/Library/Calendar

Pues creo que está claro. En esta se encuentra nuestro calendario. Y al igual que con la libreta de contactos no se usa un formato estandar como .icl. Si deseamos una copia de seguridad tan solo deberíamos de...


./private/var/mobile/Library/CallHistory

Como su propio nombre dice, el hisotrial de llamadas del iPhone


./private/var/mobile/Library/Cookies/Cookies.plist

Las cookies de safari


./private/var/mobile/Library/Installer

Esta es de las pocas carpetas ajena al sistema de apple pondré, pero me parece importante, ya que en ella es donde se almacenan nuestros repositorios, nuestras aplicaciones instaladas...

Así si deseásemos hacer una copia de seguridad de los repositorios para evitar meterlos a mano otra vez, nos bastaría con el archivo PackageSources.plist

Así si deseamos eliminar una aplicación que esté en el installer y no nos lo permite, podríamos eliminar su entrada desde el archivo LocalPackages.plist


./private/var/mobile/Library/Mail

Ahora le toca el turno de la configuración de nuestra cuenta de correo, así como de los correos descargados en el dispositivo en ese momento


./private/var/mobile/Library/Notes

Las notas creadas, y al igual que con el calendario o los contactos, aunque se pueden editar relativamente simple en el PC, si buscábais un archivo txt para editar olvidaros. Aunque para copia de seguridad da igual


./private/var/mobile/Library/Preferences

Normlamente cada aplicación tiene una carpeta propia en Library para guardar algunos datos como hemos visto en installer o notas. Sin embargo eso son los datos. Las configuraciones suelen ir sin embargo en esta otra carpeta. Solo los ajustes establecidos por nosotros en dichas aplicaciones. El uso de uno u otro lugar depende mas que nada de los programadores y como tengan implementado su código


./private/var/mobile/Library/Preferences/com.apple.springboard.plist

Este archivo es interesante guardarlo o modificarlo, ya que es el que dice el orden de nuestras aplicaciones y otros muchos datos.


./private/var/mobile/Library/Preferences/com.apple.stocks.plist

En este se almacenarán los mercados añadidos en la bolsa. Util guardarlo si queremos no tener que volver a buscar los valores y añadirlos


./private/var/mobile/Library/Preferences/com.apple.weather.plist

En este se almacenarán el tiempo de las diferentes ciudades. Muy util si no queremos volver a añadir y buscar el tiempo en determinados lugares


/private/var/mobile/Library/Safari

Aquí podemos encontrar tres archivos.
Tenemos por un lado los favoritos (o marcadores), que estarían en el archivo Bookmarks.plist.
Por otro lado el historial: History.plist
Y por otro un archivo que nos dice el estado actual de safari


./private/var/mobile/Library/SummerBoard/Themes

Otra de esas carpetas ajenas al dispositivo. En esta se almacenarán los diferentes temas instalados de SummerBoard. Si queremos añadir uno manualmente o modificar alguno existente, este será el punto de partida. Tambien es válido para realizar copias de seguridad de nuestros temas y no tener que instalarlos de nuevo o buscarlos o...


./private/var/mobile/Library/WebClips

Aquí se almacenarán los WebClips, es decir, esos accesos directos que podemos crear en el Board para ir directamente a la web.


./private/var/mobile/Library/YouTube

Por si queremos guardar los favoritos de Youtube


./private/var/mobile/Media

Por último, en esta carpeta tendremos el peso de nuestra memoria Flash. Algunos programadores de aplicaicones prefieren usar esta ruta cuando hablamos de datos masivos, como las ROMs de los emuladores o samples para algunos instrumentos.


./private/var/mobile/Media/DCIM/100APPLE

En esta carpeta se almacenarán las fotos realizadas por el iPhone. Esta carpeta tambien puede ser muy util crearla en el iPod touch, dado que algunas aplicaciones usan estas imágenes para otras tareas. Por ejemplo hay aplicaciones para capturar la pantalla que dirige aquí las capturas tomadas.


./private/var/mobile/Media/iTunes_Control/Artwork

Lugar donde se almacenan las carátulas de los álbumnes introducidos, en caso de tener las carátulas claro está


./private/var/mobile/Media/iTunes_Control/iTunes

Los archivos de sincronización con iTunes, desde la lista de archivos introducidos, como los ajustes de reproducción...


./private/var/mobile/Media/iTunes_Control/Music

La carpeta que contiene tanto los videos como la música introducida en el dispositivo. Apple lia un poco el asunto, y crea una carpeta cada X archivos y cada archivo lo renombra según sus gustos...


./private/var/mobile/Media/Photos

Las fotos introducidas en el dispositivo. En contra de lo que sucede también en el iPod Classic que permite introducir las fotos en "Alta calidad", itunes escala las imágenes y crea archivos de bases de datos de un extraño formato, lo que hace complicado la extracción de vuelta de las imágenes previamente cargadas. Luego no vemos un archivo png ni jpg por cada imagen, tan solo "paquetes".

--------------------
---------------------------


Creo que no me dejo nada de importancia, si encuento algo más editaré y completaré la lista, o si alguno quiere aportar algo también.

Un saludo.

ScreenShot: Opción nativa en el mismo iPhone

Realizar capturas del dispositivo es algo que se lleva hacuendo mucho tiempo a través de varias aplicaciones. Hace ya tiempo se descubrió que en el archivo com.apple.springboard.plist, había una clave llamada SBMobileScreenshotr, lo que hizo pensar que de algún modo podía ser posible realizar capturas de la pantalla de alguna manera.

Después de muchos quebraderos de cabeza ha resultado ser cierto, es posible!! apple escondío una forma secreta para realizar capturas de pantallas en el iPhone. Una vez puesta la clave a true editando el archivo, es "tan facil" como presionar la tecla Home, a la vez que se usa la tecla de mute. En ese momento se realizará la captura de la pantalla y se almacenará la foto en el Roll del iPhone.

Este método podría usarse exactamente igual en el iPod Touch, pero este ultimo no tiene botón de mute, así que no es viable.

Bueno, siempre es bueno poder hacer las cosas de forma nativa que a través de programas de terceros

Un saludo.

viernes, 14 de marzo de 2008

Ziphone 2.6b: Soporte completo para iPod Touch (Actualizado)

En las próximas horas tendremos una versión final por fin de Ziphone con soporte auténtico para iPod Touch, ya sea de 8Gb, de 16Gb o de 32Gb.

Edito:

Como eras de esperar, unas horas despues ya lo tenemos:

http://85.214.52.63/ZiPhoneWin-2.6b.exe

No lo he probado, no he tenido tiempo, pero debería de funcionar a la perfección para cualquier iPod Touch.

El proceo es el mismo, restauración a la versión 1.1.4 y Jailbreak, en este caso con el nuevo botón que tenemos en ziphone para ello.

Edito: Esta nueva revisión soluciona el problema de Spaming AT que algunso tenían. Si sale el problema citado, antes de realizar de nuevo el JB deberemos de darle a FIX NVRAM

jueves, 13 de marzo de 2008

Artículo: Dual Boot: Dos Firmwares diferentes, un solo iPod/iPhone

Mientras que Apple prepara futuras actualizaciones e intenta ir corrigiendo fallos de seguridad, tenemos más y más herramientas útiles para poder seguir abriendo una y otra vez el iPod/iPhone e ir saliendo de la carcel constantemente. En esta ocasión, y de nuevo de la mano del Dev Team, nos enseñan a como poder tener dos Firmwares dentro del mismo dispositivo, y poder arrancar una u otra indistintamente. ventajas? Bueno, que partiendo de una version JB, por ejemplo la simple 1.1.1 es posible realizar JB a la otra version instalada, por ejemplo una 1.1.4 o una 1.2. Como es esto? es simple. Si montamos una imagen desde otra, podemos montarla como lectura/escritura. Una vez realizado podemos instalarle facilmente OpenSSH o el Installer y listo.

La importancia es clara, si saliese una version 1.1.5 mañana o incluso una 1.2, sin esperar q saliese ningún método, con unos pasos "sencillos", tendríamos una 1.2 JB en perfecto estado.

El proceso es algo complejo y no apto para principiantes, lo he probado y funciona bien la verdad y sin más problemas, aunque repito q es tan solo a modo didáctico:


Lo primero será configurar iPhuc. En MAC tiene el problema de que iPhuc depende de iTunes, y no funciona con la versión 7.6, luego habría que volver a una versión anterior. Windows no tiene este problema, ya que tan solo se requiere una biblioteca dll de la versión anterior.

iPhuc se ha publicado en muchos sitios, de todos modos se puede descargar desde aquí por ejemplo:

http://conceitedsoftware.com/iphone/site/112jb.html


El segundo paso se basa en partir de una versión 1.1.x JB. Lo más comodo quizás sea partir de la 1.1.1 y visitar Jailbreakme, o quizás usar el método de Zibri para la 1.1.3 o 1.1.4. A gusto de cada uno. Una vez tengamos una versión inicial JB necesitaremos isntalar un poco lo de siempre, BSD Subsystem y OpenSSH, lo que nos dará acceso al sistema de archivo y las utilidades básicas para poder manejarlo a nuestro antojo.


El tercer paso será copiar algunas utilidades más que nos haran falta para poder montar y desmontar las particiones del iPod. Por tanto es necesario hacernos de estas herramientas, que podemos obtener o por google o por ejemplo desde la misma RamDisk del iPod o el iPhone:

fdisk
newfs_hfs
fsck_hfs
mount_hfs
umount

Necesitaremos copiar dichas utilidades en la carpeta /usr/sbin y cambiar los permisos a 755:

# chmod 755 /usr/sbin/*


Una vez todas las cosas necesarias necesitaremos preparar el espacio particionado. Lo que haremos será cambiar el tamaño de la partición de datos por defecto, que es /private/var y crearemos también una tercera partición llamada disk0s3. Pero si modificamos la partición disk0s2 para cambiarle el tamaño, lo primero que vamos a provocar es la pérdida de los datos, luego lo primero es realzar una copia de seguridad. Cuando acabemos, la partición de datos /private/var ocupará exactamente 300Mb menos, los que serán reservados para la partición disk0s3, que contendrá la segunda firmware.

# tar -cf /private.tar --preserve /private/var -> (ignorar los errores), realizará la copia de seguridad
# umount -f /private/var -> Desmontará la partición
# fdisk -e /dev/disk0 -> Nos permitirá editar la partición.

Editaremos la partición 2 para decrecer su tamaño por el numero de cilindros que tiene s1 más el tamaño delta entre s1 y s2 (normalmente 120 o 123. Para el iPhone son 153720 cilindros. Despues editar la partición 3 para comenzar a usar el mismo espacio que la partición 1 y 2
y tener el mismo tamaño que la partición 1(153600 en iPhone, 76800 en iPod).

La tabla de particiónes final debería de ser algo así:

    4GB iPhone:
Disk: /dev/disk0 geometry: 983/32/63 [1982464 sectors]
Sector size: 2048 bytes
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: AF 0 1 1 - 1023 254 63 [ 63 - 153600] HFS+
2: AF 1023 254 63 - 1023 254 63 [ 153663 - 1674861] HFS+
3: AF 1023 254 63 - 1023 254 63 [ 1828644 - 153600] HFS+
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
    8GB iPhone:
Disk: /dev/disk0 geometry: 983/64/63 [3964928 sectors]
Sector size: 2048 bytes
Offset: 0 Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: AF 0 1 1 - 1023 254 63 [ 63 - 153600] HFS+
2: AF 1023 254 63 - 1023 254 63 [ 153663 - 3657665] HFS+
3: AF 1023 254 63 - 1023 254 63 [ 3811328 - 153600] HFS+
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
    16GB iPod Touch:
Disk: /dev/disk0 geometry: 983/64/63 [3964928 sectors]
Sector size: 4096 bytes
Offset: 0 Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: AF 0 1 1 - 1023 254 63 [ 63 - 76800] HFS+
2: AF 1023 254 63 - 1023 254 63 [ 76863 - 3811059] HFS+
3: AF 1023 254 63 - 1023 254 63 [ 3811182 - 76800] HFS+
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
  8GB iPod Touch:
Disk: /dev/disk0 geometry: 983/64/63 [3964928 sectors]
Sector size: 2048 bytes
Offset: 0 Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: AF 0 1 1 - 1023 254 63 [ 63 - 153600] HFS+
2: AF 1023 254 63 - 1023 254 63 [ 153720 - 3657465] HFS+
3: AF 1023 254 63 - 1023 254 63 [ 3811185 - 153600] HFS+
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused


Hay q asegurarse de que no hemos modificado la particion 1, de lo contrario jod*** la firmware original

Una vez acabemos con la creación de las particiones, se le debe de decir a fdisk que escriba la nueva tabla de particiones. Al acabar es necesario sincronizarlas:

# sync; sync; sync;

Por alguna extraña razón, disk0s2 es movida a disk0s4 en /dev. Así que necesitaremos moverla de nuevo:

# mv /dev/disk0s4 /dev/disk0s2
# mv /dev/rdisk0s4 /dev/rdisk0s2


Ahora que ya tenemos las tres particiones en perfecto estado, queda restaurar la particion /private/var previamente salvada, para ello se le dará formato y se restaurará la copia:

newfs_hfs /dev/disk0s2
mount -t hfs /dev/disk0s2 /private/var
cd /private/var
tar -xvf /private.tar
mv ./private/var/* /private/var && rm -rf ./private


En este punto, duplicaremos la particion del OS disk0s1 a la partición recien creada disk0s3. Para evitar errores es mejor primero montar de nuevo la imagen pero solo como solo lectura:

# mount -o ro /

Ahora, usando dd copiaremos en crudo el disco encima:

# dd if=/dev/rdisk0s1 of=/dev/rdisk0s3 bs=4096

Despues de uunos minutos acabará, y sería una buena udea usar fsck, que realizará una comprobación de los archivos del sistema

# fsck_hfs /dev/disk0s3

Ahora montaremos nuestro root como solo lectura y montaremos tb la nueva particion:

# mount -o rw /
# mkdir /mnt
# mount -t hfs /dev/disk0s3 /mnt


Una vez tenemos la nueva particion montada, hay q modificar algunas cosillas para q inicie correctamente.

Primero editaremos /mnt/etc/fstab para que se monte raiz como /dev/disk0s3 en vez de disk0s1. En segundo lugar tendremos q hacernos de algunos Symlink para ecitar que cuando se actualice nuestro dispositivo, ya q Apple chequea posibles particiones no legítimas, buscando la existencia de /sbin/launchd. Si encontrase, la actualización fracasaría. Afortunadamente, el chequeo monta la partición en un subdirectorio que no es chroot, luego si movemos sbin a misbin (por ejemplo) y cremos un link dede /sbin a /misbin, el chequeo fallará (pq misbin estará actualmente en /mnt), pero el link funcionará cuando la partición sea montada como root:

# cd /mnt
# mv sbin mysbin
# ln -s /mysbin sbin

Ahora si será seguro desmontar /mnt


Sería buena idea tb eliminar cualquier caché del installer de /private/var:

# find /private/var -name Installer -exec rm -rf {} \;


Lo poco que nos queda será iniciar desde nuestra nueva particion. Hay tres valores principales que son usados al inciar el iPhone/iPod:

1. auto-boot (true): Determinar cuando el ipod debería iniciarse (auto-boot) o entrar en modo de recuperación.
2. boot-partition (0): Identifica el numero de la partición a iniciar
3. boot-args: (vacío): Puede usarse para configurar el dispositivo root o el modo verbose

Configuraremos lo siguiente para iniciar la nueva partición:

# nvram boot-partition=2
# nvram boot-args="rd=disk0s3 -v"
# nvram auto-boot=true
# sync
# reboot

Para verificar que estamos corriendo fuera de la nueva particion ejecutaremos 'mount'. Esto nos mostraré nuestros discos montados. El sistema de archivos de root se debería de montar en disk0s3, no en disk0s1.

Si por alguna razón no lográsemos iniciar correctamente, deberíamos usar iPhuc para arreglar esto:

# iphuc
#: enterrecovery (si fuera necesario)
#: cmd setenv\ boot-args\ rd=disk0s3\ -v
#: cmd setenv\ boot-partition\ 2
#: cmd setenv\ auto-boot\ true
#: cmd saveenv
#: cmd fsboot


Ahora que estamos corriendo con la particion disk0s3, tan solo nos quedará actualizar desde itunes a la versión que deseemos colocar en la partición disk0s3.

Mientras q iTunes no nos de algun error numérico, al acabar tendremos un dispositivo corriendo dos firmwares diferentes. Es muy posible que no se salga del modo restauración, lo cual podemos hacer facilmente


Para finalizar usaremos iPhuc para iniciar la partición original, disk0s1. Lo primero será copiar el caché de la versión última, en este caso la 1.1.4, extraeremos el archivo de del paquete ipsw, y mediante iphuc lo copiaremos:

# iphuc
#: filecopytophone kernelcache.release.s5l8900xrb

Y para iniciar desde l a partición:

#: cmd setenv\ boot-args\ "rd=disk0s3\ -v"
#: cmd saveenv
#: cmd bootx


Para montar la partición disk0s3, una vez iniciada disk0s1:

# fsck_hfs /dev/disk0s1
# mkdir /mnt
# mount -t hfs /dev/disk0s1 /mnt

Llegados a este punto tendremos acceso completo de lectura/escritura a la disk0s3. Es buena idea tb editar el archivo fstab para permitir el archivo de lectura y escritura de root

Para configurar Terminal, lo mejor sera realizar lo siguiente:

1º. BSD subsystem
2º. Copiar Terminal.app en /mnt/Applications
3º. mkdir -p /mnt/usr/local/arm-apple-darwin/
4º. ln -s /usr/lib /mnt/usr/local/arm-apple-darwin/lib
5º. cp -p /mnt/bin/bash /mnt/bin/sh
6º. chmod 4755 /mnt/usr/bin/login
7º. Edotar /mnt/etc/master.passwd para poner la contraseña que queramos

Cuando deseemos volver de la disk0s3:

# nvram boot-partition=0
# nvram boot-args=""
# nvram auto-boot=true
# sync
# reboot

miércoles, 12 de marzo de 2008

Ziphone Funciona en la versión beta 2.0

Zibri ha confirmado que Ziphone funciona perfectamente en la versión aun beta 2.0 de apple, que en teoría saldría de manera oficial en Junio. Luego los que pensaron que dirían adios al Installer/Cydia están muy equivocados.

La lógica nos dice que dentro de poco estarán circulando las versiones beta 2.0 ;)

Rumor: JailBreak firmware 1.2 (2.0)

Hace unos días dijimos que el SDK salía a la luz, y que en junio se esperaba una actualización 2.0 con un montón de novedades que no voy a repetir ahora. Pero tambien se dijo de que apple iba a distribuir en forma de beta esta firmware antes de junio para algunos privilegiados. Ya en el mismo SDK viene el sistema de archivos de lo que será la futura 2.0, aunque en realidad esta versión viene marcada en todos lados del SDK como 1.2. Es muy posible que esto llege a confusión, y lo más normal es que se tome como 1.2 al final esta firmware.

El caso es que de ser cierto el rumor, no solo ya han estado probando algunos esta nueva versión de firmware beta, sino que se le habría logrado tamien realizar JailBreack. Esto son buenas noticias, si ya de por sí esperamos a junio para la actualización, saber que será casi seguro posible realizar otro JB, con lo que implicaría todo ello, desde mantener nuestro querido Installer/Cydia al SDK, tener acceso a todo el sistema de archivos del iPod, y para quien quiera tambien poder tener el AppStore.

Guitarist y Drummer: La nueva Guitarra y Batería Virtual

Hace ya tiempo hacíamos alusión de una gran aplicación creada por MooCowMusic llamada iAno, posteriormente llamada Pianist, que era un piano virtual (que por cierto está ya trabajando en la nueva versión). Pues ahora el mismo autor nos trae tambien la guitarra y la batería. La verdad es que son aplicaciones cuanto menos curiosas, y hace darnos cuenta del potencial que puede tener un dispositivo como el nuestro.

No tengo tiempo para ponernos unas imágenes, pero os dejo el enlace a la página oficial de él, así como el repositorio desde donde se pueden instalar estas aplicaciones:

Web: http://moocowmusic.com/
Repositorio: http://www.touchrepo.com/repo.xml

martes, 11 de marzo de 2008

Pwnage: Firmwares personalizables y mucho más

Esta noticia no es nueva, pero no la había comentado anteriormente esperando un poco la evolución del asunto. Parece que ya es algo "serio".

Hace algún tiempo, ya hablamos sobre el Dev Team, las peleas que tubieron, la union de el Dev Team y del Dev Elite Team, de Zibri o de Nate. un culebrón sí. El caso es que por ahora toda la "gloria" se la ha llevado toda Zibri con su Ziphone, y no es para menos. Todos creíamos que el proceso ya no podría mejorarse, pero hace unos días también, veíamos un video sacado del nuevo Dev Team en el que para empezar como algo curioso veíamos que habían logrado modificar la imagen de arranque de un iPod Touch, y ya no salía la manzanita. Tambien veíamos que lograban un JB con tan solo realizar una restauració desde iTunes con una Firmware modificada previamente. Pues de esos estamos hablando hoy, de Pwnage.

El término Pwnage supongo que lo han usado de pwn y age:

Pwn es un término usado en la jerga informática, y significaría algo así como "comprometer o "controlar" un PC. Sería un sinónimo casi de hacker. Pwn viene directamente de "powerfully owned" owned es propietario, luego Powerfully propietario hace referencia normalmente a alguien ageno al sistema que ha logrado una autentificación.

Por otro lado, age, es edad en inglés.

Luego podríamos decir que el termino Pwnage significaría algo así como "la era del control total del iPod/iPhone". Mas o menos claro.

Es un proyecto en el que están trabajando intensamente estos muchachos basado en un exploit enocontrado hace ya algún tiempo en el BootLoader tanto del iPod Touch como del iPhone. Para quien no lo sepa, el BootLoader es el que tiene todas las rutinas de inicio del dispositivo, actualización, restauración... sería lo más próximo a una Bios que tendríamos. Con este exploit se parchearía el BootLoader para permitir a este la ejecución de código no firmado. Que significa poder ejecutar código no firmado? significa que podemos empezar a crear firmwares personalizadas completamente, desde firmwares que ya tengan nuestros datos a firmwares que ya estén por defecto liberadas o con JB de fábrica, firmwares ya cargadas con aplicaciones o incluso crear en teoría firmwares completamente agenas a apple. Se podría portar por ejemplo (dios no lo quiera y nos coja confesados) una versión de Windows Mobile.

El abanico de posibilidades como podeis imaginar sería infinito.

El proyecto se ha dividido en dos partes:

-iPwner: P

Por un parte una herramienta que permitirá parchear el BootLoader para permitir la ejecucución de código no firmado. Este proceso tan solo sería necesario hacerlo una sola vez, a menos claro, que se usara en alguna ocasión de nuevo alguna firmware original.

-IPSW Builder:

Por otro lado la segunda herrmaienta que se está creado permitirá la modificación y creación de las firmwares .ipsw, para como he dicho desde realizar un JB a la firmware (cosa trivial) a activar los iphone. Luego si quisiésemos restaurar, actualizar... con tan solo tener la firmware previamente modificada en el PC, no tendríamos que hacer nada más. También sería posible por tanto evitar la actualización del BaseBand en los iphone.

Como vemos, es un sistema aun más rapido y mejor que ziphone. Por otro lado es más complicado que Apple parchee el BootLoader que la firmware, luego este método podría resistir perfectamente a la actualización 2.0 de junio. Además la firmware modificada la tendrías ya en el PC para siempre, sin necesidad de acudir una y otra vez al JB cuando actualizas. Imagínate que lo haces para la versión 1.1.4, de acuerdo? sale una actualización 1.1.5, te descargas la imagen ya modificada o la modificas tu con ipsw builder. Metes tus cosas, la personalizas como te de la gana, y listo, actualizas desde itunes con tu versión modificada o restauras. Nada más facil. Que un día tienes un problema y necesitas restaurar? no pasa nada, de nuevo restauras con al imagen y en paz.

Copias de seguridad en la misma firware, aplicaciones preinstaladas... en fin, creo q no está nada mal.

En cuanto haya más información la iré publicando.

Un saludo.

viernes, 7 de marzo de 2008

SDK y firmware 2.0

Como todos sabemos hoy era el día oficial para el lanzamiento del SDK. Aun en fase beta se ha empezado a distribuir de forma gratuita. Pero no es Oro todo lo que parece.

Apple ha dejado claro el modelo que va a seguir:

1º. El SDK se podrá descargar de forma gratuita quien quiera. Solo estará disponible para MAC OS
2º. Aquellos desarrolladores q quieran publicar sus app en itunes en el futuro tendrán q abonar 99$ o 300$, dependiendo. Ello les dará acceso a certificados digitales q les permitirá poder probar su propio software en su dispositivo, así como cuando la aplicación esté terminada, mandarla a apple para q estos la metan en lo q será el AppStore.
3º. Los programadores serán libres de cobrar lo q deseen. Desde 0$ si quieren. Apple no pone restricciones en este caso, eso si, los 99$ si hay q pagarlos, aunq tan solo una vez.
4º. Del precio puesto por el programador, Apple se llevará un 30% en concepto de marketing, hospedaje y publicidad, el 70% irá integro al programador.
5º. Apple podrá retirar del AppStore las app que crea conveniente pro inactividad o por no encontrarlas adecuadas
6º. El AppStore estará disponible en Junio, junto con la actualización 2.0 de firmware.
7º. El AppStore estará disponible tb como opción en nuestro dispositivo, para poder instalarlas de forma remota si deseamos, al mas puro estilo del Installer.

La buena noticia es que al ser el SDK gratuito, con suerte desde hoy podamos empezar a ver aplicaciones creadas por él y puestas en el Installer como toda la vida de Dios. Es lógico pensar q no habrá muchas app gratuitas en el APPStore, los programadores q queiran sus app gratuitas, simplemente se ahorraran los 99$ de apple y las pondrá en algun repositorio.

El SDK se puede descargar de:

https://developer.apple.com/iphone/index.action

es necesario registrarse, pero es gratuito, ocupa unos 2.1Gb
-------------------

La actualización 2.0 implementará seguro lo siguiente:

Sistemas de seguridad WIFI EAP.
ActiveSync para poder sincronizar inalámbricamente calendario, contactos...
Estará disponible para Junio.
Para iPod Touch es de suponer que será de pago la actualización

jueves, 6 de marzo de 2008

Proyecto: Modificando SpringBoard (Activando las aplicaciones de pago de Enero)

Como todos deberíamos de saber ya, en Enero Apple lanzó una actualización de pago que permitiría tener las aplicaciones antes exclusivas del iPhone en el iPod. Esta actualización cuesta unos 16€ más o menos.

Hubo mucha polémica, ya que Apple alegó que debido a la ley de Sarbanes-Oxley, no podía ofrecer dicha actualización libremente. Claro que todo el mundo está seguro de que si se hubiese esforzado haría encontrado la manera. Por otro lado, la firmware del iPod Touch, a partir de la versión 1.1.3 incorpora dentro de sí misma dichas aplicaciones!! y lo que se compra por esos 20€ aproximadamente no es más que un archivo de configuración (por así decirlo) para activarlas. Se dieron muchas soluciones a este problema, y finalmente la que más se extendió fue usar un parche para SpringBoard, que es la aplicación que gestiona todo el Board en nuestro iPod.

Evidenemtente esto es ilegal, ya que estaríamos usando un software por el cual no tenemos licencia, y la única forma legal de usarlo sería pagando esos casi 20€. Aquí no voy a discutir de la moral o no de cada cual, que no este de acuerdo con ciertas cosas no quiere decir que haya que haya que incurrir en algo no legal. Así que esta entrada es méramente informatíba y didáctica.

Ya sabemos seguramente con hacer una búsqueda en google donde encontrar parches, modificaciones y similares, pero descargar este tipo de "programas" siempre trae consigo un riesgo importante: No sabemos que estamos haciendo.

Como ya mucho sabeis, hay una aplicación llamada SpringBoard que gestiona todo lo que sería el escritorio del dispositivo. Esta aplicación no está alojada en la ruta normal de aplicaciones, sino en:

./System/Library/CoreServices/SpringBoard.app

Dentro de esa carpeta se encuentran ademas de muchos iconos de sistema q pueden ser modificados la aplicación propiamente dicha, el ejecutable por así decirlo, que sería el archivo "SpringBoard"

Hace ya mucho, salió un archivo SpringBoard modificado que permitía activar las aplicaciones del iPhone sin necesidad de comprarlas para la versión de firmware 1.1.3. Ese Springboard modificado evidentemente se modificó a partir de un SpringBoard Original de la 1.1.3. Seguramente a través de IDA o algún otro desensamblador se realizó ingeniería inversa y se creó el archivo modificado.

Pues bien, el tiempo pasa y tenemos una versión de firmware 1.1.4. Muchos automáticamente acudieron a los repositorios de siempre o a los archivos de siempre para activar las mismas aplicaciones de pago, pero esta vez en la versión 1.1.4. Y funcionaba. Lo que ya no sabe tanta gente, es q el SpringBoard de la versión 1.1.3 es diferente al SpringBoard de la version 1.1.4. Hasta que punto los cambios son cuantitativos? no lo se, pero os aseguro que son diferentes. Esto que quiere decir? pues que si ya de por sí usar parches (ademas de ser ilegal) puede ser problemático si no se hace correctamente, si encima se usa un archivo de otra versión los problemas pueden ser mucho mayores.

Claro que la mayoría de las personas no se percatan de esos detalles y toman más aquello de: Si funciona, no me preocupo. Claro que a lo mejor con el tiempo es cuando aparecen los problemas, dudas, cuelges... que no tiene por que pasar!! pero es posible que sí. Pero como por ahora las personas podían activar sus aplicaciones no se percataron de que los SpringBoard eran diferentes. Así que bueno, pondré mi granito de arena y vamos a explicar como se modificaría el SpringBoard 1.1.3 o 1.1.4 para activar de forma ilegal las aplicaciones. Repito que esto es solo teoríco, y de ningún modo se debería de hacer si no se ha pagado por las aplicaciones con anterioridad.

Explicar el proceso completo por el cual al final llegamos a la conclusión de que tan solo es necesario cambiar un par de bytes y cuales son, es un poco complicado. Digamos que despues de usar IDA, encontramos los saltos que permiten o no activar las aplicaciones. Estos saltos condicionales nos llevarán a una parte del código u otra según sea. Si modificamos estos saltos para que salten a la dirección que deseamos, es posible así eludir la protección, y hacer que las aplicaciones se activen siempre. Usando IDA por ejemplo se llega a la conclusión de que los bytes que hay que modificar son los bytes que se encuentran en las direcciones:

0x7380F Modificar el byte, cuyo contenido es '13' a 'E3'
0x73813 Modificar el byte, cuyo contenido es '1A' a 'EA'

Eso es lo que se extrae de IDA cuando lo usamos. Con esos datos ya el siguiente proceso es más simple, usar cualquier editor hexadecimal, modificar los dos bytes especificados, guardar el archivo como nuevo, y ya tendríamos nuestro SpringBoard modificado. Personalmente me gusta mucho WinHex, pero hay muchímos otros, gratuitos, de pago... para todos los gustos y colores.

Este método sirve tanto en la 1.1.3 como en la 1.1.4, es decir, partiendo del SpringBoard original 1.1.4 es posible modificarlo de la manera indicada para activar en teoría las aplicaciones de pago:


Archivo sin modificar con los offset específicos:


Archivo modificado con los offeset específicos:



Una vez tengamos el archivo SpringBoard modificado tan solo será necesario sustituirlo por el archivo original dentro del iPod y modificar sus permisos también a 755.

Os dejo un enlace de como deberían de quedar los archivos modificados, tanto el de la versión 1.1.3 como el de la versión 1.1.4. EN NINGÚN CASO deberían de usarse para usar de manera ilegal las aplicaciones de pago, tan solo como plantilla para comprender mejor el método explicado aquí:

http://rapidshare.com/files/97524953/SpringBoard.7z.html

Jailbreak 1.1.4 para iPod Touch 16Gb!! SI

De momento Zibri no ha sacado aun ninguna versión de Ziphone para corregir los problemas existentes con los iPod de 16Gb. En un principio se dijo que era un problema debido a los dos módulos de memoria flash q tenían los modelos de 16Gb... pero la verdad ya no se que pensar. Desde mucho tiempo, desde las primeras versiones de Ziphone, han sido muchos los que han intentado realizar un JB a la verisión 1.1.3 y 1.1.4 a sus iPod. Quedó constancia que el 99% de todos los iPod de 8Gb era posible, pero que tan solo un porcentaje mínimo era posible en los de 16Gb. Aunq se especuló mucho, se hicieron pruebas absurdas y demás, el resultado por regla general era el mismo. Los que teníamos un iPod de 16Gb nos daba siempre el famoso error:

"BSD root: md0, major 2, minor 0"

Muchos inventaron supuestos métodos mágicos para que se pudiera hacer, y lo cierto es que algunos iPod de 16Gb se lograron.

A día de hoy esperábamos o que saliese un método nuevo como el comentado días a tras o que Zibri lanzara una versión nueva. Bueno, pues la solución, por absurda que parezca, biene a manos de uno de esos métodos mágicos que nadie entiende el por qué, pero funciona. Lo único q necesitamos es:

1º. La firmware 1.1.4 (que la podemos descargar desde el enlace de firmwares desde este mismo blog)
2º. Ziphone, que lo podemos descargar desde: http://www.downloadziphone.org/

El proceso es muy simple, y sí, puede parecer absurdo, pero por absurdo que parezca, funciona. No me pregunteis por qué, no lo sé. Lo máximo que puedo intuir es que al apagar y encender el iPod (ver el método más abajo) la parte de la memoria RAM a escribir se vacía, dejando posible la copia de la RAM Disk de Zibri a la RAM.

El proceso:

1º. Descargamos la Firmware 1.1.4 y Ziphone. Este último lo descomprimimos o instalamos.

2º. Realizamos una restauración completa al iPod a la versión 1.1.4. Es posible no hacerla y tan solo hacer una actualización, pero siempre es mejor partir de cero. Para realizar una restauración a la 1.1.4, para quienes no lo sepan, basta con conectarse a iTunes y hacer clic derecho+shift en el botón restaurar. Esto nos solicitará un archivo de entrada, seleccionaremos la version .1.1.4 recien descargada y listo.

3º. Después de realizar la restauración, iTunes nos pedirá que seleccionemos una opción: O configurar como iPod nuevo o cargar un perfil guardado. No marcamos nada, tan solo cerramos iTunes.

4º. Desconectar el iPod del cable y apagamos el iPod con normalidad (apagado completo, se deja pulsado power hasta que nos salga el deslizante para apagar)

5º. Encendemos de nuevo el iPod. y abrimos ZiphoneGui

8º. Lo conectamos al cable.

9º. Cerramos iTunes y todos los procesos asociados a este desde el adminsitrador de tareas:

AppleMobleDeviceHelper.exe
AppleMobleDeviceService.exe
iPodService.exe
iTunes.exe
iTunesHelper.exe

Si algunos de ellos no están presentes no pasa nada, lo omitimos.

--------

Hasta aquí en realidad tan solo es asegurarnos de q todo es correcto, creo que los puntos anteriores serían posible omitirlos (menos la restauración claro está), pero los pongo todos. Ahora viene en realidad lo importante:

En ziphone le damos al botón de Jailbreak:




Como vemos en la pantalla nos dirá que se está buscando un dispositivo. En cuanto le demos a Jailbreak, procedemos a apagar el iPod de forma normal tb. Le damos a power, deslizante, apagar. Veremos q Ziphone continua buscando dispositivo.

11º. Una vez el iPod esté apagado, lo encendemos de nuevo.

12º. Una vez el iPod se termine de encender, ziphone estará aun andando, sin detener el proceso y sin nada, en cuanto el iPod termine de encender le daremos otra vez a Jailbreak.

El proceso se terminará con exito sin errores BSD ni nada.

-----


Absurdo, pero funciona.

miércoles, 5 de marzo de 2008

MxTube: Descargar Videos de YouTube

Con la aplicación YouTube podemos acceder en cualquier momento a toda la colección de videos de Youtube de manera simple, y podemos visualizarlos sin problema. Pero seguro que más de uno se lo ha preguntado: ¿Y si quiero descargarlos para verlos más tarde? Desde la app YouTube no era posible, tan solo verlos.

Existian aplicaciones que transcodificaban los videos de YouTube para poder verlos, pero ninguna que te permitiese descargarlos directamente y verlos. El mecanismo es lógico, usa el mismo sistema que la aplicación YouTube, pero guarda el caché en forma de Video, para que podamos verlo Offline las veces que deseemos. La aplicación es muy similar a la aplicación YouTube.

La única pega quizás es que los tiempos de descarga son a veces largos aun en conexiones muy rápidas. Para ello nos deja seleccionar si deseamos tener los videos en calidad alta o en calidad baja, ahorrando por tanto ancho de banda. Estas opciones las especifica mediante High (WIFI) Low (EDGE). En caso de iPod Touch que no tiene EDGE, no pasa absolutamente nada, podemos seleccionarla sin problema. La única diferencia entre elegir uno u otro es el temaño del video, luego afecta a la calidad de este.

Por lo demás otra aplicación genial:






Lo podeis encontrar en el repositorio de BigBoss:

sleepers.net/iphonerepo

domingo, 2 de marzo de 2008

FontSwap (Intercambio de Fuentes)

Sin duda alguna una de esas aplicaciones que todo el mundo creo que instalará y tendrá siempre como imprescindible, al menos hasta que la veamos incorporada a Summerboard o Customize. Su utilidad es simple, nos permite cambiar la fuente de todo el sistema. ¿Que es la fuente? Para quien no lo sepa, se define como una fuente como un tipo de letra. Los PCs y dispositivos usan diferentes fuentes (diferentes tipos de letras). Con esta sencilla aplicación podremos modificar la fuente por otra que queramos.

Despues de hacer algunos intentos para añadir uan fuente nueva, tan solo logré la llamada "Rueda de la muerte" o en ingles "Spinning Wheel of Death". Más tarde he comprobado que sí, que tambien se pueden poner fuentes personalizadas sin mucho problema, pero despues de hablar con su creador, Skylar, y tiene pensado crear una opción específica para ella.

Lo que no es posible es modificar el tamaño de la fuente, dado que ello es uan opción que depende exclusivamente de cada aplicación. Una pena. La aplicación la podeis obtener desde el repo de ipodtouchfans:

http://touchrepo.com/repo.xml


Waves 1.4

Esta es una de mis aplicaciones inservibles favoritas. Iba a realizar un video sobre ella, ya que unas simples fotos no ilustran todo lo que me gustaría. Pero si tengo que buscar la camara y ponerme, tardaría mucho más, tiempo que no tengo.

Respecto a la versión 1.2 que está en el Installer, esta versión incluye bastantes novedades, como poder elegir el tipo de onda (wave) que deseamos o incluso parametrizarla.

Ah, y para quienes no sepan de que aplicación estoy hablando, Waves no es más que una aplicación que simula el efecto de agua en la pantalla. La versión 1.4 además supuestamente añade compatibilidad con la Firmware 1.1.3, aunque la versión 1.2 era completamente compatible también. El enlace para la versión 1.4 lo teneis aquí:

http://gnese.free.fr/iPhone/Waves/Fichiers/Waves_v1.4.app.tgz

Os dejo algunas imágenes:



sábado, 1 de marzo de 2008

Arkanoid

Realmente no se entiende como haya pasado tanto tiempo sin que ningún programador nos haya deleitado con un Arkanoid.

Esta vez viene de la mano de BigBoss, y aunque por ahora es un tanto simple, la idea principal está presente. Solo bastaría crear más niveles, mejorar quizás un poco el control y ya depende de para cada cual, crear objetos.

El control es simple, aunque intentar manejarlo con el Acelerómetro es un poco complicado, siendo más simple usar el dedo.

Quien quiera puede encontrarlo en el repositorio de BigBoss:

http://iphone.sleepers.net/repo.xml



 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.