ספריות, כללים ומדיניות

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

דף זה מתאר את פריסת הספרייה למכשירים המריצים אנדרואיד 8.0 ואילך, כללי VNDK והמדיניות המשויכת.

פריסת ספריות

פריסת המדריך המנוונת מורכבת מהספריות הבאות:

  • /system/lib[64] מכיל את כל הספריות המשותפות למסגרת, כולל ספריות LL-NDK, VNDK וספריות מסגרת בלבד (כולל LL-NDK-Private וכמה ספריות עם אותם שמות כמו אלה ב-VNDK-SP).
  • /system/lib[64]/vndk-sp מכיל ספריות VNDK-SP עבור HALs באותו תהליך.
  • /vendor/lib[64] מכיל את ספריות VNDK המורחבות על ידי הספק (ספריות DXUA או DXUX VNDK), יישומי HAL באותו תהליך וספריות משותפות אחרות של ספקים.
  • /vendor/lib[64]/vndk-sp עשוי להכיל את ספריות VNDK-SP המורחבות על ידי הספק.

מודולי ספק טוענים את ספריות VNDK מ- /system/lib[64] .

חוקי VNDK

סעיף זה מספק רשימה מקיפה של חוקי VNDK:

  • תהליכי מסגרת אינם חייבים לטעון ספריות משותפות שאינן SP-HAL ממחיצות הספק (נאכפים בקפדנות החל מ-Android 8.1).
  • לתהליכי ספק אסור לטעון ספריות שאינן LL-NDK, שאינן VNDK-SP ולא VNDK ממחיצת המערכת. (לא נאכף בקפדנות באנדרואיד O אבל יהיה במהדורה עתידית).
  • ספריות VNDK המותקנות חייבות להיות קבוצת משנה של ספריות VNDK כשירות המוגדרות על ידי Google.
  • התלות החיצונית של SP-HAL ו-SP-HAL-Dep חייבת להיות מוגבלת לספריות LL-NDK או VNDK-SP המוגדרות על ידי Google.
    • התלות של ספרייה משותפת SP-HAL חייבת להיות מוגבלת לספריות LL-NDK, ספריות VNDK-SP המוגדרות על ידי Google, ספריות SP-HAL אחרות ו/או ספריות משותפות אחרות של ספקים שניתן לתייג כספריות SP-HAL-Dep .
    • ספרייה משותפת של ספק יכולה להיות מתויגת כספריית SP-HAL-Dep רק אם היא אינה ספריית AOSP והתלות שלה מוגבלת לספריות LL-NDK, ספריות VNDK-SP המוגדרות על ידי Google, ספריות SP-HAL ו/או ספריות SP-HAL-Dep אחרות.
  • VNDK-SP חייב להיות עצמאי. libRS_internal.so זוכה לטיפול מיוחד באנדרואיד 8.0, אך ייבדק מחדש במהדורה עתידית.
  • אין תקשורת בין ספקי מסגרת דרך ממשקים שאינם HIDL, כולל (אך לא מוגבל) קלסר, שקעים, זיכרונות משותפים, קבצים וכו'.
  • גודל מחיצת המערכת חייב להיות גדול מספיק כדי להכיל שני עותקים של כל ספריות ה-VNDK הכשירות ועותק של ספריות משותפות של מסגרת שאינן מתאימות.

sepolicy

תהליכי מסגרת המתוארים בסעיף זה תואמים ל- coredomain ב-sepolicies בעוד שתהליכי הספק תואמים ל- non-coredomain . לדוגמה, ניתן לגשת ל- /dev/binder רק ב- coredomain וניתן לגשת ל- /dev/vndbinder רק ב- coredomain .

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

קטגוריה חֲלוּקָה נגיש מ
coredomain
נגיש מ
לא תחום ליבה
LL-NDK מערכת י י
LL-NDK-פרטי מערכת י י
VNDK-SP/VNDK-SP-פרטי מערכת י י
VNDK-SP-Ext מוֹכֵר י י
VNDK מערכת י י
VNDK-Ext מוֹכֵר נ י
FWK בלבד מערכת י נ
FWK-ONLY-RS מערכת י נ
SP-HAL מוֹכֵר י י
SP-HAL-Dep מוֹכֵר י י
VND בלבד מוֹכֵר נ י

LL-NDK-Private ו-VNDK-SP-Private חייבות להיות נגישות משני הדומיינים, מכיוון שדומיין שאינו coredomain אליהם באופן עקיף. באופן דומה, SP-HAL-Dep חייב להיות נגיש מ- coredomain מכיוון ש-SP-HAL מסתמך עליו.

תווית same_process_hal_file

הספריות הבאות קיימות במחיצת הספק. הפוך את הספריות הללו לנגישות מ- coredomain וגם מ- coredomain .

  • VNDK-SP-Ext ב- /vendor/lib[64]/vndk-sp
  • SP-HAL ב- /vendor/lib[64] או /vendor/lib[64]/hw
  • SP-HAL-Dep ב- /vendor/lib[64] או /vendor/lib[64]/hw

תייג במפורש קבצים אלה כ- same_process_hal_file , מכיוון שכל דבר במחיצת vendor אינו נגיש כברירת מחדל ל- coredomain . הוסף שורות דומות להלן לקובץ file_contexts הספציפי לספק.

/vendor/lib(64)?/hw/libMySpHal\.so        u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/vndk-sp/libBase\.so      u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/libBaseInternal\.so      u:object_r:same_process_hal_file:s0