כל מה שאתה צריך לדעת על Project Mainline של אנדרואיד

Project Mainline הוא השינוי הגדול ביותר באנדרואיד מאז Project Treble. הנה מה זה אומר ומה כל המודולים עושים, בדוק את זה!

אחד השינויים הגדולים ביותר באנדרואיד בשנים האחרונות שעפו מתחת לרדאר, יחסית נגד חשיבותו, היה הצגת פרויקט מרכזי באנדרואיד 10. גוגל מחייבת הכללת מודולי Mainline ספציפיים בכל מהדורות אנדרואיד, עם אנדרואיד 11 נכנסים עם א סה"כ חובה משולב של 25 מודולים Mainline. הנה הסבר על מה זה Project Mainline ומה הוא שואף לפתור, לצד רשימה של כל המודולים של Project Mainline של אנדרואיד.

מהו Project Mainline?

כדי להבין נכון את Project Mainline, נצטרך להריץ מעט אחורה. אם אתה חוזר כמה שנים אחורה, הרבה מהשיחה סביב עדכוני אנדרואיד התרכזה סביב בעיית הפיצול. פיצול היה אחד האתגרים הגדולים ביותר עבור גוגל לפתור באנדרואיד סביב עידן Ice Cream Sandwich - Lollipop. למרות שאנדרואיד כפלטפורמה קיבלה עדכונים שוטפים על פני דפוס שניתן לחיזוי ברובו, עדכונים אלו עברו בעבר זמן רב מאוד להגיע לידי הצרכנים הסופיים, אם בכלל. אז בעוד שגוגל תיקנה באגים קריטיים ובעיות אבטחה ברמת הפלטפורמה, ההשקה בפועל של השינויים הללו השאירה הרבה מה לרצוי. היו/יש הרבה מתווכים (ספק SoC, יצרני OEM, ספקים וכו') והרבה חלקים נעים מעורבים באספקת עדכונים ל הטלפון שלך, ובעיית הפיצול לא נראתה כאילו היא תפתור את עצמה מבלי לדרוש פגיעה קשה התערבויות.

אחד המאמצים העיקריים לטפל בבעיה זו הגיע בצורה של פרויקט טרבל לצד אנדרואיד 8.0 Oreo, שכללה תכנון מחדש של אנדרואיד, תוך הפרדה בין רכיבי המסגרת של מערכת ההפעלה אנדרואיד לבין ה-HALs של הספק וליבת לינוקס. Project Treble, בעצם, הפך את אנדרואיד למודולרי על ידי הפרדת מסגרת מערכת ההפעלה מהתוכנה הספציפית למכשיר, ברמה נמוכה יותר. בדרך זו, יצרני מכשירים (OEM) לא צריכים לחכות ליצרני סיליקון (ספק SoC) כדי לעדכן את קוד היישום של הספק שלהם, ויצרני OEM יכולים לעדכן את מסגרת מערכת ההפעלה אנדרואיד באופן עצמאי. התוצאה הסופית היא אימוץ מהיר יותר של מהדורות אנדרואיד חדשות יותר מה-OEM, מכיוון שהם כבר לא צריכים המתן עד שהמתווך (ספק SoC) יסיים את עבודתו לפני שהם יכולים להתחיל לעשות שֶׁלָהֶם.

בעוד שמצב עדכון אנדרואיד לא השתפר באופן דרמטי מיד עם Project Treble, הוא איפשר במידה רבה OEM רחב יותר השתתפות בגרסת הבטא של אנדרואיד 10 ו-Android 11 וכן הקלה על יצרני OEM לעדכן יותר מהמכשירים שלהם במהירות רבה יותר ציר זמן. בנוסף, לכל הקונספט של ה-GSI (תמונת מערכת כללית) הייתה השפעה גדולה על התפתחות ה- aftermarket בפורומים שלנו.

מפתחים מאתחלים את אנדרואיד 11 ב-22 מכשירים ישנים יותר עם Project Treble GSI

Project Mainline מרחיב את המאמצים של Project Treble. בעוד ש-Treble הפחיתה את התלות של יצרני OEM בספקי SoC עבור כל עדכון מערכת הפעלה בודד, Mainline מפחיתה את מידת התלות של Google ב-OEM לצורך אספקת עדכוני אבטחה לרכיבי מערכת הפעלה מרכזיים. Project Mainline מרחיב את פילוסופיית ה-Treble לחלקים קריטיים יותר של מסגרת אנדרואיד, ומסירים מהמשוואה הזו יצרני OEM כמתווכים התלויים. מטרת Project Mainline היא ש-Google תשלוט בשליטה על רכיבי מסגרת ויישומי מערכת קריטי לאבטחה ולשמירה על עקביות פיתוח הרחק מיצרני OEM. Project Mainline מכונה בצדק ה השינוי הגדול ביותר באנדרואיד מאז Project Treble.

עבור Project Mainline, Google עושה שימוש במודולים של Mainline המועברים דרך המסגרת של שירותי Google Play וחנות Google Play. כל מודול Mainline מסופק כקובץ APK, קובץ APEX או כקובץ APK-in-APEX. כאשר מודול Mainline מתעדכן, המשתמש רואה הודעת "עדכון מערכת Google Play" (GPSU) במכשיר שלו. למעשה, כדי לספק עדכונים לרכיבים קריטיים, גוגל עקפה את הצורך להמתין ל-OEM כדי להפיץ עדכון, ובחרה לבצע את המשימה בעצמה.

כפי ש גוגל מצהירה באתר אנדרואיד:

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

אנדרואיד 10 ומעלה ממירה רכיבי מערכת נבחרים למודולים, שחלקם משתמשים בפורמט מיכל APEX (הוצג באנדרואיד 10) וחלקם בפורמט APK. הארכיטקטורה המודולרית מאפשרת לעדכן רכיבי מערכת בתיקוני באגים קריטיים ואחרים שיפורים לפי הצורך, מבלי להשפיע על הטמעות של ספקים ברמה נמוכה יותר או אפליקציות ברמה גבוהה יותר ו שירותים.

כפי ש Ars Technica מזכירים:

Project Mainline, AKA "עדכוני מערכת של Google Play", הוצג באנדרואיד 10 כמאמץ עיקרי להפוך את רכיבי מערכת הליבה של אנדרואיד למודולריים וניתנים לעדכון יותר. Mainline הציגה סוג קובץ "APEX" חדש במיוחד עבור רכיבי מערכת, במטרה לשלוח קוד אנדרואיד ליבה דרך חנות Play באותה קלות שאתה שולח עדכון אפליקציה. בעבר, בלוק הקוד היחיד שניתן למשלוח של אנדרואיד היה ה-APK, סוג קובץ שתוכנן במקור עבור אפליקציות צד שלישי. זה הגיע עם כל מיני מגבלות אבטחה ויכול היה להתחיל רק מאוחר בתהליך האתחול, אז APEX נוצר עם רכיבי מערכת חזקים יותר בראש. ניתן ליצור APEXs רק על ידי Google או יצרן המכשיר שלך, כך שהם יכולים להיות חזקים יותר באופן ניכר ולהכיל רכיבי אתחול קריטיים כמו זמן ריצת האפליקציה.

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

פרויקט ראשי - מודולים

עם אנדרואיד 10, גוגל חייבה לכלול 13 מודולי Mainline ספציפיים. עם אנדרואיד 11, המספר הכולל של מודולים חובה הוא 25. הנה הרשימה המלאה, לצד כמה פרטים מרכזיים:

שם המודול

שם חבילה

סוּג

מכשיר שודרג ל-Android 11 או הושק עם Android 11

מכשיר הושק עם אנדרואיד 10

מכשיר משודרג לאנדרואיד 10

adbd

com.google.android.adbd

שִׂיא

צריך

אינו נתמך

אינו נתמך

זמן ריצה של Android Neural Network API

com.google.android.neuralnetworks

שִׂיא

צריך

אינו נתמך

אינו נתמך

כניסה לפורטל שבוי

com.google.android.captiveportallogin

APK

צריך

מומלץ בחום

אופציונאלי

שידור סלולרי

com.google.android.cellbroadcast

שִׂיא

צריך

אינו נתמך

אינו נתמך

צרפן

com.google.android.conscrypt

שִׂיא

צריך

מומלץ בחום

אופציונאלי

פותר DNS

com.google.android.resolv

שִׂיא

צריך

מומלץ בחום

אופציונאלי

ממשק המשתמש של מסמכים

com.google.android.documentsui

APK

צריך

צריך

אופציונאלי

ExtServices - APK

com.google.android.ext.services

APK

צריך

צריך

צריך

ExtServices - APEX

com.google.android.extservices

שִׂיא

צריך

אינו נתמך

אינו נתמך

ספריית IPsec/IKEv2

com.google.android.ipsec

שִׂיא

צריך

אינו נתמך

אינו נתמך

קודקים של מדיה

com.google.android.media.swcodec

שִׂיא

צריך

צריך

אופציונאלי

רכיבי מסגרת מדיה

com.google.android.media

שִׂיא

צריך

צריך

אופציונאלי

ספק מדיה

com.google.android.mediaprovider

שִׂיא

צריך

אינו נתמך

אינו נתמך

מטא נתונים של מודול

com.google.android.modulemetadata

APK

צריך

צריך

צריך

רכיבי ערימת רשת

com.google.android.networkstack

APK

צריך

מומלץ בחום

אופציונאלי

תצורת הרשאת ערימת רשת

com.google.android.networkstack.permissionconfig

APK

צריך

מומלץ בחום

אופציונאלי

בקר הרשאות - APK

com.google.android.permissioncontroller

APK

צריך

צריך

צריך

בקר הרשאות - APEX

com.google.android.permission

שִׂיא

צריך

אינו נתמך

אינו נתמך

הרחבות SDK

com.google.android.sdkext

שִׂיא

צריך

אינו נתמך

אינו נתמך

סטטיסטיקה

com.google.android.os.statsd

שִׂיא

צריך

אינו נתמך

אינו נתמך

חבילת גרסת רכבת טלמטריה

com.google.mainline.telemetry

APK

צריך

אינו נתמך

אינו נתמך

קשירה

com.google.android.tethering

שִׂיא

צריך

אינו נתמך

אינו נתמך

נתוני אזור זמן

com.google.android.tzdata

שִׂיא

אסור

צריך

אופציונאלי

נתוני אזור זמן 2

com.google.android.tzdata2

שִׂיא

צריך

אינו נתמך

אינו נתמך

וויי - פיי³

com.google.android.wifi

שִׂיא

צריך

אינו נתמך

אינו נתמך

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

מה עושה כל מודול Mainline?

להלן הסבר קצר לכל אחד מהמודולים הראשיים:

Adbd

מודול ה-adbd מנהל הפעלות של adb ו-IDE באגים בשורת הפקודה. מודולריזציה של adbd מאפשרת לגוגל לספק שיפורים בביצועים ותיקוני באגים מהר יותר. זה חיוני מכיוון שכמה באגים בעבר היו קשורים לריקון הסוללה, ויכולים לגרום למכשירים להמשיך להשתמש ב-100% מעבד עד שהטלפון ימות. אז הוצאת התיקונים הללו חיונית עבור Google מכיוון ש-adb נמצא בשימוש נרחב על ידי מפתחי אפליקציות ויצרני OEM לצורך בדיקות.

זמן ריצה של Android Neural Networks API

זוהי ספרייה שיושבת בין אפליקציה למנהלי התקנים עורפיים. ה-API בתורו הוא API של Android C להפעלת פעולות למידת מכונה אינטנסיביות מבחינה חישובית במכשירים ניידים, וכדי לאפשר פעולות הסקה מואצות בחומרה.

Cell Broadcast

שידור סלולרי מתייחס להתראות חירום ולא חירום (כגון התראות AMBER). מודול זה עוסק במשימות סביב התראות אלו, ובפונקציות נלוות אחרות כגון פענוח SMS ו- geofencing עבור התראות חירום אלחוטיות.

צרפן

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

פותר DNS

כפי שהשם מרמז, פותר ה-DNS פותר DNS, כלומר הוא ממיר כתובות URL קריאות לאדם לכתובות IP. המודול מכיל את הקוד שמיישם את פותר ה-DNS stub, ומשלוח זה כמודול מאפשר לגוגל לספק הגנה טובה יותר למשתמש מפני יירוט DNS והתקפות עדכוני תצורה.

ממשק המשתמש של מסמכים

ממשק המשתמש של מסמכים הוא המודול האחראי על בקרת הגישה לקבצים ספציפיים עבור רכיבים המטפלים בהרשאות מסמכים. כפי שגוגל מצהירה, הפיכת גישה והרשאות לאחסון למודול מגדילה את הפרטיות והאבטחה עבור משתמשי קצה תכונת ריצה משאבי-על (RRO) מאפשרת ליצרני ציוד מקורי לעצב את החוויה (הכוונה לאפליקציית הקבצים) אם הם צריכים ל. כמודול, כל מכשירי Google-Android יישלחו עם אותה חוויית ממשק משתמש של מסמכים.

ExtServices

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

ספריית IPsec/IKEv2

מודול ספרייה זה עוסק בתכונות חדשות וקיימות סביב Interworking Wireless LAN (IWLAN) ו-VPNs, כגון ניהול משא ומתן על פרמטרי אבטחה כמו מפתחות, אלגוריתמים ומנהרה תצורות. הרעיון עם מודולריזציה של פונקציות אלה הוא לקדם עקביות של מערכת אקולוגית ולספק דרך לספק תיקונים מהירים לבעיות אבטחה ותפעול הדדיות.

אלה שלושה מודולים מפוצלים, אבל יש להם פונקציות שנשענות זו על זו. מודולי מדיה אלו מטפלים בסוגי מדיה ובקודים, מקיימים אינטראקציה עם ה-ExoPlayer, חושפים בקרות תעבורה ומידע השמעה למסגרת, מייעלים מטא נתונים שנוספו לאינדקס וכו'. זכור Stagefright, הניצול ששינה את אנדרואיד והביא לעצם הרעיון של עדכוני אבטחה חודשיים לפלטפורמה? ניצול זה הסתמך על נקודות תורפה בתוך ספריית השמעת המדיה. אז מודולריזציה של רכיבי המדיה מאפשרת לגוגל להגיב במהירות וברחבה למקרה שיימצאו באגי אבטחה ברכיב הממוקד הזה.

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

רכיבי ערימת רשת, תצורת הרשאות מחסנית רשת, כניסה לפורטל שבוי

מודול Network Stack Components מספק שירותי IP נפוצים, ניטור קישוריות רשת, זיהוי פורטל כניסה שבוי. מודול תצורת ההרשאה מגדיר את ההרשאה המאפשרת למודולים אחרים לבצע משימות הקשורות לרשת. מודול הכניסה לפורטל שבוי עוסק בפורטלים שבויים - דפי אינטרנט המוצגים מתי מחובר לרשתות Wi-Fi ציבוריות מסוימות, שבהן המשתמש מתבקש להזין פרטים כדי לקבל אינטרנט גִישָׁה.

בקר הרשאות

מודול זה מספק מדיניות פרטיות ניתנת לעדכון ורכיבי ממשק משתמש סביב מתן וניהול הרשאות. אם זה נשמע מוכר למה שמתקין חבילות עושה, זה בגלל שזה כן. פונקציות כמו הענקת הרשאות זמן ריצה, ניהול ומעקב אחר שימוש היו חלק מאפליקציית Package Installer עד אנדרואיד 9. באנדרואיד 10, אפליקציית ההתקנה של החבילות מפוצלת למקטעים כדי לאפשר את עדכון הלוגיקה של ההרשאות. מודול בקר ההרשאות מסופק כקובץ APK, וב-Android 11, המודול יכול לבטל באופן אוטומטי הרשאות זמן ריצה עבור אפליקציות שלא נעשה בהן שימוש במשך תקופה ממושכת.

הרחבות SDK

מעט קשה להבין את המודול הזה, וכתוצאה מכך להסביר. לכל מהדורת אנדרואיד מוקצית רמת SDK (בדרך כלל +1 מקודמו). כאשר אפליקציה מכוונת ל-SDK מסוים, ההנחה היא שהמפתח לקח בחשבון את השינויים ההתנהגותיים וה-API של הפלטפורמה שהביאה מהדורת אנדרואיד.

מודול הרחבות SDK מחליט על רמת "SDK של תוסף" של המכשיר וחושף ממשקי API עבור אפליקציות לשאילתות על רמת ה-SDK של ההרחבה. זה בערך כל מה שהתיעוד הרשמי מזכיר. ArsTechnica, עם זאת, מזכיר שככל הנראה מדובר בשכבת API משנית שתישלח דרך חנות Play.

Statsd, חבילת גרסת רכבת טלמטריה

Statsd אחראי לאיסוף מדדי מכשירים. חבילת גרסת רכבת הטלמטריה, לעומת זאת, אינה מכילה קוד פעיל או כל פונקציונליות משלה. הוא פשוט מכיל מספר גרסה עבור "רכבת הטלמטריה", שלפי גוגל היא קבוצה של מודולים הקשורים למדדים. בהתבסס על מספר הגרסה, Google Play מציג את גרסת תיקון האבטחה למשתמשי הקצה ומגלה אם עדכונים זמינים עבור מודולים הקשורים למדדים.

קשירה

מודול Tethering משתף את חיבור האינטרנט של המכשיר עם התקני לקוח מחוברים אחרים באמצעות Wi-Fi, USB, Bluetooth או Ethernet. המודול כולל את רכיבי ה-Tethering והתלות שלהם. על ידי שימוש במודול Tethering זה, יצרני OEM יכולים להסתמך על יישום ייחוס יחיד וסטנדרטי ולהביא חוויה עקבית בין מכשירים.

נתוני אזור זמן

מודול נתוני אזור הזמן מעדכן את שעון הקיץ (DST) ואת אזורי הזמן במכשירי אנדרואיד, ומתקן את הנתונים (שיכולים וגם משתנה לעתים קרובות למדי בתגובה לסיבות דתיות, פוליטיות וגיאופוליטיות) ומנגנון העדכון ברחבי המערכת האקולוגית. אנדרואיד 8.1 ואנדרואיד 9 השתמשו במנגנון עדכון נתוני אזור זמן מבוסס APK, ואנדרואיד 10 מחליפה אותו במנגנון עדכון מודול מבוסס APEX. גוגל מצהירה כי AOSP ממשיכה לכלול את קוד הפלטפורמה הדרוש לעדכונים מבוססי APK, אז מכשירים המשדרגים לאנדרואיד 10 עדיין יכולים לקבל עדכוני נתוני אזור זמן מסופקים על ידי שותף דרך APK. עם זאת, גוגל מזהירה כי עדכונים מבוססי APK מחליפים עדכון מבוסס APEX.

וויי - פיי

זהו המודול לפונקציונליות Wi-Fi. משתמשי קצה יכולים כעת לקבל חוויית Wi-Fi עקבית בכל מכשירי אנדרואיד, כמו גם תיקונים לבעיות יכולת פעולה הדדית באמצעות עדכוני מודול, אפליקציה מפתחים יכולים לקבל פיצול פלטפורמה מופחת, ויצרני OEM יכולים לעמוד בדרישות הספק תוך הפחתת עלויות ליחיד התאמות אישיות.


יש לקוות, מאמר זה מדגיש עד כמה חשוב Project Mainline למערכת האקולוגית של אנדרואיד של גוגל.