تغييرات إطار عمل التوافق (Android 12)

الشكل 1. تعرض شاشة "تغييرات توافق التطبيقات" في خيارات المطوّر التعديلات التي يمكنك تفعيلها أو إيقافها.

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

في ما يلي بعض الإجراءات التي يمكنك اتّخاذها باستخدام أدوات إطار عمل التوافق:

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

للاطّلاع على التفاصيل الكاملة حول استخدام الأدوات لكل حالة من حالات الاستخدام هذه، يُرجى الاطّلاع على أدوات إطار عمل التوافق.

تغييرات السلوك المضمّنة في إطار التوافق

توضّح القائمة الواردة في هذا القسم كل تغيير في السلوك مضمّن في إطار المتوافق مع Android 12.

يمكنك فلترة قائمة التغييرات حسب الحالة التلقائية.

تغييرات السلوك التي تمت إضافتها إلى إطار عمل التوافق في Android 12

ALWAYS_SANDBOX_DISPLAY_APIS

معرّف التغيير: 185004937
الحالة التلقائية: غير مفعّل لجميع التطبيقات.

عند تفعيل هذه الميزة، يتم تطبيق وضع الحماية في مساحة معيّنة على Display API في حزمة معيّنة بغض النظر عن وضع عرض النوافذ. ستقدّم واجهات برمجة التطبيقات Display APIs دائمًا حدود التطبيق.

للاطّلاع على مزيد من المعلومات عن هذا التغيير، اطّلِع على القسم في صفحة تغييرات السلوك في Android 12 المتعلّق بأساليب العرض التي تم إيقافها نهائيًا.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

رقم تعريف التغيير: 163400105
الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

اعتبارًا من Android 12، يمكن للمنصة تقديم اقتراحات غير نصية (مثل الصور) باستخدام إطار عمل الملء التلقائي المعزّز (راجِع خدمات الملء التلقائي). لكي يتمكّن التطبيق من معالجة هذه الاقتراحات، يجب أن ينفذ عادةً واجهة برمجة التطبيقات OnReceiveContentListener.

لتسهيل استخدام واجهة برمجة التطبيقات هذه في التطبيقات التي سبق أن نفّذت واجهة برمجة التطبيقات InputConnection.commitContent(InputContentInfo, int, Bundle) ، تتم إعادة استخدام واجهة برمجة التطبيقات هذه كخيار احتياطي إذا لم ينفّذ التطبيق واجهة برمجة التطبيقات OnReceiveContentListener بعد. ولا يتم تفعيل هذا الخيار الاحتياطي إلا على الإصدار Android 12 (المستوى 31 لواجهة برمجة التطبيقات). يؤدي هذا التغيير إلى إيقاف الإجراء الاحتياطي، بحيث يجب أن توفّر التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 لواجهة برمجة التطبيقات) والإصدارات الأحدث واجهة برمجة التطبيقات OnReceiveContentListener لقبول الاقتراحات غير النصية.

BLOCK_FLAG_SLIPPERY

رقم تعريف التغيير: 157929241
الحالة التلقائية: مفعَّل لجميع التطبيقات.

بالنسبة إلى التطبيقات التي تعمل بنظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات)، يتم التحقّق مما إذا كان يتم استخدام FLAG_SLIPPERY مع أيّ نوافذ في التطبيق. نتوقع أنّه من المحتمل أن يتم استخدام هذا العلامة فقط من خلال مكوّنات النظام لأنّه حقل غير متوافق. وفي هذه الحالة، سيتم حظره.

BLOCK_GPS_STATUS_USAGE

رقم تعريف التغيير: 144027538
الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب استبدال جميع استخدامات واجهة برمجة التطبيقات GpsStatus واجهات برمجة التطبيقات GnssStatus.

BLOCK_IMMUTABLE_PENDING_INTENTS

رقم تعريف التغيير: 171317480
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، ستؤدي عناصر PendingIntent غير القابلة للتغيير التي يتم تمريرها إلى واجهات برمجة التطبيقات لتحديد الموقع الجغرافي إلى إنشاء IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

معرّف التغيير: 169887240
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، لا يمكن استخدام واجهات برمجة تطبيقات النظام LocationRequest مع PendingIntent طلبات الحصول على الموقع الجغرافي.

BLOCK_UNTRUSTED_TOUCHES

رقم تعريف التغيير: 158002302
الحالة التلقائية: مفعَّلة لجميع التطبيقات.

للحفاظ على أمان النظام وتقديم تجربة مستخدم جيدة، يمنع نظام التشغيل Android 12 التطبيقات من استخدام أحداث اللمس عندما يحظر أحد التطبيقات بطريقة غير آمنة.

لمزيد من المعلومات عن هذا التغيير، اطّلِع على مقالة حظر أحداث اللمس غير الموثوق بها.

CALL_ACTIVITY_RESULT_BEFORE_RESUME

رقم تعريف التغيير: 78294732
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تصحيح دورة حياة نتيجة النشاط لضمان حصول النشاط على نتيجة النشاط قبل استئنافه مباشرةً.

CAMERA_MIC_INDICATORS_NOT_PRESENT

رقم تعريف التغيير: 162547999
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

يشير إلى أنّ هذا الجهاز متوافق مع مؤشرات الكاميرا والميكروفون. ستكون false إذا كانت متوفّرة، لأنّ الطريقة CompatChanges#isChangeEnabled تعرض true إذا لم يكن رقم تعريف التغيير متوفّرًا.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

معرّف التغيير: 146211400
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

CHANGE_ID_AUTH_STATE_DENIED

معرّف التغيير: 181350407
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى تطبيقات العميل التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم طرح SecurityException عندما تكون في حالة التفويض المرفوض وتحاول إرسال رسالة إلى تطبيق صغير.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

معرّف التغيير: 136069189
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

DELIVER_HISTORICAL_LOCATIONS

معرّف التغيير: ‎73144566
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

رقم تعريف التغيير: 181658987
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن تكون متوافقة مع الإصدارات القديمة للتغييرات في TelephonyDisplayInfo.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

رقم تعريف التغيير: 170503758
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، قد يبطئ النظام الأساسي معدّل عرض اللقطات في التطبيق إلى مقسوم معدل التحديث إذا كان ذلك أكثر تفضيلًا (على سبيل المثال، إذا استدعى التطبيق Surface.setFrameRate(float, int)). ستواجه التطبيقات Choreographer.postFrameCallback(Choreographer.FrameCallback) عمليات استدعاء للوظائف الخلفية وضغطًا خلفيًا بمعدّل عرض اللقطات المنخفض. تستخدم التطبيقات Display.getRefreshRate() و Display.Mode.getRefreshRate() لمعرفة معدّل تحديث الشاشة. سيعرض Display.getRefreshRate() دائمًا عدد اللقطات في الثانية للتطبيق وليس معدّل تحديث الشاشة الفعلي للسماح للتطبيقات بضبط معدل عرض اللقطات بشكل صحيح. سيعرض Display.Mode.getRefreshRate() معدّل عرض اللقطات للتطبيق في حال تم تجميعه لإصدار سابق، واعتبارًا من Android 12 (المستوى 31 لواجهة برمجة التطبيقات)، سيعرض معدّل تحديث الشاشة.

DOWNSCALED

رقم تعريف التغيير: 168419799
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

يحدّد هذا التغيير جميع التغييرات المتعلّقة بتصغير حجم المخزن المؤقت لكل تطبيق. يتيح تفعيل هذا التغيير تطبيق عوامل التكبير/التصغير التالية:

عند تفعيل هذا التغيير لحزمة تطبيق، يتم تغيير حجم التطبيق قسرًا إلى أعلى عامل مقياس مفعَّل. على سبيل المثال، يتم استخدام ‎80% إذا تم تفعيل كل من ‎80% و‎70% (DOWNSCALE_80 DOWNSCALE_70).

DOWNSCALE_30

رقم تعريف التغيير: 189970040
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يتم تشغيله على شاشة بدرجة دقة عمودية وأفقية تبلغ ‎30% من دقة الشاشة الحقيقية.

DOWNSCALE_35

رقم تعريف التغيير: 189969749
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة معيّنة إلى افتراض التطبيق أنّه يتم تشغيله على شاشة بدرجة دقة عمودية وأفقية تبلغ ‎35% من دقة الشاشة الحقيقية.

DOWNSCALE_40

رقم تعريف التغيير: 189970038
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة معيّنة إلى افتراض التطبيق أنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎40% من دقة الشاشة الحقيقية.

DOWNSCALE_45

رقم تعريف التغيير: ‎189969782
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎45% من دقة الشاشة الحقيقية.

DOWNSCALE_50

رقم تعريف التغيير: 176926741
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يتم تشغيله على شاشة بدرجة دقة عمودية وأفقية تبلغ ‎50% من دقة الشاشة الحقيقية.

DOWNSCALE_55

رقم تعريف التغيير: 189970036
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يعمل على شاشة ذات دقة عمودية وأفقية تبلغ ‎55% من دقة الشاشة الحقيقية.

DOWNSCALE_60

رقم تعريف التغيير: 176926771
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض افتراض التطبيق أنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎60% من دقة الشاشة الحقيقية.

DOWNSCALE_65

رقم تعريف التغيير: 189969744
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة معيّنة إلى فرض افتراض التطبيق بأنّه يتم تشغيله على شاشة بدرجة دقة عمودية وأفقية تبلغ ‎65% من درجة دقة الشاشة الحقيقية.

DOWNSCALE_70

رقم تعريف التغيير: 176926829
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎70% من دقة الشاشة الحقيقية.

DOWNSCALE_75

رقم تعريف التغيير: 189969779
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة معيّنة إلى فرض افتراض التطبيق بأنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎75% من دقة الشاشة الفعلية.

DOWNSCALE_80

رقم تعريف التغيير: 176926753
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة معيّنة إلى فرض افتراض التطبيق بأنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎80% من دقة الشاشة الحقيقية.

DOWNSCALE_85

رقم تعريف التغيير: 189969734
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى فرض التطبيق على افتراض أنّه يتم تشغيله على شاشة بدقة عمودية وأفقية تبلغ ‎85% من دقة الشاشة الفعلية.

DOWNSCALE_90

رقم تعريف التغيير: 182811243
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل DOWNSCALED أيضًا، يؤدي تفعيل هذا التغيير لحزمة ما إلى فرض افتراض التطبيق بأنّه يعمل على شاشة تبلغ دقتها ‎90% من دقة الشاشة الحقيقية في الاتجاهين العمودي والأفقي.

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

رقم تعريف التغيير: 157629738
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

من المتوقّع أن تتوافق تطبيقات Android TV التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث مع أي حجم نافذة، بما في ذلك أحجام النوافذ التي تزيد عن 1080p. لا تتوقع التطبيقات التي تستهدف إصدارات Android الأقدم تلقّي إطارات أكبر من 1080p، لذا يتم تصغير إطاراتها إلى 1080p عند الضرورة.

DROP_CLOSE_SYSTEM_DIALOGS

رقم تعريف التغيير: 174664120
الحالة التلقائية: مفعَّل لجميع التطبيقات.

لتحسين قدرة المستخدم على التحكّم عند التفاعل مع التطبيقات والنظام، تم إيقاف إجراء النية ACTION_CLOSE_SYSTEM_DIALOGS نهائيًا اعتبارًا من Android 12.

لمزيد من المعلومات عن هذا التغيير، اطّلِع على مقالة لا يمكن للتطبيقات إغلاق مربّعات حوار النظام.

ENABLE_CHECKS_FOR_PRIVATE_FILES

رقم تعريف التغيير: 172100307
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لا يمكن للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث إدراج الملفات الخاصة أو تعديلها باستخدام موفِّر الوسائط.

ENABLE_DEFERRED_SCAN

رقم تعريف التغيير: 180326732
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

فعِّل هذا الخيار لتأجيل عملية المسح التي يتم تشغيلها كجزء من MediaProvider#update().

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

رقم تعريف التغيير: 157233955
الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب تفعيل ميزة READ_PHONE_STATE في واجهات برمجة التطبيقات التي تطلب معلومات عن حالة المكالمات وتُرسِل إشعارات بها، مثل TelecomManager#getCallState TelephonyManager.getCallStateForSubscription() TelephonyCallback.CallStateListener.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

معرّف التغيير: 183407956
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، فعِّل READ_PHONE_NUMBERS أو READ_PRIVILEGED_PHONE_STATE وسائل الحماية في getPhoneAccount(PhoneAccountHandle).

ENABLE_INCLUDE_ALL_VOLUMES

رقم تعريف التغيير: 182734110
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

فعِّل هذا الخيار لتضمين صفوف قاعدة بيانات الملفات من وحدة تخزين تم إلغاء تركيبها مؤخرًا في MediaProvider#query.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

معرّف التغيير: 178209446
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

فعِّل هذا الخيار للسماح للتطبيقات التي تمتلك إذن Manifest.permission.MANAGE_EXTERNAL_STORAGE بطلب الوصول إلى مساحة التخزين الخارجية غير المعالجة.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

رقم تعريف التغيير: 185199076
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يكون لجميع المنبّهات غير الدقيقة حد أدنى لحجم النافذة، ومن المتوقّع أن يكون بضع دقائق. من الناحية العملية، أي تنبيهات تتطلّب استخدام فترات زمنية أقصر هي نفسها التنبيهات المحدَّدة الوقت ويجب استخدام واجهات برمجة التطبيقات المقابلة المقدَّمة، مثل setExact(int, long, PendingIntent). إنذار غير دقيق مع فترات زمنية أقصر محدّدة سيمدّد النظام فتراته الزمنية.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

رقم تعريف التغيير: 142191088
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

على التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث تقديم بيان بالملحقات للمكتبات المشتركة الأصلية العلنية التي يحدّدها صانع الجهاز باستخدام علامة uses-native-library في AndroidManifest.xml. إذا تعذّر تلبية أي من المتطلّبات ، مثلاً عدم توفّر أحد المتطلّبات، لن يُثبِّت مدير الحِزم التطبيق. ويمكن تحديد المتطلّب كخيار اختياري باستخدام السمة android:required في العلامة، وفي هذه الحالة لن يؤدي عدم تلبية المتطلّب إلى إيقاف عملية التثبيت.

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

ENFORCE_STRICT_QUERY_BUILDER

تغيير رقم التعريف: 143231523
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل SQLiteQueryBuilder ، يتحقّق الإجراء من جميع اختيارات طلبات البحث CalendarProvider2 بحثًا عن الوسائط الضارّة.

FGS_BG_START_RESTRICTION_CHANGE_ID

معرّف التغيير: 170668199
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

FGS_START_EXCEPTION_CHANGE_ID

معرّف التغيير: 174041399
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

FINISH_INPUT_NO_FALLBACK_CONNECTION

تغيير رقم التعريف: 156215187
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب إنهاء InputConnection عندما يصبح الجهاز non-interactive.

في حال تفعيل input method الحالي، سيتم finished اتصال الإدخال الحالي عندما تصبح الأجهزة غير تفاعلية.

في حال عدم تفعيل هذه الميزة، سيتم إيقاف اتصال الإدخال الحالي تلقائيًا عندما تصبح الأجهزة غير تفاعلية، وسيتم إرسال رمزَي onFinishInput() و onStartInput() عندما يصبح الجهاز تفاعليًا مرة أخرى.

FORCE_DISABLE_HEVC_SUPPORT

رقم تعريف التغيير: 174227820
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

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

FORCE_ENABLE_HEVC_SUPPORT

رقم تعريف التغيير: 174228127
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

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

FORCE_NON_RESIZE_APP

معرّف التغيير: 181136395
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

يفرض عدم إمكانية تغيير حجم الحِزم التي يتم تطبيقه عليها.

FORCE_RESIZE_APP

رقم تعريف التغيير: 174042936
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

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

HIDE_PROP_ICUBINARY_DATA_PATH

معرّف التغيير: 171979766
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، ستتم إزالة إمكانية الوصول إلى الموقع android.icu.impl.ICUBinary.dataPath.

IGNORE_ALLOW_BACKUP_IN_D2D

رقم تعريف التغيير: 183147249
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تجاهل android:allowBackup للتطبيقات أثناء عمليات نقل البيانات من جهاز إلى آخر (D2D).

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

رقم تعريف التغيير: 180523564
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

معرّف التغيير: 169273070
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يعرض getSupportedLocales() الآن قائمة لغات فارغة عندما لا يتم ضبطها، بدلاً من لغة النظام التلقائية.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

رقم تعريف التغيير: 158482162
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم فرض إذن BACKUP المطلوب لميزة isBackupServiceActive() من جهة الخدمة بدلاً من جهة العميل في BackupManager.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

رقم تعريف التغيير: 169897160
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

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

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

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

استراتيجية التقليم: للعثور على مرشح مناسب، نحسب العقوبة للمُتصل وكل عملية حالية. إنّ malus هو عكس قوة التقليم (المُتصل) أو مقاومة التقليم (العملية الحالية). لكي يتمكّن المُرسِل من تقليم عملية، يجب أن يعثر على عملية ذات عقوبة أعلى من العقوبة التي يفرضها. لمزيد من التفاصيل حول استراتيجية التقليم، اطّلِع على عملية تنفيذ operation.rs. في الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأقدم، سيستطلِع KeyStore2 الخدمة الدائمة Keystore بحثًا عن خانة عملية مجانية. بالنسبة إلى التطبيقات التي تستهدف الإصدار Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأقدم، سيظلّ يبدو أنّ عملية بدء التشفير وإنشاء كائن التوقيع تنجح دائمًا، ولكن قد يستغرق تنفيذ عملية هذه وقتًا أطول. تستفيد جميع إصدارات Android من جدولة مدة تنفيذ العمليات بشكلٍ أكثر عدلاً وفرصة أفضل لإكمال عملية بنجاح.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

معرّف التغيير: 174664365
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار Android 12 (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، لا يمكن إرسال Intent.ACTION_CLOSE_SYSTEM_DIALOGS ما لم يكن لدى التطبيق أيضًا إذن android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS. يُرجى العِلم أنّ هذا هو الإصدار الأكثر تقييدًا من #DROP_CLOSE_SYSTEM_DIALOGS الذي يتوقّع أن يتوقف التطبيق عن إرسال نية Intent.ACTION_CLOSE_SYSTEM_DIALOGS بعد بدء تشغيله لاستهداف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

LOCK_DOWN_COLLAPSE_STATUS_BAR

معرّف التغيير: 173031413
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب الحصول على الإذن Manifest.permission.STATUS_BAR لتصغير لوحات شريط الحالة لأسباب تتعلق بالأمان. وكانت البرامج الضارة تستغل هذا الخلل لمنع المستخدم من الوصول إلى الإشعارات المهمة.

LOW_POWER_EXCEPTIONS

معرّف التغيير: 168936375
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

MISSING_EXPORTED_FLAG

رقم تعريف التغيير: 150232615
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب تحديد قيمة صريحة لسمة android:exported عند تحديد فلتر intent.

لمعرفة المزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على تصدير المكوّنات بأمان أكبر.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

رقم تعريف التغيير: 207557677
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 32 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

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

NATIVE_HEAP_ZERO_INIT

معرّف التغيير: 178038272
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

تفعيل الإعداد التلقائي للقيمة 0 لعمليات تخصيص ذاكرة الشريحة الأساسية

NATIVE_MEMTAG_ASYNC

رقم تعريف التغيير: 135772972
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

فعِّل التحقّق من علامة الذاكرة غير المتزامنة (ASYNC) في هذه العملية. لا تؤثر هذه العلامة إلا في الأجهزة التي تتيح استخدام إضافة وضع علامات الذاكرة (MTE) لمعالجات ARM.

NATIVE_MEMTAG_SYNC

رقم تعريف التغيير: 177438394
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

تفعِّل هذه السمة التحقّق من علامة الذاكرة المتزامنة (SYNC) في هذه العملية. لا تؤثر هذه العلامة إلا في الأجهزة التي تتيح استخدام إضافة وضع علامات الذاكرة (MTE) لمعالجات ARM. في حال تفعيل كل من NATIVE_MEMTAG_ASYNC وهذا الخيار، يتم منح الأولوية لهذا الخيار ويتم تفعيل MTE في وضع "المزامنة".

NEVER_SANDBOX_DISPLAY_APIS

رقم تعريف التغيير: 184838306
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

عند تفعيل هذا الخيار، يمنع وضع الحماية في مساحة معيّنة لـ Display API من تطبيقه على نشاط مربّع الصورة أو إدارة سلسلة الإمداد. ستستمر واجهات برمجة التطبيقات Display APIs في توفير حدود DisplayArea.

للاطّلاع على مزيد من المعلومات عن هذا التغيير، اطّلِع على القسم في صفحة Android 12 تغييرًا في السلوك عن طرق العرض التي تم إيقافها نهائيًا.

NOTIFICATION_CANCELLATION_REASONS

معرّف التغيير: 175319604
الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

NOTIFICATION_TRAMPOLINE_BLOCK

رقم التعريف المتغيّر: 167676448
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو إصدارًا أحدث.

لتحسين أداء التطبيق وتجربة المستخدم، لا يمكن للتطبيقات التي تستهدف Android 12 استخدام الخدمات أو مستقبلات البث كحلّ بديل لإرسال الإشعارات.

لمزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على لا يمكن إنشاء تطبيقات مساعدة لإشعارات التطبيقات من الخدمات أو أجهزة استقبال البث.

NULL_TELEPHONY_THROW_NO_CB

معرّف التغيير: 182185642
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

تُستخدَم هذه السمة للتحقّق مما إذا كان إصدار حزمة تطوير البرامج (SDK) المستهدَف للعملية الحالية هو Android 12 (المستوى 31 لواجهة برمجة التطبيقات) أو إصدار أحدث.

ينطبق ذلك على الطرق التالية:

OVERRIDE_MIN_ASPECT_RATIO

معرّف التغيير: 174042980
الحالة التلقائية: غير مفعَّل لجميع التطبيقات.

هذا التغيير هو حارس جميع التغييرات التي تفرض الحد الأدنى من نسبة العرض إلى الارتفاع. يتيح تفعيل هذا التغيير تطبيق الحد الأدنى من نسب الطول إلى العرض التالية:

عند تفعيل هذا التغيير لحزمة تطبيق، يتم إلغاء الحد الأدنى لنسبة العرض إلى الارتفاع الوارد في بيان التطبيق واستبداله بأكبر نسبة عرض إلى ارتفاع مفعَّلة ما لم تكن قيمة بيان التطبيق أعلى.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

رقم تعريف التغيير: 180326787
الحالة التلقائية: غير مفعّل لجميع التطبيقات.

عند تفعيل OVERRIDE_MIN_ASPECT_RATIO أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى ضبط الحد الأدنى لنسبة العرض إلى الارتفاع للنشاط على قيمة كبيرة كما هو محدّد في OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

رقم تعريف التغيير: 180326845
الحالة التلقائية: غير مفعّل لجميع التطبيقات.

عند تفعيل OVERRIDE_MIN_ASPECT_RATIO أيضًا، يؤدي تفعيل هذا التغيير لحزمة إلى ضبط الحد الأدنى لنسبة العرض إلى الارتفاع للنشاط على قيمة متوسطة كما هو محدّد في OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

معرّف التغيير: 160794467
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار Android 12 (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب تحديد قابلية التغيّر لكل عنصر من عناصر PendingIntent ينشئه تطبيقك. يساهم هذا الشرط الإضافي في تحسين أمان تطبيقك.

لمزيد من المعلومات عن هذا التغيير، اطّلِع على يجب أن تُعلن النوايا المعلّقة عن قابلية التغير.

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

رقم تعريف التغيير: 165573442
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

لا يمكن لتطبيقات المشرف التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث استخدام DevicePolicyManager.setPasswordQuality(ComponentName, int) لضبط جودة كلمة المرور في مثيل DevicePolicyManager الذي تم الحصول عليه من خلال استدعاء DevicePolicyManager.getParentProfileInstance(ComponentName). بدلاً من ذلك، يجب استخدام DevicePolicyManager.setRequiredPasswordComplexity(int) لضبط متطلبات كلمة المرور على مستوى الجهاز.

RATE_LIMIT_TOASTS

معرّف التغيير: 174840628
الحالة التلقائية: لا يمكن إيقاف هذا التغيير. ولا يتم تسجيله إلا من خلال إطار عمل التوافق.

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

REQUIRE_EXACT_ALARM_PERMISSION

رقم تعريف التغيير: 171306433
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يكون لدى التطبيقات إذن Manifest.permission.SCHEDULE_EXACT_ALARM حتى تتمكّن من استخدام أي واجهات برمجة تطبيقات لضبط المنبّهات المحدَّدة الوقت، مثل setExactAndAllowWhileIdle(int, long, PendingIntent) وsetAlarmClock(AlarmClockInfo, PendingIntent).

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

رقم تعريف التغيير: 182478738
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يكون لدى التطبيقات إذن Manifest.permission.READ_PHONE_STATE للاتصال بـ TelephonyCallback.ActiveDataSubscriptionIdListener.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

رقم تعريف التغيير: 184323934
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يكون لدى التطبيقات إذن Manifest.permission.READ_PHONE_STATE للاتصال بـ TelephonyCallback.CellInfoListener.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

رقم تعريف التغيير: 183164979
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يكون لدى التطبيقات إذن Manifest.permission.READ_PHONE_STATE للاتصال بـ TelephonyCallback.DisplayInfoListener.

RESTRICT_ADB_BACKUP

رقم تعريف التغيير: 171032338
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تفعيل adb backup تلقائيًا للتطبيقات التي تعمل في وضع تصحيح الأخطاء (يتم ضبط android:debuggable على true) ولا يتوفّر لأي تطبيقات أخرى.

RESTRICT_DOMAINS

رقم تعريف التغيير: 175408749
الحالة التلقائية: مفعَّلة للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • IntentFilter.SCHEME_HTTP و/أو IntentFilter.SCHEME_HTTPS فقط، بدون أيّ خطط أخرى

في الإصدارات السابقة من Android، لم يكن Intent.CATEGORY_BROWSABLE شرطًا، وكان يُسمح باستخدام مخطّطات أخرى، وكان ضبط autoVerify على true في أيّ فلتر أهداف يؤدي ضمنيًا إلى التظاهر بأنّه تم ضبط جميع فلاتر الأهداف على autoVerify="true".

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

رقم تعريف التغيير: 151105954
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يجب أن يتم تحديد جميع attributionTags المُرسَلة إلى noteOp(String, int, String) noteProxyOp(String, String) وstartOp(String, int, String) في ملف بيان الحزمة المحدَّد كمَعلمة للطرق.

لتفعيل هذا التغيير، يجب تفعيله في كل من الحزمة التي تستدعي noteOp(String, int, String) والحزمة المحدّدة كمَعلمة للطريقة.

SELINUX_LATEST_CHANGES

معرّف التغيير: 143539591
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

بالنسبة إلى التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب تفعيل أحدث تغييرات SELinux. لن يؤدي إيقاف هذا التغيير في تطبيق يستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو إصدارًا أحدث إلى أي تأثير. ولن يكون له أي تأثير في التطبيقات التي تستخدم معرّف مستخدم مشترَكًا.

SETTINGS_API_V2

تغيير رقم التعريف: 178111421
الحالة التلقائية: مفعَّل لجميع التطبيقات.

لم يتمّ بعد تنفيذ واجهة برمجة التطبيقات الجديدة لإعدادات المستخدم المفضّلة من أجل التحقّق من النطاقات التي تمّ وضع علامة autoVerify=true عليها في فلاتر الأهداف في ملف AndroidManifest.xml في معاينة المنصة الحالية. في الوقت الحالي، يمكن معاينة التغييرات في الإعدادات المفضّلة للمستخدم الجديد من خلال تفعيل ChangeId هذا واستخدام الرمز adb shell pm set-app-links-user-selection والأوامر المشابهة.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

معرّف التغيير: 183972877
الحالة التلقائية: مفعَّل للتطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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