viernes, 3 de julio de 2009

Proyecto: Eliminando publicidad en Cydia y Safari (Actualizado)

Esto me ha creado un pequeño dilema moral/ético. Llevaba ya un tiempo pensando en si es correcto filtrar la publicidad que aparece por ejemplo en Cydia en cada repositorio, o cuando queremos acceder a la información de una aplicación de Cydia en concreto o... la verdad es que algunas son realmente molestas y consumen un ancho de banda brutal en comparación de lo que consume simplemente lo que es el repositorio o la información util.

Pero claro... por otro lado las aplicaciones de Cydia son en su mayoría gratuitas y los repositorios se hospedan gratuitamente, siendo la publicidad algo de ingresos para ellos, cosa que me parece bien también.

Al final me he decantado por crear el proyecto, y espero que ningún desarrollador de Cydia se moleste. La idea es ir erradicando poco a poco cualquier publicidad no deseada en Cydia e ir extendiendo esto a Safari. En realidad filtrar contenidos es algo muy simple y efectivo, es usado en multitud de programas. Por ejemplo en Firefox tenemos la extensión Adblock plus con la cual nos suscribimso a listas para bloquear los molestos Ads q cada vez más invaden la red. La solución simple para nosotros sin tener que acudir a ningún programa es usar el archivo "hosts".

Esto es algo que he explicado en alguna que otra entrada ya, pero lo comento de nuevo. El archivo "hosts" que existe virtualmente en cualquier OS, es un listado de hosts preconfigurados que usa el sistema operativo para fijar hosts, es decir, mapea nombres de host a direcciones IP. Esto tiene multitud de aplicaciones, luego explicaremos alguna. Su formato es muy simple, una entrada que corresponde a una IP se le asocia un nombre de host. ¿Que significa esto? que cuando cualqueir recurso del sistema tenga que acceder a dicho host, se envía directamente a la IP configurada. En realidad es como un sistema DNS.

Esto tiene una cantidad increible de usos:

-Acelerar la navegacion web añadiendo de forma estática las IPs de los host, con lo que las peticiones DNS no son necesarias para dichos Host, ahorrando ancho de banda y ganando velocidad

-Asignar estáticamente nodos de nuestra propia red, de forma que podamos alcanzar cualquier nodo de nuestra red con un nombre de host.

-Redirigir peticiones de una web (un host) a otra, por ejemplo para empresas o por pura comodidad. Aunque un virus podría dar buena cuenta de ello tambien y usarlo maléficamente. Tu quieres visitar hotmail.com y a todos los efectos estas en dicha página... solo que la iP es diferente y es un sitio Pishing.

-Bloquear contenido. Esta es la opción que le vamos a dar nosotros. Dado que el archivo de hosts hace de tradcutor, podemos hacer que se rediriga cada host a la ip que queramos. ¿Pero que sucede si redirigimos un host a la ip 127.0.0.1?

127.0.0.1 es la direccion de loopback, es decir, es la IP que identifica a tu propio PC en tu PC. Es decir si un programa envia un paquete a dicha dirección IP, lo envía a la interfaz de si mismo. Que sucede si tenemos Apache instalado (un servidor web) y tecleamos en nuestro navegador http://127.0.0.1? Pues que accederemos a la web index.html por defecto de apache, puesto que estaremos accediendo a nuetro mismo PC. Y si no tenemos apache instalado? nos devolverá un error el explorador pq no tenemos ningun servidor corriendo.

Luego si mapeamos un dominio cualquiera a 127.0.0.1, salvamos y accedemos desde el navegador a dicho host, nuestro navegador de firma mágica nos dirá que el host no existe. Que sucede si hacemos un listado de hosts de publicidad mapeados todos a 127.0.0.1? pues que la publicidad de dichos dominios no aparecerá, ni siquiera se solicitará al exterior puesto que internamente la buscará en nuestro propio PC. No hay consumo de ancho de banda de nuestra linea y nos quitamos los molestos ads.

Mi primer objetivo es eliminar la publicidad que pueda de Cydia con este método. Ya podeis descargar el archivo "hotst" que iré poco a poco modificando. Lo teneis a la derecha, en mi blog. Lo descargais, descomprimir y lo copiais y sustituis en el iPod/iPhone, en la ruta:

/private/etc -> Permisos 0644, archivo copiado como root.

No hace falta siquiera reiniciar. Por ahora croe que está eliminada toda la publicidad de todos los repositorios que vienen por defecto en Cydia menos el de iSpazio, debido a que no usan un host propio para ello, y si lo bloquease por este método, bloquearía el acceso tb al repositorio.

El archivo host especifica que hosts bloqueados estan en cada repositorio, aunque no es del todo exacto. Por ejemplo se bloquean los Ads de Google, y es algo que no es exclusivo del repositorio de BigBoss. Todos los ads bloqueados no solo corresponden Cydia, sino que safari o cualquier otra aplicación tendrá acceso a ellos.

Esto quiere decir que espero la colaboración de el resto para que si usando mi archivo de Host encuentra alguna publicidad en Cydia (que no sea la de iSpazio) que me lo deje en lso comentarios que repositorio fue y q me indique información sobre ella.

He dejado por motivos obios los logotipos de cada repositorio, no los considero publicidad, y además sería problemático bloquearlos

Con el tiempo iré creciendo el archivo y bloqueando mas y más ads de safari, por ahora tan solo los que afectan directamente a Cydia, aunque indirectamente los bloquea tb en safari. En safari empezaré por los más usuales.

sé que existen archivos hosts para descargar con listados interminables de adss, pero esa no es mi idea. Para empezar pq esos listados puden ocupar hasta cantidades de 1MB!! lo que haría el procesado de dicho archivo bastante pesado, y además nuestro dispositivo no es que ande muy sobrado de RAM. Así que por ahora me limitaré a ir filtrando poco a poco lo que sea más habitual. Repito, quien tenga interes por eliminar la publicidad de algunos sitios web comunes que lo diga que los añado.

Iba a poner algunas imágenes mostrando Cydia, pero os lo vais a tener que imaginar, otro día


Nada más por hoy... y posiblemente hasta el martes, que un servidor tiene que disfrutar del sol y el mar.


Actualizado: Nota!! la aplicación Categorie de Cydia usa banners de publicidad molestos que están bloqueados por mi version de archivo host. El problema es que la aplicación chequea si el archivo host está bloqueando dichas entradas, y de encontrarla simplemente reusa a ejecutar Categories. Es un método para obligar a tener los Spam aun cuando se use mi sistema. no obstente posiblemente o doy con una solución a esto, o parcheo categories para que no compruebe esto. Odio este tipo de sistemas.

12 comentarios:

Unknown dijo...

Mi estimado Theliel, pues sobreescribí tu archivo host y me causo conflictos con la aplicación categories ya que la misma al abrir me sale un mensaje que dice: "Permissions Error, Admob blocking has been detected in your hosts file. I have worked many hours on this app. It cannot run with this block in place." Lo mas delicado es que no tome la providencia de copiar el archivo "hosts" original y ahora ya hasta me saco de la carpeta el Cydia :( si me pudieras enviar el archivo "hosts" original para no tener que volver a restaurar mi Touch o darme una solución. (Te aviso que la app. Categories manda en su parte inferior pequeños mensajes de spam y me imagino que pasa lo mismo que lo que explicas respecto de iSpazio. Gracias

Unknown dijo...

Estoy pensando que posiblemente sea solo necesario editar el archivo, así que si me puedes explicar que es lo que tengo que modificar a dicho archivo para dejarlo como estaba originalmente. Gracias

Unknown dijo...

Ya lo resolvi, simplemente edite borrando todos los adds y ya funciono todo normalmente. Saludos

Unknown dijo...

Te recomiendo que hagas la recomendación en este Post, que si se tiene instalada la App, Categories, no se haga esta modificación, pues la bloqueará.
Saludos

Anónimo dijo...

(Soy Theliel)

Es posible... pero de ser asi me parece una poca verguenza por parte de los creadores de Categories, dado que la entrada que hace referencia el error, que se perfectamente cual es, es para publicidad. Pero si, para la proxima version lo puedo dejar activado por defecto y dar instrucciones de como deshabilitarlo

Gracias por el apunte

Unknown dijo...

Te voy a agradecer cuando ya hayas hecho esa modificación, para descargarlo. Gracias como siempre mi estimado Norberto Theliel

Theliel dijo...

Bueno, lo que voy a hacer es activarlo por defecto, es decir, que por defecto quien tenga Categories no le funcionará. No obstante colocaré la entrada la primera y la indicaré en los comentarios. Quien tenga categories si quiere continuar usándola deberá añadir un comentario a ella con #. Voy a editar el post y explicarlo.

Unknown dijo...

Voy a estar pendiente de tu post editado para la app Categories.

Gracias y saludos

Anónimo dijo...

Hola Amigo Theliel, una duda yo puse tu archivo hosts que para evitar la publiciad, pero tengo problemas con sbsetting funciona bien pero a la hora de darle en el boton que dice "more" sale un error
Permissions Error
An ad blocking host file installed.
The app cannot run this way. Would you like to unblock the elements we need? (The app will need to be restarted after).

y aparecen dos botones uno que dice "YES, Fix Me" y "NO".

Le doy clic en el que dice "YES, Fix Me" pero nunca deja de salir ese mensaje.
Espero tu ayuda y gracias por la informacion que siempre nos das.

Theliel dijo...

Gracias anonimo, se ve que a los que crean cositas en Cydia no les gusta que bloqueemos la publicidad... :P

Voy a identificar que ads es y por otro lado a intentar sortearlo por otro lado.

Gracias por el apunte

Theliel dijo...

vale, solucionarlo me hes muy facil, el problema es que necesito parchear sbsettings. De momento voy a publicar un sbsettings modificado para tal efecto.

Pq? Porque como ya he dicho estoy completamente desacuerdo cn estas prácticas.

Voy a realizar las modificaciones pertinentes y a reestructurar. De nuevo el ads que no quiere impedir usar es:

mm.admob.com
a.qwapi.com
mydas.mobi

Un simple salto incondicional y listo. Ahora edito el post y actualizo. Gracias de nuevo

Anónimo dijo...

mas bien gracias a ti por siempre echarnos la mano aprendiendo cosa nuevas y sacándonos de apuros

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