DSU Loader באנדרואיד 11 עוזר למפתחים לבדוק אפליקציות באנדרואיד במלאי

אנדרואיד 11 יגיע עם DSU Loader בתוך אפשרויות המפתחים שיאפשר לך להוריד ולהתקין GSIs תואמים באופן אוטומטי! המשך לקרוא לעוד!

מערכת אקולוגית טובה של אפליקציה היא אחד מעמודי התווך החשובים ביותר להצלחת מערכת הפעלה. גם גוגל וגם אפל מכירים בערך של אפליקציות טובות בפלטפורמות שלהן, ולכן שתי החברות מנסות לאזן בין הצרכים של המשתמשים שלהן ושל מפתחי האפליקציות שלהן. משתמשים ממשיכים לדחוף לשינויים במערכת ההפעלה, ולמרות שרוב האנשים בדרך כלל מעריכים תכונות חדשות, אלה שינויים לא תמיד מהנים עבור מפתחי אפליקציות מכיוון שהם יכולים לשנות הרבה מהפונקציונליות המרכזית ו התנהגות. עבור מפתחים שפועלים כל הזמן כדי לשמור על האפליקציות שלהם רלוונטיות, ההתמודדות עם השינויים הללו מוסיפה לרשימת העבודה ההולכת וגדלה שלהם. גם אם השינויים האלה לא משפיעים ישירות על האפליקציות שלהם, מפתחים עדיין צריכים לוודא שהאפליקציות שלהם יעבדו על עדכון מערכת ההפעלה החדש. גוגל ביצעה שינויים רבים במהלך השנים כדי להקל על תהליך זה עבור מפתחי אפליקציות אנדרואיד, ועכשיו, חדש תכונה באנדרואיד 11, הנקראת DSU Loader, תקל עוד יותר על מפתחי אפליקציות לבדוק את האפליקציות שלהם באנדרואיד החדש גרסאות.

זה מתחיל עם Project Treble

Project Treble, שהוצג באנדרואיד 8.0, הוא עיקרי ארכיטקטורה מחדש של מערכת ההפעלה אנדרואיד. המטרה של Project Treble הייתה לפצל את מערכת ההפעלה אנדרואיד לשני חלקים גדולים: המסגרת והיישום של הספק ("ספק" מתייחס כאן ליצרן של כל רכיב חומרה קנייני שנמצא בתוך התקן, בדרך כלל מתייחס ל- סִילִיקוֹן). המסגרת של מערכת ההפעלה אנדרואיד היא מערכת ההפעלה עצמה, כולל כל אפליקציות המערכת, ממשק המשתמש ורכיביו, וממשקי ה-API המשותפים בין מכשירי אנדרואיד. יישום הספק מכיל את HALs של הספק (Hardware Abstraction Layers) ואת מודולי ליבת לינוקס ו-Linux.

מכיוון שיצרני OEM שולחים סמארטפונים עם רכיבי חומרה רבים ושונים מיצרנים רבים ושונים, הם צריכים לעשות עבודה רבה רק כדי להפעיל את החומרה במהדורה אחת של מערכת ההפעלה אנדרואיד. ואז עם כל עדכון חדש למערכת ההפעלה של אנדרואיד, הם צריכים לעשות עוד יותר עבודה כדי לוודא שהחומרה שלהם עובדת עם הגרסה החדשה. אבל עם Project Treble סטנדרטי של ABI (Application Binary Interface) בין מסגרת מערכת ההפעלה אנדרואיד ל-HALs עבור גרסת אנדרואיד מסוימת, יצרני OEM של אנדרואיד יכולים להתחיל לבדוק עדכונים למכשירים שלהם מבלי להמתין ליצרני סיליקון ויצרניות רכיבים אחרות כדי לעדכן את הצד שלהם הקוד. שינוי זה הואץ באופן ניכר הדרך שבה מטופלים עדכוני אנדרואיד.

זו התמצית של מה Project Treble עשה עבור עדכוני אנדרואיד, אבל מה שחשוב יותר עבור אפליקציה המפתחים כאן היא ש-Treble אפשרה את השימוש בתמונות מערכת כלליות (GSI) לצורך תאימות בדיקה.

הופעתם של GSIs

כדי שיצרני OEM יבדקו אם יישמו כראוי את Project Treble, גוגל מחייבת שה-OEM יוכל לאתחל מבנה נקי של אנדרואיד מ-AOSP במכשיר. המבנה הנקי הזה של אנדרואיד נקרא תמונת המערכת הגנרית, או GSI. אם ה-GSI מאתחל והחומרה הבסיסית ביותר מתפקדים כמו שצריך, אזי ה-OEM יודע שהמכשיר שלהם עומד בדרישות של Project Treble. המטרה הראשונית של ה-GSIs הייתה אם כן לבדיקת תאימות טרבל, אך כפי שראינו עם קהילת הפיתוח כאן ב-XDA-Developers, ניתן להשתמש בהם למטרות אחרות. ראינו איך GSIs יכול למעשה לאפשר למכשירים עם משתמשי אנדרואיד כבדים ליהנות מהגרסה העדכנית ביותר של אנדרואיד עם תכונות עבודה תוך ימים של מהדורה חדשה. אבל גוגל רואה מטרה נוספת מאחורי ה-GSI: לתת למפתחי אפליקציות את היכולת לבדוק את האפליקציות שלהם בגרסת אנדרואיד חדשה במכשיר פיזי שכבר בבעלותם.

עם אנדרואיד 10, גוגל פרסמה רכיבי GSI משלה עבור מפתחים. גוגל חיזקה את הרעיון שמפתחי אפליקציות צריכים להשתמש ב-GSI כדי לאתחל מבנה נקי של אנדרואיד על החומרה שלהם, מה שמקל על בדיקת התנהגות האפליקציה שלהם מול אנדרואיד רגילה. שיטה זו הוסיפה אפוא לאפשרויות הקיימות של בדיקת תאימות אפליקציות באנדרואיד במלאי ללא שינויים בהתנהגות OEM, האחרות היו באמצעות סמארטפון Pixel, שימוש באמולטור אנדרואיד הרשמי בתוך Android Studio, או פריסת אפליקציות בונה למופע מכשיר בענן.

למרות כל הנוחות שהביאו GSIs, ההתקנה שלהם עדיין הייתה תהליך מסורבל. ייתכן שמפתחי אפליקציות לא יהיו נוחים להבהב ידנית של תמונת מערכת במכשיר אנדרואיד מכיוון שזה משהו שבדרך כלל רק חובבים או מפתחי מערכת הפעלה אנדרואיד יכירו. התקנת GSI מחייבת הבהוב של תמונת מערכת ב-fastboot, מה שמחייב השבתת Android Verified Boot וביטול נעילת טוען האתחול. ביטול הנעילה של טוען האתחול, בתורו, דורש מחיקה מלאה של נתוני המשתמש. וכפי שכולנו יודעים, אין בדיוק תהליך או מדריך אחד לביטול הנעילה של טוען האתחול של כל מכשיר אנדרואיד בחוץ, כך שלא ניתן למצוא עקביות. לדוגמה, למכשירי סמסונג אין אתחול מהיר בעוד שמכשירי Xiaomi גורמים לך לקפוץ בין כמה חישוקים כדי לפתוח את מעמס האתחול. זה בלגן נוח שיש לו פוטנציאל להתנתק למשהו פשוט יותר.

זה המקום שבו עדכוני מערכת דינמיים נכנסים לתמונה.

עדכוני מערכת דינמיים פשוט התקנת GSIs

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

הסיבה ש-DSU יכול להתקין GSI מבלי לגעת בהתקנה המקורית היא שהוא יוצר תמונות חדשות של מערכת ומחיצות נתונים המאוחסנות באופן זמני ב- /data/gsi. לאחר מכן, התמונות הללו מותקנות במהלך האתחול במקום את המערכת המקורית ומחיצות הנתונים. מכיוון שהטלפון זקוק לשטח אחסון נוסף עבור התמונות החדשות והזמניות הללו, לטלפון שלך חייבות להיות "מחיצות לוגיות" בלוח, שהן מחיצות הניתנות לשינוי גודל דינמי. מחיצות לוגיות הן מערכת חדשה לחלוקה למרחב משתמש עבור אנדרואיד, שהיא חובה עבור מכשירים המופעלים עם אנדרואיד 10. אם המכשיר שלך הושק עם אנדרואיד 10, אז הוא אמור לתמוך בהתקנת GSIs דרך DSU.

באנדרואיד 10, כל מה שאתה צריך לעשות כדי התקן GSI דרך DSU הוא לשנות מאפיין מערכת ולאחר מכן להפעיל את DynamicSystemUpdatesInstallationService על ידי שליחת כוונה עם הנתיב ל-GSI כתוספת כוונה.

למרות שתהליך זה נראה לא מוכר, הוא קל בהרבה ופחות פולשני בהשוואה לשימוש פקודות fastboot והתמודדות עם הטרחה של הכל, כולל ההתקנה המקורית נמחק. אתה אמנם דורש ידע מסוים ב-ADB וכוונות כדי לעשות שימוש ב-DSU, אבל זו לא אמורה להיות בעיה עבור רוב מפתחי האפליקציות שם בחוץ. ובכל זאת, אין סיבה שהתהליך לא יכול להתבצע אפילו יותר פשוט. בנוסף, יש את העובדה שהתקנת GSI דרך DSU עדיין דורשת ממך לבטל את נעילת טוען האתחול, ולמחק את כל נתוני המשתמש בתהליך. לשם כך, גוגל הטמיעה שינויים כדי לשפר את שני ההיבטים של התקנת GSI. באנדרואיד 11, הם ביטלו את הצורך להשתמש בשורת הפקודה בכלל כדי להתקין GSI. בנפרד, הם גם אפשרו להתקין GSI מבלי לפתוח את טוען האתחול.

מטעין DSU באנדרואיד 11

DSU Loader הוא כלי חדש הקיים באפשרויות המפתחים של אנדרואיד 11 המאפשר לך הורד ו להתקין ה-GSI העדכני ביותר מ-Google ללא צורך בהזנת פקודות מהיר אתחול או ADB. פשוט הקש על האפשרות DSU Loader בתוך הגדרות ותיבת דו-שיח תופיע עם רשימה של GSIs נתמכים היישר מ-Google. GSIs נתמכים אלה יתבססו על מערכת ההפעלה והארכיטקטורה הנוכחית שלך, כך שתוכל להתקין רק GSIs חדשים יותר מגרסת מערכת ההפעלה שלך ותואמים לארכיטקטורת ה-SoC שלך. כל שעליך לעשות הוא לבחור את ה-GSI שברצונך להתקין והוא יוריד מהשרתים של גוגל ויותקן ברקע באופן אוטומטי.

DSU Loader באנדרואיד 11

עם DSU Loader, מפתחים לעולם אינם צריכים לגעת בשורת הפקודה כדי להתקין GSI. לפחות, זה החלום, כי עדיין נותרה בעיה אחת לפתור.

הדרך קדימה

נכון לעכשיו, כדי להתקין GSI דרך DSU Loader, אתה צריך אתחול לא נעול. למרות שזה עשוי להביס את המטרה של כל החוויה הקשה, זה לא אמור להיות ככה, ונאמר לנו שזה יתוקן. גוגל תכננה שמשתמשים יוכלו לאתחל GSIs חתומים על ידי Google דרך DSU מבלי צורך לבטל את נעילת טוען האתחול. למעשה, גוגל מחייבת זאת כל מכשירי ההשקה של Android 10 כוללים את המפתחות הציבוריים של Android Verified Boot של Android 10, Android 11 ו-Android 12 GSI חתומים על ידי Google. הכללת המפתחות הציבוריים של AVB ב-ramdisk של המכשיר תבטיח ש-AVB לא ידחה את ה-GSI שאתה מנסה לאתחל. זו הסיבה שהשיטה הנוכחית כוללת ביטול נעילת מאתחול האתחול - על ידי הבזק של תמונת vbmeta ריקה למחיצת vbmeta, אתה משבית את AVB כך שהוא לא ידחה את ה-GSI שאתה עומד להבהב. השבתת AVB היא סיכון אבטחה גדול, עם זאת, מכיוון שזה אומר שכל שינוי ניתן לטעון מחיצת מערכת/אתחול/מוצר/ספק למכשיר, וזו הסיבה שגוגל רוצה לעשות להתרחק מהדרישה הזו.

דרישות השקה של Android 10 GSI

אז מתי אתה יכול לצפות לאתחל GSI דרך DSU מבלי שתצטרך לבטל את הנעילה של טוען האתחול או להשתמש בכלי שורת פקודה? אני מקווה שבקרוב, כפי שגוגל ציינה בפנינו שיש להם כמה פיתולים לתקן עם התצוגה המקדימה הראשונית למפתחים של אנדרואיד 11 לפני שהם יכולים לגרום לכל זה לעבוד כמו שצריך. בהמשך, אפשר לצפות להתקין עתידיים של תצוגה מקדימה של GSI למפתחים באמצעות DSU מבלי צורך לבטל את נעילת טוען האתחול. אולי כאשר תצוגות מקדימות למפתחים של אנדרואיד 12 יהיו זמינות, אתה אפילו תוכל לאתחל אותו לחלוטין על ידי שימוש ב-DSU Loader באפשרויות המפתחים של אנדרואיד 11. עבור מפתחי אפליקציות, זה אומר שתהיה עוד דרך לבחון את היישומים שלך על חומרה פיזית שמריצה גרסת אנדרואיד חדשה.