מסך הנעילה

הטמעת ברירת המחדל של AOSP של 'מסך הנעילה עם אפשרויות לביטול נעילה (keyGuard)' מופיעה רק במסך הראשי. ב-Android 9 (וגם בגרסאות ישנות יותר), במסכים משניים הייתה תמיכה בחלון נעילה אחד במסך חיצוני אחד. ב-Android 10, מסך הנעילה מורחב לכל המסכים המשניים הציבוריים. מסך הנעילה נשאר פשוט ולא תומך בביטול הנעילה במסכים משניים.

איור 1. מסך נעילה במסך המשני

יצרני המכשירים יכולים להטמיע את נעילת המסך שלהם במסכים משניים, בתנאי שהם עומדים בדרישות האבטחה הבסיסיות. כשהמכשיר נעול, המידע צריך להיות מוסתר בצורה מאובטחת בכל המסכים. אין מדיניות מובנית או שליטה על התוכן שמוצג או מוסתר כשהמכשיר נעול. לכן, הדרך הבטוחה היחידה להטמיע גישה מוגבלת היא להסתיר את כל התוכן מאחורי מסך הנעילה וחלונות נעילה. החריגים היחידים הם אפליקציות שהביעו הסכמה מפורשת להצגה מעל מסך הנעילה באמצעות השיטות R.attr.showWhenLocked או Activity.setShowWhenLocked(). אחרת, יש סיכוי גבוה לדליפה של מידע מהצגות ציבוריות ופרטיות.

אפשר להעביר את המסכים למצבים שונים (ON/OFF), אבל המצב הנעול הוא גלובלי לכל המסכים. כמו בכל הטמעה של מכשיר, למשתמש צריך להיות ברור מתי המכשיר נעול (או פתוח). לדוגמה, לחיצה על לחצן ההפעלה בדרך כלל נועדה לנעול מכשיר נייד. לחצן ההפעלה צריך לנעול גם את כל המסכים הפנימיים והחיצוניים.

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

הטמעה

חלון הנעילה במסכים משניים מוטמע כחלון Presentation ב-KeyguardDisplayManager. ב-Android 10, השדה KeyguardDisplayManager#mPresentations השתנה למערך שמכיל את כל חלונות הנעילה של כל המסכים המשניים. ב-KeyguardDisplayManager יש גם מאזין לשינויים במסכים כדי להגיב לשינויים במסכים הזמינים ולאבטח את כל המסכים. חשוב לנעול באופן מיידי את כל המסכים המחוברים בכל רגע נתון, כדי שתוקפים לא יוכלו לחלץ נתוני משתמשים גם כשיש גישה פיזית למכשיר.

חלון הנעילה מוצג בכל המסכים המשניים הציבוריים (ראו KeyguardDisplayManager#isKeyguardShowable()). בעלי המסכים הפרטיים אחראים לאבטחת התוכן כשהמכשיר נעול.