Идентификация перевозчика

Устройства под управлением Android 9 могут распознавать информацию о подписке оператора, чтобы предоставить идентификатор и имя оператора. Android поддерживает базу данных идентификаторов операторов с правилами сопоставления для каждого оператора и его уникального идентификатора оператора. AOSP включает содержимое базы данных идентификаторов операторов в файл carrier_list.textpb . Единая база данных минимизирует дублирование логики в приложениях, которым необходимо идентифицировать операторов, и ограничивает раскрытие атрибутов, идентифицирующих оператора.

Для улучшения покрытия и точности идентификации оператора Android поддерживает обновления внеполосных и идентификаторов операторов. Каждое обновление поставляется с номером версии и публикуется в AOSP.

Выполнение

Пользователи, желающие реализовать внеполосные обновления, могут загрузить двоичный файл carrier_list.pb из AOSP. Чтобы просмотреть читаемый формат таблицы, см. carrier_list.textpb .

Поместите таблицу идентификаторов операторов в раздел /data/misc/carrierid/ устройства. Если таблица идентификаторов операторов новее существующей версии, устройство сохраняет таблицу в базе данных идентификаторов операторов class . Самая последняя информация из базы данных идентификаторов операторов извлекается публичными методами getSimCarrierId() и getSimCarrierIdName() .

Добавить информацию об идентификаторе перевозчика в базу данных

Чтобы добавить или обновить идентификатор перевозчика в базе данных, отправьте запрос, используя форму «Информация об идентификации перевозчика» .

Ваш запрос рассматривается, и если он одобрен, изменение отправляется в базу кода AOSP по адресу carrier_list.pb . Затем вы можете скопировать обновленный список и включить его в свою настроенную сборку.

Интеграция идентификаторов операторов с CarrierConfig

Начиная с Android 10, конфигурация оператора поддерживает использование идентификаторов оператора в качестве ключей для получения конфигураций оператора из CarrierService .

Интеграция идентификаторов операторов с CarrierConfig имеет следующие преимущества:

  • Объединяет все пары MCC/MNC для каждого оператора в одном месте, удаляя дублирующиеся или несогласованные данные.
  • Создает канонический идентификатор для каждого оператора и устраняет неоднозначность.
  • Позволяет идентифицировать операторов мобильных виртуальных сетей (MVNO) с помощью индивидуальных идентификаторов вместо конфигураций в рамках оператора мобильной сети (MNO).

Перенос данных конфигурации в идентификаторы операторов

Чтобы перенести данные конфигурации из пар MCC/MNC в идентификаторы операторов, выполните следующие действия:

  1. Сгруппируйте файлы carrier_config_mccmnc.xml от одного оператора. Используйте carrier_list.textpb в качестве ссылки для сопоставления информации MCC, MNC и MVNO с конкретным оператором.

  2. Объедините конфигурации в один файл.

  3. (Необязательно) Наследовать данные от MNO. MVNO наследуют конфигурации от MNO в устаревшем файле carrier_config_mccmnc.xml . Поскольку идентификаторы операторов позволяют всем операторам, включая MVNO, иметь выделенный файл конфигурации, рекомендуется включать данные MNO во время миграции.

  4. Если конфигурация для идентификатора оператора MVNO не существует, извлеките конфигурацию из идентификатора оператора MNO с помощью getCarrierIdFromSimMccMnc .

  5. Переименуйте новый файл в carrier_config_carrierid_ carrierid _ carriername .xml , где carrierid должен соответствовать canonical_id , а carriername должен соответствовать carrier_name в carrier_list.textpb