Solía trabajar en una tienda de desbloqueo de teléfonos en el Reino Unido, por lo que mi conocimiento no cubre nada en los últimos 5 años más o menos, y puede ser un poco centrado en el Reino Unido y el euro, pero intentaré responder .
Hay dos tipos principales de "desbloqueo". Uno se llama "desbloqueo del operador", que permite utilizar el teléfono en cualquier operador. Un bloqueo de operador se usa comúnmente en teléfonos contratados, para garantizar que continúe usando el dispositivo con ese proveedor si su contrato finaliza. El otro tipo se llama "unbarring", que cambia el IMEI del teléfono para que ya no coincida con uno en la lista de barrados. En el Reino Unido esto es ilegal, porque los teléfonos con barrotes son los que se han reportado como robados.
El IMEI no es un hash. Es un identificador (generalmente) único para dispositivos móviles con capacidad GSM. Cuando se coloca un teléfono en la lista restringida, todos los operadores obtienen una copia de esta lista, y sus torres simplemente enviarán un rechazo "prohibido" si un IMEI prohibido intenta registrarse en el sistema. El soporte del hardware para la programación del IMEI es variable, aunque muchas implementaciones de banda base hoy en día tienen un bloqueo de escritura que no se puede deshacer una vez establecido (al menos sin engaños serios). La forma habitual en que las personas evitan los IMEI restringidos es tomar una tabla de donantes sin restricciones de otro dispositivo con daños físicos graves (por ejemplo, una pantalla rota y un estuche) pero con una placa base que funciona de otra manera. Esta es un área gris legal, ya que puede interpretarse como el trasplante de partes periféricas de trabajo de un teléfono con barrotes a un teléfono sin batería que fue dañado. Algunos teléfonos más antiguos pueden cambiar su IMEI a través de la programación, pero eso es totalmente ilegal. Puede haber formas de hacer esto en los dispositivos modernos, pero nunca lo he visto en acción.
Si solo estás hablando sobre el desbloqueo de un operador, la respuesta es (a veces; ver comentarios) tan simple como un flash de firmware. Con algunos teléfonos, puede hacer esto simplemente poniéndolo en un modo de depuración (por ejemplo, modo ADB en Android, modo DFU en iOS) y utilizando el software disponible de forma gratuita para actualizar el firmware desbloqueado de una empresa de valores en el dispositivo. Es un trabajo de cinco minutos. En otros dispositivos, especialmente en el pre-teléfono inteligente donde no se está ejecutando Android, iOS, sino un sistema operativo personalizado para ese teléfono o fabricante en particular, no hay compatibilidad con USB flash. En estos casos, las personas tenían que adquirir diagramas esquemáticos filtrados y construir dispositivos que podrían conectarse a puntos de prueba en la placa y actualizar el firmware. Cuando trabajé en la reparación de teléfonos, teníamos al menos cuatro cables y dispositivos diferentes para este propósito, cada uno de los cuales tenía una variedad de dispositivos en los que podía funcionar. También utilizaron un software especial y el proceso podría ser bastante complicado, generalmente requiriendo al menos dos o tres etapas de flasheo, pero a veces más; un ejemplo extremo es uno de los teléfonos LG que requirió la actualización de una base de firmware muy antigua, y luego actualizar cada una de las diez actualizaciones, una por una.
La forma más legítima de realizar un desbloqueo de operador es a través de un código NCK. El algoritmo del código NCK es totalmente propietario y el lugar donde se implementa varía completamente en el dispositivo y el operador. Por lo general, el algoritmo de validación NCK se implementa en el firmware del teléfono, pero esto no significa necesariamente que conocer el algoritmo de validación lo haga bien. Por lo que he leído, los dispositivos iOS modernos implementan NCK utilizando algo similar a la criptografía de clave pública, con los datos de desbloqueo del operador enviados a través de SMS.
En los viejos tiempos (estamos hablando de la era Nokia 3210) se conocía el algoritmo NCK y cualquiera podía desbloquearlos, y en algunos casos incluso había secuencias clave (como *#06#
) que podían usarse para hacer una portadora desbloquear. De hecho, volviendo a mediados de los años 90, hubo incluso códigos que detuvieron el "reloj SIM" (no estoy seguro si ese es el término legítimo) para que sus llamadas sean totalmente gratuitas, aparte del cargo de conexión. Esto fue, por supuesto, un fraude, pero esto no impidió que mucha gente lo hiciera.