Идентификатор мобильного оборудования

редактировать

A идентификатор мобильного оборудования (MEID) - это глобальный уникальный номер, идентифицирующий физический элемент оборудования мобильной станции CDMA2000. Формат номера определен в отчете 3GPP2 S.R0048, но на практике его можно рассматривать как IMEI, но с шестнадцатеричными цифрами.

Код регионаКод производителяСерийный номерCD
RRXXXXXXZZZZZZC

MEID имеет длину 56 бит (14 шестнадцатеричных цифр). Он состоит из трех полей, включая 8-битный региональный код (RR), 24-битный код производителя и 24-битный серийный номер, присвоенный производителем. Контрольная цифра (CD) не считается частью MEID.

MEID был создан для замены ESN, первоначальная форма которых была исчерпана в ноябре 2008 года. Согласно TIA / EIA / IS-41 Revision D и TIA / EIA / IS-2000 Rev C, ESN по-прежнему является обязательным полем во многих сообщениях - для совместимости устройства с MEID могут использовать псевдо-ESN (pESN), который представляет собой код производителя 0x80 (ранее зарезервированный), за которым следуют младшие 24 бита SHA-1 хэш MEID. MEID используются в мобильных телефонах CDMA. Телефоны GSM не имеют ESN или MIN, только номер IMEI (международный идентификатор оборудования мобильной станции).

Содержание
  • 1 Получение MEID
  • 2 Администрирование
  • 3 Форматы отображения
  • 4 Конфликты pESN
  • 5 Код для преобразования
  • 6 Ссылки
  • 7 Внешние ссылки
Получение MEID

Обычно при открытии номеронабирателя телефона и вводе * # 06 # отображается его MEID.

Администрирование

Разделение международных идентификаторов мобильного оборудования (IMEI), используемых GSM / UMTS и MEID основаны на диапазонах номеров. Есть два администратора: глобальный десятичный администратор (GDA) для IMEI и глобальный шестнадцатеричный администратор (GHA).

С августа 2006 года TIA действует как GHA для назначения префиксов кода MEID (0xA0 и выше), а GSM Association действует как глобальный десятичный администратор. http://www.babt.com/gsm-imei-number-allocation.asp723889TIA также выделяет коды IMEI, специально предназначенные для телефонов с двойной технологией, вне диапазона RR = 99. Другие администраторы, работающие в рамках GSMA, также могут выделить любой IMEI для использования в телефонах с двумя технологиями. Каждый IMEI также может использоваться как MEID в устройствах CDMA2000 (а также в одномодовых устройствах, разработанных с использованием протоколов GSM или других протоколов 3GPP), но коды MEID также могут содержать шестнадцатеричные цифры, и этот класс кодов MEID не может использоваться в качестве IMEI.

Форматы отображения

Существует два стандартных формата для MEID, и оба могут включать необязательную контрольную цифру. Это определяется стандартом 3GPP2 X.S0008.

Шестнадцатеричная форма определяется как 14 цифр, сгруппированных вместе, и применяется независимо от того, находятся ли все цифры в десятичном диапазоне или некоторые из них находятся в диапазоне 'A' - 'F'. В первом случае все цифры находятся в диапазоне '0' - '9', контрольная цифра вычисляется с использованием обычного алгоритма base 10 Luhn, но если хотя бы одна цифра находится в диапазоне ' A '-' F 'этот алгоритм контрольной цифры использует арифметику с основанием 16. Контрольная цифра никогда не передается и не сохраняется. Он предназначен для обнаружения большинства (но не всех) ошибок ввода, он не предназначен для использования в качестве контрольной суммы или CRC для обнаружения ошибок передачи. Следовательно, он может быть напечатан на телефонах или их упаковке в случае ручного ввода MEID (например, потому что нет штрих-кода или штрих-код нечитаем).

Десятичная форма определяется как 18 цифр, сгруппированных по шаблону 5–5–4–4, и рассчитывается путем преобразования части кода производителя (32 бита) в десятичную форму и заполнения слева с помощью '0' цифры до 10 цифр и раздельное преобразование части серийного номера в десятичную и заполнение слева до 8 цифр. Контрольную цифру можно рассчитать из 18-значного результата с использованием стандартного алгоритма 10 Луна и добавить в конец. Обратите внимание, что для создания этой формы цифры MEID обрабатываются как числа с основанием 16, даже если все они находятся в диапазоне от «0» до 9 ».

Конфликты pESN

Поскольку pESN формируется хешем на MEID, существует вероятность конфликтов хешей. Это вызовет чрезвычайно редкое состояние, известное как «коллизия» в чистой сети только с ESN, поскольку ESN используется для расчета маски открытого длинного кода (PLCM), используемой для связи с базовой станцией. Два мобильных телефона, использующие один и тот же pESN в пределах одной и той же зоны базовой станции (работающие на одной и той же частоте), могут привести к установлению вызова и сбоям поискового вызова.

Вероятность столкновения была тщательно изучена. Приблизительно, по оценкам, даже в сильно загруженной сети частота такой ситуации ближе к 1 из 1 миллиона вызовов, чем к 1 из 100 000.

Спецификация 3GPP2 C.S0072 предоставляет решение этой проблемы, позволяя устанавливать PLCM на базовой станции. Когда это делается, для базовой станции легко гарантировать, что все коды PLCM уникальны. Эта спецификация также позволяет PLCM основываться на MEID или IMSI.

. Другая проблема возникает, когда коды ESN хранятся в базе данных (например, для OTASP ). В этой ситуации риск того, что по крайней мере два телефона будут иметь одинаковый псевдо-ESN, можно рассчитать с помощью парадокса дня рождения и с вероятностью примерно 50% в базе данных с 4800 записями псевдо-ESN. Спецификации 3GPP2 C.S0016 (версия C или выше) и C.S0066 были изменены, чтобы разрешить передачу замещающего идентификатора MEID, что решает эту проблему.

Другая проблема заключается в том, что сообщения, доставленные по прямому каналу поискового вызова с использованием pESN в качестве адреса, могут быть доставлены на несколько мобильных устройств, по-видимому, случайным образом. Этой проблемы можно избежать, используя вместо него мобильный идентификационный номер (MIN) или адресацию на основе IMSI.

Код для преобразования

Этот короткий сценарий Python преобразует MEID в pESN.

import hashlib meid = input ("Enter a MEID:").upper () bytes = bytearray.fromhex (meid) s = hashlib.sha1 (bytes) # Расшифруйте шестнадцатеричный MEID (преобразуйте его в двоичный!) Pesn = "80" + s.hexdigest () [- 6:]. Upper () # Поместите последние 6 цифр хэша после 80 print ("pESN:" + pesn)

CDG ​​также предоставляет javascript калькулятор с дополнительными параметрами преобразования.

Этот метод C # преобразует MEID из HEX в формат DEC (или возвращает пустое значение для недопустимого значения MEID HEX)

общедоступная статическая строка HexToDecimal (ввод строки) {if (input.Length! = 14) {return ""; // Недействительный шестнадцатеричный MEID. } строка hexPart1 = input.Substring (0, 8); строка hexPart2 = input.Substring (8, 6); попробуйте {строка decPart1 = int.Parse (hexPart1, System.Globalization.NumberStyles.HexNumber).ToString (). PadLeft (10, '0'); строка decPart2 = int.Parse (hexPart2, System.Globalization.NumberStyles.HexNumber).ToString (). PadLeft (8, '0'); вернуть decPart1 + decPart2; } catch (System.FormatException ex) {return ""; // Ошибка шестнадцатеричного анализа, неверный шестнадцатеричный MEID. }}
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-30 04:14:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте