אחסון מאומץ

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

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

כאשר משתמשים מכניסים אמצעי אחסון חדשים (כגון כרטיס SD) במיקום שאפשר לאמץ, אנדרואיד שואלת אותם כיצד הם רוצים להשתמש במדיה. הם יכולים לבחור לאמץ את המדיה, אשר פורמט ומצפין אותה, או שהם יכולים להמשיך להשתמש בה כמות שהם לאחסון קבצים פשוט. אם הם בוחרים לאמץ, הפלטפורמה מציעה להעביר את תוכן האחסון המשותף העיקרי (מותקן בדרך כלל ב- /sdcard ) למדיה החדשה שאומצה, וכך לפנות שטח יקר באחסון פנימי. בניגוד לאחסון המסורתי, המוגבל ל -2 TB בגלל השימוש בו ב- MBR , אחסון המאומץ משתמש ב- GPT ולכן יש מגבלת אחסון קבצים של ~ 9ZB.

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

בִּטָחוֹן

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

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

פריסת הדיסק של המכשיר המאומץ משקפת מקרוב את מחיצת הנתונים הפנימית, כולל תוויות SELinux וכו '. כאשר תומך רב משתמשים במכשיר אנדרואיד, התקן האחסון המאומץ תומך גם ברב משתמשים עם אותה בידוד ברמה כמו פנימי. אִחסוּן.

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

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

ביצועים ויציבות

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

כאשר משתמש מאמץ התקן אחסון חדש, הפלטפורמה מריצה אמת מידה ומשווה את ביצועיה מול אחסון פנימי. אם המכשיר המאומץ איטי משמעותית מאחסון פנימי, הפלטפורמה מזהירה את המשתמש מפני חוויה מושפלת. אמת מידה זו נגזרה מהתנהגות ה- I / O בפועל של אפליקציות Android פופולריות. נכון לעכשיו, הטמעת ה- AOSP רק תזהיר משתמשים מעבר לסף יחיד, אך יצרני מכשירים עשויים להתאים זאת עוד יותר, כגון דחיית אימוץ לחלוטין אם הכרטיס איטי ביותר.

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

בעת ביצוע תחזוקה סרק תקופתית, הפלטפורמה מנפיקה את FI_TRIM למדיה מאומצת בדיוק כמו לאחסון פנימי. המפרט הנוכחי של כרטיס SD אינו תומך בפקודה DISCARD ; אך הליבה במקום חוזרת לפקודת ERASE , אשר קושחת כרטיס ה- SD עשויה לבחור להשתמש בה למטרות אופטימיזציה.

בדיקה

כדי לבדוק שהאחסון המאומץ עובד, הפעל את בדיקת CTS זו:

cts-tradefed run commandAndExit cts-dev \
    -m CtsAppSecurityHostTestCases \
    -t android.appsecurity.cts.AdoptableHostTest

כדי לאמת התנהגות של כונני USB וכרטיסי SD כאשר למכשיר אין חריץ מובנה או כאשר מחבר ה- USB משמש לחיבור ADB פעיל, השתמש ב:

adb shell sm set-virtual-disk true