ميزات Android 9 لتطبيقات المؤسسات

تقدّم هذه الصفحة نظرة عامة على واجهات برمجة التطبيقات في المؤسسة، والميزات وتغييرات السلوك المتوفرة في Android 9.

واجهة مستخدم الملف الشخصي للعمل

يتضمن Android 9 (المستوى 28 من واجهة برمجة التطبيقات) تغييرات على واجهة المستخدم في مشغّل التطبيقات التلقائي لمساعدة المستخدمين في الفصل بين التطبيقات الشخصية وتطبيقات العمل. يمكن للشركات المصنعة للأجهزة التي تتيح ذلك عرض تطبيقات المستخدمين في علامات تبويب منفصلة للعمل وعلامات تبويب شخصية. سهّلنا أيضًا على مستخدمي الأجهزة تشغيل الملف الشخصي للعمل وإيقافه من خلال تضمين مفتاح تبديل في علامة تبويب العمل في مشغّل التطبيقات.

الشكل 1. علامة التبويب الشخصية في مشغّل التطبيقات التلقائي وعلامة تبويب العمل مع مفتاح تبديل الملف الشخصي للعمل

عند توفير الملفات الشخصية للعمل والأجهزة المُدارة، يشتمل Android 9 على رسومات توضيحية متحركة لمساعدة مستخدمي الأجهزة في التعرّف على هذه الميزات.

تبديل التطبيقات بين الملفات الشخصية

يتضمّن Android 9 واجهات برمجة تطبيقات لتشغيل نسخة أخرى من التطبيق في ملف شخصي مختلف لمساعدة المستخدمين في التبديل بين الحسابات. على سبيل المثال، يمكن أن يوفر تطبيق البريد الإلكتروني واجهة مستخدم تسمح للمستخدم بالتبديل بين الملف الشخصي والملف الشخصي للعمل للوصول إلى حسابَي بريد إلكتروني. يمكن لجميع التطبيقات استدعاء واجهات برمجة التطبيقات هذه لتشغيل النشاط الرئيسي للتطبيق نفسه إذا كان مثبتًا بالفعل في الملف الشخصي الآخر. لإضافة التبديل بين الحسابات بين الملفات الشخصية إلى تطبيقك، يُرجى اتّباع الخطوات الواردة أدناه لطرق الاتّصال من فئة CrossProfileApps:

  1. يمكنك الاتصال بـ getTargetUserProfiles() للحصول على قائمة بالملفات الشخصية التي يمكنك تشغيل مثيل آخر من التطبيق فيها. تتحقق هذه الطريقة من أن التطبيق مثبت في الملفات الشخصية.
  2. يمكنك الاتصال بالرقم getProfileSwitchingIconDrawable() للحصول على رمز يمكنك استخدامه لتمثيل ملف شخصي آخر.
  3. يمكنك الاتصال بالرقم getProfileSwitchingLabel() للحصول على نص مترجَم يطلب من المستخدم تبديل الملفات الشخصية.
  4. يمكنك الاتصال بـ startMainActivity() لتشغيل مثيل لتطبيقك في ملف شخصي آخر.

تأكَّد من أنّ النشاط الرئيسي الذي تريد إطلاقه مذكور في ملف البيان في تطبيقك، ويتضمّن إجراء هدف ACTION_MAIN ويتضمّن فئة هدف CATEGORY_LAUNCHER.

تفعيل الملفات الشخصية للعمل أو إيقافها آليًا

يمكن لمشغِّل التطبيقات التلقائي (أو التطبيقات التي لديها الإذن MANAGE_USERS أو MODIFY_QUIET_MODE) تفعيل الملف الشخصي للعمل أو إيقافه من خلال الاتصال بالرقم UserManager.requestQuietModeEnabled(). يمكنك فحص القيمة المعروضة لمعرفة ما إذا كان المستخدم بحاجة إلى تأكيد بيانات اعتماده قبل أن تتغير الحالة. وبما أنّ التغيير قد لا يحدث على الفور، يمكنك الاستماع إلى بث ACTION_MANAGED_PROFILE_AVAILABLE أو ACTION_MANAGED_PROFILE_UNAVAILABLE لمعرفة الوقت المناسب لتعديل واجهة المستخدم.

يمكن لتطبيقك التحقّق من حالة الملف الشخصي للعمل من خلال الاتصال على الرقم UserManager.isQuietModeEnabled().

قفل أي تطبيق على الجهاز

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

  1. يمكنك استدعاء DevicePolicyManager.setLockTaskPackages() لإدراج التطبيقات في القائمة المسموح بها لوضع قفل المهمة.
  2. يمكنك الاتصال بالرقم ActivityOptions.setLockTaskEnabled() لتشغيل أحد التطبيقات المُدرَجة في القائمة المسموح بها في وضع قفل المهمة.

لإيقاف تطبيق في وضع قفل المَهمّة، عليك إزالته من القائمة المسموح بها لوضع قفل المهام باستخدام DevicePolicyManager.setLockTaskPackages().

تفعيل ميزات واجهة مستخدم النظام

عند تفعيل وضع قفل المهمة، يمكن لمالكي الأجهزة ومالكي الملفات الشخصية تفعيل ميزات معيّنة لواجهة مستخدم النظام على الجهاز من خلال طلب DevicePolicyManager.setLockTaskFeatures() وتمرير حقل بت لعلامات الميزات التالية:

يمكنك الاتصال بالرقم DevicePolicyManager.getLockTaskFeatures() للحصول على قائمة بالميزات المتاحة على أحد الأجهزة عند تفعيل وضع قفل المهمة. وعند خروج جهاز من وضع القفل، يعود إلى الحالة التي تفرضها سياسات الجهاز الأخرى.

إيقاف مربّعات حوار الأخطاء

في بعض البيئات، مثل العروض التوضيحية لبائعي التجزئة أو عروض المعلومات العلنية، قد لا تريد إظهار مربّعات حوار الأخطاء للمستخدمين. يمكن لوحدة التحكّم بسياسة الجهاز (DPC) إيقاف مربّعات حوار أخطاء النظام للتطبيقات المعطّلة أو غير المستجيبة عن طريق إضافة التقييد الذي يفرضه المستخدم على DISALLOW_SYSTEM_ERROR_DIALOGS. ويؤثر هذا التقييد في جميع مربعات الحوار عند تطبيقها من قِبل مالك الجهاز، ولكن يتم فقط منع مربعات حوار الأخطاء المعروضة لدى المستخدم الأساسي أو الثانوي عندما يتم تطبيق التقييد من قبل مالكي الملف الشخصي. لا يؤثر هذا التقييد على الملفات الشخصية للعمل.

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

دعم عدة مستخدمين على أجهزة مخصصة

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

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

  1. ضبط العلامة MAKE_USER_EPHEMERAL عند الاتصال على DevicePolicyManager.createAndManageUser().
  2. استدعِ DevicePolicyManager.startUserInBackground() لبدء المستخدم المؤقت في الخلفية.

ملاحظة: إنّ التطبيقات التي تستهدف الإصدار 9 من نظام التشغيل Android من المفترض أن تتعرّف على الرمز UserManager.UserOperationException عند الاتصال بالرقم createAndManageUser(). عليك استدعاء طريقة getUserOperationResult() للاستثناء لمعرفة سبب عدم إنشاء المستخدم.

تلقّي إشعارات الأحداث

يتلقى DeviceAdminReceiver إشعارات بالأحداث التالية:

عرض رسائل الأحداث للمستخدمين

يمكن لمالكي الأجهزة ضبط الرسائل التي يتم عرضها للمستخدمين عند بدء جلساتهم وإنهائها:

تسجيل الخروج وإيقاف المستخدمين

يمكن لمالكي الأجهزة استخدام DevicePolicyManager.setLogoutEnabled() لتحديد ما إذا كان تسجيل الخروج مفعَّلاً للمستخدمين الثانويين أم لا. للتحقّق ممّا إذا تم تفعيل تسجيل الخروج، اتصل بالرقم DevicePolicyManager.isLogoutEnabled().

يمكن لمالكي الملفات الشخصية للمستخدمين الثانويين الاتصال بـ DevicePolicyManager.logoutUser() لإيقاف المستخدم الثانوي والتبديل مرة أخرى إلى المستخدم الأساسي.

يمكن لمالكي الأجهزة استخدام DevicePolicyManager.stopUser() لإيقاف مستخدم ثانوي محدّد.

التخزين المؤقت للحزم

لتبسيط إدارة حسابات المستخدمين على الأجهزة المشتركة مع مجموعة ثابتة من المستخدمين، مثل أجهزة العاملين في نوبات العمل، من الممكن تخزين الحِزم مؤقتًا اللازمة لجلسات متعددة المستخدمين:

  1. يمكنك استدعاء DevicePolicyManager.setKeepUninstalledPackages() لتحديد قائمة الحِزم التي سيتم الاحتفاظ بها كملفات APK. لاسترداد قائمة بهذه الحِزم، يمكنك استدعاء DevicePolicyManager.getKeepUninstalledPackages().

  2. يمكنك الاتصال بـ DevicePolicyManager.installExistingPackage() لتثبيت حزمة تم الاحتفاظ بها بعد الإزالة من خلال setKeepUninstalledPackages().

طُرق وثوابت إضافية

يتضمّن نظام التشغيل Android 9 أيضًا الطرق والثوابت التالية لتوفير مزيد من الدعم لجلسات المستخدم على الأجهزة المشتركة:

محو بيانات الحزمة وإزالة الحسابات

يمكن لمالكي الأجهزة ومالكي الملفات الشخصية الاتصال بالرمز clearApplicationUserData() لمحو بيانات المستخدم لحزمة معيّنة. لإزالة حساب من AccountManager، يمكن لمالكي الأجهزة والملفات الشخصية الاتصال بالرمز removeAccount().

القيود المفروضة على المستخدمين ومزيد من التحكّم في الإعدادات

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

إعداد أسماء نقاط الوصول (APN)

يمكن لمالكي الأجهزة استخدام الطرق التالية في فئة DevicePolicyManager لضبط أسماء نقاط الوصول (APN) على الجهاز:

ضبط الوقت والمنطقة الزمنية

يمكن لمالكي الأجهزة استخدام الطرق التالية في الفئة DevicePolicyManager لضبط الوقت والمنطقة الزمنية على الجهاز:

فرض قيود المستخدم على الإعدادات المهمة

يضيف Android 9 قيودًا على المستخدم لإيقاف ميزات النظام وإعداداته. لإضافة قيد، استدعِ DevicePolicyManager.addUserRestriction() مع أحد ثوابت UserManager التالية:

في حال فرض DISALLOW_CONFIG_BRIGHTNESS وDISALLOW_CONFIG_SCREEN_TIMEOUT على أحد الأجهزة، لا يزال بإمكان مالكي الأجهزة ضبط إعدادات سطوع الشاشة ووضع سطوع الشاشة ومهلة غلق الشاشة على الجهاز باستخدام واجهة برمجة التطبيقات DevicePolicyManager.setSystemSetting().

البيانات الخاضعة للقياس

يمكن لمالكي الأجهزة ومالكي الملفات الشخصية منع التطبيقات من استخدام شبكات البيانات التي تفرض تكلفة استخدام على الجهاز. تُعتبر الشبكة خاضعة للقياس عندما يكون المستخدم حساسًا لاستخدام البيانات بشكل كبير بسبب التكلفة أو الحدود القصوى للبيانات أو مشاكل البطارية والأداء. لمنع التطبيقات من استخدام الشبكات التي تفرض تكلفة استخدام، يُرجى استدعاء DevicePolicyManager.setMeteredDataDisabledPackages() تمرير قائمة بأسماء الحِزم. لاسترداد التطبيقات المحظورة حاليًا، يمكنك الاتصال بالرقم DevicePolicyManager.getMeteredDataDisabledPackages().

لمعرفة المزيد من المعلومات عن البيانات التي تفرض تكلفة استخدام في Android، يمكنك الاطّلاع على تحسين استخدام بيانات الشبكة.

نقل وحدات التحكّم بسياسة الجهاز (DPC)

يمكن لوحدات التحكّم بسياسة الجهاز (DPC) نقل ملكية جهاز أو ملف شخصي للعمل إلى وحدة التحكّم بسياسة الجهاز (DPC) أخرى. يمكنك نقل الملكية لنقل بعض الميزات إلى واجهة برمجة التطبيقات لإدارة Android، أو لنقل الأجهزة من وحدة التحكّم بسياسة الجهاز القديمة، أو مساعدة مشرفي تكنولوجيا المعلومات في الانتقال إلى إدارة الخدمات الجوّالة للمؤسسات (EMM). بما أنّك تغيّر فقط ملكية وحدة التحكّم بسياسة الجهاز (DPC)، لا يمكنك استخدام هذه الميزة لتغيير نوع الإدارة، مثل الانتقال من جهاز مُدار إلى ملف شخصي للعمل أو العكس.

يمكنك استخدام مورد XML سياسات مشرف الجهاز للإشارة إلى أنّ هذا الإصدار من وحدة التحكّم بسياسة الجهاز يتيح نقل البيانات. تشير وحدة التحكّم بسياسة الجهاز المستهدف إلى أنه يمكن الحصول على الملكية عن طريق تضمين عنصر باسم <support-transfer-ownership>. يوضح المثال أدناه كيفية إجراء ذلك في ملف XML لمشرف الجهاز التابع لوحدة التحكّم بسياسة الجهاز:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

يمكن لوحدات التحكّم بسياسة الجهاز التي تريد نقل الملكية إلى تطبيق وحدة التحكّم بسياسة الجهاز الجديد التحقّق مما إذا كان إصدار وحدة التحكّم بسياسة الجهاز المستهدف يتيح إجراء عملية النقل من خلال طلب طريقة DeviceAdminInfosupportsTransferOwnership(). قبل نقل الملكية، تقع على عاتق وحدة التحكّم بسياسة الجهاز المصدر مسؤولية التحقق من وحدة التحكّم بسياسة الجهاز المستهدفة من خلال مقارنة توقيعات التطبيقات. تتضمن الفئة PackageManager طرقًا للتعامل مع توقيعات توقيع التعليمات البرمجية.

يحتفظ Android بنظام وحدة التحكّم بسياسة الجهاز (DPC) وسياسات المستخدم المصدر من خلال عملية نقل الملكية، ولا تحتاج وحدات التحكّم بسياسة الجهاز إلى نقل هذه البيانات. يمكن لوحدة التحكّم بسياسة الجهاز المصدر تمرير بيانات مخصّصة إلى وحدة التحكّم بسياسة الجهاز المستهدفة باستخدام أزواج المفتاح/القيمة في PersistableBundle. بعد نجاح عملية النقل، يمكن لوحدة التحكّم بسياسة الجهاز المستهدف استرداد هذه البيانات من خلال طلب DevicePolicyManager.getTransferOwnershipBundle().

خطوات نقل ملكية جهاز مُدار أو ملف شخصي للعمل هي نفسها:

  1. يتحقّق وحدة التحكّم بسياسة الجهاز (DPC) المصدر من أنّ إصدار وحدة التحكّم بسياسة الجهاز المستهدف يتيح نقل البيانات وتتأكّد من تطابق توقيع تطبيق وحدة التحكّم بسياسة الجهاز المستهدف مع قيمة متوقّعة.
  2. يطلب وحدة التحكّم بسياسة الجهاز المصدر transferOwnership() لبدء عملية النقل.
  3. يجعل النظام وحدة التحكّم بسياسة الجهاز المستهدفة مشرفًا نشطًا ويضبطه كمالك للجهاز المُدار أو الملف الشخصي للعمل.
  4. يتلقى وحدة التحكّم بسياسة الجهاز المستهدف استدعاء onTransferOwnershipComplete() ويمكنه ضبط نفسه باستخدام قيم من الوسيطة bundle.
  5. وفي حال حدوث خطأ في عملية النقل، سيعيد النظام الملكية إلى وحدة التحكّم بسياسة الجهاز (DPC) المصدر. إذا كانت وحدة التحكّم بسياسة الجهاز المصدر بحاجة إلى تأكيد نجاح عملية نقل الملكية، يمكنك الاتصال بـ isAdminActive() للتحقق من أن وحدة التحكّم بسياسة الجهاز المصدر لم تعد هي المشرف النشط.

تتلقى جميع التطبيقات التي يتم تشغيلها في الملف الشخصي للعمل البث ACTION_PROFILE_OWNER_CHANGED عند تغيير مالك الملف الشخصي. تتلقى التطبيقات التي تعمل على جهاز مُدار بث ACTION_DEVICE_OWNER_CHANGED عندما يتغير مالك الجهاز.

الملفات الشخصية للعمل على الأجهزة المُدارة بالكامل

يحدث نقل مثيلين من وحدة التحكّم بسياسة الجهاز (DPC) كمالك للجهاز ومالك ملف شخصي على مرحلتين. عندما يكون الملف الشخصي أو الملف الشخصي للعمل تابعين، يُرجى إكمال عملية النقل بالترتيب التالي:

  1. أولاً، عليك نقل ملكية الملف الشخصي للعمل.
  2. انتظِر ريثما تتم معاودة الاتصال على "DeviceAdminReceiver" onTransferAffiliatedProfileOwnershipComplete() للتأكّد من أنّه تم نقل الملف الشخصي للعمل إلى "وحدة التحكّم بسياسة الجهاز" المستهدَفة.
  3. وأخيرًا، انقل ملكية الجهاز المُدار إلى وحدة التحكّم بسياسة الجهاز المستهدفة.

تأجيل التحديثات عبر شبكة غير سلكيّة (OTA)

يمكن لمالكي الأجهزة تأجيل تحديثات النظام عبر الهواء على الأجهزة لمدة تصل إلى 90 يومًا لتجميد إصدار نظام التشغيل الذي يعمل على هذه الأجهزة خلال فترات حرجة (مثل الأعياد). يفرض النظام موردًا احتياطيًا إلزاميًا لمدة 60 يومًا بعد أي فترة تجميد محددة لمنع تجميد الجهاز إلى أجل غير مسمى.

خلال فترة إيقاف الميزة:

  • لن تتلقّى الأجهزة أي إشعارات بشأن التحديثات المعلّقة عبر الهواء.
  • لا تثبِّت الأجهزة أي تحديثات عبر الهواء على نظام التشغيل.
  • لا يمكن لمستخدمي الأجهزة البحث يدويًا عن تحديثات عبر الهواء في الإعدادات.

لضبط فترة إيقاف التحديثات، يُرجى الاتصال بالرقم SystemUpdatePolicy.setFreezePeriods(). نظرًا لأن فترة التجميد تتكرر سنويًا، يتم تمثيل تاريخيّ البدء والانتهاء للفترة بأعداد صحيحة تحتسب عدد الأيام منذ بداية السنة. يجب أن يبدأ يوم البدء بعد 60 يومًا على الأقل من نهاية أي فترة تجميد سابقة. يمكن لمالكي الأجهزة الاتصال بـ SystemUpdatePolicy.getFreezePeriods() للحصول على قائمة بفترات إيقاف التحديثات التي تم ضبطها سابقًا في كائن سياسة تحديث النظام. تم تحديث DevicePolicyManager.getSystemUpdatePolicy() لإرجاع أي فترات توقف عن العمل حددها مالك الجهاز.

فرض قيود على المشاركة في ملف شخصي للعمل

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

  • تطبيقات الملف الشخصي التي تشارك البيانات والملفات مع تطبيقات الملف الشخصي للعمل.
  • تختار تطبيقات الملف الشخصي للعمل العناصر من الملف الشخصي - على سبيل المثال، الصور أو الملفات.

بعد فرض هذه القيود، سيظل بإمكان وحدة التحكّم بسياسة الجهاز السماح بأهداف النشاط بين الملفات الشخصية من خلال طلب الرقم addCrossProfileIntentFilter().

مفاتيح الأجهزة الآمنة وشهادات الجهاز

يضيف نظام التشغيل Android 9 واجهات برمجة تطبيقات لمساعدتك في العمل باستخدام المفاتيح والشهادات التي يمكنك دمجها لتحديد الأجهزة بأمان. يمكن لوحدة التحكّم بسياسة الجهاز التي تعمل في أوضاع مالك الملف الشخصي أو مالك الجهاز أو أداة تثبيت الشهادات المفوَّضة إكمال المهام التالية:

  • يمكنك إنشاء مفاتيح وشهادات في الأجهزة الآمنة (مثل بيئة تنفيذ موثوقة (TEE) أو العنصر الآمن (SE)) على جهاز Android. ولا تغادر المفاتيح التي تم إنشاؤها الأجهزة الآمنة مطلقًا ويمكن استخدامها من خلال سلسلة مفاتيح Android. اتصل على DevicePolicyManager.generateKeyPair() لتقديم الخوارزمية (راجِع KeyPairGenerator) وأي معرّفات أجهزة تريد التصديق عليها، مثل الرقم التسلسلي أو رمز IMEI. لمزيد من المعلومات حول تغييرات الأجهزة الآمنة، يُرجى الاطّلاع على تحسينات الأمان على Android 9.
  • ربط شهادة بمفتاح حالي أنشأه الجهاز عليك استدعاء DevicePolicyManager.setKeyPairCertificate() لتوفير الاسم المستعار للمفتاح الحالي وسلسلة الشهادات، بدءًا من الشهادة الورقة وحتى سلسلة الثقة بالترتيب.
  • تأكَّد من أنّ الجهاز الآمن يحمي المفتاح قبل استخدامه. للتأكّد من الآليات التي تحمي المفتاح، يُرجى اتّباع الخطوات الواردة في إقرار المفتاح.
  • ويمكن لمالكي الأجهزة وأدوات تثبيت الشهادات المفوَّضة تلقّي بيان موقَّع بمعرِّفات أجهزة الأجهزة التي تعمل بإصدارات نظام التشغيل Android. اطلب DevicePolicyManager.generateKeyPair() تمرير قيمة أو أكثر من ID_TYPE_BASE_INFO أو ID_TYPE_SERIAL ID_TYPE_IMEI أو ID_TYPE_MEID في الوسيطة idAttestationFlags. تتضمن الشهادة المعروضة أرقام تعريف الأجهزة في سجل المصادقة. إذا كنت لا تريد تضمين أرقام تعريف الأجهزة، عليك تمرير 0. يمكن لمالكي الملفات التجارية تلقّي معلومات الشركة المصنّعة فقط (عبر تمرير ID_TYPE_BASE_INFO). للتأكّد من أنّ الجهاز يمكنه مصادقة أرقام التعريف، يُرجى الاتصال على الرقم isDeviceIdAttestationSupported().
  • يمكنك منع مستخدمي الأجهزة من إساءة استخدام مفاتيح المؤسسة (في المهام غير التابعة للمؤسسة) من خلال إلغاء اختيار شهادات المفاتيح. لا يتضمن النظام شهادات غير قابلة للاختيار في لوحة المنتقي. في طريقة معاودة الاتصال في DeviceAdminReceiver.onChoosePrivateKeyAlias()، يمكنك عرض الاسم المستعار على مفتاح مؤسستك حتى يختار النظام الشهادة تلقائيًا نيابةً عن المستخدم. لجعل مفتاح غير قابل للاختيار، عليك استدعاء طرق DevicePolicyManager التالية:

من خلال الجمع بين واجهات برمجة التطبيقات هذه، يمكن للمؤسسات التعرّف على الأجهزة بشكل آمن والتأكّد من سلامتها قبل توفير إمكانية الوصول إليها:

  1. يُنشئ جهاز Android مفتاحًا خاصًا جديدًا في الأجهزة الآمنة. يظل المفتاح الخاص سريًا لأنّ المفتاح الخاص لا ينفصل عن الأجهزة الآمنة مطلقًا.
  2. يستخدم الجهاز المفتاح لإنشاء طلب توقيع شهادة (CSR) وإرساله إلى الخادم. يتضمن CSR سجل المصادقة الذي يحتوي على أرقام تعريف الجهاز.
  3. يتحقّق الخادم من سلسلة الشهادات (الجذور في شهادة Google) ويستخلص البيانات الوصفية للجهاز من سجلّ المصادقة.
  4. يتأكد الخادم من أنّ الأجهزة الآمنة تحمي المفتاح الخاص وأنّ أرقام تعريف الجهاز تتطابق مع سجلّات المؤسسة. كما يمكن للخادم التحقق من استيفاء إصدارات نظام Android وتصحيح الأخطاء لأي متطلبات.
  5. ينشئ الخادم شهادة من CSR ويرسل الشهادة إلى الجهاز.
  6. يعمل الجهاز على إقران الشهادة بالمفتاح الخاص (الذي يظل في الأجهزة الآمنة) للسماح للتطبيقات بالاتصال بخدمات المؤسسة.

المزيد من واجهات برمجة التطبيقات والميزات والتغييرات المتعلقة بالأمان

أرقام تعريف سجلات الأمان وسجلات الشبكة

يتضمّن نظام Android 9 أرقام تعريف في سجلّات أنشطة الشبكة والأمان. يزداد المعرّف الرقمي بشكل رتيب لكل حدث، ما يسهّل على مشرفي تكنولوجيا المعلومات اكتشاف الفجوات في سجلّاتهم. نظرًا لأن سجلات الأمان وسجلات الشبكة هي مجموعات منفصلة، يحتفظ النظام بقيم معرفات منفصلة.

يمكنك الاتصال بالرقم SecurityEvent.getId() أو DnsEvent.getId() أو ConnectEvent.getId() للحصول على قيمة المعرّف. ويعيد النظام ضبط المعرّف عند تفعيل وحدة التحكّم بسياسة الجهاز لتسجيل الدخول أو عند إعادة تشغيل الجهاز. إنّ سجلات الأمان التي يتم جلبها عن طريق طلب البيانات DevicePolicyManager.retrievePreRebootSecurityLogs() لا تتضمّن أرقام التعريف هذه.

تسجيل الدخول للأمان

يخصّص تسجيل الأمان لكل SecurityEvent مستوى سجلّ. للحصول على مستوى السجل، اتصل بـ getLogLevel(). تعرِض هذه الطريقة قيمة على مستوى السجلّ يمكن أن تكون واحدة مما يلي: LEVEL_INFO أو LEVEL_WARNING أو LEVEL_ERROR.

ويسجّل Android 9 الأحداث المُدرجة في الجدول أدناه في سجلات الأمان. للتحقّق من علامة حدث، يمكنك الاتصال بالرقم getTag(). لاسترداد بيانات الحدث، يمكنك الاتصال بالرقم getData().

علامة وصف الحدث
TAG_CERT_AUTHORITY_INSTALLED يشير ذلك المصطلح إلى محاولة لتثبيت شهادة جذر جديدة في وحدة تخزين بيانات اعتماد النظام.
TAG_CERT_AUTHORITY_REMOVED يشير ذلك المصطلح إلى محاولة لإزالة شهادة جذر من وحدة تخزين بيانات اعتماد النظام.
TAG_CERT_VALIDATION_FAILURE تعذّر على شهادة Wi-Fi إجراء عملية تحقق أثناء الاتصال.
TAG_CRYPTO_SELF_TEST_COMPLETED أكمل النظام الاختبار الذاتي للتشفير.
TAG_KEYGUARD_DISABLED_FEATURES_SET أوقف تطبيق مشرف ميزات جهاز أو شاشة قفل الملف الشخصي للعمل.
TAG_KEY_DESTRUCTION يشير هذا المصطلح إلى محاولة لحذف مفتاح تشفير.
TAG_KEY_GENERATED يشير هذا المصطلح إلى محاولة لإنشاء مفتاح تشفير جديد.
TAG_KEY_IMPORT يشير هذا المصطلح إلى محاولة لاستيراد مفتاح تشفير جديد.
TAG_KEY_INTEGRITY_VIOLATION رصَد نظام Android تلفًا لمفتاح مصادقة أو تشفير.
TAG_LOGGING_STARTED بدأ تسجيل تسجيل الدخول الأمني.
TAG_LOGGING_STOPPED توقف التسجيل عن طريق تسجيل الدخول للأمان.
TAG_LOG_BUFFER_SIZE_CRITICAL وصل المخزن المؤقت لسجل الأمان إلى% 90 من سعته.
TAG_MAX_PASSWORD_ATTEMPTS_SET حدَّد تطبيق المشرف عدد المحاولات المسموح بها لإدخال كلمة المرور غير الصحيحة.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET أحد التطبيقات الإدارية ضبط الحد الأقصى لمهلة قفل الشاشة
TAG_MEDIA_MOUNT تم تثبيت وسائط مساحة تخزين قابلة للإزالة على الجهاز.
TAG_MEDIA_UNMOUNT تم إلغاء تثبيت وسائط التخزين القابلة للإزالة من الجهاز.
TAG_OS_SHUTDOWN تم إيقاف تشغيل نظام Android.
TAG_OS_STARTUP بدأ تشغيل نظام Android.
TAG_PASSWORD_COMPLEXITY_SET أحد تطبيقات المشرف يحدّد متطلبات تعقيد كلمة المرور.
TAG_PASSWORD_EXPIRATION_SET ضبط تطبيق مشرف مدة انتهاء صلاحية كلمة المرور
TAG_PASSWORD_HISTORY_LENGTH_SET ضبط أحد تطبيقات المشرف مدة سجلّ كلمات المرور، مما يمنع المستخدمين من إعادة استخدام كلمات المرور القديمة.
TAG_REMOTE_LOCK أقفل تطبيق مشرف الجهاز أو الملف الشخصي للعمل.
TAG_USER_RESTRICTION_ADDED وضَع تطبيق مشرف قيودًا على المستخدم.
TAG_USER_RESTRICTION_REMOVED أزال أحد تطبيقات المشرف القيود المفروضة على المستخدم.
TAG_WIPE_FAILURE تعذّرت محاولة حجب بيانات جهاز أو ملف شخصي للعمل.

تحدي شاشة قفل الملف الشخصي للعمل

اعتبارًا من الإصدار Android 9، يمكن لمالكي الملفات الشخصية أن يطلبوا من المستخدمين ضبط اختبار قفل شاشة منفصل لملفهم الشخصي للعمل باستخدام القيد المفروض على المستخدم DISALLOW_UNIFIED_PASSWORD. للتحقق مما إذا كان المستخدم لديه نفس اختبار قفل الشاشة الذي تم ضبطه على الجهاز والملف الشخصي للعمل، اتصل بالرقم DevicePolicyManager.isUsingUnifiedPassword().

إذا كان الجهاز يحتوي على شاشة قفل منفصلة للملف الشخصي للعمل، لا تضبط أداة DevicePolicyManager.setMaximumTimeToLock() إلا مهلة شاشة القفل للملف الشخصي للعمل بدلاً من الجهاز بأكمله.

الوصول إلى أدوات المطوّرين

للمساعدة في الاحتفاظ ببيانات العمل في الملف الشخصي للعمل، لا يمكن لأداة Android Debug Bridge (adb) الوصول إلى الأدلة والملفات في الملف الشخصي للعمل.

إتاحة المزيد من خيارات المقاييس الحيوية

يضيف نظام التشغيل Android 9 تحكّمًا أكثر دقة في المصادقة على الأجهزة بالمقاييس الحيوية في شاشة قفل الملف الشخصي للعمل. استدعِ طريقة DevicePolicyManager.setKeyguardDisabledFeatures() الحالية مع KEYGUARD_DISABLE_FACE وKEYGUARD_DISABLE_IRIS. لإيقاف جميع طُرق المصادقة بالمقاييس الحيوية التي يوفّرها الجهاز، أضِف KEYGUARD_DISABLE_BIOMETRICS.

إيقاف سياسات مشرف الجهاز

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

تستخدم بعض التطبيقات مشرف الجهاز لإدارة أجهزة المستهلك. على سبيل المثال، قفل جهاز مفقود وحجب بياناته. ستظلّ السياسات التالية متاحة لتفعيل هذه الميزة:

لمزيد من المعلومات عن هذه التغييرات، يُرجى الاطّلاع على الإيقاف النهائي لمشرف الجهاز.

التسجيل بسهولة باستخدام رمز الاستجابة السريعة

مكتبة رموز الاستجابة السريعة المضمّنة

يأتي Android 9 مزوّدًا بمكتبة رموز الاستجابة السريعة لتسهيل إدارة حسابات الأجهزة التي تستخدم رمز الاستجابة السريعة. لم يعد على مشرفي تكنولوجيا المعلومات إدخال تفاصيل شبكة Wi-Fi يدويًا لإعداد الجهاز. بدلاً من ذلك، في Android 9، يمكن تضمين تفاصيل شبكة Wi-Fi هذه في رمز الاستجابة السريعة. عندما يمسح مشرف تكنولوجيا المعلومات رمز الاستجابة السريعة ضوئيًا باستخدام جهاز مملوك للشركة، يتصل الجهاز تلقائيًا بشبكة Wi-Fi ويدخل في عملية توفير المتطلبات اللازمة بدون أي إدخال يدوي إضافي.

تتيح طريقة توفير رمز الاستجابة السريعة توفير المتطلبات الإضافية التالية لتحديد تفاصيل شبكة Wi-Fi:

تعيين التاريخ والمنطقة الزمنية باستخدام الميزات الإضافية لإدارة الحسابات

تتيح طريقة توفير رمز الاستجابة السريعة توفير المتطلبات الإضافية لضبط الوقت والمنطقة الزمنية على الجهاز:

خيارات مسح البيانات

يمكن لمشرفي الأجهزة عرض رسالة مخصصة للمستخدمين عند إزالة ملف شخصي للعمل أو مستخدم ثانوي. تساعد هذه الرسالة مستخدمي الأجهزة في معرفة أن مشرف تكنولوجيا المعلومات أزال الملف الشخصي للعمل أو المستخدم الثانوي. يمكنك الاتصال بالرقم wipeData(int, CharSequence) وتقديم رسالة توضيحية قصيرة. عندما يتصل المستخدم الأساسي أو مالك الجهاز، لا يعرض النظام رسالة ويبدأ في إعادة ضبط الجهاز على الإعدادات الأصلية.

لإزالة بيانات الاشتراك من شريحة SIM المضمّنة في eUICC، يمكنك طلب الرمز wipeData() وتضمين WIPE_EUICC في الوسيطة flags.

الطُرق المتاحة لمالكي الملفات التجارية التابعين

تتوفّر الطرق التالية لمالكي الملفات التجارية التابعة: