Entendiendo el jailbreak

septiembre 26, 2012 on 8:19 pm | In Gadgets, Hacks, Software | 3 Comments

Elro AB440S/3C – Enchufes con manejo remoto (3 unidades) y mando a distancia (importado de Alemania)

Todos hemos escuchado los conceptos de “jailbreak” y “rootear” relativos a teléfonos iphone y android respectivamente o incluso “unlock” relativo a  ambos, pero, ¿realmente sabemos lo que significan y sus implicaciones? Con este post vamos a intentar aclararlos así como entender un poco más la filosofía de ambos terminales. No trataré otros teléfonos como Symbian o windows phone ya que no he trasteado con ellos y no tengo el conocimiento necesario (lo cual por supuesto no quiere decir sea un experto en iphone y mucho menos en android).

 

Empecemos por el concepto más fácil, el unlock. Cuando compramos un terminal móvil, tenemos dos opciones, comprarlo libre, o comprarlo bloqueado a una determinada compañía. Veamos ambos casos:

  • Libre: Comprar un terminal libre significa que podemos usarlo con cualquier compañía proveedora de servicios móvil, esto es, podemos introducir en el cualquier tarjeta SIM y el teléfono funcionará sin mayor complicación. Podemos introducir una tarjeta SIM del operador A, funcionando el teléfono perfectamente, o por ejemplo si viajamos al extranjero y queremos poder hacer llamadas sin tener que pagar roaming podemos introducir una tarjeta del operador B y el teléfono seguirá funcionando sin problemas.
  • Bloqueado: Comprar un terminal bloqueado, significa que el terminal sólo funcionará con una tarjeta SIM del operador al cual se encuentra bloqueado. Si insertamos una tarjeta SIM de un operador diferente el teléfono no arrancará y por supuesto no podremos hacer llamadas ni conectarnos a la red de datos.

Cuando compramos un teléfono subvencionado por una compañía, normalmente implica que dicho teléfono esta bloqueado para dicho operador, con lo que no podremos insertar en el otra una tarjeta de otro operador diferente. Aquí es donde entra el concepto de unlock. Hacer unlock a un teléfono quiere decir que vamos a convertir un teléfono bloqueado en un teléfono libre. Si hemos comprado el teléfono libre (y por lo tanto más caro) no debemos preocuparnos nunca por este concepto. Incluso si lo hemos comprado bloqueado pero no necesitamos usarlo con otro operador tampoco hemos de preocuparnos. Pero, si tenemos un terminal bloqueado y queremos usarlo con un operador diferente tenemos que hacer unlock de dicho teléfono para poder usarlo.

Ahora veamos como gestionan el unlock los iphone y el resto de teléfonos (al menos de los que yo conozco).

  • Los teléfonos no iphone, cuando se fabrican y se les mete el software se les marca en su interior si son libres o bloqueados. Para desbloquearlos hay que conseguir entrar en cierta posición de memoria del teléfono y marcarle como libre. Por supuesto esto también se puede hacer introduciendo un código en el teléfono que suele facilitar el operador que ha hecho el bloqueo una vez acabada la permanencia firmada en el contrato. Resumiendo podemos hacer el unlock de un terminal android (o casi todos menos el iphone) modificando una posición en memoria o introduciendo el código suministrado. Para marcar esa posición de memoria es necesario usar programas específicos que nos harán el trabajo, usar cables especiales o incluso a veces es necesario tocar algún chip interno en el teléfono. Una vez hecho esto el teléfono nos queda libre (unlock) para siempre. Normalmente cualquier tienda especializada en teléfonos es capaz de hacer este unlock a casi todos los teléfonos a cambio de un cierto precio que varía en función de la complejidad de la tarea.
  • Los iphone, cuando son entregados al usuario final aun no tienen programado internamente si son libres o no, lo que hace Apple es mantener unos servidores centrales donde tiene emparejados los números de serie (en verdad creo que lo que guarda es el UUID pero lo que nos importa es el concepto) de los teléfonos así como su estado (libre o bloqueado, y si está bloqueado el detalle de que operador). Por eso según  compramos un teléfono iphone no puede ser usado si antes no se conecta a Internet, bien mediante una red wifi bien mediante conexión a nuestro odiado itunes. Sin esa conexión no sabe si es libre o no y por ello directamente no arranca hasta que la conexión es realizada. En dicha conexión ataca a los servidores y pregunta si es libre o bloqueado y configura el terminal acorde la situación. Cada vez que restauramos el teléfono, el proceso se repite. Incluso cuando el teléfono se rompe y es sustituido por otro, lo que hace Apple es actualizar los servidores centrales con el nuevo numero de serie (UUID) asociado al estado que tenía el teléfono sustituido para que siga en la misma situación. Para liberar un iphone, es necesario modificar el servidor central donde se guarda el estado, cosa que en principio sólo pueden hacer los operadores cuando ellos deciden desbloquear un teléfono. En las primeras versiones existían formas de modificar la programación interna del teléfono para saltar esta comprobación pero a día de hoy no se ha conseguido hacer unlock a un iphone 4 con versiones recientes y mucho menos a un iphone 4s o iphone 5.

 


 

Ahora vamos con el jailbreak. Los iphone son unos terminales que por debajo corren un sistema operativo basado en BSD (UNIX) y que Apple blinda al máximo en arras de controlar la seguridad y el buen funcionamiento. Dicho blindaje se basa en que sólo hay una aplicación en el teléfono que puede instalar otras aplicaciones, la APP Store. Además todas las aplicaciones instaladas tienen que venir obligatoriamente firmadas por apple, sin dicha firma el teléfono se niega a ejecutarlas. Por lo tanto estamos obligados a instalar aplicaciones descargadas a través del APP Store (o itunes). Como añadido, Apple por supuesto tiene un control absoluto sobre que aplicaciones admite y cuales no en la APP Store, por lo que una aplicación que a los usuarios podría resultar muy interesante, si Apple unilateralmente decide que no admite dicha aplicación, no podremos instalarla porque no pasara sus controles.

Pues bien, con jailbreak lo que hacemos es modificar parte del sistema operativo para que no verifique las firmas de las aplicaciones y además instala una aplicación más que permite instalar otras aplicaciones, Cydia. Por supuesto una vez rota la barrera ya no hay límite y cualquier aplicación que instalemos es libre de instalar otras ya que no hay ningún control (ni siquiera de firmas). Tenemos por tanto un mercado secundario de aplicaciones no aprobadas por Apple y que podemos instalar a través de Cydia. Entre dichas aplicaciones podemos encontrar aplicaciones gratis, aplicaciones de pago, aplicaciones piratas (copias de la app store pero sin pagar) e incluso virus y troyanos si no andamos con mucho cuidado. Aquí ya entra el sentido común de cada uno decidiendo que es lo que instala y que es lo que no. Si te entra la locura y te lias a probar aplicaciones sin control tu teléfono podría llegar a funcionar mal (recuerda que ya Apple no verifica que cada aplicación hace lo que dice y no interfiere en las demás), espiar todo lo que haces, o incluso hacerte llamadas a teléfonos de tarificación especial sin tu consentimiento. Yo soy defensor del jailbreak, pero está claro que no puedes ir instalando todo lo que veas por ahí ya que puedes llevarte alguna sorpresa. En algún post más adelante verificaremos como puedes revisar tu teléfono con jailbreak para verificar que no tienes alguna aplicación haciendo cosas incontroladamente…

Existen dos modalidades del jailbreak, tethered y untethered. La primera de ellas, tethered, implica que si apagas el teléfono (o se te gasta la batería), el teléfono no arrancara de nuevo hasta que lo conectes a un ordenador y realices parte del proceso de jailbreak de nuevo (hablamos de menos de 1 minuto). La segunda, untethered, se mantiene sin problemas aunque apaguemos el teléfono. Las versiones tethered salen primero (son mas sencillas de realizar) y según los desarrolladores encuentran más bugs dan salida a la untethered. El algunas ocasiones se ha presentado también una versión semitethered que permite arrancar el teléfono en caso de que se apague permitiéndote hacer las cosas mínimas (llamar, sms,…) aunque por supuesto no ejecutar aplicaciones no firmadas.

¿El el rootear de los android equivalente al jailbreak? Los teléfonos android no tienen la limitación comentada anteriormente de los iphone y pueden ejecutar cualquier aplicación independiente de donde venga, por lo que podemos decir que los android ya están jailbreakeados de fábrica. Por lo tanto si descuidas la procedencia de las aplicaciones (o a google se les escapa alguna) puedes encontrarte con los mismos problemas que en un iphone jailbreakeado. Pero aunque se pueda ejecutar cualquier aplicación, hay ciertos parámetros de sistema que no pueden ser modificados por estas ya que son considerados de sistema y requieren accesos privilegiados (root). Rootear el teléfono es conceder permiso a modificar esos parámetros de sistema a las aplicaciones a las que concedas el acceso root. Esos accesos pueden ser tan simples como encender el flash de la cámara para hacer una linterna, permitir configurar el puerto USB en modo host para controlar un disco duro externo o incluso hacer un backup completo del equipo.

Al hacer un jailbreak también va implícito el tener acceso root por lo que no existe el acceso root en un iphone.

No voy a entrar en el detalle de como se hace el unlock, jailbreak o root ya que hay cientos de páginas comentándolo y además es un procedimiento muy dinámico y que cambia de versión a versión y escapa a lo que quería contar aquí.

3 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. Decir que el control que hace Apple de las aplicaciones es únicamente por seguridad, es ignorar que hay productos seguros (como la aplicación para ver los mapas de google), y que le hace competencia. Vamos que no solo hay una razón en el asunto.

    Comment by fer — Jueves 27 septiembre, 2012 #

  2. Está claro que no sólo es por seguridad, pero es uno de ellos y bien importante.

    Saludos.

    Comment by Davidin — Viernes 4 enero, 2013 #

  3. [...] Entendiendo el jailbreak [...]

    Pingback by Entendiendo el jailbreak — Sábado 9 marzo, 2013 #

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.