Carrier Identification

Devices running Android 9 and higher can recognize subscription carrier information to provide an ID and a carrier name. Android maintains a carrier ID database with matching rules for each carrier and its unique carrier ID. AOSP includes the content of the carrier ID database, in the file android/packages/providers/TelephonyProvider/assets/carrier_list.textpb. The unified database minimizes duplicate logic in apps that need to identify carriers and limits the exposure of carrier-identifying attributes.

To improve the coverage and accuracy of carrier identification, Android supports out-of-band carrier ID table updates. Each update comes with a version number and is published to AOSP.

Implementation

Users who want to implement out-of-band updates can download the carrier_list.pb binary from AOSP. To view the readable format of the table, see carrier_list.txtpb.

Place the updated carrier ID table in the /data/misc/carrierid/ data partition. If the updated version is newer than the installed version, the device will persist the table to the carrier ID database. The most recent information from the carrier ID database will be picked up by the public APIs getSimCarrierId() and getSimCarrierIdName().