شاشة القفل

يظهر تطبيق AOSP الافتراضي لشاشة القفل مع إمكانيات إلغاء قفلها (حارس المفاتيح) على الشاشة الأساسية فقط. في نظام التشغيل Android 9 (والإصدارات الأقدم)، تدعم الشاشات الثانوية نافذة قفل واحدة على شاشة خارجية واحدة. في Android 10، يتم توسيع شاشة القفل لتشمل جميع شاشات العرض الثانوية العامة. تظل شاشة القفل بسيطة ولا تدعم إلغاء القفل من الشاشات الثانوية.

الشكل 1. قفل الشاشة على الشاشة الثانوية

يمكن لمصنعي الأجهزة تنفيذ شاشة القفل الخاصة بهم للشاشات الثانوية، بشرط استيفاء متطلبات الأمان الأساسية. عندما يكون الجهاز مقفلاً، يجب إخفاء المعلومات بشكل آمن على جميع شاشات العرض. لا توجد سياسة أو تحكم مضمن في المحتوى الذي يجب إظهاره أو إخفاؤه عند قفل الجهاز. ولذلك، فإن الطريقة الآمنة الوحيدة لتنفيذ الوصول المقيد هي إخفاء كل المحتوى خلف شاشة القفل وقفل النوافذ. الاستثناءات الوحيدة هي التطبيقات التي تم تمكين عرضها أعلى شاشة القفل بشكل صريح باستخدام أساليب R.attr.showWhenLocked أو Activity.setShowWhenLocked() . وبخلاف ذلك، هناك احتمال قوي لتسرب المعلومات من شاشات العرض العامة والخاصة.

بينما يمكن وضع شاشات العرض في حالات مختلفة ( ON / OFF )، فإن حالة القفل تكون عامة لجميع شاشات العرض. كما هو الحال مع أي تطبيق على الجهاز، يجب أن يكون واضحًا للمستخدم عندما يكون الجهاز مقفلاً (أو غير مقفل). على سبيل المثال، عادةً ما يؤدي الضغط على زر الطاقة إلى قفل الجهاز المحمول. يجب أيضًا أن يقوم زر الطاقة بقفل جميع الشاشات الداخلية والخارجية.

نظرًا لأن نافذة القفل مملوكة لـ SystemUI، فلن يتم وضعها على شاشات العرض الخاصة. يتحمل مالكو شاشات العرض الخاصة مسؤولية إخفاء النوافذ وحماية المحتوى عند قفل الجهاز. يقوم تطبيق النظام الافتراضي بإخفاء الأنشطة على شاشات العرض الخاصة فقط عن طريق تغيير مستوى الرؤية.

تطبيق

يتم تنفيذ نافذة القفل على شاشات العرض الثانوية كنافذة عرض تقديمي في KeyguardDisplayManager . قام Android 10 بتغيير KeyguardDisplayManager#mPresentations إلى مصفوفة تحتوي على جميع نوافذ القفل لجميع الشاشات الثانوية. يحتوي KeyguardDisplayManager أيضًا على مستمع لتغيير العرض للاستجابة للتغييرات التي تطرأ على شاشات العرض المتاحة وتأمين جميع الشاشات. من المهم قفل جميع شاشات العرض المتصلة على الفور في أي وقت حتى لا يتمكن المهاجمون من استخراج بيانات المستخدم حتى مع الوصول الفعلي إلى الجهاز.

يتم عرض نافذة القفل على جميع شاشات العرض الثانوية العامة (انظر KeyguardDisplayManager#isKeyguardShowable() ). يتحمل مالكو شاشات العرض الخاصة مسؤولية تأمين المحتوى عند قفل الجهاز.