ספקי הסלולר יכולים לעדכן את פרטי שם נקודת הגישה (APN) ואת הגדרות התצורה הספציפיות לספק (CarrierConfig) בפרויקט Android Open Source Project (AOSP).
חשבון Google עם כתובת האימייל העסקית שלכם
כדי לעדכן את פרטי ה-APN או את CarrierConfig, צריך לשלוח את הבקשה באמצעות חשבון Google עם כתובת אימייל עסקית פעילה (לדוגמה, בקשה לעדכון APN מחברת Acme צריכה להגיע מכתובת אימייל כמו foobar@acme.com).
אם אין לכם חשבון Google שמקושר לכתובת האימייל העסקית שלכם, עליכם לצאת מכל חשבונות Gmail בדפדפן (מומלץ להשתמש בתכונה של גלישה פרטית, כמו חלון פרטי, כדי למנוע בלבול עם החשבונות האחרים שלכם), ואז ליצור חשבון Google עם כתובת האימייל העסקית.
הכנת סביבת פיתוח מקומית
אם זו הפעם הראשונה שאתם שולחים קוד ל-AOSP, תצטרכו לאתחל את סביבת ה-build, להכיר את הכלים ולהבין איך שולחים תיקונים:
בנוסף, מומלץ מאוד להשתמש בכלי למעקב אחר בעיות ב-Google כדי לעקוב אחרי השינויים.
דיווח על באג
- עוברים לכתובת issuetracker.google.com ומשתמשים בכתובת האימייל שלכם בעבודה כדי להיכנס (מידע נוסף זמין במאמר חשבון Google עם כתובת האימייל שלכם בעבודה).
- אחרי ההתחברות, לוחצים על דיווח על בעיה בצד ימין של המסך.
- בקטע רכיב, בוחרים באפשרות Android Public Tracker > Framework.
- ממשיכים אל עדכון APN או אל עדכון CarrierConfig, לפי הצורך, כדי להזין את השם והתיאור.
באג ב-APN
מגדירים את מאפייני הבאגים באופן הבא:
Title: הוספה/שינוי/הסרה של פרטי APN עבור CarrierXYZ
תיאור: מוסיפים תיאור מפורט של השינויים המבוקשים, כולל הגדרות ה-APN עצמן.
באג ב-CarrierConfig
מגדירים את מאפייני הבאגים באופן הבא:
Title: שינויים בהגדרות של CarrierXYZ
תיאור: מוסיפים תיאור מפורט של השינויים המבוקשים.
שלח שינויים
כדי לבצע שינויים:
- מאתרים את הקובץ שרוצים לשנות.
- מבצעים שינויים בקובץ.
- שומרים את השינויים במאגר המקומי לפי ההוראות ל שליחת תיקוני באגים, תוך הקפדה על ההנחיות להודעות השמירה, כולל הפורמט המומלץ.
- אחרי שמבצעים את השינוי בהיסטוריה האישית, מעלים אותו ל-Gerrit באמצעות הפקודה
repo upload
. - אחרי העלאה מוצלחת, ה-repo מספק את כתובת ה-URL של דף חדש ב-Gerrit. אפשר להשתמש בכתובת ה-URL הזו כדי:
- הצגת התיקון בשרת הבדיקה
- הוספת תגובות
- בקשה לבודקים ספציפיים לתיקון
תחביר APN
שם הפרויקט ב-Android – device/sample
שמות הקבצים – etc/apns-full-conf.xml (קישור ראשי ל-Google Git)
הקובץ מכיל הגדרות APN בפורמט XML ומשמש כקובץ לדוגמה, כך שאין שינוי בהתנהגות של מכשירי Android.
הגדרת APN רגילה נראית כך:
<apn carrier="CarrierXYZ" mcc="123" mnc="123" apn="carrierxyz" type="default,supl,mms,ims,cbs" mmsc="http://mms.carrierxyz.com" mmsproxy="0.0.0.0" mmsport="80" bearer_bitmask="4|5|6|7|8|12" />
בדיקה
- מחברים מכשיר Android שיש לכם בו הרשאת root.
- מוסיפים הגדרות לקובץ /etc/apns-conf.xml.
- איפוס הגדרות ה-APN.
- בהגדרות APN, מוודאים שהפרופילים נטענים בצורה נכונה.
- בכל אחד מהפרופילים, בודקים את קישוריות הנתונים, את נקודת ה-Wi-Fi לשיתוף אינטרנט ואת ה-MMS כדי לוודא שהם פועלים כמו שצריך.
הודעה לגבי השינוי
[Example - "Add CarrierXYZ apns to sample apns"] Bug: [Issue ID from Google Issue Tracker] Test: No change to behavior as this is only a sample file
דוגמה ל-CL
כאן אפשר למצוא דוגמה ל-CL.
תחביר של CarrierConfig
שם הפרויקט – platform/packages/apps/CarrierConfig
שמות קבצים – assets/carrier_config_
מזהים את קובצי ה-XML הרלוונטיים בתיקיית הנכסים לפי הקבוצות הדו-ערכיות הרלוונטיות של MCC/MNC. הקובץ מכיל את אובייקט התצורה של הספק בפורמט XML. שמות המאפיינים מוגדרים כמפתחות ב- CarrierConfigManager, וסוג הערך (int/string/bool) מצוין בסיומת.
מאפייני int/string/bool רגילים נראים כך:
<int name="vvm_port_number_int" value="5499" /> <string name="vvm_type_string">vvm_type_omtp</string > <boolean name="vvm_cellular_data_required_bool" value="true" />
הודעה לגבי השינוי
[Example - "Add VVM settings for CarrierXYZ"] [Example - "Updated <mccmnc> carrier config file to include VVM settings as defined by CarrierXYZ."] Bug: [Issue ID from Google Issue Tracker] Test: [Testing notes]
דוגמה ל-CL
קובץ תצורה מעודכן של ספק עם CL לדוגמה.
בקשת בדיקה
כדי לבקש בדיקה:
- עוברים לכתובת ה-URL של השינוי ב-Gerrit ומוסיפים את android-carrier-config-review@google.com כבודק.
- אפשר גם להוסיף את איש הקשר שלכם ב-Google לרשימת הנמענים ב-Gerrit.
- למטרות מעקב, אפשר לשנות את המשתמש שהוקצה לבעיה ל-android-carrier-config-review@google.com.
אחרי שהבקשה עוברת את תהליך הבדיקה והאימות, Gerrit ממזג את השינוי באופן אוטומטי במאגר הציבורי. משתמשים אחרים יכולים להריץ את repo sync
כדי למשוך את העדכון ללקוח המקומי שלהם.