Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Идентификация перевозчика
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Устройства под управлением 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 в идентификаторы операторов, выполните следующие действия:
Сгруппируйте файлы 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
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]