ล็อกหน้าจอ

การใช้งานเริ่มต้นของ AOSP ของหน้าจอล็อกที่มีค่าใช้จ่ายในการปลดล็อก (คีย์การ์ด) จะปรากฏบนจอแสดงผลหลักเท่านั้น ใน Android 9 (และต่ำกว่า) หน้าจอรองรองรับ หน้าต่างล็อค เดียวบนจอแสดงผลภายนอกเครื่องเดียว ใน Android 10 หน้าจอล็อกจะขยายไปยังจอแสดงผลรองสาธารณะทั้งหมด หน้าจอล็อกยังคงเรียบง่ายและไม่รองรับการปลดล็อกจากหน้าจอรอง

รูปที่ 1. ล็อกหน้าจอบนจอแสดงผลรอง

ผู้ผลิตอุปกรณ์สามารถใช้หน้าจอล็อกสำหรับจอแสดงผลรองได้ โดยต้องปฏิบัติตามข้อกำหนดด้านความปลอดภัยขั้นพื้นฐาน เมื่ออุปกรณ์ถูกล็อค ข้อมูลควรถูกซ่อนไว้อย่างปลอดภัยบนจอแสดงผลทั้งหมด ไม่มีนโยบายในตัวหรือการควบคุมว่าเนื้อหาใดควรแสดงหรือซ่อนเมื่ออุปกรณ์ถูกล็อค ดังนั้น วิธีเดียวที่ปลอดภัยในการใช้การเข้าถึงแบบจำกัดคือการซ่อนเนื้อหาทั้งหมดหลังหน้าจอล็อกและหน้าต่างการล็อก ข้อยกเว้นเพียงอย่างเดียวคือแอปที่เลือกแสดงอย่างชัดเจนที่ด้านบนของหน้าจอล็อกโดยใช้ R.attr.showWhenLocked หรือ Activity.setShowWhenLocked() มิฉะนั้น อาจมีโอกาสรั่วไหลข้อมูลจากจอแสดงผลสาธารณะและส่วนตัว

ในขณะที่สามารถวางจอแสดงผลในสถานะต่างๆ ( ON / OFF ) สถานะล็อคจะเป็นสากลสำหรับจอแสดงผลทั้งหมด เช่นเดียวกับการใช้งานอุปกรณ์ใดๆ ผู้ใช้ควรมองเห็นได้ชัดเจนเมื่ออุปกรณ์ถูกล็อก (หรือปลดล็อก) ตัวอย่างเช่น การกดปุ่มเปิด/ปิดมักจะล็อกอุปกรณ์เคลื่อนที่ ปุ่มเปิดปิดควรล็อคหน้าจอภายในและภายนอกทั้งหมดด้วย

เนื่องจากหน้าต่างล็อคเป็นของ SystemUI ระบบจะไม่วางหน้าต่างนี้ไว้บนจอแสดงผลส่วนตัว เจ้าของจอแสดงผลส่วนตัวมีหน้าที่ในการซ่อนหน้าต่างและปกป้องเนื้อหาเมื่ออุปกรณ์ถูกล็อค การใช้งานระบบเริ่มต้น จะ ซ่อนกิจกรรมบนจอแสดงผลส่วนตัวโดยเปลี่ยนการมองเห็นเท่านั้น

การดำเนินการ

หน้าต่างล็อคบนจอแสดงผลรองถูกนำมาใช้เป็นหน้าต่าง การนำเสนอ ใน KeyguardDisplayManager Android 10 เปลี่ยน KeyguardDisplayManager#mPresentations เป็นอาร์เรย์ที่มีหน้าต่างล็อกทั้งหมดสำหรับหน้าจอรองทั้งหมด KeyguardDisplayManager ยังมีตัวฟังสำหรับเปลี่ยนการแสดงผลเพื่อตอบสนองต่อการเปลี่ยนแปลงของจอแสดงผลที่มีอยู่และปกป้องหน้าจอทั้งหมดให้ปลอดภัย สิ่งสำคัญคือต้องล็อกจอแสดงผลที่เชื่อมต่อทั้งหมดทันทีเมื่อใดก็ได้ เพื่อที่ผู้โจมตีจะดึงข้อมูลผู้ใช้ไม่ได้แม้ว่าจะเข้าถึงอุปกรณ์ได้จริงก็ตาม

หน้าต่างการล็อคจะแสดงบนจอแสดงผลรองสาธารณะทั้งหมด (ดู KeyguardDisplayManager#isKeyguardShowable() ) เจ้าของจอแสดงผลส่วนตัวมีหน้าที่รับผิดชอบในการรักษาความปลอดภัยเนื้อหาเมื่ออุปกรณ์ถูกล็อค