viernes, 22 de febrero de 2008

Soft Update 1.1.3

Introducción

(Esta información deja de ser útil poco a poco, dado que el nuevo método de zibri, ya comentado con anterioridad, debería de ser capaz dentro de poco realizar un JB puro de la 1.1.3 y de manera mucho más simple y rápida. Pero el problema es que de momento no está disponible para todos los iPod Touch, por lo que creo que es bueno tener esta información aquí)

Despues de que el método lo hayan depurado y ahora el JB vaya por la versión 2, por asi decirlo, para los q no quieran andar con tantas cosillas y prefieran algo más rapido, pueden usar el soft update oficial desde el repositorio oficial. No es el método más rapido, pero ahora mismo es el JB más depurado, y la verdad por la versión q va ahora es muy muy estable y recomendado. El único pero es q tarda mucho en comparación con el método manual.

Las instrucciones del método manual las voy a suprimir, si alquin lo quiere hacer q me lo diga por MP


Este es el método oficial liberado para poder tener una 1.1.3 JB.

Este método no nos dará de resultado final una pura 1.1.3 JB, dado q el kernel del ipod seguirá estando en 1.1.2... aunq esto en principio no nos afectará.

Este método en esencia es exactamente igual q el q puse hace unos días, pero mucho más depurado y perfecto. La principal caracteristica esq este SI mete la firlware del ipod, en vez de la del iphone, con lo q lo tendremos completamente en español y sin las aplicaciones del iphone, luego no tendremos q hacer nada más. Con este método el Demonio Nikita q es el encargado de las aplicaciones del SDK debería de estar tb levantado, y en consecuencia todo debería de funcionar igual q si tuviésemos una 1.1.3.

Lo ideal sería un método puro 1.1.3 JB, pero ese AS en la manga está reservado para cuando salga una futura 1.1.4. De todos modos este método sería casi igual de bueno.

Todos los q lo hicieran por el otro método no pasa nada, lo único q cambia básicamente es el Demonio Nikita y algunos ajustes más. Yo recomendaría lo mismo, Restaurar a la 1.1.1, hackear, 1.1.2, hackear y empezar desde aquí. Pero cada uno puede hacer lo q quiera.

Todos los q ahora mismo estén en una 1.1.2 JB en teoría no perderán nada, ni aplicacioens ni nada. En el peor de los casos, las aplicaciones q no fueran deberían de reinstalarlas de nuevo.



Preparativos


1. Tener una 1.1.2 JB
2. Tener Instalado BSD Subsystem 2.1
3. Conexión WIFI
4. A partir de aqui, TODO lo haremos con el bloqueo automático DESACTIVADO hasta q acabemos el proceso.



Instrucciones


Antes de poder realizar el JB 1.1.3 mediante el proceso del soft update, es necesario tener una 1.1.2 JB. Este proceso se ha comentado muchas veces, así que tan solo haré un rápido repaso:

1º. Restaurar a la versión 1.1.1
2º. Visitar la página Jailbreakme.com desde safari, una vez allí le daremos a Install apptapp.
3º. Eso hará q nuestro explorador se cierre y nos salga algunas cosillas más, al acabar tendremos la versión 1.1.1 JB
4º. Entrar en el installer e instalar:

Sorces -> Comunity Sources, y una vez instalado:
Tweak 1.1.1 -> Oktoprep

5º. Actualizar (que no restaurar) a la versión 1.1.2.
6º. Una vez actualizado proceder el JB de la 1.1.2. Para ello descargamos:

http://conceitedsoftware.com/iphone/1.1.2-jailbreak.zip

lo descomprimimos

7º. Ejecutamos windows.bat.

Si no tenemos instalado Java JRE en el PC, (que deberíamos) nos saldrá un pantallazo negro y se cerrará y no sucederá más nada. Si estoy ocurre, necesitaremos instalar previamente JRE:

Java RunTime Environment (JRE) 6 Update 4:

http://java.sun.com/javase/downloads/?intcmp=1281

8º. En la pantalla que nos aparezca, le damos simplemente a jailbreak. Si todo ha sido correcto, el ipod debería de iniciarse solo un par de veces ya con el installer. Si no se reinicia lo apagamos nosotros y lo encendemos. Si nos da algún error hay q asegurarse de q instalamos correctamente oktoprep en la version 1.1.1 y que no restauramos a la versión 1.1.2, sino q actualizamos.

Llegado a este puto podremos seguir con la actualización a la 1.1.3:

Instalaremos antes de nada BSD Subsystem, que está en system, así como Community Souces.

Tan solo tendremos q acceder al installer, alli tendremos el el repositorio oficial de APPTAPP un programa llamado soft update 1.1.3. Lo instalamos. Creo que se encuentra en el apartado de tools, pero no estoy seguro, se busca por nombre y listo.

Una vez instalado, nos aparecerá en el board un icono. Nada más darle dos veces comenzará el proceso.

En uno de los puntos nos preguntará si deseamos restaurar el ipod, q es algo recomendado. Yo recomiendo hacerlo, pero cada cual es dueño y amo de si mismo.


1º. Descargará la firmware del ipod, luego será un proceso relativamente largo, unos 3-5 minutos dependiendo de la linea de cada uno


2º. Desencriptará la firmware descargada


3º. La descomprime...


4º. Por ultimo checkea, prepara, copia y suele dar un par de errores


Cuando termine se reiniciará el ipod completamente y listo


Aunque todo debería de funcioanr correctamente, antes que cualquier otra cosa se deberían de tomar ciertas medidas antes de instalar cualquier otra cosa, para evitar problemas:

a) Instalar BSD Subsystem
a1) Instalar (en el caso de que lo haya) actualizaciones del Installer
b) Instalar Community Sources
c) Instalar OpenSSL
d) Hacer espacio libre (ver más abajo)
e)

son pasos casi obligados que se deberían de hacer si no se quiere tener problemas

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


Aplicaciones:


Dado lo dicho anteriormente sobre las aplicaciones, cuando encendamos el ipod no las tendremos, es de cajón. Todos aquellos q las compraron, al darle a sincronizar al ipod en itunes deberían de aparecerles de inmediato, dado q el demonio nikita debería de estar funcionando.

Nadie comprende como lo q tengas q pagar sea un archivo de configuracion para simplemente mostrarlas.


Recordar q algunas aplicaciones NO FUNCIONARÁN. PQ? pq ha habido algunos cambios en el sistema de archivo en la version 1.1.3 y deben de adaptarlas. Pero la verdad es q el 99% de todas ellas funcionan bien.

Para aquellos q se pregunten como poder activar dichas aplicaciones, no puedo deciros como, dado q es ilegal. Ademas, todos aquellos q no las hayais comprado, si las activais estareis incurriendo en un delito.

Aun así si q puedo poner un repositorio q le diré a fonsu q actualize en el posit de repositorios con el q supuestamente podríamos activarlas. Aunq repito q si usamos ese método sin tener compradas las aplicaciones será ilegal:

http://madpike05.googlepages.com/repo.xml

Edito: Parece ser q el enlace está caido dado al incremento impresionante de visiitas.


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


Problemas comunes:


Como veo q la gran mayoría tiene siempre los mismos problemas vamos a intentar aclarar la mayoría de todos ellos aquí. Por lo q he visto, todos los problemas por ahora no son acerca del método en sí, sino a posteriori, así q me centraré en ellos:


1º. Tenía el ipod 1.1.2 JB con todas mis app, y al actualizarlo no me salen los iconos en el board o la mayoría no andan. Sin embargo aun puedo verlas como instaladas en el Installer.

Dije por ahí arriba q recomendaba realizar una instalación limpia. Es normal q suceda esto. Con la 1.1.3 se ejecutan las aplicaciones con el usuario "mobile". Esto quiere decir q las librerías q hacen funcionar correctamente la mayoria de las app están en la carpeta /private/var/mobile, no en la carpeta /private/var/root como sucedía antes. Como la app ya ha sido ejecutada y está configurada para leer los datos desde mobile, es normal q no funcione o q ni siquiera aparezca en el board. Tb es debido a q el método para tener las app de pago, basado en la modificación del archivo "SpringBoard", es el q gestiona el board. Modificar este archivo puede ser "peligroso" si no se hace correctamente. Esto quiere decir q antes de preguntar a q puede ser debido este tipo de errores, preguntarse primero si modificó tal archivo (manualmente o desde el installer). Luego lo primero q contestaré será: No parchees el SpringBoard.


2º. El Installer... ese gran amigo de todos no funciona demasiado bien.
(ya no es necesario dado las últimas versiones de Installer)

Si funciona, el problema es q no leemos, y yo me incluyo en el saco. Para q todo funcione correctamente, lo primero q deberíamos de hacer será poner en condiciones el installer. El installer es una aplicación como cualquier otra, luego quire decir q por defecto corre bajo el user "mobile". Al no gozar de permisos de root no puede ejecutar mucho de los scripts q se requieren para instalar/actualizar/desinstalar aplicaciones.

Muchos me han preguntado q pq no sacan una versión del installer nueva q corra bajo root directamente. Esto no es posible, dado q al instalar o actualizar el installer lo haremos bajo mobile, y para modificar este tipo de permisos es necesario tener acceso de root.

En realidad es una metedura de pata del hack del Dev Team, y facilmente se modifica el script de actualización 1.1.3 para q el installer sea copiado con permisos de root. Basta con editar el script y meter un par de lineas más.

Para hacer q a partir de ahora Installer se ejecute con permisos de root es necesario escribir un par de lineas bajo SSH. El mismo installer 3.b10 NOS LO DICE!! en la pantalla de bienvenida. Pero no leemos. Salimos a SSH y tecleamos:

cd /Applications
chmod +s Installer.app/Installer
chown -R root:wheel Installer.app

cerramos SSH, reiniciamos para mas seguridad y listo, a partir de ahora nuestro installer correrá con permisos de root, luego podrá llevar a cabo CUALQUIER acción q sea necesaria.


3º. El Installer... ese gran amigo de todos no funciona demasiado bien todavía.

Este es un problema q antes tb se daba, pero en menor medida. Poco espacio en la partición del OS.

Como se ha dicho muchas veces, el espacio en disco del Ipod se separa en dos particiones. La partición dnd está instalado el OS, q la llamamos normalmente partición del OS; y la particón dnd se almacenan los datos, canciones, videos... todo. Normalmente la particón del OS es intocable, siendo la partición de datos la q se perrea. Pero las aplicaciones (por ahora) se deben de instalar en la partición del OS para q funcionen correctamente. Digo por ahora pq es muy posible q las app del SDK vayan en la carpeta /var/mobile, pero aun hay q esperar para esto.

Antes era más extraño ir sin espacio en la particón dle OS, ya q con el Ipod con una 1.1.2 JB sin nada más, vacío, podía tener un espacio libre de unos 10MB, normalmente espacio más q suficiente para las app.

Pero ahora tenemos dos problemas. La firm 1.1.3 del ipod trae ya de casa las app del iphone, luego ya de por sí el espacio libre de la partición es menor. Y por otro lado, las app cada vez ocupan más espacio. Por ejemplo, el mismo Solitario antes ocupaba unos 100K o menos, ahroa con los temas ocupan mas de 1MB. La mayoría de las aplicaciones guardan los archivos no imprescindbles en las librerías, q se guardan en la partición de datos, pero muchas app aun no hacen uso intensivo de esta, y meten todo en la particion del OS.

Que sucede? Cuando solicitamos al installer q queremos instalar algo el proceso suele ser:

a) se descarga el paquete de manera temporal en la particion del OS
b) se descomprime en la partion del OS
c) se copia a la carpeta /Applications y se eliminan los archivos intermedios

tanto a, b y c requierne el uso de la partición del OS. Si la partición del OS está agotada nos darán errores de a) Error al descargar, errores de b) error al instalar y errores c) errores al instalar

Aunq lo normal es q simplemente el Installer se nos cierre.

Muchas veces, si es una actualizacion de una aplicación importante, como lo podiá ser SummerBoard o el mismo installer, si no se instala correctamente, lo más normal es q la app deje de funcionar. Esto se traduce en Installer q ahora se abren y se cierran del tirón, o ipods q no terminan de encender. ASI Q CUIDADO CON EL ESPACIO BAJO

Como se combate esto? De dos formas. a) e eliminan cosas de la particón del OS q no se usen nunca, b) se mueve alguna carpeta a la particón del OS y se crea un Symlink (acceso directo) a ella. Alugnos prefieren usar la aplicacion de BigBoss, pero yo las cosas siempre lo hago manual. Además, instalar BigBoss requiere al menos 4Mb creo recordar, así q estamos en las mismas:

a) Que podemos eliminar?:

Wallpapers -> Carpeta /Library/Wallpapers | Además de ser la mayoría bien feos, con SMB (cuando salga) podemos poner de fondo lo q queramos. Son unos 8Mb, y siempre podemos dejar los q queramos.

Archivos de Idiomas -> Carpeta Varias | Normalmente como mucho vamos a usar un idioma. Español. Todos los idiomas q no queramos (frances, italiano... 17 idiomas en total) los podemos eliminar. Estos archivos lso encontramos por toda la firm, y no tengo ganas de poner todas las direcciones dnd se encuentran. Pero con un poco de lógica los localizamos. Son carpetas q se llaman de la siguiente forma: idioma.lproj. Por ejemplo, el idioma español normalmente siempre está en la carpeta Spanish.lproj El resto de lproj pueden eliminarse con cierta seguridad. Si eliminamos todos los archivos de traducción nos podemos ahorrar quizás 1 mb o 2.

Archivos de Alarma -> Carpeta Library\Alarms | Más de lo mismo, son los tonos de la alarma. Normalmente ocmo mucho usaremos uno, los demas los podemos eliminar si queremos. En este caso son unos 300-400Kb

Archivos del iPhone -> Carpetas varias | La firmware del iphone quitando un par de cosas es exactamente la misma q la del ipod, sobre todo a lo referente a archivos de configuración. Es imposible listarlos, pero una persona despierta y con tiempo los podrá localizar perfectamente. No es mucho lo nos podemos ahorrar con esto, pero ei, cuanta menos cosas inútiles mejor

b) que podemos mover?

bigboss lo q mueve es la carpeta aplicaciones. yo soy más reacio a mover la carpeta aplicaciones. Yo prefiero mover la carpeta fuentes.

Con este método podemos sacarnos de la manga unos 80Mb más o menos, espacio más q suficiente para todo. Como se hace? SSH, ese otro gran amigo. Podemos hacerlo todo através de SSH, pero como por una extraña razón a las personas menos diestras no les gusta la linea de comandos, vamos a usarlo solo para lo mínimo.

SFTP | iphoneBrowser -> por ejemplo con Winscp o si lo preferimos iphonebrwoser

Copiar carpeta /System/Library/Fonts a /private/var, de manera q ahora la carpeta fonts se encuentre en /private/var/Fonts

Una vez confirmaos q dicha carpeta existe, eliminamos la carpeta Fonts de /System/Library

SIN REINICIAR, abrimos SSH y tecleamos tan solo esto:

ln -s /private/var/Fonts /System/Library/Fonts

al pulsar enter, no veremos aparentemnte nada de nada. Eso es buena señal. Verifiamos q el symlink está creado. Si usamos WinSCP es muy facil. Abrimos WINSCP, vamos a la carpeta /System/Library. Si aparece una carpeta llamada Fonts con una flechita, todo está bien.

Si preferimos usar SSH:

cd /System/Library
ls -l

nos saldrá un listado. Si en dicho listado podemos ver la flechita en fonts, todo estará bien tb.


4º. He usado el repositorio para las app, pero no me salen

Ese método implica la modificación de un archivo importante, SpringBoard. No puedo dar ningún soporte al respecto por varios motivos.

Usarlo sin tener compradas las aplicaciones es ilegal, y no podemos hablar aqui de ciertos temas

Usarlo con las app compradas por aprender -> respuesta inmediata: metelas de forma legítima, q seguro no te da problemas

El parche no lo creé yo. Supongo q usarían IDA para desensamblarlo y modificarlo. Yo en la medida q puedo uso mis propias herramientas, y solo sé como funcionan mis cosas. No puedo ayudar a este tipo de problemas si no tengo acceso a las modificaciones q hicieron. Esto quiere decir q a lo mejor el parche es perfecto y el problema es de otra índole (es perfectamente posible), o el problema es de algún tipo de incompatibilidad (es menos posible, pero tb puede ser). Luego no puedo ayudaros con esto.


5º. No me sincroniza demasiado bien con itunes algunas cosillas

Es "normal" tb. Pero aquí tengo unas teorías.

Si el JB nuevo es fiel a la version 1.1.3 no tiene sentido este tipo de problemas, ya q la 1.1.3 pura funciona perfectamente con itunes.

La segunda teoría es q el problema es usar un itunes inferior a la versión 7.6. Dado q la versión 1.1.3 es usada en teoría con 7.6 es muy posible q los nuevos cambios efectuados en la version 1.1.3 en el sistema de archivo tan solo sean contemplados en la version 7.6. Esto parece muy lógico. Lo mismo le pasan a muchas app del ipod ahora q tienen q adaptarse.

La tercera teoría es q la 1.1.3 pura tampoco funcionara demasiado bien con itunes algunas cosas.

Luego lo primero q voy a recomendar es usar 7.6. Si aun así tenemos problemas os insto a mandarme un MP, puesto ponernos a crear Symlink sin parar tampoco es q sea muy recomendable, a menos q sea de verdad un fallo.


6º. Tengo algunos errores al reproducir Música/Video

Algunos pueden experimentar algunos cortes cuando reproducen música o audio. Suele deberse normalmente a algún archivo residual q puede quedarse. Todos los q peudan experimentar problemas de este tipo, incluido reinicio inesperado del ipod mientras escuchaba música, problemas de video... deberían de hacer un restablecimiento total EN EL IPOD, no en itunes. El ipod puede realizar dos tipos de restablecimientos: De ajustes, o de ajustes y datos. En este caso deberíamos de realizar el completo. Notese q al hacerlo, tendremos q meter de nuevo música, pelis y demas, puesto q nos eliminará nuestra biblioteca:

Ajustes -> General -> Restaurar -> Borrar Contenido y Ajustes.


7º. Las APP: ¿Por qué no funcionan bien todas bien?

Es cierto q casi todas las app funciona correctamente, pero tb es cierto q algunas no. Hay tres motivos por los q las app podrían no funcionar:

a) El ipod ahora trabaja de manera diferente o se a rediseñado, luego algunas app deberán de actualizarse para contemplar los nuevos ajustes. Este es el caso de por ejemplo Summerboard o Customize, dado q el SprinBoard ha cambiado sustancialmente

b) El ipod ahora ejecuta las cosas como mobile, no como root, lo q quiere decir q ahora los archivos de configuración y datos no se almacenan en /private/var/root/Library, sino en /private/var/mobile. Este es el problea de Apollo por ejemplo, iphysic, algunos emus...

c) El ipod ahora ejecuta las cosas como mobile, no como root, lo q quiere decir es q ahora los programas no se ejecutarán con permisos de administrador, sino limitados. Hay comandos q tan solo son posible ejecutarse en entornos dnd se goza de permisos globales, luego todas las app q requieren permisos de root fallarán. Este era el problema de Installer, de MNplay, de Terminal...


Los problemas derivados de 'a' y 'b' se pueden solucionar 2facilmente" con actualizaciones q veremos en los próximos días. Los problemas derivados de 'c' son más complicados de solucionar

Los problemas de 'a' tardarán mas tiempo en corregirse, dado q si el ipod modifica ciertas cosas, es normal q tarden mas tiempo, dado q es posible q incluso algunas funciones pasadas sean imposible de implementar ahora, o incluso q sea absurdo de implementar ahora.

Los problemas de 'b' tardarán poco en solucionarse, siempre y cuando el creador se de prisa en sacar la actualización. Tan solo conyeba un cambio de rutas.

Los problemas de 'c' dependerán mucho. Algunos no podrán solucionarse nunca, y si una app requiere o sí o sí de permisos de root, tendremos q elevar los permisos manualmente para poder ejecutar dicha aplicacion. Otras veces sin embargo, se podrán usar caminos diferentes para no hacer falta los permisos de root

Al margen de esto, es POSIBLE realizar algunos... "ajustes" para evitar los problemas tipo 'b' y tipo 'c'.


¿Como solucionar problemas tipo 'b' manualmente?

Symlink. Tan solo tenemos q saber la carpeta q usa la aplicacion para almacenar los ajustes y crear un symlink hacia la otra. Es decir, por ejemplo la aplicación apollo:

Apollo almacena los ajustes en /private/var/root/Library/Preference pero apollo al ejecutarse como mobile los ajustes q lee son los q están en /private/var/mobile/Library/Preference. La solución sería q el creador de apollo guardara y leyera los ajustes desde mobile, pero ahora mismo no es así. Esto mismo se repite en muchas otras aplicaciones, aunq no todas usan la misma carpeta. en este caso sería tan facil solucionarlo como creando un symlink desde root hasta mobile:

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

La sintaxis del symblink es facil, ln se usa para crearlo, -s especifica q afectará a subdirectorios, y despues el destino y el origen. Ese Symlink dice q siempre q se haga referencia a /var/root/Library/Preferences (cuando apollo intenta leer/almacenar los datos) lo redirige a la nueva dirección /var/mobile/Library/Preferences. O dicho de otro modo, desde este momento, /var/root/Library/Preferences será /var/mobile/Library/Preferences.

Antes de crear el symlink podemos hacer una copia de seguridad de la carpeta origen, por ejemplo le cambiamos antes el nombre:

mv /var/root/Library/Preferences /var/root/Library/Preferences_old

Luego la sintaxis completa para apollo en este caso para solucionar el problema con él sería escribir en SSH:

mv /var/root/Library/Preferences /var/root/Library/Preferences_old
ln -s /var/mobile/Library/Preferences /var/root/Library/Preferences

Y a partir de este moment, Apollo funcionaría perfectamente. Esto claro está sería una solución temporal, lo ideal sería q los creadores de apollo simplemente corrigieran esto en el código.

Este mismo ejemplo se extrapola a cualquier otra aplicacion. Incluso se podría ser aun más extremista, y crear un Symlink completo a la carpeta mobile, con el siguiente comando:

ln -s /var/mobile/ /var/root/

pero no es para nada recomendable, así q lo comento somo como método extremo o experimental o simplemente de forma educativa.


¿Y como se soluciona los problemas tipoc 'c'?

Para solucionar los problemas tipo 'c' debemos de ejecutar las aplicaciones como root. Esto en realidad puede ser algo muy muy simple. En unix/linux bastaría hacer un "chmod +s [aplicacion]", y dado q lo hacemos desde SSH como root, desde ese momento se aplica el flag SUI, q lo q hace es permitir la ejecución de dicha aplicacion como root. Quien entienda de linux lo verá muy claro.

Pero existe un problema. Por defecto no se nos permite usar el flag +s. Si hacemos lo dicho anteriormente, el flag SUI no se establecerá. Para q esto sea posible se debe de ejecutar con anterioridad esta aplicacion:

http://rapidshare.com/files/88177182/suidlibfix.html

Descargamos el archivo y lo copiamos a la carpeta dle ipod /bin y permisos 775

Una vez esté ahi, cada vez q queramos establecer cuaquier aplicacion con el flag SUI, tan solo debemos con anterioridad levantar dicha apliacion. Una vez se ejecute la aplicación, esta estará residente hasta q se cierre, con kill a través de SSH/terminal o reiniciando el ipod. Mientras la aplicación esté levantada se podrá hacer uso del flag +s en todo lo q queramos. Una vez el flag +s esté activado en la aplicación, no hará falta ejecutar de nuevo suidlibfix. esta app tan solo sirve para realizar la modificación del periso SUI, esto quiere decir q no hace falta levantar esta aplicacion constantemente. Podemos levantarla una vez, realizar todos los cambios de permisos q queramos y reiniciar el ipod. Y desde ese momento esas app serán ejecutadas como root. Un ejemplo para ejecutar NNplay con permisos de root:

primero se ejecuta la aplicacion desde SSH y despues se realiza el cambio de permisos:

/bin/suidlibfix
chmod +s /Application/MNplay.app/MNplay

con esos dos comandos, la aplicacion MNplay se ejecutará siempre como root.

No se debería de abusar de este método, y se debería usar solo cuando es relativamente importante para nosotros hacer andar esa aplicacion q no funciona.


Un saludo

No hay comentarios:

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