ล็อกหน้าจอ

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

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

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

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

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

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

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

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