גוגל חזרה בה בדרישה של יצרני OEM לתמוך ב-A/B וירטואלי במכשירי אנדרואיד 11 חדשים, מה שהיה סולל את הדרך לעדכונים חלקים.
עדכון 1 (25/01/2021 @ 14:06 ET): לפני שחרורו של אנדרואיד 11, נראה שגוגל חזרה בה בדרישה שמכשירי השקה תומכים ב-A/B וירטואלי. לחץ כאן למידע נוסף. המאמר כפי שפורסם ב-7 באפריל, 2021, נשמר להלן.
עם אנדרואיד 7.0 נוגט, גוגל הציגה ערכת מחיצות שנועדה להאיץ את עדכוני התוכנה. בנוגט, גוגל הוסיפה תמיכה בשכפול מחיצות מסוימות כך שמחיצות לא פעילות יכולות להתעדכן ברקע ולאחר מכן להחליף אותן לפעילות עם אתחול מהיר. זֶה הגדרת "מחיצת A/B" מאפשרת "עדכונים חלקים" להתקיים במכשירי אנדרואיד נתמכים, בדומה ל-Chrome OS של גוגל. עם זאת, גוגל מעולם לא קבעה שימוש במחיצות A/B, כל כך הרבה מכשירים בחוץ שאינם תומכים בעדכונים חלקים. עם זאת, זה עשוי להשתנות עם אנדרואיד 11, מכיוון שגוגל הופכת חובה למכשירים שהושקו לאחרונה לתמוך במחיצות A/B וירטואליות.
לקצת רקע, מחיצות A/B מתייחסות לקבוצת המחיצות לקריאה בלבד המשוכפלות. מחיצות משוכפלות כוללות בדרך כלל את מחיצות המערכת, הספק, האתחול והמוצר. כאשר הטלפון מוריד עדכון, המעדכן מתקן את קבוצת המחיצות הלא פעילה ("חריץ") ברקע. לאחר שהעדכון הסתיים להחיל את המשבצת הלא פעילה, המשתמש מתבקש לאתחל את המכשיר שלו. כאשר המשתמש מאתחל את המכשיר שלו, החריץ הלא פעיל מחליף מקום עם החריץ הפעיל, ומסיים את תהליך העדכון. המשבצת הפעילה בעבר נותר ללא נגיעה אם יש בעיה באתחול המשבצת המעודכנת החדשה. כאשר העדכון הבא מתגלגל, התהליך הזה חוזר על עצמו. אם אתה מעוניין בהסבר טכני יותר,
עיין בתיעוד המפתחים של גוגל על מחיצות A/B.לעומת זאת, מכשירים ללא מחיצות A/B, כגון Samsung Galaxy S20, OPPO Find X2 ועוד רבים אחרים, מיישמים עדכונים באמצעות עדכון ייעודי בתהליך שחזור. זה מוציא את המשתמש מאנדרואיד וגורם לו לא להיות מסוגל להשתמש במכשיר שלו במשך מספר דקות, ועלול להחמיץ התראות חשובות, שיחות או הודעות טקסט. גוגל מאמינה שפישוט תהליך העדכון מוביל לכך שיותר אנשים באמת לוקחים עדכון ברגע שהוא יוצא לאור; למעשה, במאי 2017, גוגל מצא את זה אחוז גבוה יותר ממשתמשי Pixel מאשר משתמשי Nexus הפעילו את עדכון האבטחה האחרון. כמובן, המשתמש יכול לתזמן עדכונים שיתרחשו כאשר הם אינם משתמשים במכשיר שלהם באופן פעיל, אך משתמשים רבים פשוט לא מעדכנים את המכשיר שלהם אפילו כאשר הם מתבקשים. בנוסף, בכך שאין לו מחיצות A/B, המשתמש מפסיד את אחד היתרונות הגלומים שלו: הגנה עליהם מפני עדכוני מערכת פגומים.
לדוגמה, כאשר Xiaomi הוציא לראשונה את עדכון אנדרואיד 10 עבור ה-Mi A2 Lite, משתמשים רבים גילו שהמכשירים שלהם לא אתחולים. למרבה המזל, ל-Mi A2 Lite יש מחיצות A/B לעדכונים חלקים, אז נמצאו משתמשים בפורומים שלנו שהם יכולים להשתמש בפקודת fastboot כדי להגדיר את טוען האתחול לאתחל את קבוצת המחיצות הבלתי נגועה, הפעילה בעבר. לפיכך, לא רק מחיצות A/B מספקות למשתמשים תהליך עדכון מהיר בהרבה, אלא שהן גם פועלות ככספת כשל עבור עדכונים פגומים. יצרני OEM שלא הטמיעו מחיצות A/B עדיין יכולים להנדס את הדרך שלהם כדי להגן מפני OTA כשלים, אם כי למה לעבור את הצרה הזו כשההגנה הזו היא חלק מהתכנון של A/B מחיצות? לעיונך, הנה חלקית (ויש להודות מיושן) רשימה של מכשירים התומכים במחיצות A/B לקבלת עדכונים חלקים, והנה הדרכה בנושא כיצד לבדוק אם המכשיר שלך תומך בתכונה.
זה אולי נראה תמוה מדוע יצרני OEM מסוימים אוהבים סמסונג גובה 1,400 דולר עבור סמארטפון, אבל לא תציע תכונה כל כך נחמדה. הסיבה בדרך כלל מסתכמת באחסון: יצרני OEM לא רוצים להקריב כמה גיגה-בייט של שטח אחסון כדי לתמוך בעדכונים חלקים. לטלפונים כמו סמסונג גלקסי S20 יש א טוֹן של תוכנות מותקנות מראש, כך שכפול מחיצות כמו /system ו-/product יוביל לשכפול של הרבה קבצים ויישומים ענקיים. גוגל הצליחה ליישם מחיצות A/B מבלי להקריב יותר מדי שטח אחסון בזכות טריק חכם כדי לעקוף את הנושא של שכפול קבצי .odex מסיביים. סיבה נוספת לכך שיצרני OEM בחרו לא ליישם מחיצות A/B היא העלות: שמירה על קשר של Google שינויים מתמידים בסכימות המחיצות של אנדרואיד דורשות מאמץ רב, כמפתח מוכר של XDA topjohnwu אספר לך. אלא אם יצרני OEM ייאלצו לעשות זאת, רבים לא יטרחו לשנות את מה שכבר עובד עבורם.
לבסוף, עם זאת, נראה שגוגל קובעת את החוק באנדרואיד 11. על ידי כפיית האימוץ של מחיצות A/B וירטואליות במכשירים שהושקו לאחרונה, הם כמעט הבטיחו שיצרני OEM יצטרכו לתמוך בעדכונים חלקים עבור המכשירים המאוחרים של 2020 ו-2021 שלהם. כפי שזוהה על ידי מפתח מוכר של XDA luca020400, Yifan Hong, מהנדס תוכנה בגוגל בצוות Project Treble, הגיש התחייבות ל-AOSP Gerrit שכותרתה "דורש השקות Virtual A/B ב-R." ההתחייבות מעדכנת את ה-Vendor Test Suite, או VTS, שהיא בדיקה אוטומטית שכל המכשירים חייבים לעבור כדי להיחשב תואמים ל-Project Treble. הבדיקה החדשה בודקת אם מאפיין המערכת "ro.virtual_ab.enabled
"מוגדר כאמת ואם"ro.virtual_ab.retrofit
" מוגדר כ-false במכשירים עם רמת משלוח API של 30 ומעלה. במילים אחרות, בדיקה זו בודקת אם מכשיר המופעל עם אנדרואיד 11 ומעלה תומך במחיצות A/B וירטואליות. מחיצות A/B "וירטואליות" הוצגו עם אנדרואיד 10 לצד "מחיצות דינמיות", שהן מחיצות הניתנות לשינוי גודל דינמי. הן זהה לתפיסה כמו מחיצות A/B רגילות, אלא שניתן לשנות אותן באופן חופשי.
אם מכשיר שמופעל עם אנדרואיד 11 אינו תומך במחיצות A/B וירטואליות, הוא יכשל ב-VTS. אם המכשיר נכשל ב-VTS, הוא לא יכול להישלח עם שירותי Google Mobile. במילים אחרות, גוגל למעשה חייבה יצרני OEM לתמוך במחיצות A/B וירטואליות, ובהרחבה, עדכונים חלקים.
עדכון: לא נדרש A/B וירטואלי עבור אנדרואיד 11
כאשר דיווחנו לראשונה באפריל שגוגל דורשת שכל מכשירי ההשקה של אנדרואיד 11 יתמכו ב מנגנון עדכון A/B וירטואלי, הייתה התרגשות רבה כי זה היה סוף סוף גורם לטלפונים של סמסונג לקבל עדכונים חלקים. למרבה הצער, מסתבר שגוגל החליטה שלא להעמיד תמיכה ב-A/B וירטואלית לדרישה. אנדרואיד 11 מסמך הגדרת תאימות (CDD) כתוב כרגע "הטמעות של מכשירים צריכות לתמוך בעדכוני מערכת A/B" ולא "חייבים" בתמיכה. נראה שבשלב מסוים לפני שחרורו של אנדרואיד 11, גוגל החליטה לסגת מהחלטתה לדרוש תמיכת A/B וירטואלית, ככל הנראה בשעה בהוראת כמה יצרני OEM. זה קורה לעתים קרובות למדי, אך לעולם לא מועבר לציבור מכיוון שרק הטיוטה הסופית של ה-CDD מתפרסמת באינטרנט.