IMEI (англ. International Mobile Equipment Identifier) — всегда 15-значный Международный Идентификатор Мобильного Оборудования. Наличие IMEI обязательно для GSM (450, 850, 900, 1800, 1900 MHz) и UMTS-устройств (в том числе двурежимных — GSM/UMTS). Полная информация о распределении IMEI находится в базе данных Ассоциации GSM.
Предназначение IMEI
IMEI предназначен именно для того, чтобы идентифицировать каждый телефон, как уникальный. Это сделано для того, чтобы предотвратить возможность использования краденных аппаратов: ведь если вор сменил SIM-карту, вроде бы обнаружить телефон невозможно.
Но это не так. Поскольку IMEI автоматически передается аппаратом в сеть оператора при регистрации телефона в сети, то даже если в украденном аппарате сменили SIM-карту, телефон все равно можно найти по его IMEI. С помощью технических средств, которые имеются у операторов сотовой связи, можно локализовать местонахождение включенного телефона с точностью до нескольких сотен метров.
В современных аппаратах IMEI хранится в OTP (One-time programmable — однократно программируемой) зоне памяти и не может быть изменен программными средствами.
Какая информация закодирована в IMEI
Содержание
Структура IMEI
IMEI состоит из 3-х групп цифр: TAC+Serial No+Check Digit
- TAC (Type Allocation Code, Типовой код распределения) - RBI (Reporting Body Identifier). Символьное обозначение - NN. - Type Identifier. Символьное обозначение - XXXX XX. - Serial No (Серийный номер). Назначается производителем индивидуально для каждого устройства. Символьное обозначение - ZZZZZZZ. - Check Digit (Проверочный код). Символьное обозначение - A.
Алгоритм вычисления Check Digit
Чтобы расчитать Check Digit:
1. Каждый второй символ слева направо умножаем на 2.
2. Складываем каждое получившееся на Шаге 1 число между собой (обратите внимание, что, например, 14 мы складываем, как 1 + 4).
3. Складываем между собой нечетные числа IMEI (первое, третье, пятое и т.д.). Если в конце полученного значения будет 0, то расчет Check Digit завершен, то есть Check Digit равен нулю. Если в конце не 0, то переходим к Шагу 4.
4. Суммируем значения Шага 2 и Шага 3 (здесь, например, 14 будем считать как 14, а не 1 + 4).
5. Вычитаем из ближайшего значения к числу, полученному на Шаге 4, оканчивающемуся на ноль значение, полученное на Шаге 4 — получаем значение последней пятнадцатой цифры IMEI-кода.