Ir al contenido principal

Hackeando el iPhone - Guía para entender el proceso

En vez de hack, jailbreak es el anglicismo más apropiado para referirse a liberar un iPhone de las restricciones que de fábrica le ha impuesto Apple. Ve a las descargas y sáltate el rollo.

Las mayores ventajas de hacerlo son: 1) es la única forma conocida para desbloquearlo (ese es otro proceso SEPARADO, para cambiar de compañía de telefonía, del que hablo más adelante); 2) permite usar Cydia que es una aplicación parecido al AppStore y la cuál puede instalar en el dispositivo software no aprobado por Apple (por ejemplo un app que permite hacer tethering ¨para usar el teléfono como modem de Internet - también descrito a más detalle más adelante).
La mayor desventaja, además de que es algo difícil lograrlo, es que si actualizamos un iPhone "liberado" (hackeado) con iTunes, se vuelve al estado restringido. Adicionalmente es posible que se pierdan las notificaciones (servicio PUSH) y YouTube aunque esto puede ser arreglado poseriormente.

Explicación

Pero primero intentaré desenredar la confusa terminología en inglés y separar las varias cosas que queremos lograr con un iPhone que está jailbreak-eado. Lo más importante es entender que jailbreaking, desbloquear (unblocking), y tethering son cosas DIFERENTES que simplemente están ligadas pero que se deben hacer una por una.

  • Jailbreak significa liberar (de una carcel). Y la forma más fácil de hacerlo es "cocinando" actualizaciones de software personalizadas con herramientas como PwnageTool o RedSn0w en MacOS y Sn0wbreeze en Windows.
  • Desbloquear significa, como muchos ya saben, permitir que el teléfono funcione con cualquier tarjeta SIM (card) de un operador de telefonía celular GSM. En algunos países no hay muchas opciones (ej. Telcel en México) ¡pero en otros sí! En EUA fue un gran tema hace poco porque oficialmente solo se puede tener iPhone con AT&T, y recientemente también Verizon. Se puede lograr con programa llamado ultrasn0w que se instala desde Cydia directamente en el dispositivo liberado.
  • Tether significa atar (amarrar) y se refiere a establecer un vínculo entre el dispositivo, que se puede conectar a Internet por medio del servicio telefónico (o en este caso de datos, suponiendo que está contratado), y una computadora personal. En resumen usar el iPhone como un modem ya sea conectado por USB o hasta inalámbrico por Wi-Fi-Bluetooth. Hacer esto está estrictamente prohibido en la gran mayoría de los contratos de telefonía celular ¡pero a quién le importa! ¿Por qué pagar 2 servicios de Internet? NOTA: 3G suele ser bastante más lento que una conección a Internet residencial común ya sea DSL, cable, satélite, o lo que sea, pero ya viene 4G...
      * El término tethered o untethered jailbreak no se refiere a el mismo tipo de atado, sino que indica que el proceso de liberación en cuestión automáticamente actualiza el firmware del módem (también llamado baseband, la antena celular - descrito más adelante) lo cual sinifica que no se podrá desbloquear el aparato aunque quede liberado.


 ... más información y correción ortográfica pronto :)
 UNDER CONSTRUCTION !

"Hacktivation" ? Push Notifications? (XPushFix | XPush Doctor; | :) SAM [http://www.bingner.com/SAM.html]) Springboard?
Old/new bootrom ? http://www.redmondpie.com/how-to-check-iphone-3gs-bootrom-iboot-version/
SHHS blobs ?
baseband (modem firmware) ?
kernelcache.release.n88 ?

Specific process for iPhone 3GS (old bootrom) with 4.0.2 + http://www.ihackintosh.com/2010/03/push-doctor-free-push-fix-for-hacktivated-iphones/


http://en.wikipedia.org/wiki/IOS_version_history



Descargas


http://www.redmondpie.com/jailbreak-iphone-3gs-4.0.2-ios-with-pwnagetool-custom-firmware-how-to-guide/
http://www.redmondpie.com/unlock-ios-4.0.2-with-ultrasn0w-how-to-guide/

Comentarios

Entradas populares de este blog

sqlalchemy ProgrammingError can't adapt type numpy.float64 - Python troubleshooting

Are you getting a

sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt type 'numpy.float64'
???

It's because psycopg (psycopg2) - which is used inherently by SQL Alchemy but if you're just dealing directly with alchemy you might not know this - has no idea how to make the numpy.core.numerictypes.float64 (complete type path: another thing they don't tell you) a string for SQL querying.

Simple solution, add:

# solution by Jorge Orpinel found at rehalcon.blogspotcom
import numpy
from psycopg2.extensions import register_adapter, AsIs
def addapt_numpy_float64(numpy_float64):
return AsIs(numpy_float64)
register_adapter(numpy.float64, addapt_numpy_float64)
somewhere in the program.

For a more complete reference of the problem see http://initd.org/psycopg/docs/advanced.html#adapting-new-python-types-to-sql-syntax

I don't git it.

A lot of people praise git. I liked it at first, now I don't geet it.

Some weird stuff I've found in git, in no particular order:

You can pretend to be anyone. Just change your [user] name and email in .git/config and commit away. As long as when you push you use valid credentials, the commits will be recorded as from someone else. (At least this is possible on GitHub, I know git doesn't implement any specific user access control.)
* I guess you could try to enforce signing commits but as anything besides the basics, that gets pretty complicated on git.Steep learning curve that keeps getting steeper. Ok: git init, git add, git rm -r, git commit -am, git remote add, git fetch, git merge -ff, git push and pull -u of course, git checkout -b, git reset --mixed, git revert HEAD ... Those are just some of the basics... Ever tried to incorporate git subtree pull -P prefix --squash > into your workflow? I have, it's not fun (keep reading).Its super complicated to collaborate…

Dockerize your Django App (for local development on macOS)

I'm writing this guide on how to containerize an existing (simple) Python Django App into Docker for local development since this is how I learned to to develop with Docker, seeing that the existing django images and guides seem to focus on new projects.

For more complete (production-level) stack guides you can refer to Real Python's Django Development with Docker Compose and Machine or transposedmessenger's Deploying Cookiecutter-Django with Docker-Compose.

Pre-requisitesAn existing Django app which you can run locally (directly or in Virtualenv). We will run the local dev server with manage.py runserver.A requirements.txt file with the app dependencies, as is standard for Python projects; including MySQL-python.Working local MySQL server and existing database. (This guide could easily be adapted for other SQL engines such as Postgres.)Install Docker. You can see Docker as a virtual machine running Linux on top of your OS ("the host"), which in turn can run con…