ضبط ملكية التحديثات للتطبيقات والتعامل معها

عندما يتم تثبيت تطبيق بواسطة متجر أو أداة تثبيت، فإن المتجر أو أداة التثبيت تعتبر "أداة تثبيت السجل" أي آخر مثبّت للتطبيق. قبل الإصدار 14 من نظام Android، كان Android يسمح بأن يصبح متجر آخر أو أداة تثبيت تطبيق أخرى. أداة تثبيت السجلّ وتحديث التطبيق بدون إشعار المستخدم.

في نظام التشغيل Android 14، يمكن لمثبِّت التطبيق أن يعرِّف نفسه بأنّه "مالك التحديث". وتحديثات التطبيق الخاصة بك. إذا حاولَت أداة تثبيت أخرى تحديث التطبيق، يتم منح المستخدم الفرصة للموافقة على التحديث الجديد قبل تنفيذه.

تفعيل الحِزم لتعديل الملكية

للإعلان عن امتلاك متجر أو أداة تثبيت لحزمة تطبيق، يجب اتّباع الخطوات التالية: أدرِج العلامة update-ownership في ملف sysconfig XML الخاص بكل حزمة التالي:

<update-ownership package="com.example.application" installer="com.example.installer" />

في هذا المثال، com.example.application هي حزمة التطبيق التي يجب امتلاكها com.example.installer هو مالك الحزمة. عند تفعيل حزمة لتعديل الملكية، أو غيره من المتاجر أو جهات التثبيت المتميزة التي يجب عليها معالجة تعديل المالك والحصول على موافقة المستخدم لتحديث التطبيق.

إيقاف حِزم تغييرات الملكية

يمكنك أن تطلب من المتجر أو أداة التثبيت إيقاف مجموعة فرعية من الحِزم تعديل تغييرات المالك من خلال تقديم قائمة حظر في حزمة APK من خلال تضمين حزمة في هذه القائمة، لا يمكن لأي متجر أو أداة تثبيت طلب تحديث ملكية الحزمة.

لإيقاف إمكانية تحديث الحِزم في متجر أو أداة تثبيت أخرى:

  1. يجب تضمين السمة التالية في المتجر الأصلي أو صفحة أداة التثبيت ملف AndroidManifest.xml:

    <application …>
      <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST"
                android:resource="@xml/legacyOwnershipDenylist" />
    </application>
    

    يشير هذا المثال إلى قائمة حظر بتنسيق XML تُسمى legacyOwnershipDenylist.

  2. أنشئ قائمة حظر كمورد XML أولي بالتنسيق التالي:

    <deny-ownership>com.example.app1</deny-ownership>
    <deny-ownership>com.example.app2</deny-ownership>
    

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

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

معالجة تعديل المالك والحصول على موافقة المستخدم

في Android 14، حتى إذا كان لدى متجر أو أداة تثبيت تطبيق إذن android.permission.INSTALL_PACKAGES، لا يزال بحاجة إلى معالجة STATUS_PENDING_USER_ACTION إذا كان يريد تحديث تطبيق يملكه متجر أو أداة تثبيت أخرى.

تشير رسالة الأشكال البيانية يعرض نموذج تطبيق InstallAPKSessionApi.java أيضًا كيفية التعامل مع STATUS_PENDING_USER_ACTION.

إثبات ملكية التطبيقات المحمَّلة مُسبَقًا

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