החל מ-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/
של הנתונים במכשיר. אם טבלת מזהה הספק חדשה יותר מהגרסה הקיימת, המכשיר שומר את הטבלה בכיתה של מסד הנתונים של מזהה הספק.
המידע העדכני ביותר ממסד הנתונים של מזהי ספקי השירות נאסף על ידי השיטות הציבוריות getSimCarrierId()
ו-getSimCarrierIdName()
.
כדי להוסיף או לעדכן מזהה ספק למסד הנתונים, שולחים בקשה באמצעות הטופס של פרטי הזיהוי של הספק.
הבקשה נבדקת, ואם היא מאושרת, השינוי מועבר לבסיס הקוד של AOSP בכתובת carrier_list.pb
.
לאחר מכן תוכלו להעתיק את הרשימה המעודכנת ולשלב אותה ב-build המותאם אישית.
שילוב של מזהי ספקי סלולר עם CarrierConfig
החל מ-Android 10, הגדרות הספק תומכות בשימוש במזהי ספקי סלולר כמפתחות לאחזור הגדרות ספציפיות לספק מ-CarrierService
.
לשילוב מזהי ספקי סלולר עם CarrierConfig
יש את היתרונות הבאים:
- איחוד כל זוגות ה-MCC/MNC של כל ספק למיקום אחד, והסרה של נתונים כפולים או לא עקביים.
- יוצר מזהה קנוני לכל ספק ומסיר את הספק הלא ברור.
- מאפשרת לזהות מפעילי רשתות סלולריות וירטואליות (MVNO) באמצעות מזהי משנה ספציפיים, במקום להשתמש בהגדרות כחלק ממפעיל רשת סלולרית (MNO).
העברת נתוני תצורה למזהי ספקי סלולר
כדי להעביר נתוני הגדרה מזוגות של חשבונות ניהול/מפעילים סלולר למזהי ספקי סלולר:
קיבוץ הקבצים מסוג carrier_config_mccmnc.xml
של ספק אחד.
אפשר להשתמש ב-carrier_list.textpb
כמקור מידע כדי למפות את המידע של MCC, MNC ו-MVNO לספק ספציפי.
מיזוג ההגדרות לקובץ אחד.
(אופציונלי) ירושה של נתונים מחברות סלולר. ספקי 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-26 (שעון 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-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)."]]