מערכת AOSP מציעה את האפשרויות הבאות לאחסון פרטי הגדרה במכשיר:
- מאפייני מערכת
- מאפיינים של שיטת הפשטת חומרה (HAL)
- קובצי XML של הגדרת המערכת
- שכבות-על של משאבים (סטטיות וזמן ריצה)
מאפייני מערכת
מאפייני מערכת הם צמדים של מפתח/ערך מסוג מחרוזת שמאוחסנים במילון הגלובלי build.prop. מאפייני מערכת הם משאבים ברמת המערכת שקל להשתמש בהם והם לא מעמיסים על הביצועים. כשמשתמשים במאפייני מערכת, לא צריך להשתמש בתקשורת בין תהליכים (IPC) גם אם מאפיין מערכת משותף בין כמה תהליכים. עם זאת, מאפייני המערכת דומים למשתנים גלובליים, ושימוש לא נכון בהם עלול לגרום נזק. שימוש לרעה במאפייני מערכת עלול לגרום לבעיות כמו נקודות תורפה באבטחה ואפליקציות שלא נגישות למשתמשים. לפני שמשתמשים במאפייני מערכת כדי לאחסן מידע על הגדרות, כדאי לשקול את אפשרויות ההגדרה האחרות.
מידע נוסף על מאפייני מערכת זמין במאמר הוספת מאפייני מערכת
מאפייני HAL
כשהמקור המהימן להגדרה הוא רכיב חומרה במכשיר, שכבת ה-HAL של החומרה צריכה לספק את המידע על הרכיב הזה. מגדירים שיטת HAL חדשה ב-HAL הקיים כדי לגשת להגדרה. מידע נוסף על פיתוח HAL זמין במאמר AIDL ל-HAL.
קובצי XML של הגדרת המערכת
אם נתוני ההגדרה סטטיים אבל מורכבים (מובנים), כדאי להשתמש ב-XML או בפורמטים דומים אחרים לנתוני ההגדרה. חשוב לוודא שסכימת הקובץ נשארת יציבה. במקרה של קובצי XML, אפשר להשתמש ב-xsd_config כדי לשמור על יציבות הסכימה, וכדי ליהנות מניתוח XML שנוצר אוטומטית.
שכבת-על של משאבים
אפשר להשתמש בשכבות-על של משאבים כדי להתאים אישית מוצר. יש שני סוגים של שכבות-על של משאבים:
שכבת-על רגילה של משאבים שמשמשת להתאמה אישית של מוצר בזמן הבנייה. מידע על שכבות-על רגילות של משאבים זמין במאמר התאמה אישית של ה-build באמצעות שכבות-על של משאבים.
שכבת-על של משאבים בזמן ריצה (RRO) משמשת לשינוי ערכי המשאבים של חבילת יעד בזמן ריצה. לדוגמה, אפליקציה שמותקנת בתמונת המערכת עשויה לשנות את ההתנהגות שלה על סמך הערך של משאב. במקום לכתוב בתוך הקוד את ערך המשאב במשך זמן של תהליך build, RRO שמותקן במחיצה אחרת יכול לשנות את ערכי המשאבים של האפליקציה בזמן הריצה. מידע נוסף על RRO זמין במאמר שינוי הערך של משאבי אפליקציה בזמן ריצה.