Устройства под управлением Android 9 могут распознавать информацию о подписке оператора, предоставляя идентификатор и название оператора. Android поддерживает базу данных идентификаторов операторов с правилами сопоставления для каждого оператора и его уникального идентификатора. AOSP включает содержимое базы данных идентификаторов операторов в файл carrier_list.textpb . Единая база данных минимизирует дублирование логики в приложениях, которым необходимо идентифицировать операторов, и ограничивает раскрытие атрибутов, идентифицирующих оператора.
Для улучшения покрытия и точности идентификации операторов Android поддерживает внеполосные обновления и обновления таблиц идентификаторов операторов. Каждое обновление имеет номер версии и публикуется в AOSP.
Выполнение
 Пользователи, желающие реализовать внеполосные обновления, могут загрузить двоичный файл carrier_list.pb с сайта AOSP. Чтобы просмотреть читаемый формат таблицы, см. carrier_list.textpb .
 Поместите таблицу идентификаторов операторов в раздел /data/misc/carrierid/ устройства. Если таблица идентификаторов операторов новее текущей версии, устройство сохраняет её в базе данных идентификаторов операторов класса . Актуальная информация из базы данных идентификаторов операторов извлекается публичными методами getSimCarrierId() и getSimCarrierIdName() . 
Добавить информацию об идентификаторе оператора в базу данных
Чтобы добавить или обновить идентификатор перевозчика в базу данных, отправьте запрос, используя форму «Информация об идентификации перевозчика» .
 Ваш запрос будет рассмотрен, и в случае одобрения изменение будет отправлено в кодовую базу AOSP по адресу carrier_list.pb . Затем вы сможете скопировать обновлённый список и включить его в свою сборку.
Интеграция идентификаторов операторов с CarrierConfig
 Начиная с Android 10, конфигурация оператора поддерживает использование идентификаторов оператора в качестве ключей для извлечения конфигураций оператора из CarrierService .
 Интеграция идентификаторов операторов с CarrierConfig имеет следующие преимущества:
- Объединяет все пары MCC/MNC для каждого оператора в одном месте, удаляя дублирующиеся или несоответствующие данные.
- Создает канонический идентификатор для каждого оператора и устраняет неоднозначность.
- Позволяет идентифицировать операторов мобильных виртуальных сетей (MVNO) с помощью индивидуальных идентификаторов вместо конфигураций в качестве части оператора мобильной сети (MNO).
Перенос данных конфигурации в идентификаторы операторов
Чтобы перенести данные конфигурации из пар MCC/MNC в идентификаторы операторов, выполните следующие действия:
- Объедините файлы - carrier_config_mccmnc.xmlодного оператора. Используйте- carrier_list.textpbв качестве справочного материала для сопоставления информации MCC, MNC и MVNO с конкретным оператором.
- Объедините конфигурации в один файл. 
- (Необязательно) Наследуйте данные от операторов мобильной связи (MNO). MVNO наследуют конфигурации от операторов мобильной связи (MNO) в устаревшем файле - carrier_config_mccmnc.xml. Поскольку идентификаторы операторов позволяют всем операторам, включая MVNO, иметь отдельный файл конфигурации, рекомендуется включить данные MNO в процесс миграции.
- Если конфигурация для идентификатора оператора MVNO не существует, извлеките конфигурацию из идентификатора оператора MNO с помощью - getCarrierIdFromSimMccMnc.
- Переименуйте новый файл в - carrier_config_carrierid_ carrierid _ carriername .xml, где carrierid должен соответствовать- canonical_id, а carriername должен соответствовать- carrier_nameв- carrier_list.textpb