lunes, 11 de febrero de 2008

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 -> Mozilla/5.0 (iPod; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A100a Safari/419.3

iPod 1.1.2 -> Mozilla/5.0 (iPod; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3

iPod 1.1.3 -> Mozilla/5.0 (ipod; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3

iPod 1.1.4 -> Mozilla/5.0 (iPod; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419.3

iPod 2.0 -> Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20

iPod 2.0.1 -> Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0_1 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20

iPod 2.0.2 -> Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0_2 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5C1 Safari/525.20

iPod 2.1 -> Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20

iPod 3.0 -> Mozilla/5.0 (iPod; U; CPU iPhone OS 3_0 like Mac OS X; es-es) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
--------------

iPhone 1.1.2 -> Mozilla/5.0 (iPhone; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3

iPhone 1.1.3 -> Mozilla/5.0 (iPhone; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3

iPhone 1.1.4 -> Mozilla/5.0 (iPhone; U; CPU like Mac OS X; es) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419.3

iPhone 2.0 -> Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20

iPhone 2.0.1 -> Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20

iPhone 2.0.2 -> Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_2 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5C1 Safari/525.20

iPhone 2.1 -> Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; es-es) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20
--------------

Installer 3 -> AppTapp Installer/3.0 (iPhone)
Installer 3.01 -> AppTapp Installer/3.01 (iPhone)
Installer 3.11 -> AppTapp Installer/3.11 (iPod/1.1.4, like CFNetwork/100.0)
Installer 4.0b6 -> Install/4.0b6-5 (iPod/2.0.2, like CFNetwork/220.0)
Installer (Interno)-> CFNetwork/152.4

Cydia ->UA + Cydia/1.0.2567-32
Cydia (Interno) -> Telesphoreo APT-HTTP/1.0.98
Cydia (Interno 3.0) -> Telesphoreo APT-HTTP/1.0.592

Decir, q los User Agent del iPod/iPhone es util en la medida de ver páginas especificas para ellos en el PC, y el User Agent del Installer para acceder a aquellos repositorios o aplicaciones desde el PC tb.

17 comentarios:

Pepe317 dijo...

Hablando de sources, me ha pasado un curioso fenómeno.
Tengo un iTouch al cual lo he pasado de la 1.1.2 JB a la 1.1.3 JB
He querido añadir un repositorio al sources para instalar el deviphone-CAT (http://deviphone.t35.com/index.xml)y poner los menús en catalán y tal.
El caso es que me lo clasifica como Uncategorized (Untitled Source) y ni siquiera puedo borrarlo como source. El servidor no está caido puesto que puedes acceder por PC a la pagina xml y a otros usuarios se lo instala sin problemas.

Lo que más me mosquea es que no puedo ni borrrarlo (source delete)!

He probado, siguiendo tus consejos, de modificar el installer via SSH para darle permisos de root... he reiniciado el iTouch... y nada!

En fin, gracias por tu atención y felicidades por tu blog y tus aportaciones en diversos foros de ipod.

Saludos (y perdón por el rollo)!

Josep

Theliel dijo...

El repositorio a priori no está caido efectivamente, pero puede aparecer de todos modos como "Sin categoría".

Has revisado aun así la lista de aplicaciones?

Puede por otro lado q teclearas mal el nombre del repositorio a la hora de meterlo.

No hace falta cambiar el installer a root, usa la última versión q funciona perfectamente.

Ahora bien, para eliminar el repositorio suponiendo q no te deje eliminarlo de ningun modo, puedes acceder por SFTP al ipod:

/var/mobile/Library/Installer

En dicha carpeta hay varios archivos. Uno de ellos se llama PackageSources.plist

Lo puedes extraer al pc y editarlo con el bloc de notas o cualquier editor de texto. En ese archivo se encuentran los repositorios, elimínalo de ahí y listo.

Otra opción es descargar manualmente el archivo de traducción:

http://deviphone.110mb.com/deviphone-CAT.zip

y usar el mismo script del repositorio:

Copiar la carpeta aplicaciones a aplicaciones
Copiar la carpeta System a System
Copiar dev-iphoneuninstall.sh a raiz

Pepe317 dijo...

Muchas gracias por tu atenta respuesta.

Probaré lo que me indicas y si eso te digo el resultado.

Gracias y un saludo.

Josep

Pepe317 dijo...

Hola Theliel:

He podido borrar el repositorio editando el archivo PackageSources.plist, tal como me dijiste.

Provaré de instalar manualmente el paquete.

Otro problema que tengo es que no me deja cambiar la hora del reloj. Al ir a Ajustes < General < Fecha y hora.... me "peta" y me vuelve al board.

La verdad es que estoy pensando el RESTAURAR e reinstalar mediante Ziphone 2.3.... que opinas?

Gracias de nuevo por tu atención.

Saludos

Josep

Theliel dijo...

Ziphone va por la versión 2.4

Sobre el problema de no poder cambiar el reloj, no me extramaría nada q hubieses instalado alguna aplicacion como preferencias avanzadas o similar y no se hayan ajustado bien los permisos, yo probaría con marcar la carpeta Preferences q está en /Applications con los permisos 755 recursivos.

Sobre restaurar o no, si te da problemas lo restauras y listo, tampoco es q se tarde demasiado tiempo.

Y sobre ziphone para touch zibri dijo q estaría trabajando en ello, pero el cuando evidentemente no se sabrá

Pepe317 dijo...

Gracias de nuevo.
Saludos.

Pepe317 dijo...

Por cierto, lo de la fecha y hora lo he solucionado así: http://www.modmyifone.com/forums/showthread.php?t=27971

... por si le pasa a alguien más.

De hecho, no instalé ninguna aplicación de preferencias avanzadas, parece un bug del 1.1.3 JB del DEV TEAM.

Saludos!

Theliel dijo...

no no es un problema de ellos, dado que muy pocas personas tienen dicho problema.

De echo el problema era de permisos tal como dije, probablemente alguna aplicacion que por error modificó el permisos de dicho archivo.

Pepe317 dijo...

OK Theliel.

y muchas gracias por todo!!

Anónimo dijo...

Disculpen, una pregunta:
Cómo agrego el User Agent del iPod 2.0?
Tengo el Firefox 3.0 y el complemento User Agent Switcher, ya había agregado uno anteriormente, pero no entiendo de qué manera tengo que poner esos datos, alguna idea?

Anónimo dijo...

Olvídenlo, parece que el problema es el repo en sí (http://repo.gafoogle.com/), ya entré en otros sin ningún problema y me sale el código que debería.

Saludos!

Anónimo dijo...

Hi,
I have a question that needs your help.
Which application in the iPhone has this UA?
Telesphoreo APT-HTTP/1.0.98
Is it a built-in app or third party app?
Thank you very much for your help.

Theliel dijo...

Hi Anonimous.

Telesphoreo APT-HTTP/1.0.98 its used by Cydia while checking Cydia updates and refreshing Cydia Welcome Home Screen.

Anónimo dijo...

Hi,
Thanks for your quick response.
I have an iPhone 3G on hand. But I do not find any icon named Cydia. I want to know what will trigger the use of this UA.
Thanks.

Theliel dijo...

Cydia are a Application manager Installed into your device once you make a JailBreak. Other Application manager are for example "Installer".

Are you sure you dont have any Cydia iCon?

Cydia icon by default its this:

http://img529.imageshack.us/img529/3254/24944932qh6.jpg

Anónimo dijo...

Hi,
I have checked the JPG file. I do not have a Cydia icon.
You mentioned that it is available after a JailBreak.
I am in Hong Kong and the iPhone 3G are no SIM lock. The reason for me not able to find the Cydia icon should be due to no JailBreak was done. Am I correct?
Thanks for your help.

Theliel dijo...

Correct.

Then you dont have JB your device, so in your device you cant install 3rd party Applications

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