تنفيذ إدارة الجهاز

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

بالإضافة إلى رمز AOSP ، يتطلب الجهاز المكونات التالية لتعمل مع ملفات التعريف المدارة.

المتطلبات العامة

يجب أن تفي الأجهزة التي تهدف إلى دعم إدارة الجهاز بالمتطلبات العامة التالية.

قيم HAL الحرارية

يشتمل Android 7.0 والإصدارات الأحدث على دعم واجهة برمجة تطبيقات HardwarePropertiesManager ، وهي واجهة برمجة تطبيقات لمراقبة الأجهزة وإعداد تقارير صحية تتيح للتطبيقات الاستعلام عن حالة أجهزة الجهاز. يتعرض هذا API عبر android.os.HardwarePropertiesManager ويجعل المكالمات من خلال HardwarePropertiesManagerService إلى HAL الأجهزة الحرارية ( hardware/libhardware/include/hardware/thermal.h ). وهو API محمية، وهذا يعني التطبيقات الوحيد صاحب الجهاز / ملف جهاز تحكم السياسة (DPC) والتيار VrListenerService يمكن أن نسميها.

لدعم واجهة برمجة تطبيقات HardwarePropertiesManager ، يجب أن يكون تنفيذ HAL الحراري للجهاز قادرًا على الإبلاغ عن القيم التالية:

قيمة مقياس التقارير تمكن
درجة حرارة [وحدة المعالجة المركزية | وحدة معالجة الرسومات | البطارية | غلاف الجهاز] درجة حرارة المكون بالدرجات المئوية يمكن للتطبيقات التحقق من درجات حرارة الجهاز ودرجات حرارة اختناق / إيقاف تشغيل المكونات
وحدة المعالجة المركزية النشطة / إجمالي عدد مرات التمكين الوقت بالميلي ثانية يمكن للتطبيقات التحقق من استخدام وحدة المعالجة المركزية لكل مركز
سرعة المروحة دورة في الدقيقة يمكن للتطبيقات التحقق من سرعة المروحة

يجب أن تتعامل التطبيقات بشكل صحيح مع مواقف قيم الإبلاغ عندما ينقطع اتصال النواة (أو وحدة معالجة الرسومات ، والبطارية ، والمروحة) أو يتم توصيله / فصله.

تمكين إدارة الجهاز

لتمكين إدارة الجهاز، وضمان ما يلي uses-features وأعلن:

  • android.software.device_admin
  • android.software.managed_users (يتم تعريف الميزة إذا وفقط إذا كان الجهاز لا يقل عن 2 غيغابايت من الذاكرة).

لتأكيد هذه uses-feature قد أعلنت القيم على جهاز بتشغيل: adb shell pm list features .

التطبيقات الأساسية فقط

بشكل افتراضي ، يتم تمكين التطبيقات الضرورية فقط للتشغيل الصحيح لملف التعريف كجزء من توفير جهاز مُدار. نضع في اعتبارنا، جميع الحالات مثال _managed_profile.xml الملفات أدناه هي ذات الصلة فقط إذا android.software.managed_users يتم الإعلان. يجب أن يضمن المصنّعون الأصليون للجهاز احتواء الملف الشخصي المُدار أو الجهاز على جميع التطبيقات المطلوبة عن طريق تعديل:

vendor_required_apps_managed_profile.xml
vendor_required_apps_managed_device.xml
vendor_disallowed_apps_managed_profile.xml
vendor_disallowed_apps_managed_device.xml
/*
 * The following are for Android 9 and higher only
 */
vendor_required_apps_managed_user.xml
vendor_disallowed_apps_managed_user.xml

وتطبق المطلوبة وغير مسموح التطبيقات للمستخدمين تمكنت من المستخدمين الثانوية التي تم إنشاؤها عن طريق DevicePolicyManager#createAndManageUser .

أمثلة من جهاز Nexus

Android 8.x والإصدارات الأقدم

pacakages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml

Android 9 والإصدارات الأحدث

frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
<resources>
  <!-- A list of apps to be retained on the managed device -->
  <string-array name="vendor_required_apps_managed_device">
    <item>com.android.vending</item> <!--­Google Play -->
    <item>com.google.android.gms</item> <!--­Required by Play -->
    <item>com.google.android.contacts</item> <!--­Google or OEM Contacts­-->
    <item>com.google.android.googlequicksearchbox</item> <!--­Google Launcher -->
    <item>com.google.android.launcher</item> <!--­Google Launcher or OEM Launcher -->
    <item>com.google.android.dialer</item> <!--­Google or OEM dialer to enable making phone calls -->
  </string-array>
</resources>

Android 8.x والإصدارات الأقدم

packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml

Android 9 والإصدارات الأحدث

frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
<resources>
    <!-- A list of apps to be retained in the managed profile. This includes any Google experience apps required. -->
    <string-array name="vendor_required_apps_managed_profile">
        <item>com.android.vending</item> <!-- Google Play -->
        <item>com.google.android.gms</item> <!-- Required by Play -->
        <item>com.google.android.contacts</item> <!-- Google or OEM Contacts -->
    </string-array>
</resources>

متطلبات المشغل

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

متطلبات NFC

يجب أن تقوم الأجهزة المزودة بتقنية NFC بتمكين NFC أثناء التجربة الجاهزة (أي معالج الإعداد) وتهيئتها لقبول أهداف التوفير المُدارة:

packages/apps/Nfc/res/values/provisioning.xml
<bool name="enable_nfc_provisioning">true</bool>
<item>application/com.android.managedprovisioning</item>

متطلبات الإعداد

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

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

@Override
   protected void onStart() {
        super.onStart();

        // When returning to a setup wizard activity, check to see if another setup process
        // has intervened and, if so, complete an orderly exit
        boolean completed = Settings.Secure.getInt(getContentResolver(),
                Settings.Secure.USER_SETUP_COMPLETE, 0) != 0;
        if (completed) {
           startActivity(new Intent(Intent.ACTION_MAIN, null)
                .addCategory(Intent.CATEGORY_HOME)
                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_CLEAR_TASK
                        | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED));
           finish();
       }

       ...
   }