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