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

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

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

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

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

<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.

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

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