עדכוני OTA של Enterprise

כדי להשתמש ב-Android Compliance Definition Document (CDD) Updatable Software יש צורך במכשירים כדי להטמיע את המחלקה 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 מתבצע אחרי ההפעלה מחדש.