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

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

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

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

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

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

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

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

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

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

ALWAYS_SANDBOX_DISPLAY_APIS

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

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

معرّف التغيير: 163400105
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

BLOCK_IMMUTABLE_PENDING_INTENTS

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

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

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

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

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

BLOCK_UNTRUSTED_TOUCHES

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

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

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

CALL_ACTIVITY_RESULT_BEFORE_RESUME

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

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

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

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

CHANGE_ID_AUTH_STATE_DENIED

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

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

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

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

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

DELIVER_HISTORICAL_LOCATIONS

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

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

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

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

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

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

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

بالنسبة إلى التطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

DROP_CLOSE_SYSTEM_DIALOGS

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

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

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

ENABLE_CHECKS_FOR_PRIVATE_FILES

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

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

ENABLE_DEFERRED_SCAN

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

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

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

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

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

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

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

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

ENABLE_INCLUDE_ALL_VOLUMES

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

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

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

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

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

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

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

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

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

معرّف التغيير: 142191088
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

FGS_START_EXCEPTION_CHANGE_ID

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

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

FINISH_INPUT_NO_FALLBACK_CONNECTION

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

بالنسبة إلى التطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

IGNORE_ALLOW_BACKUP_IN_D2D

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

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

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

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

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

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

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

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

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

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

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

KEYSTORE_OPERATION_CREATION_MAY_FAIL

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

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

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

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

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

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

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

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

LOCK_DOWN_COLLAPSE_STATUS_BAR

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

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

LOW_POWER_EXCEPTIONS

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

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

MISSING_EXPORTED_FLAG

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

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

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

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

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

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

لمزيد من المعلومات عن هذا التغيير، يمكنك الاطّلاع على المؤشرات التي تم وضع علامة عليها.

NATIVE_HEAP_ZERO_INIT

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

يمكنك تفعيل الإعداد التلقائي لعمليات توزيع الذاكرة الأصلية لأجزاء من الذاكرة.

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 من التطبيق على نشاط يظهر على شاشة عريضة أفقيًا أو حسابيًا في SCM. وستواصل واجهات برمجة التطبيقات للعرض توفير حدود DisplayArea.

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

NOTIFICATION_CANCELLATION_REASONS

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

تسمح لمستمعي الإشعارات بفهم أسباب الإلغاء الجديدة الأكثر تحديدًا.

NOTIFICATION_TRAMPOLINE_BLOCK

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

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

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

NULL_TELEPHONY_THROW_NO_CB

معرّف التغيير: 182185642
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 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 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

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

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

معرّف التغيير: 165573442
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

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

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

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

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

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

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

RESTRICT_ADB_BACKUP

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

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

RESTRICT_DOMAINS

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

بالنسبة إلى التطبيقات التي تستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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

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

SELINUX_LATEST_CHANGES

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

بالنسبة إلى التطبيقات التي تستهدف Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، سيتم تفعيل أحدث تغييرات SELinux. جدير بالذكر أنّ إيقاف هذا التغيير لتطبيق يستهدف Android 12 (المستوى 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
الحالة التلقائية: مفعّل للتطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث.

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