הצפנה היא תהליך של קידוד כל נתוני המשתמש במכשיר Android באמצעות מפתחות הצפנה סימטריים. אחרי שמצפינים מכשיר, כל הנתונים שנוצרו על ידי המשתמש מוצפנים באופן אוטומטי לפני שהם נשמרים בדיסק, וכל הפעולות לקריאת נתונים מפענחות אותם באופן אוטומטי לפני שהם מוחזרים לתהליך הקורא. ההצפנה מבטיחה שגם אם צד לא מורשה ינסה לגשת לנתונים, הוא לא יוכל לקרוא אותם.
ב-Android יש שתי שיטות להצפנת המכשיר: הצפנה מבוססת-קבצים והצפנה מלאה של הדיסק.
הצפנה מבוססת-קבצים
Android 7.0 ואילך תומך בהצפנה מבוססת-קובץ. הצפנה מבוססת-קובץ מאפשרת להצפין קבצים שונים באמצעות מפתחות שונים שאפשר לבטל את הנעילה שלהם בנפרד. מכשירים שתומכים בהצפנה מבוססת-קובץ יכולים לתמוך גם בהפעלה ישירה, שמאפשרת למכשירים מוצפנים לבצע אתחול ישירות למסך הנעילה, וכך מאפשרת גישה מהירה לתכונות חשובות במכשיר כמו שירותי נגישות והתראות.
הצפנה מבוססת-קבצים וממשקי API שמאפשרים לאפליקציות לדעת על הצפנה, מאפשרים לאפליקציות לפעול בהקשר מוגבל. זה יכול לקרות לפני שהמשתמשים מספקים את פרטי הכניסה שלהם, ועדיין לשמור על המידע הפרטי של המשתמשים.
הצפנת מטא-נתונים
ב-Android 9 נוספה תמיכה בהצפנת מטא-נתונים, אם יש תמיכה בחומרה. בהצפנת מטא-נתונים, מפתח יחיד שקיים בזמן האתחול מצפין את כל התוכן שלא מוצפן על ידי FBE, כמו פריסות של ספריות, גודל קבצים, הרשאות וזמני יצירה או שינוי. המפתח הזה מוגן על ידי KeyMint (לשעבר Keymaster), שמוגן על ידי Verified Boot.
הצפנה מלאה של הדיסק
Android 5.0 עד Android 9 תומכות בהצפנה מלאה של הדיסק. הצפנה מלאה של הדיסק משתמשת במפתח יחיד – שמוגן באמצעות הסיסמה של המשתמש למכשיר – כדי להגן על כל מחיצת נתוני המשתמש של המכשיר. בזמן האתחול, המשתמש צריך לספק את פרטי הכניסה שלו לפני שניתן לגשת לחלק כלשהו בדיסק.
זה מצוין מבחינת אבטחה, אבל המשמעות היא שרוב הפונקציות העיקריות של הטלפון לא זמינות מיד כשהמשתמשים מפעילים מחדש את המכשיר. הגישה לנתונים שלהם מוגנת באמצעות פרטי הכניסה היחידים שלהם, ולכן תכונות כמו שעונים מעוררים לא פעלו, שירותי הנגישות לא היו זמינים והטלפונים לא יכלו לקבל שיחות.