עדכוני OTA של Enterprise

תוכנה שניתן לעדכן לפי מסמך הגדרת התאימות (CDD) של Android דורשת מהמכשירים להטמיע את הכיתה SystemUpdatePolicy. SystemUpdatePolicy מאפשר לבעלי המכשיר (DO) להפעיל את האפליקציה, אם יש שליטה בהתקנה של עדכוני מערכת.

שליחת התראות לבעלים של המכשירים

הלקוח בחיבור אלחוטי (OTA) חייב להודיע לאפליקציות של בעלי המכשיר על עדכוני OTA נכנסים באמצעות ממשק API של מערכת. לקוח OTA צריך גם כוללים תיעוד של חותמת הזמן כשעדכון ה-OTA התחיל לראשונה זמינים. לקוחות OTA יכולים להפעיל את השיטה DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) כדי להודיע לאפליקציות של בעלי המכשיר. אם לקוח ה-OTA לא יודע אם יש עדכון הוא תיקון אבטחה, לקוח ה-OTA יכול לחזור ולהשתמש DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)

אם עדכון מסוים לא זמין כרגע, לקוח ה-OTA מדווח על כך על ידי הגדרת הארגומנט updateReceivedTime לערך -1. מומלץ לשלוח התראות בכל פעם שלקוח ה-OTA מבצע סקרים בשרת ה-OTA, או כשמתבצעת דחיפה של עדכון OTA ללקוח. אפשר גם לשלוח בתדירות גבוהה יותר.

המדיניות בנושא עדכוני מערכת

מערכת Android 9 משפרת את היכולת להשתמש במכשיר בעלים ל בקרה בכך שהיא מאפשרת לבעלי מכשירים לדחות עדכוני OTA למשך עד 90 ימים. התמקדות במכשיר ייעודי (לשעבר COSU) פתרונות, תכונה זו מאפשרת לבעלים להשהות את גרסת מערכת ההפעלה מכשירים במהלך תקופות קריטיות, כמו חגים.

כדי לעמוד בדרישות של CDD, לקוח ה-OTA צריך להטמיע מדיניות התנהגותית. משימות לביצוע יכולות להגדיר את כללי המדיניות הבאים, שחייבים להיות מכבדות את על ידי מערכות המשנה של עדכון מערכת המכשיר:

בעלי המכשירים יכולים גם להגדיר תקופות הקפאה (ב-Android 9 ואילך) שבהן גרסת מערכת ההפעלה תוקפא בתקופות קריטיות, כמו בחגים או בזמנים עמוסים אחרים. המערכת לא מתקינה עדכוני OTA במהלך תקופת ההקפאה. מומלץ להשתמש SystemUpdatePolicy.InstallationOption (ראו את הקטע הבא), עם זאת, לקוח OTA יכול גם לקרוא SystemUpdatePolicy.getFreezePeriods() כדי לבדוק אם המכשיר נמצא בתקופת הקפאה.

הטמעת אפשרויות ההתקנה

Android 9 כולל את @SystemApi, SystemUpdatePolicy.InstallationOption, שמתוכנן ללקוחות של עדכוני המערכת. SystemUpdatePolicy.InstallationOption משמש ככיתת עטיפה של כללי המדיניות ותקופות ההקפאה. אפשרות ההתקנה קובעת איך לקוחות יגיבו לעדכוני מערכת נכנסים, וכמה זמן הפעולה הזו תהיה בתוקף, בהתאם למדיניות הנוכחית בנושא עדכוני מערכת או לתקופת ההקפאה שתוגדר. אפשרות התקנה יכולה להיות אחת הבאים:

  • TYPE_INSTALL_AUTOMATIC – התקנה של עדכוני מערכת נכנסים באופן מיידי וללא התערבות המשתמש, ברגע זמינים. המכשיר יופעל מחדש באופן אוטומטי.
  • TYPE_POSTPONE – אפשר לדחות עדכוני מערכת נכנסים למשך 30 יום לכל היותר. המשתמשים לא יכולים להתקין עדכון באופן ידני. יצרני המכשירים יכולים לבחור אם לחסום את האבטחה או לא תיקונים.
  • TYPE_PAUSE – עדכוני מערכת נכנסים עשויים להתעכב ללא הגבלת זמן עד להודעה חדשה. המשתמשים לא יכולים להתקין עדכון באופן ידני. TYPE_PAUSE מעכבת את כל העדכונים, כולל תיקוני אבטחה.

לקוחות של עדכוני מערכת יכולים לשלוח שאילתה ל-SystemUpdatePolicy.InstallationOption באמצעות SystemUpdatePolicy.getInstallationOptionAt(long when), כאשר when מייצג את הזמן שבו נשלחת השאילתה לגבי אפשרות ההתקנה, במספר אלפיות השנייה מאז תחילת הזמן (Epoch). באמצעות השיטה SystemUpdatePolicy.getInstallationOptionAt(long when), לקוחות של עדכוני מערכת יכולים לפעול לפי האפשרות שהוחזרה עד שהזמן היעיל יפוג. אחרי שהאפשרות שהוחזרה פגה, הלקוח יכול ליצור שאילתה נוספת, תוך שימוש בחותמת זמן חדשה, לאפשרות העדכנית ביותר.

לקוח עדכון המערכת חייב להאזין ל DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED שידורים חיים למקרה שכל המדיניות תעודכן.

אימות המדיניות TYPE_PAUSE

אפשר לוודא שהאפשרות TYPE_PAUSE פועלת באופן ידני במערכת OTA.

המדיניות TYPE_PAUSE נכנסה לתוקף

כדי לוודא שמדיניות TYPE_PAUSE פועלת:

  1. מגדירים מדיניות אוטומטית ומציינים את TYPE_PAUSE.
  2. כששעון המערכת נמצא בתקופת ההשהיה, שולחים עדכון OTA.
  3. צריך לוודא שהמכשיר לא מבצע את עדכון ה-OTA ושהמשתמש לא ניתן להתקין את העדכון באופן ידני.
  4. אם המכשיר הוא מכשיר A/B, צריך להפעיל אותו מחדש ולאמת את ההפעלה מחדש לא גרמה להתקנה אוטומטית של העדכון.

פג התוקף של המדיניות TYPE_PAUSE

כדי לוודא שמדיניות TYPE_PAUSE שפג תוקפה פועלת:

  1. מגדירים מדיניות אוטומטית ומציינים את TYPE_PAUSE.
  2. כששעון המערכת נמצא בתקופת ההשהיה, שולחים עדכון OTA.
  3. ממתינים עד שתקופת ההשהיה תסתיים.
  4. יש לוודא שהמכשיר יופעל מחדש באופן אוטומטי ושעדכון ה-OTA שבוצעו לאחר ההפעלה מחדש.