גוגל מחויבת לקדם הון גזעי עבור קהילות שחורות. תראה איך.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

תמונות מערכת גנריות

תמונת מערכת גנרית (GSI) היא תמונת מערכת עם תצורות מותאמות למכשירי אנדרואיד. זה נחשב ליישום אנדרואיד טהור עם קוד AOSP (קוד פתוח של אנדרואיד ללא שינוי) שכל מכשיר אנדרואיד שמריץ אנדרואיד 8.1 ומעלה יכול לרוץ בהצלחה.

מכשירי GSI משמשים לביצוע בדיקות VTS ו- CTS-on-GSI. תמונת המערכת של מכשיר אנדרואיד מוחלפת על ידי GSI שנבדק אז באמצעות Suite Test Vendor (VTS) ו- Suite Compatibility Test (CTS) כדי להבטיח שהמכשיר מיישם את הספק מתממשק נכון לגירסה האחרונה של אנדרואיד.

כדי להתחיל עם GSIs, עיין בסעיפים הבאים לקבלת פרטים על תצורות GSI (ושונות מותרות), סוגים (GSI אנדרואיד ו- GSI Legacy), ובינארי ספקים ותלות VNDK . כשתהיה מוכן להשתמש ב- GSI, הורד ובנה את ה- GSI עבור יעד המכשיר שלך, ואז פלאש את ה- GSI למכשיר אנדרואיד.

תצורת GSI ושונות

ל- GSI אנדרואיד הנוכחי יש את התצורה הבאה:

  • לְשַׁלֵשׁ. GSI כוללת תמיכה מלאה עבור השינויים הארכיטקטוניים מבוסס HIDL (הידוע גם בשם טרבל) בגרסת Android 8.0, כולל תמיכה עבור ממשקי HIDL . אתה יכול להשתמש ב- GSI בכל מכשיר אנדרואיד המשתמש בממשקי ספקי HIDL. (לפרטים נוספים, ראה משאבי אדריכלות .)
  • אמת אתחול. ה- GSI אינו כולל פתרון אתחול לאימות (כגון vboot 1.0 או AVB ). כדי להבהב את ה- GSI למכשיר המשגר ​​באנדרואיד 9 ומעלה, על המכשיר להיות בעל שיטה להשבית אתחול האימות.
  • מערכת קבצים. ה- GSI משתמש במערכת הקבצים ext4.
  • פריסת מחיצה. ה- GSI משתמש בפריסת מחיצת מערכת כשורש .

ה- GSI הנוכחי של אנדרואיד כולל את השונות העיקריות הבאות:

  • ארכיטקטורת מעבד. תמיכה בהוראות מעבד שונות (ARM, x86 וכו ') וסיביות מעבד (32 סיביות או 64 סיביות).

יעדי GSI לבדיקות תאימות של טרבל

ה- GSI המשמש לבדיקת התאימות נקבע על ידי גרסת האנדרואיד איתה משגר המכשיר.

סוג מכשיר בנה יעד
מכשירים המשיקים באמצעות אנדרואיד 10 aosp_$arch-user
מכשירים משיקים באמצעות אנדרואיד 9 aosp_$arch-userdebug
מכשירים המשיקים באמצעות אנדרואיד 8.0 או אנדרואיד 8.1 aosp_$arch_ab-userdebug

כל מכשירי ה- GSI בנויים ממקור בסיס אנדרואיד 10, ולכל ארכיטקטורת מעבד יש בינארי GSI מקביל (ראו רשימת יעדי הבנייה בבניית GSI ).

שינויים ב- GSM אנדרואיד 10

התקנים המשיקים באמצעות אנדרואיד 10 חייבים להשתמש במכשירי GSI של אנדרואיד 10 לבדיקת תאימות. זה כולל את השינויים העיקריים הבאים מה- GSI הקודמים:

  • בניית משתמשים. ל- GSI יש בניית משתמשים מאנדרואיד 10. באנדרואיד 10 ניתן להשתמש ב- GSI לבנות משתמשים בבדיקות התאמה של CTS-on-GSI / VTS. עיין בבדיקת VTS עם ניפוי באגים Ramdisk לפרטים.
  • פורמט לא מפואר. GSI עם יעדים aosp_$arch בנויים בפורמט לא מפורק. אתה יכול להשתמש img2simg כדי להמיר GSI לא מפוספס לפורמט דליל במידת הצורך.
  • מערכת כשורש. יעד בניית GSI מדור קודם בשם aosp_$arch_a הושלם. עבור המכשירים המשודרגים מאנדרואיד 8 או 8.1 לאנדרואיד 10 עם ramdisk ושאינם מערכת-כ- root, השתמשו ב- GSI מדור קודם aosp_$arch_ab . ה- init המשודרג ב- ramdisk תומך ב- OEM.img עם פריסת מערכת כשורש.

כדי לבדוק מכשירים המשיקים באנדרואיד 9 או 10 עם CTS-on-GSI, השתמש ביעדי הבנייה של GSI אנדרואיד .

GSI מדור קודם

GSIs מדור קודם ששמו עם הסיומת _ab (לדוגמה, aosp_arm64_ab ). מכשירי GSI אלה בנויים מעץ המקור של אנדרואיד 10 אך מכילים את התצורות הבאות התואמות לאחור למכשירים המשודרגים מ- Android 8 או 8.1:

  • מרחב משתמשים 32 סיביות + ממשק קלסר 32 סיביות. מכשירי GSI 32 סיביות יכולים להמשיך להשתמש בממשק הקלסרים של 32 סיביות.
  • 8.1 VNDK. מכשירים יכולים להשתמש ב 8.1 VNDK הכלול.
  • ספריות הר. מכשירים מסוימים מדור קודם משתמשים בספריות כמצביעי הרכבה (לדוגמה, /bluetooth , /firmware/radio ו /persist ).

כדי לבדוק מכשירים המשיקים באנדרואיד 8 או 8.1 עם CTS-on-GSI, השתמש ביעדי הבנייה של Legacy GSI .

שינויים ב- Android 9 GSI

מכשירי GSI של אנדרואיד 9 כוללים את השינויים העיקריים הבאים לעומת מכשירי GSI קודמים:

  • ממזג GSI ואמולטור. מכשירי GSI בנויים מתמונות המערכת של מוצרי אמולטור, למשל, aosp_arm64 ו- aosp_x86 .
  • מערכת כשורש. בגירסאות קודמות של אנדרואיד, מכשירים שלא תומכים בעדכוני A / B יכולים להעלות את תמונת המערכת תחת ספריית /system . באנדרואיד 9 שורש תמונת המערכת מותקן כשורש המכשיר.
  • ממשק קלסר 64 סיביות. באנדרואיד 8.x, מכשירי GSI עם 32 סיביות השתמשו בממשק הקלסר של 32 סיביות. אנדרואיד 9 אינו תומך בממשק הקלסרים של 32 סיביות, כך שגם GSIs 32 סיביות וגם GSIs עם 64 סיביות משתמשים בממשק הקלסרים של 64 סיביות.
  • אכיפת VNDK. באנדרואיד 8.1, VNDK היה אופציונלי. החל מאנדרואיד 9, VNDK הוא חובה, ולכן יש להגדיר BOARD_VNDK_VERSION .
  • מאפיין מערכת תואם. אנדרואיד 9 מאפשרת לבדוק את הגישה לנכס מערכת תואם ( PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true ).

שינויים ב- Keymaster של אנדרואיד 9

בגירסאות קודמות של אנדרואיד, התקנים המיישמים את Keymaster 3 ומטה נדרשו כדי לוודא ro.build.version.release ( ro.build.version.release ו- ro.build.version.security_patch ) שדווחו על ידי מערכת ההפעלה תואם את פרטי הגרסה המדווחת על ידי loadloader. מידע כזה הושג בדרך כלל מכותרת תמונת האתחול.

באנדרואיד 9 ומעלה דרישה זו השתנתה כדי לאפשר לספקים לאתחל GSI. באופן ספציפי, Keymaster לא אמור לבצע אימות מכיוון שמידע הגרסאות המדווח על ידי ה- GSI עשוי שלא להתאים למידע הגרסאות המדווח על ידי טוען האתחול של הספק. עבור התקנים המיישמים את Keymaster 3 ומטה, על הספקים לשנות את יישום ה- Keymaster כדי לדלג על האימות (או לשדרג ל- Keymaster 4). לפרטים אודות Keymaster, עיינו ב- Keystore המגובה חומרה .

בינארי ספקים ותלות VNDK

להתקנים המשדרגים ל- Android 10 יש נתיבי שדרוג שונים, תלוי בגירסת הבינארי של הספקים הנמצאים בשימוש במכשיר והתצורות הקשורות VNDK המשמשות לבניית המכשיר. הטבלה הבאה מסכמת את תמיכת GSI מדור קודם למכשירים משודרגים.

השתמש במקרה מוֹכֵר
בינאריים
גִרְסָה
BOARD_VNDK_VERSION GSI מדור קודם
גרסת בינארי מערכת - -
תמיכת GSI מדור קודם
0 8.0 (כל) 10 לא
1 8.1 (ריק) 10 לא
2 8.1 current 10 כן
3 10 current 10 כן

המקרה לשימוש הנתמך הנפוץ ביותר הוא מספר 2, בו מכשירי ה- GSI מדור קודם שמכשירים תומכים ב- Android 8.1 שנבנו עם BOARD_VNDK_VERSION מוגדרים BOARD_VNDK_VERSION current .

המקרה מספר 1 אינו נתמך. במקרה זה, מכשירי GSI מדור קודם אינם תומכים במכשירים הפועלים עם אנדרואיד 8.1 שבהם BOARD_VNDK_VERSION מושמט BOARD_VNDK_VERSION . לא ניתן לתמוך במכשירים אלה מכיוון שבינארי הספקים שלהם תלויים בספריות משותפות שאינן VNDK של Android 8.1, שאינן כלולות ב- GSIs מדור קודם. כדי להפוך מכשירים אלה תואמים ל- GSI מדור קודם, עליך לבצע אחת מהפעולות הבאות:

  • הפעל את BOARD_VNDK_VERSION ללא BOARD_VNDK_RUNTIME_DISABLE (השתמש במקרה מספר 2).

    אוֹ

  • נמל / שדרג את קבצי הבינארי של הספק כדי להיות תלויים בספריות המשותפות מ- Android 10 (השתמש במקרה מספר 3).

מוריד GSIs

ניתן להוריד GSIs שנבנו מראש מאתר שילוב רציף AOSP (CI) באתר ci.android.com . אם סוג ה- GSI לפלטפורמת החומרה שלך אינו זמין להורדה, עיין בסעיף הבא לקבלת פרטים על בניית GSI למטרות ספציפיות.

בניית GSIs

החל 9 אנדרואיד, כל גרסת אנדרואיד יש בשם סניף GSI DESSERT -gsi על AOSP (למשל, android10-gsi הוא סניף GSI על אנדרואיד 10). סניפי GSI כוללים את התוכן של Android עם כל תיקוני האבטחה ותיקוני ה- GSI המיושמים.

כדי לבנות GSI, הגדר את עץ המקור של אנדרואיד על ידי הורדה מסניף GSI ובחירת יעד לבנייה של GSI . השתמש בטבלאות היעד לבנות להלן כדי לקבוע את גרסת ה- GSI הנכונה עבור המכשיר שלך. לאחר השלמת הבנייה, ה- GSI הוא תמונת המערכת (כלומר, system.img ) ומופיע בתיקיית הפלט out/target/product/ generic_arm64 . ה- build פלט גם vbmeta.img , שתוכלו להשתמש בו כדי להשבית אתחול האימות במכשירים באמצעות Boot Verified Android .

לדוגמה, כדי לבנות את יעד aosp_arm64-userdebug של GSI android10-gsi בסניף GSI android10-gsi , הפעל את הפקודות הבאות.

$ repo init -u https://android.googlesource.com/platform/manifest -b android10-gsi
$ repo sync -cq
$ source build/envsetup.sh
$ lunch aosp_arm64-userdebug
$ make -j4

יעדים אנדרואיד GSI לבנות

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

שם GSI קשת מעבד מרירות ממשק קלסר מערכת כשורש בנה יעד
aosp_arm זְרוֹעַ 64 י aosp_arm-user
aosp_arm-userdebug
aosp_arm64 ARM64 64 י aosp_arm64-user
aosp_arm64-userdebug
aosp_x86 x86 64 י aosp_x86-user
aosp_x86-userdebug
aosp_x86_64 x86-64 64 י aosp_x86_64-user
aosp_x86_64-userdebug

מטרות GSI מדור קודם

המטרות הבאות של GSI לבנות מדור קודם מיועדות להתקנים משדרוג מ- Android 8.0 או 8.1 לאנדרואיד 10. שמות GSI מדור קודם כוללים את הסיומת _ab כדי להבדיל ביניהם משמות GSI של אנדרואיד 10.

שם GSI קשת מעבד מרירות ממשק קלסר מערכת כשורש בנה יעד
aosp_arm_ab זְרוֹעַ 32 י aosp_arm_ab-userdebug
aosp_arm_64b_ab זְרוֹעַ 64 י aosp_arm_64b_ab-userdebug
aosp_arm64_ab ARM64 64 י aosp_arm64_ab-userdebug
aosp_x86_ab x86 32 י aosp_x86_ab-userdebug
aosp_x86_64_ab x86-64 64 י aosp_x86_64_ab-userdebug

דרישות ל- GSI מהבהבים

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

  1. ודא שלמכשיר יש את הדברים הבאים:
    • טרבליזציה
    • שיטה לביטול נעילת מכשירים (כך שניתן יהיה fastboot באמצעות fastboot )
    • שיטה לביטול אתחול האימות (לדוגמה, vboot 1.0 או AVB )
    • מצב לא נעול כדי להבהיר אותו באמצעות fastboot (כדי להבטיח שיש לך את הגרסה האחרונה של fastboot , בנה אותה מעץ המקור של אנדרואיד.)
  2. השבת את אתחול האימות.
  3. מחק את מחיצת המערכת הנוכחית, ואז הבזק את ה- GSI למחיצת המערכת.
  4. נגב את נתוני המשתמש ונקה את הנתונים ממחיצות הכרחיות אחרות (לדוגמה, נתוני משתמש ומחיצות מערכת).
  5. הפעל מחדש את המכשיר.

לדוגמה, להבהב GSI לכל מכשיר פיקסל:

  1. האתחול למצב מהיר אתחול fastboot את הנעילה של טוען האתחול . המכשירים התומכים ב- fastbootd צריכים גם לאתחל ל- fastbootd ידי:
    $ fastboot reboot fastboot
  2. השבת את האתחול האימות (AVB) על ידי הברקה vbmeta.img :
    $ fastboot --disable-verification flash vbmeta vbmeta.img
  3. מחק והבהב את ה- GSI למחיצת המערכת:
    $ fastboot erase system
    $ fastboot flash system system.img
    
  4. נגב את נתוני המשתמש ונקה את הנתונים ממחיצות הכרחיות אחרות (לדוגמה, נתוני משתמש ומחיצות מערכת):
    $ fastboot -w
  5. לְאַתחֵל:
    $ fastboot reboot
במכשירי אנדרואיד 10 עם מחיצות מערכת קטנות יותר, הודעת השגיאה הבאה עשויה להופיע כאשר מהבהבים את ה- GSI:
    Resizing 'system_a'    FAILED (remote: 'Not enough space to resize partition')
    fastboot: error: Command failed
השתמש בפקודה הבאה כדי למחוק את מחיצת המוצר ולפנות מקום למחיצת המערכת. זה מספק שטח נוסף להבהב ה- GSI:
$ fastboot delete-logical-partition product_a
על התיקון _a להתאים למזהה החריץ של מחיצת המערכת, כגון system_a בדוגמה זו.

תרומה ל- GSIs

אנדרואיד מברכת על התרומות שלך לפיתוח GSI. אתה יכול להסתבך ולעזור בשיפור ה- GSI על ידי:

  • יצירת תיקון GSI. DESSERT -gsi אינו ענף פיתוח ומקבל cherrypicks רק מענף מאסטר AOSP, כך להגיש תיקון GSI, עליך:
    1. הגש את התיקון לסניף master AOSP .
    2. Cherrypick את התיקון ל DESSERT -gsi .
    3. הגש באג כדי לבדוק את קובץ הדובדבן.
  • דיווח על באגים של GSI או הצעת הצעות אחרות. סקור את ההוראות בסעיף דיווחי באגים , ואז דפדף או הגש באגי GSI .

טיפים

שינוי מצב סרגל הניווט באמצעות adb

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

adb exec-out cmd overlay enable-exclusive com.android.internal.systemui.navbar. mode

היכן mode יכול להיות threebutton , twobutton , gestural וכדומה.