מסך נעילה

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

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

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

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

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

יישום

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

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