A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Identificação da operadora
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Dispositivos com o Android 9 podem reconhecer informações
de operadoras de assinatura para
fornecer um ID e um nome de operadora. O Android mantém um banco de dados de ID de operadora, com
regras de correspondência para cada operadora e o ID exclusivo dela. O AOSP inclui o
conteúdo do banco de dados de ID da operadora no arquivo
carrier_list.textpb
.
O banco de dados unificado minimiza a lógica duplicada em apps que precisam identificar
operadoras e limita a exposição de atributos de identificação de operadoras.
Para melhorar a cobertura e a precisão da identificação da operadora, o Android oferece suporte
a atualizações de tabelas de ID de operadora e fora da banda. Cada atualização vem com um número
de versão e é publicada no AOSP.
Implementação
Os usuários que quiserem implementar atualizações fora da banda podem fazer o download do
binário carrier_list.pb
do AOSP. Para conferir o formato legível da tabela, consulte
carrier_list.textpb
.
Coloque a tabela de ID da operadora na partição de dados /data/misc/carrierid/
do
dispositivo. Se a tabela de ID da operadora for mais recente do que a versão atual, o dispositivo
permitirá a tabela na
classe do banco de dados de ID da operadora.
As informações mais recentes do banco de dados de ID da operadora são coletadas pelos
métodos públicos
getSimCarrierId()
e
getSimCarrierIdName()
.
Para adicionar ou atualizar um ID de operadora no banco de dados, envie uma solicitação usando o
formulário de informações de identificação da operadora.
Sua solicitação será analisada e, se aprovada, a mudança será enviada para a base de código
do AOSP em
carrier_list.pb
.
Em seguida, copie a lista atualizada e incorpore-a ao build
personalizado.
Integrar IDs de operadora com a CarrierConfig
A partir do Android 10, a
configuração da operadora oferece suporte
ao uso de IDs de operadoras como chaves para buscar configurações específicas da operadora em
CarrierService
.
A integração de IDs de operadora com CarrierConfig
tem as seguintes vantagens:
- Consolida todos os pares MCC/MNC de cada operadora em um único local, removendo dados duplicados ou inconsistentes.
- Cria um identificador canônico para cada operadora e remove a ambiguidade.
- Permite que as operadoras de rede móvel virtual (MVNOs) sejam identificadas com
IDs individuais em vez de ter configurações como parte de uma operadora de rede
móvel (MNO).
Migrar dados de configuração para IDs de operadora
Para migrar dados de configuração de pares MCC/MNC para IDs de operadora, siga
estas etapas:
Agrupe os arquivos carrier_config_mccmnc.xml
de uma única operadora.
Use
carrier_list.textpb
como referência para mapear as informações de MCC, MNC e MVNO para uma operadora
específica.
Mesclar as configurações em um único arquivo.
(Opcional) Herdar dados de MNOs. Os MVNOs herdam configurações de
MNOs no arquivo carrier_config_mccmnc.xml
legado. Como os IDs de operadora
permitem que todas as operadoras, incluindo MVNOs, tenham um arquivo de configuração dedicado, é
recomendado incluir dados de MNO durante a migração.
Se a configuração de um ID de operadora MVNO não existir, busque a
configuração do ID de operadora MNO usando
getCarrierIdFromSimMccMnc
.
Renomeie o novo arquivo como
carrier_config_carrierid_carrierid_carriername.xml
,
em que carrierid precisa corresponder a um canonical_id
e
carriername precisa corresponder a um carrier_name
em
carrier_list.textpb
.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-26 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)."]]