OTAs מבוססי בלוק

אתה יכול להפעיל עדכונים באוויר (OTA) מבוססי בלוק עבור מכשירים חדשים עם אנדרואיד 5.0. OTA הוא המנגנון שבאמצעותו יצרני OEM מעדכנים מרחוק את מחיצת המערכת של מכשיר:

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

מכיוון שבלוק OTA מבטיח שכל מכשיר ישתמש באותה מחיצה, הוא מאפשר שימוש ב-dm-verity לחתימה קריפטוגרפית על מחיצת המערכת. לפרטים על dm-verity, ראה אתחול מאומת .

הערה: עליך להיות בעל מערכת OTA עובדת לפני השימוש ב-dm-verity.

המלצות

עבור מכשירים המופעלים עם אנדרואיד 5.0 ואילך, השתמש בעדכוני חסימת OTA ב-ROM של היצרן. כדי ליצור OTA מבוסס בלוק עבור עדכונים עוקבים, העבר את האפשרות --block ל- ota_from_target_files .

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

מכיוון ש-dm-verity דורש תמיכה ב-bootloader שנמצאת רק במכשירים חדשים המשלוחים עם אנדרואיד 5.0 ואילך, אינך יכול להפעיל את dm-verity עבור מכשירים קיימים.

מפתחים העובדים על מערכת ה-Android OTA (תמונת השחזור והסקריפטים שיוצרים OTAs) יכולים להתעדכן בשינויים על ידי הרשמה לרשימת התפוצה android-ota@googlegroups.com .

קובץ מול חסימה OTAs

במהלך OTA מבוסס קבצים, אנדרואיד מנסה לשנות את תוכן מחיצת המערכת בשכבת מערכת הקבצים (על בסיס קובץ אחר קובץ). לא מובטח שהעדכון יכתוב קבצים בסדר עקבי, יש לו זמן או סופר בלוק עקבי אחר שינוי, או אפילו למקם את הבלוקים באותו מיקום במכשיר החסימה. מסיבה זו, OTAs מבוססי קבצים נכשלים במכשיר התומך ב-dm-verity; לאחר ניסיון ה-OTA, המכשיר לא מאתחל.

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

  • עדכון מלא . העתקת תמונת המערכת המלאה היא פשוטה ומקלה על יצירת תיקונים אך גם מייצרת תמונות גדולות שיכולות לייקר את החלת התיקונים.
  • עדכון מצטבר . שימוש בכלי הבדל בינארי יוצר תמונות קטנות יותר ומקל על יישום התיקון, אך הוא עתיר זיכרון בעת ​​יצירת התיקון עצמו.

הערה: adb fastboot מציב את אותם סיביות בדיוק במכשיר כמו OTA מלא, כך שהמהבהב תואם לבלוק OTA.

עדכן מערכות ללא שינוי

עבור מכשירים עם מחיצות מערכת ללא שינוי המריצים אנדרואיד 5.0, תהליך ההורדה וההתקנה של OTA בלוק נשאר זהה לזה של OTA של קובץ. עם זאת, עדכון OTA עצמו עשוי לכלול אחד או יותר מההבדלים הבאים:

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

    השוואה בין גדלי OTA

    איור 1. השווה גדלי Nexus 6 OTA בין גרסאות אנדרואיד 5.0 ל-Android 5.1 (שינויי בניית יעד משתנים)

    באופן כללי, עדכוני OTA בלוק מצטבר גדולים יותר מאשר עדכוני OTA מצטברים של קבצים עקב:

    • שימור נתונים . OTAs מבוססי בלוק שומרים יותר נתונים (מטא נתונים של קבצים, נתוני dm-verity, פריסת ext4 וכו') מאשר OTA מבוסס קבצים.
    • הבדלי אלגוריתמי חישוב . בעדכון OTA של קובץ, אם נתיב קובץ זהה בשני הגירסאות, חבילת OTA אינה מכילה נתונים עבור קובץ זה. בעדכון בלוק OTA, קביעת שינוי מועט או ללא שינוי בקובץ תלויה באיכות האלגוריתם של חישוב התיקון ובפריסה של נתוני הקובץ הן במערכת המקור והן במערכת היעד.
  • רגישות לפלאש וזיכרון RAM פגומים . אם קובץ פגום, קובץ OTA מצליח כל עוד הוא לא נוגע בקובץ הפגום, אבל OTA בלוק נכשל אם הוא מזהה פגיעה כלשהי במחיצת המערכת.

עדכן מערכות ששונו

עבור מכשירים עם מחיצות מערכת ששונו עם אנדרואיד 5.0:

  • עדכוני OTA בלוק מצטבר נכשלים . מחיצת מערכת עשויה להשתנות במהלך adb remount או כתוצאה מתוכנות זדוניות. קובץ OTA סובל שינויים מסוימים במחיצה, כגון הוספת קבצים שאינם חלק מבניית המקור או היעד. עם זאת, בלוק OTA אינו סובל תוספות למחיצה, כך שהמשתמשים יצטרכו להתקין OTA מלא המחליף כל שינוי במחיצת המערכת) או להבהב תמונת מערכת חדשה כדי לאפשר OTAs עתידיים.
  • ניסיונות לשנות קבצים שהשתנו גורמים לכישלון עדכון . הן עבור עדכוני OTA של קבצים והן עבור חסימת OTA, אם ה- OTA מנסה לשנות קובץ שעבר שינוי, עדכון ה- OTA נכשל.
  • ניסיונות לגשת לקבצים ששונו יוצרים שגיאות (dm-verity בלבד) . הן עבור עדכוני OTA של קבצים והן עבור חסימת OTA, אם dm-verity מופעל וה-OTA מנסה לגשת לחלקים שהשתנו של מערכת הקבצים של המערכת, ה-OTA יוצר שגיאה.