ล็อกหน้าจอ

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

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

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

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

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

การใช้งาน

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

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