تغییرات چارچوب سازگاری (Android 12)

شکل 1 . صفحه تغییرات سازگاری برنامه در گزینه‌های برنامه‌نویس، تغییراتی را که می‌توانید تغییر دهید فهرست می‌کند.

این صفحه هر تغییر رفتاری را که بخشی از چارچوب سازگاری در Android 12 است (سطح API 31) توضیح می‌دهد. از این لیست همراه با گزینه های توسعه دهنده و دستورات ADB برای آزمایش و اشکال زدایی برنامه خود در حین آماده شدن برای پشتیبانی و هدف قرار دادن اندروید 12 استفاده کنید.

در اینجا برخی از کارهایی وجود دارد که می توانید با استفاده از ابزارهای چارچوب سازگاری انجام دهید:

  • تغییرات هدفمند را بدون تغییر در targetSdkVersion برنامه آزمایش کنید . می‌توانید از دکمه‌ها برای فعال کردن تغییرات رفتار هدفمند خاص برای ارزیابی تأثیر بر برنامه موجود خود استفاده کنید.
  • آزمایش خود را فقط بر روی تغییرات خاص متمرکز کنید . به جای پرداختن به همه تغییرات هدفمند به یکباره، ضامن ها به شما این امکان را می دهند که همه تغییرات هدفمند را غیرفعال کنید، به جز آنهایی که می خواهید آنها را آزمایش کنید.
  • ضامن ها را از طریق adb مدیریت کنید . می توانید از دستورات adb برای فعال و غیرفعال کردن تغییرات قابل تغییر در محیط تست خودکار خود استفاده کنید.
  • با استفاده از شناسه های تغییر استاندارد سریعتر اشکال زدایی کنید . تغییرات قابل تغییر هر کدام یک شناسه و نام منحصر به فرد دارند که می توانید از آنها برای رفع سریع علت اصلی در خروجی گزارش استفاده کنید.

برای جزئیات کامل در مورد استفاده از ابزار برای هر یک از این موارد استفاده، به ابزارهای چارچوب سازگاری مراجعه کنید.

تغییرات رفتاری که در چارچوب سازگاری گنجانده شده است

فهرست موجود در این بخش، هر تغییر رفتاری را که در چارچوب سازگاری اندروید 12 گنجانده شده است، توضیح می‌دهد.

می توانید لیست تغییرات را بر اساس حالت پیش فرض فیلتر کنید.

تغییرات رفتاری به چارچوب سازگاری در اندروید 12 اضافه شد

ALWAYS_SANDBOX_DISPLAY_APIS

شناسه تغییر: 185004937
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

هنگامی که فعال باشد، جعبه‌شنودی Display API را بدون در نظر گرفتن حالت پنجره، روی یک بسته اعمال می‌کند. APIهای Display همیشه محدوده برنامه را ارائه می دهند.

برای کسب اطلاعات بیشتر درباره این تغییر، به بخش مربوط به روش‌های نمایشی که منسوخ شده‌اند در صفحه تغییرات رفتار Android 12 مراجعه کنید.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

شناسه تغییر: 163400105
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

با شروع Android 12، این پلتفرم می‌تواند پیشنهادات غیر متنی (مانند تصاویر) را با استفاده از چارچوب تکمیل خودکار ارائه دهد (به خدمات تکمیل خودکار مراجعه کنید). برای اینکه یک برنامه بتواند این پیشنهادات را مدیریت کند، معمولاً باید OnReceiveContentListener API را اجرا کند.

برای اینکه پذیرش این API برای برنامه‌هایی که قبلاً API InputConnection.commitContent(InputContentInfo, int, Bundle) روان‌تر کرده‌اند، راحت‌تر کنیم، اگر OnReceiveContentListener هنوز توسط برنامه پیاده‌سازی نشده باشد، از آن API به عنوان یک بازگشت استفاده مجدد می‌کنیم. این بازگشتی فقط در اندروید 12 (سطح API 31) فعال است. این شناسه تغییر، بازگشت را غیرفعال می‌کند، به طوری که برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، باید OnReceiveContentListener API را اجرا کنند تا پیشنهادات غیر متنی را بپذیرند.

BLOCK_FLAG_SLIPPERY

شناسه تغییر: 157929241
حالت پیش فرض : برای همه برنامه ها فعال است.

برای برنامه‌هایی که روی Android 12 اجرا می‌شوند (سطح API 31)، بررسی می‌کند که آیا FLAG_SLIPPERY با هر پنجره‌ای در برنامه استفاده می‌شود یا خیر. ما انتظار داریم که این پرچم فقط توسط اجزای سیستم استفاده شود زیرا یک فیلد پشتیبانی نشده است. اگر چنین باشد، محدود خواهد شد.

BLOCK_GPS_STATUS_USAGE

شناسه تغییر: 144027538
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، همه استفاده‌های GpsStatus API باید با GnssStatus API جایگزین شوند.

BLOCK_IMMUTABLE_PENDING_INTENTS

شناسه تغییر: 171317480
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، غیرقابل تغییر است اشیاء PendingIntent که به APIهای مکان ارسال می شوند، یک IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

شناسه تغییر: 169887240
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، APIهای سیستم LocationRequest را نمی‌توان با درخواست‌های مکان PendingIntent استفاده کرد.

BLOCK_UNTRUSTED_TOUCHES

شناسه تغییر: 158002302
حالت پیش فرض : برای همه برنامه ها فعال است.

برای حفظ امنیت سیستم و تجربه کاربری خوب، اندروید 12 از مصرف رویدادهای لمسی در برنامه‌ها جلوگیری می‌کند، جایی که یک پوشش برنامه را به روشی ناامن مسدود می‌کند.

برای کسب اطلاعات بیشتر درباره این تغییر، به رویدادهای لمسی غیرقابل اعتماد مسدود شده‌اند مراجعه کنید.

CALL_ACTIVITY_RESULT_BEFORE_RESUME

تغییر شناسه: 78294732
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، چرخه عمر نتیجه فعالیت را تصحیح می‌کند تا تضمین کند که یک فعالیت درست قبل از ازسرگیری نتیجه فعالیت را دریافت می‌کند.

CAMERA_MIC_INDICATORS_NOT_PRESENT

شناسه تغییر: 162547999
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

نشان می دهد که این دستگاه از نشانگرهای دوربین و میکروفون پشتیبانی می کند. در صورت وجود false خواهد بود، زیرا اگر شناسه تغییر وجود نداشته باشد، متد CompatChanges#isChangeEnabled true برمی گرداند.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

شناسه تغییر: 146211400
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، در صورت وجود گروه‌های مجوز نادرست، مدیر بسته بسته‌ای را نصب نمی‌کند. گروه‌های مجوز فقط باید بین برنامه‌هایی که گواهی را به اشتراک می‌گذارند به اشتراک گذاشته شود. اگر مجوز متعلق به یک گروه باشد، آن گروه نیز باید تعریف شود.

CHANGE_ID_AUTH_STATE_DENIED

شناسه تغییر: 181350407
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌های سرویس گیرنده‌ای که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، هنگامی که در وضعیت مجوز رد شده هستند و تلاش می‌کنند پیامی به یک برنامه نانو ارسال کنند، یک SecurityException داده می‌شود.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

شناسه تغییر: 136069189
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، وقتی مجوز HIGH_SAMPLING_RATE_SENSORS ندارند، در حالت اشکال‌زدایی اجرا می‌شوند و نرخ‌های نمونه‌گیری سریع‌تر از 200 هرتز را درخواست می‌کنند، یک SecurityException داده می‌شود.

DELIVER_HISTORICAL_LOCATIONS

شناسه تغییر: 73144566
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، مشتریان مکان ممکن است تحت شرایطی مکان‌های تاریخی (از قبل از زمان کنونی) را دریافت کنند.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

تغییر شناسه: 181658987
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برای تغییرات در TelephonyDisplayInfo سازگاری با عقب را فراهم می‌کند.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

شناسه تغییر: 170503758
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، پلتفرم ممکن است نرخ فریم برنامه را به مقسوم‌کننده‌ای از نرخ تازه‌سازی کاهش دهد، اگر ترجیح داده شود (به عنوان مثال، اگر برنامه به Surface.setFrameRate(float, int) فراخوانی شود). برنامه‌ها تماس‌های Choreographer.postFrameCallback(Choreographer.FrameCallback) و فشار برگشتی را با نرخ فریم پایین‌تر تجربه خواهند کرد. برنامه ها از Display.getRefreshRate() و Display.Mode.getRefreshRate() استفاده می کنند تا بدانند نرخ تازه سازی نمایشگر چقدر است. Display.getRefreshRate() همیشه نرخ فریم برنامه را برمی‌گرداند و نه نرخ تازه‌سازی فیزیکی نمایشگر را تا به برنامه‌ها اجازه دهد تا سرعت فریم را به درستی انجام دهند. Display.Mode.getRefreshRate() نرخ فریم برنامه را در صورتی که به نسخه قبلی کامپایل شده باشد برمی گرداند و با Android 12 (سطح API 31) شروع می شود، نرخ تازه سازی نمایشگر فیزیکی را برمی گرداند.

DOWNSCALED

شناسه تغییر: 168419799
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

این تغییر دروازه بان تمام تغییرات کاهش مقیاس بافر هر برنامه است. فعال کردن این تغییر باعث می‌شود فاکتورهای مقیاس‌بندی زیر اعمال شوند:

وقتی این تغییر برای یک بسته برنامه فعال می شود، اندازه برنامه به اجبار به بالاترین ضریب مقیاس پذیری فعال تغییر می کند. برای مثال، اگر هر دو 80 درصد و 70 درصد ( DOWNSCALE_80 و DOWNSCALE_70 ) فعال باشند، 80٪ استفاده می شود.

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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌های Android TV که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، انتظار می‌رود هر اندازه پنجره، از جمله اندازه‌های پنجره بزرگتر از 1080p را مدیریت کنند. برنامه هایی که نسخه های قبلی اندروید را هدف قرار می دهند انتظار ندارند ویندوز بزرگتر از 1080p دریافت کنند، بنابراین در صورت لزوم ویندوز آنها به 1080p کاهش می یابد.

DROP_CLOSE_SYSTEM_DIALOGS

تغییر شناسه: 174664120
حالت پیش فرض : برای همه برنامه ها فعال است.

برای بهبود کنترل کاربر هنگام تعامل با برنامه‌ها و سیستم، اقدام قصد ACTION_CLOSE_SYSTEM_DIALOGS از Android 12 منسوخ شده است.

برای کسب اطلاعات بیشتر درباره این تغییر، به برنامه ها نمی توانند گفتگوهای سیستم را ببندند مراجعه کنید.

ENABLE_CHECKS_FOR_PRIVATE_FILES

شناسه تغییر: 172100307
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، نمی‌توانند فایل‌های خصوصی را با استفاده از ارائه‌دهنده رسانه وارد یا به‌روزرسانی کنند.

ENABLE_DEFERRED_SCAN

شناسه تغییر: 180326732
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای به تعویق انداختن اسکنی که به عنوان بخشی از MediaProvider#update() فعال می شود، این گزینه را فعال کنید.

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

شناسه تغییر: 157233955
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، محافظت READ_PHONE_STATE در APIهایی که درخواست می‌کنند و وضعیت تماس را اعلان می‌کنند، مانند TelecomManager#getCallState ، TelephonyManager.getCallStateForSubscription() و TelephonyCallback.CallStateListener فعال می‌کند.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

شناسه تغییر: 183407956
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، محافظت‌های READ_PHONE_NUMBERS یا READ_PRIVILEGED_PHONE_STATE را در getPhoneAccount(PhoneAccountHandle) فعال می‌کند.

ENABLE_INCLUDE_ALL_VOLUMES

شناسه تغییر: 182734110
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

این گزینه را فعال کنید تا ردیف‌های پایگاه داده از فایل‌هایی را که اخیراً نصب نشده‌اند در MediaProvider#query شامل شود.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

شناسه تغییر: 178209446
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

این گزینه را فعال کنید تا به برنامه‌هایی که مجوز Manifest.permission.MANAGE_EXTERNAL_STORAGE را دارند اجازه درخواست دسترسی به حافظه خارجی خام را بدهند.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

شناسه تغییر: 185199076
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، همه هشدارهای غیردقیق باید دارای حداقل اندازه پنجره باشند که انتظار می‌رود در حد چند دقیقه باشد. عملاً، هر آلارمی که به پنجره‌های کوچک‌تر نیاز دارد، همان آلارم‌های دقیق است و باید از APIهای ارائه‌شده مربوطه مانند setExact(int, long, PendingIntent) استفاده کند. هشدار غیر دقیق با پنجره‌های کوتاه‌تر مشخص شده، پنجره‌های آن‌ها توسط سیستم کشیده می‌شود.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

شناسه تغییر: 142191088
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌هایی که Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، زمانی را که برنامه‌ها می‌توانند خدمات پیش‌زمینه را هنگام اجرا در پس‌زمینه راه‌اندازی کنند، محدود می‌کند.

FGS_START_EXCEPTION_CHANGE_ID

شناسه تغییر: 174041399
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، سیستم را قادر می‌سازد تا در صورتی که برنامه‌ای در حال اجرا در پس‌زمینه، یک سرویس پیش‌زمینه راه‌اندازی کند، یک IllegalStateException ایجاد کند.

FINISH_INPUT_NO_FALLBACK_CONNECTION

شناسه تغییر: 156215187
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، وقتی دستگاه non-interactive شد، InputConnection تمام کنید.

اگر با 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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، دسترسی به ویژگی android.icu.impl.ICUBinary.dataPath را حذف می‌کند.

IGNORE_ALLOW_BACKUP_IN_D2D

شناسه تغییر: 183147249
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، android:allowBackup برای برنامه‌ها در حین انتقال دستگاه به دستگاه (D2D) نادیده گرفته می‌شود.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

شناسه تغییر: 180523564
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، قوانین مشخص‌شده با استفاده از android:fullBackupContent در حین انتقال دستگاه به دستگاه (D2D) نادیده گرفته می‌شود.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

شناسه تغییر: 169273070
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، getSupportedLocales() اکنون یک لیست محلی خالی را زمانی که تنظیم نشده است، به‌جای منطقه محلی پیش‌فرض سیستم برمی‌گرداند.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

شناسه تغییر: 158482162
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، مجوز BACKUP مورد نیاز برای isBackupServiceActive() در سمت سرویس به جای سمت کلاینت در BackupManager اعمال می‌شود.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

تغییر شناسه: 169897160
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال بودن، ایجاد عملیات ذخیره‌سازی کلید ممکن است طبق استراتژی هرس جدید با شکست مواجه شود. Keystore با این فرض کار می کرد که ایجاد عملیات رمزنگاری همیشه موفق است. با این حال، Backend KeyMint تنها تعداد محدودی اسلات عملیاتی دارد.

به منظور حفظ ظاهر اسلات‌های عملیاتی «بی‌نهایت»، شبح Keystore حداقل‌ترین عملیات‌هایی را که اخیراً استفاده شده‌اند، در صورتی که اسلات عملیاتی موجود وجود نداشته باشد، هرس می‌کند. در نتیجه، عملیات خوب می تواند پیش از موعد خاتمه یابد. با این کار، AndroidKeystore به انکار سرویس (DoS) و قفل زنده ناخواسته باز شد. به عنوان مثال، اگر چندین برنامه به طور همزمان به دلیل بهینه سازی مدیریت انرژی از خواب بیدار شوند و سعی در انجام عملیات رمزنگاری داشته باشند، بدون هیچ پیشرفتی شروع به خاتمه دادن به عملیات یکدیگر می کنند.

برای خروج از لایلاک و جلوگیری از تلاش‌های DoS، ما استراتژی هرس را به گونه‌ای تغییر داده‌ایم که مشتریانی را ترجیح می‌دهد که از اسلات‌های عملیاتی کمی استفاده می‌کنند. در نتیجه، عملیات تکی که بیش از 5 ثانیه غیر فعال نمی مانند، تقریباً همیشه با استراتژی هرس بدون مانع به پایان می رسند. هنوز برخی از عملیات مربوط به رمزگذاری سیستم فایل وجود دارد که می تواند حتی این عملیات را هرس کند، اما این موارد بسیار نادر هستند. به عنوان یک عارضه جانبی این عملیات استراتژی هرس جدید، اگر مشتری قدرت هرس کمتری نسبت به همه عملیات موجود داشته باشد، اکنون ایجاد می تواند شکست بخورد.

استراتژی هرس : برای یافتن یک نامزد مناسب، malus را برای تماس گیرنده و هر عملیات موجود محاسبه می کنیم. مالوس معکوس قدرت هرس (تماس دهنده) یا مقاومت هرس (عملیات موجود) است. برای اینکه تماس گیرنده بتواند یک عملیات را هرس کند، باید عملیاتی با مالوس بالاتر از خودش پیدا کند. برای جزئیات بیشتر در مورد استراتژی هرس، اجرای operation.rs ببینید. در اندروید 11 (سطح API 30) و پایین‌تر، KeyStore2 شبح Keystore را برای یک اسلات عملیات رایگان نظرسنجی می‌کند. برای برنامه‌هایی که اندروید 11 (سطح API 30) و پایین‌تر را هدف قرار می‌دهند، همچنان به نظر می‌رسد که مقداردهی اولیه شی رمز و امضا همیشه موفقیت‌آمیز است – با این حال، ممکن است انجام عملیات بیشتر طول بکشد. همه نسخه‌های اندروید از زمان‌بندی شکاف عملیات منصفانه‌تر و شانس بهتری برای پایان موفقیت‌آمیز عملیات بهره می‌برند.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

تغییر شناسه: 174664365
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، Intent.ACTION_CLOSE_SYSTEM_DIALOGS نمی‌تواند ارسال شود مگر اینکه برنامه دارای مجوز android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS باشد. توجه داشته باشید که این نسخه محدودتر #DROP_CLOSE_SYSTEM_DIALOGS است که انتظار دارد برنامه ارسال هدف Intent.ACTION_CLOSE_SYSTEM_DIALOGS را پس از شروع برنامه، Android 12 (سطح API 31) یا بالاتر را هدف قرار دهد.

LOCK_DOWN_COLLAPSE_STATUS_BAR

شناسه تغییر: 173031413
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، مجوز Manifest.permission.STATUS_BAR برای جمع کردن پانل‌های نوار وضعیت به دلایل امنیتی مورد نیاز است. این بدافزار برای جلوگیری از دسترسی کاربر به اعلان‌های مهم مورد سوء استفاده قرار می‌گرفت.

LOW_POWER_EXCEPTIONS

تغییر شناسه: 168936375
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، در صورتی که تماس‌گیرنده مجوز LOCATION_HARDWARE را نداشته باشد، به‌جای حذف بی‌صدا بخش کم مصرف درخواست، همه اشیاء LocationRequest به‌عنوان استثناهای پرتاب انرژی کم علامت‌گذاری می‌شوند.

MISSING_EXPORTED_FLAG

شناسه تغییر: 150232615
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، هر زمان که فیلتر هدف تعریف می‌شود، باید یک مقدار صریح برای ویژگی android:exported مشخص شود.

برای کسب اطلاعات بیشتر در مورد این تغییر، به صادرات ایمن‌تر اجزا مراجعه کنید.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

شناسه تغییر: 207557677
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، تخصیص هیپ بومی در فرآیند AppZygote و فرزندان آن از یک برچسب غیر صفر در مهم‌ترین بایت استفاده می‌کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر، به نشانگرهای برچسب‌گذاری شده مراجعه کنید.

NATIVE_HEAP_ZERO_INIT

شناسه تغییر: 178038272
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

فعال کردن صفر اولیه سازی خودکار تخصیص حافظه هیپ بومی.

NATIVE_MEMTAG_ASYNC

شناسه تغییر: 135772972
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه ناهمزمان (ASYNC) را در این فرآیند فعال کنید. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد.

NATIVE_MEMTAG_SYNC

شناسه تغییر: 177438394
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه همزمان (SYNC) را در این فرآیند فعال می کند. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد. اگر هم NATIVE_MEMTAG_ASYNC و هم این گزینه فعال باشند، این گزینه اولویت دارد و MTE در حالت SYNC فعال می شود.

NEVER_SANDBOX_DISPLAY_APIS

شناسه تغییر: 184838306
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

وقتی فعال باشد، مانع از اعمال سندباکس Display API به صندوق نامه یا فعالیت SCM می شود. Display APIها به ارائه محدوده DisplayArea ادامه خواهند داد.

برای کسب اطلاعات بیشتر درباره این تغییر، به بخش مربوط به روش‌های نمایشی که منسوخ شده‌اند در صفحه تغییرات رفتار Android 12 مراجعه کنید.

NOTIFICATION_CANCELLATION_REASONS

شناسه تغییر: 175319604
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

به شنوندگان اعلان‌ها اجازه می‌دهد تا دلایل لغو جدید را که خاص‌تر هستند، درک کنند.

NOTIFICATION_TRAMPOLINE_BLOCK

تغییر شناسه: 167676448
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای بهبود عملکرد برنامه و UX، برنامه‌هایی که Android 12 را هدف قرار می‌دهند، نمی‌توانند از خدمات یا گیرنده‌های پخش به عنوان ترامپولین اعلان استفاده کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر، به ترامپولین اعلان‌ها مراجعه کنید که نمی‌توان از سرویس‌ها یا گیرنده‌های پخش ایجاد کرد .

NULL_TELEPHONY_THROW_NO_CB

شناسه تغییر: 182185642
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای بررسی اینکه آیا نسخه SDK هدف برای فرآیند فعلی Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، باید تغییرپذیری هر شی PendingIntent را که برنامه شما ایجاد می‌کند مشخص کنید. این نیاز اضافی امنیت برنامه شما را بهبود می بخشد.

برای کسب اطلاعات بیشتر در مورد این تغییر، نگاه کنید به اهداف معلق باید تغییرپذیری را اعلام کنند .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

شناسه تغییر: 165573442
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌های سرپرستی که Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برنامه‌ها باید مجوز Manifest.permission.SCHEDULE_EXACT_ALARM را داشته باشند تا از هر API برای تنظیم هشدار دقیق استفاده کنند، مانند setExactAndAllowWhileIdle(int, long, PendingIntent) و setAlarmClock(AlarmClockInfo, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

تغییر شناسه: 182478738
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برنامه‌ها باید مجوز Manifest.permission.READ_PHONE_STATE را داشته باشند تا بتوانند با TelephonyCallback.ActiveDataSubscriptionIdListener تماس بگیرند.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

شناسه تغییر: 184323934
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برنامه‌ها باید مجوز Manifest.permission.READ_PHONE_STATE را داشته باشند تا بتوانند با TelephonyCallback.CellInfoListener تماس بگیرند.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

شناسه تغییر: 183164979
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برنامه‌ها باید مجوز Manifest.permission.READ_PHONE_STATE را داشته باشند تا بتوانند با TelephonyCallback.DisplayInfoListener تماس بگیرند.

RESTRICT_ADB_BACKUP

شناسه تغییر: 171032338
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، adb backup به‌طور خودکار برای برنامه‌هایی که به‌صورت اشکال‌زدایی اجرا می‌شوند روشن می‌شود ( android:debuggable تنظیم شده روی true ) و برای هیچ برنامه دیگری در دسترس نیست.

RESTRICT_DOMAINS

شناسه تغییر: 175408749
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، فرم به‌روزرسانی شده API تأیید پیوندهای برنامه مورد نیاز است. این الزام به این معنی است که یک برنامه باید دامنه‌هایی را در داخل یک فیلتر هدف که شامل همه موارد زیر است، اعلام کند:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • فقط IntentFilter.SCHEME_HTTP و/یا IntentFilter.SCHEME_HTTPS بدون هیچ طرح دیگری

در نسخه‌های قبلی Android، Intent.CATEGORY_BROWSABLE الزامی نبود، طرح‌های دیگر مجاز بودند، و تنظیم autoVerify روی true در هر فیلتر intent به طور ضمنی وانمود می‌کرد که همه فیلترهای هدف روی autoVerify="true" تنظیم شده‌اند.

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

شناسه تغییر: 151105954
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، تمام attributionTags ارسال شده به noteOp(String, int, String) ، noteProxyOp(String, String) و startOp(String, int, String) در مانیفست بسته‌ای که به عنوان پارامتر مشخص شده است، تعریف شوند.

برای فعال کردن این تغییر، هم بسته ای که noteOp(String, int, String) را فراخوانی می کند و هم بسته ای که به عنوان پارامتر متد مشخص شده است باید این تغییر را فعال کنند.

SELINUX_LATEST_CHANGES

شناسه تغییر: 143539591
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، آخرین تغییرات SELinux را انتخاب کنید. خاموش کردن این تغییر برای برنامه‌ای که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهد، غیرفعال است. برای برنامه هایی که از شناسه کاربری مشترک استفاده می کنند هیچ تاثیری ندارد.

SETTINGS_API_V2

شناسه تغییر: 178111421
حالت پیش فرض : برای همه برنامه ها فعال است.

API ترجیحی کاربر جدید برای تأیید دامنه‌های دارای علامت autoVerify=true در فیلترهای هدف AndroidManifest.xml هنوز در پیش‌نمایش پلتفرم فعلی پیاده‌سازی نشده است. در حال حاضر، با فعال کردن این ChangeId و استفاده از adb shell pm set-app-links-user-selection و دستورات مشابه، می‌توانید پیش‌نمایش تغییرات ترجیحی کاربر جدید را مشاهده کنید.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

شناسه تغییر: 183972877
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، تعیین می‌کند که آیا زمانی که برنامه‌ها سرویس پیش‌زمینه را شروع می‌کنند، قبل از اینکه سطل آماده به کار را به ACTIVE برسانید، از یک بازه زمانی کوتاه‌تر استفاده کنید یا خیر.

،
شکل 1 . صفحه تغییرات سازگاری برنامه در گزینه‌های برنامه‌نویس، تغییراتی را که می‌توانید تغییر دهید فهرست می‌کند.

این صفحه هر تغییر رفتاری را که بخشی از چارچوب سازگاری در Android 12 است (سطح API 31) توضیح می‌دهد. از این لیست همراه با گزینه های توسعه دهنده و دستورات ADB برای آزمایش و اشکال زدایی برنامه خود در حین آماده شدن برای پشتیبانی و هدف قرار دادن اندروید 12 استفاده کنید.

در اینجا برخی از کارهایی وجود دارد که می توانید با استفاده از ابزارهای چارچوب سازگاری انجام دهید:

  • تغییرات هدفمند را بدون تغییر در targetSdkVersion برنامه آزمایش کنید . می‌توانید از دکمه‌ها برای فعال کردن تغییرات رفتار هدفمند خاص برای ارزیابی تأثیر بر برنامه موجود خود استفاده کنید.
  • آزمایش خود را فقط بر روی تغییرات خاص متمرکز کنید . به جای پرداختن به همه تغییرات هدفمند به یکباره، ضامن ها به شما این امکان را می دهند که همه تغییرات هدفمند را غیرفعال کنید، به جز آنهایی که می خواهید آنها را آزمایش کنید.
  • ضامن ها را از طریق adb مدیریت کنید . می توانید از دستورات adb برای فعال و غیرفعال کردن تغییرات قابل تغییر در محیط تست خودکار خود استفاده کنید.
  • با استفاده از شناسه های تغییر استاندارد سریعتر اشکال زدایی کنید . تغییرات قابل تغییر هر کدام یک شناسه و نام منحصر به فرد دارند که می توانید از آنها برای رفع سریع علت اصلی در خروجی گزارش استفاده کنید.

برای جزئیات کامل در مورد استفاده از ابزار برای هر یک از این موارد استفاده، به ابزارهای چارچوب سازگاری مراجعه کنید.

تغییرات رفتاری که در چارچوب سازگاری گنجانده شده است

فهرست موجود در این بخش، هر تغییر رفتاری را که در چارچوب سازگاری اندروید 12 گنجانده شده است، توضیح می‌دهد.

می توانید لیست تغییرات را بر اساس حالت پیش فرض فیلتر کنید.

تغییرات رفتاری به چارچوب سازگاری در اندروید 12 اضافه شد

ALWAYS_SANDBOX_DISPLAY_APIS

شناسه تغییر: 185004937
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

هنگامی که فعال باشد، جعبه‌شنودی Display API را بدون در نظر گرفتن حالت پنجره، روی یک بسته اعمال می‌کند. APIهای Display همیشه محدوده برنامه را ارائه می دهند.

برای کسب اطلاعات بیشتر درباره این تغییر، به بخش مربوط به روش‌های نمایشی که منسوخ شده‌اند در صفحه تغییرات رفتار Android 12 مراجعه کنید.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

شناسه تغییر: 163400105
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

با شروع Android 12، این پلتفرم می‌تواند پیشنهادات غیر متنی (مانند تصاویر) را با استفاده از چارچوب تکمیل خودکار ارائه دهد (به خدمات تکمیل خودکار مراجعه کنید). برای اینکه یک برنامه بتواند این پیشنهادات را مدیریت کند، معمولاً باید OnReceiveContentListener API را اجرا کند.

برای اینکه پذیرش این API برای برنامه‌هایی که قبلاً API InputConnection.commitContent(InputContentInfo, int, Bundle) روان‌تر کرده‌اند، راحت‌تر کنیم، اگر OnReceiveContentListener هنوز توسط برنامه پیاده‌سازی نشده باشد، از آن API به عنوان یک بازگشت استفاده مجدد می‌کنیم. این بازگشتی فقط در اندروید 12 (سطح API 31) فعال است. این شناسه تغییر، بازگشت را غیرفعال می‌کند، به طوری که برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، باید OnReceiveContentListener API را اجرا کنند تا پیشنهادات غیر متنی را بپذیرند.

BLOCK_FLAG_SLIPPERY

شناسه تغییر: 157929241
حالت پیش فرض : برای همه برنامه ها فعال است.

برای برنامه‌هایی که روی Android 12 اجرا می‌شوند (سطح API 31)، بررسی می‌کند که آیا FLAG_SLIPPERY با هر پنجره‌ای در برنامه استفاده می‌شود یا خیر. ما انتظار داریم که این پرچم فقط توسط اجزای سیستم استفاده شود زیرا یک فیلد پشتیبانی نشده است. اگر چنین باشد، محدود خواهد شد.

BLOCK_GPS_STATUS_USAGE

شناسه تغییر: 144027538
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، همه استفاده‌های GpsStatus API باید با GnssStatus API جایگزین شوند.

BLOCK_IMMUTABLE_PENDING_INTENTS

شناسه تغییر: 171317480
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، غیرقابل تغییر است اشیاء PendingIntent که به APIهای مکان ارسال می شوند، یک IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

شناسه تغییر: 169887240
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، APIهای سیستم LocationRequest را نمی‌توان با درخواست‌های مکان PendingIntent استفاده کرد.

BLOCK_UNTRUSTED_TOUCHES

شناسه تغییر: 158002302
حالت پیش فرض : برای همه برنامه ها فعال است.

برای حفظ امنیت سیستم و تجربه کاربری خوب، اندروید 12 از مصرف رویدادهای لمسی در برنامه‌ها جلوگیری می‌کند، جایی که یک پوشش برنامه را به روشی ناامن مسدود می‌کند.

برای کسب اطلاعات بیشتر درباره این تغییر، به رویدادهای لمسی غیرقابل اعتماد مسدود شده‌اند مراجعه کنید.

CALL_ACTIVITY_RESULT_BEFORE_RESUME

تغییر شناسه: 78294732
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، چرخه عمر نتیجه فعالیت را تصحیح می‌کند تا تضمین کند که یک فعالیت درست قبل از ازسرگیری نتیجه فعالیت را دریافت می‌کند.

CAMERA_MIC_INDICATORS_NOT_PRESENT

شناسه تغییر: 162547999
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

نشان می دهد که این دستگاه از نشانگرهای دوربین و میکروفون پشتیبانی می کند. در صورت وجود false خواهد بود، زیرا اگر شناسه تغییر وجود نداشته باشد، متد CompatChanges#isChangeEnabled true برمی گرداند.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

شناسه تغییر: 146211400
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می‌دهند، در صورت وجود گروه‌های مجوز نادرست، مدیر بسته بسته‌ای را نصب نمی‌کند. گروه‌های مجوز فقط باید بین برنامه‌هایی که گواهی را به اشتراک می‌گذارند به اشتراک گذاشته شود. اگر مجوز متعلق به یک گروه باشد، آن گروه نیز باید تعریف شود.

CHANGE_ID_AUTH_STATE_DENIED

شناسه تغییر: 181350407
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌های سرویس گیرنده‌ای که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، هنگامی که در وضعیت مجوز رد شده هستند و تلاش می‌کنند پیامی به یک برنامه نانو ارسال کنند، یک SecurityException داده می‌شود.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

شناسه تغییر: 136069189
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، وقتی مجوز HIGH_SAMPLING_RATE_SENSORS ندارند، در حالت اشکال‌زدایی اجرا می‌شوند و نرخ‌های نمونه‌گیری سریع‌تر از 200 هرتز را درخواست می‌کنند، یک SecurityException داده می‌شود.

DELIVER_HISTORICAL_LOCATIONS

شناسه تغییر: 73144566
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، مشتریان مکان ممکن است تحت شرایطی مکان‌های تاریخی (از قبل از زمان کنونی) را دریافت کنند.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

تغییر شناسه: 181658987
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، برای تغییرات در TelephonyDisplayInfo سازگاری با عقب را فراهم می‌کند.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

شناسه تغییر: 170503758
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، پلتفرم ممکن است نرخ فریم برنامه را به مقسوم‌کننده‌ای از نرخ تازه‌سازی کاهش دهد، اگر ترجیح داده شود (به عنوان مثال، اگر برنامه به Surface.setFrameRate(float, int) فراخوانی شود). برنامه‌ها تماس‌های Choreographer.postFrameCallback(Choreographer.FrameCallback) و فشار برگشتی را با نرخ فریم پایین‌تر تجربه خواهند کرد. برنامه ها از Display.getRefreshRate() و Display.Mode.getRefreshRate() استفاده می کنند تا بدانند نرخ تازه سازی نمایشگر چقدر است. Display.getRefreshRate() همیشه نرخ فریم برنامه را برمی‌گرداند و نه نرخ تازه‌سازی فیزیکی نمایشگر را تا به برنامه‌ها اجازه دهد تا سرعت فریم را به درستی انجام دهند. Display.Mode.getRefreshRate() نرخ فریم برنامه را در صورتی که به نسخه قبلی کامپایل شده باشد برمی گرداند و با Android 12 (سطح API 31) شروع می شود، نرخ تازه سازی نمایشگر فیزیکی را برمی گرداند.

DOWNSCALED

شناسه تغییر: 168419799
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

این تغییر دروازه بان تمام تغییرات کاهش مقیاس بافر هر برنامه است. فعال کردن این تغییر باعث می‌شود فاکتورهای مقیاس‌بندی زیر اعمال شوند:

وقتی این تغییر برای یک بسته برنامه فعال می شود، اندازه برنامه به اجبار به بالاترین ضریب مقیاس پذیری فعال تغییر می کند. برای مثال، اگر هر دو 80 درصد و 70 درصد ( DOWNSCALE_80 و DOWNSCALE_70 ) فعال باشند، 80٪ استفاده می شود.

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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌های Android TV که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، انتظار می‌رود هر اندازه پنجره، از جمله اندازه‌های پنجره بزرگتر از 1080p را مدیریت کنند. برنامه هایی که نسخه های قبلی اندروید را هدف قرار می دهند انتظار ندارند ویندوز بزرگتر از 1080p دریافت کنند، بنابراین در صورت لزوم ویندوز آنها به 1080p کاهش می یابد.

DROP_CLOSE_SYSTEM_DIALOGS

تغییر شناسه: 174664120
حالت پیش فرض : برای همه برنامه ها فعال است.

برای بهبود کنترل کاربر هنگام تعامل با برنامه‌ها و سیستم، اقدام قصد ACTION_CLOSE_SYSTEM_DIALOGS از Android 12 منسوخ شده است.

برای کسب اطلاعات بیشتر درباره این تغییر، به برنامه ها نمی توانند گفتگوهای سیستم را ببندند مراجعه کنید.

ENABLE_CHECKS_FOR_PRIVATE_FILES

شناسه تغییر: 172100307
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، نمی‌توانند فایل‌های خصوصی را با استفاده از ارائه‌دهنده رسانه وارد یا به‌روزرسانی کنند.

ENABLE_DEFERRED_SCAN

شناسه تغییر: 180326732
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای به تعویق انداختن اسکنی که به عنوان بخشی از MediaProvider#update() فعال می شود، این گزینه را فعال کنید.

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

شناسه تغییر: 157233955
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، محافظت READ_PHONE_STATE در APIهایی که درخواست می‌کنند و وضعیت تماس را اعلان می‌کنند، مانند TelecomManager#getCallState ، TelephonyManager.getCallStateForSubscription() و TelephonyCallback.CallStateListener فعال می‌کند.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

شناسه تغییر: 183407956
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، محافظت‌های READ_PHONE_NUMBERS یا READ_PRIVILEGED_PHONE_STATE را در getPhoneAccount(PhoneAccountHandle) فعال می‌کند.

ENABLE_INCLUDE_ALL_VOLUMES

شناسه تغییر: 182734110
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

این گزینه را فعال کنید تا ردیف‌های پایگاه داده از فایل‌هایی را که اخیراً نصب نشده‌اند در MediaProvider#query شامل شود.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

شناسه تغییر: 178209446
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

این گزینه را فعال کنید تا به برنامه‌هایی که مجوز Manifest.permission.MANAGE_EXTERNAL_STORAGE را دارند اجازه درخواست دسترسی به حافظه خارجی خام را بدهند.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

شناسه تغییر: 185199076
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه‌هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می‌دهند، همه هشدارهای غیردقیق باید دارای حداقل اندازه پنجره باشند که انتظار می‌رود در حد چند دقیقه باشد. عملاً، هر آلارمی که به پنجره‌های کوچک‌تر نیاز دارد، همان آلارم‌های دقیق است و باید از APIهای ارائه‌شده مربوطه مانند setExact(int, long, PendingIntent) استفاده کند. هشدار غیر دقیق با پنجره‌های کوتاه‌تر مشخص شده، پنجره‌های آن‌ها توسط سیستم کشیده می‌شود.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

شناسه تغییر: 142191088
حالت پیش‌فرض : برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برنامه‌هایی که Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می‌دهند فعال است.

برای برنامه هایی که Android 12 (سطح API 31) را هدف قرار می دهند و بالاتر ، محدود می شود که برنامه ها می توانند خدمات پیش زمینه را هنگام اجرای در پس زمینه شروع کنند.

FGS_START_EXCEPTION_CHANGE_ID

شناسه تغییر: 174041399
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، سیستم را قادر می سازد اگر یک برنامه سعی در شروع سرویس پیش زمینه در هنگام کار در پس زمینه داشته باشد ، یک IllegalStateException پرتاب کند.

FINISH_INPUT_NO_FALLBACK_CONNECTION

شناسه تغییر: 156215187
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

برای برنامه هایی که Android 12 (سطح API 31) را هدف قرار می دهند و بالاتر ، هنگامی که دستگاه non-interactive می شود ، InputConnection به پایان برسانید.

اگر با 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، دسترسی به ویژگی android.icu.impl.ICUBinary.dataPath را حذف می کند.

IGNORE_ALLOW_BACKUP_IN_D2D

شناسه تغییر: 183147249
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، android:allowBackup برای برنامه ها در هنگام مهاجرت دستگاه به دستگاه (D2D) نادیده گرفته می شود.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

شناسه تغییر: 180523564
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) را هدف قرار می دهند و بالاتر ، قوانین مشخص شده با استفاده از android:fullBackupContent در هنگام انتقال دستگاه به دستگاه (D2D) نادیده گرفته می شود.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

شناسه تغییر: 169273070
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، getSupportedLocales() اکنون به جای محل پیش فرض سیستم ، لیست محلی خالی را در هنگام تنظیم قرار نمی دهد.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

شناسه تغییر: 158482162
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، اجازه BACKUP مورد نیاز برای isBackupServiceActive() در سمت سرویس به جای مشتری در BackupManager اجرا می شود.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

شناسه تغییر: 169897160
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال بودن ، ممکن است با توجه به استراتژی هرس جدید ، ایجاد عملیات Keystore ممکن است شکست بخورد. Keystore قبلاً تحت این فرض کار می کرد که ایجاد عملیات رمزنگاری همیشه موفق می شود. با این حال ، پس زمینه KEYMINT فقط تعداد محدودی از شکاف های عملیاتی دارد.

به منظور حفظ ظاهر شکافهای عملیاتی "بی نهایت" ، Daemon Keystore در صورت عدم وجود شکاف عملیاتی در دسترس ، حداقل عملیات را که اخیراً استفاده می شود ، هرس می کند. در نتیجه ، عملیات خوب می تواند زودرس خاتمه یابد. این کار AndroidKeyStore را تا انکار سرویس (DOS) و LiveLock ناخواسته باز کرد. به عنوان مثال ، اگر چندین برنامه به دلیل بهینه سازی مدیریت انرژی در همان زمان از خواب بیدار شوند و سعی در انجام عملیات رمزنگاری داشته باشند ، آنها بدون هیچ گونه پیشرفتی شروع به خاتمه عملیات دیگران می کنند.

برای از بین بردن معیشت و دلسرد کردن تلاشهای DOS ، ما استراتژی هرس را به گونه ای تغییر داده ایم که مشتریانی را که به طور خلاصه از اسلات های عملیاتی استفاده می کنند ، ترجیح می دهد. در نتیجه ، عملیات منفرد که بیش از 5 ثانیه غیرفعال نمی شوند ، تقریباً همیشه از استراتژی هرس خارج نمی شوند. هنوز برخی از عملیات مربوط به رمزگذاری سیستم فایل وجود دارد که حتی می توانند این عملیات را هرس کنند ، اما این موارد بسیار نادر است. به عنوان یک عارضه جانبی این عملیات استراتژی جدید هرس ، در صورتی که مشتری از قدرت هرس کمتری نسبت به همه عملیات های موجود برخوردار باشد ، می تواند ایجاد شود.

استراتژی هرس : برای یافتن نامزد مناسب ، ما مالوس را برای تماس گیرنده و هر عملیات موجود محاسبه می کنیم. مالوس معکوس قدرت هرس (تماس گیرنده) یا مقاومت هرس (عملیات موجود) است. برای اینکه تماس گیرنده بتواند یک عمل را هرس کند ، باید عملیاتی را با مالوس بالاتر از خودش پیدا کند. برای اطلاعات بیشتر در مورد استراتژی هرس ، به اجرای operation.rs مراجعه کنید. در Android 11 (API سطح 30) و پایین ، KeyStore2 Daemon Keystore را برای یک شکاف عملکرد رایگان نظرسنجی می کند. برای برنامه هایی که Android 11 (API سطح 30) و پایین تر را هدف قرار می دهند ، هنوز هم مانند رمزگذاری رمز و امضای شیء شروع می شود همیشه موفق می شود - هرچند ، ممکن است برای انجام یک عملیات بیشتر طول بکشد. همه نسخه های Android از برنامه ریزی اسلات عملکرد عادلانه تر و فرصت بهتری برای نتیجه گیری با موفقیت در یک عملیات بهره مند می شوند.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

شناسه تغییر: 174664365
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، Intent.ACTION_CLOSE_SYSTEM_DIALOGS نمی تواند ارسال شود مگر اینکه برنامه همچنین دارای اجازه android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS باشد. توجه داشته باشید که این نسخه محدودتر از #DROP_CLOSE_SYSTEM_DIALOGS است که انتظار دارد برنامه پس از شروع Intent.ACTION_CLOSE_SYSTEM_DIALOGS ، Android 12 (سطح API 31) یا بالاتر را هدف قرار دهد.

LOCK_DOWN_COLLAPSE_STATUS_BAR

شناسه تغییر: 173031413
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، مجوز Manifest.permission.STATUS_BAR به دلیل دلایل امنیتی برای فروپاشی پانل های نوار وضعیت لازم است. این مورد توسط بدافزار مورد سوء استفاده قرار گرفت تا از دسترسی کاربر به اعلان های مهم جلوگیری شود.

LOW_POWER_EXCEPTIONS

شناسه تغییر: 168936375
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، تمام اشیاء LocationRequest که به عنوان استثنائات پرتاب انرژی کم مشخص می شوند ، اگر تماس گیرنده مجوز LOCATION_HARDWARE نداشته باشد ، به جای اینکه ساکت قسمت کم قدرت درخواست را رها کند.

MISSING_EXPORTED_FLAG

شناسه تغییر: 150232615
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، باید یک مقدار صریح برای android:exported هر زمان که یک فیلتر هدف تعریف شود.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به صادر کردن ایمن تر اجزای سازنده مراجعه کنید.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

شناسه تغییر: 207557677
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 32) و تخصیص پشته های بالاتر در فرآیند AppZygote را هدف قرار می دهند و فرزندان آن در مهمترین بایت از یک برچسب غیر صفر استفاده می کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به نشانگرهای برچسب خورده مراجعه کنید.

NATIVE_HEAP_ZERO_INIT

شناسه تغییر: 178038272
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

فعال کردن صفر اولیه سازی خودکار تخصیص حافظه هیپ بومی.

NATIVE_MEMTAG_ASYNC

شناسه تغییر: 135772972
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه ناهمزمان (ASYNC) را در این فرآیند فعال کنید. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد.

NATIVE_MEMTAG_SYNC

شناسه تغییر: 177438394
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه همزمان (SYNC) را در این فرآیند فعال می کند. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد. اگر هم NATIVE_MEMTAG_ASYNC و هم این گزینه فعال باشند، این گزینه اولویت دارد و MTE در حالت SYNC فعال می شود.

NEVER_SANDBOX_DISPLAY_APIS

شناسه تغییر: 184838306
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال شدن ، از استفاده از جعبه ماسهبازی API جلوگیری می کند که به یک جعبه نامه یا فعالیت SCM اعمال شود. API های نمایشگر به ارائه مرزهای DisplayArea ادامه خواهند داد.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به بخش در صفحه تغییر رفتار Android 12 در مورد روشهای نمایشگر که مستهلک شده اند ، مراجعه کنید.

NOTIFICATION_CANCELLATION_REASONS

شناسه تغییر: 175319604
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

به شنوندگان اعلان اجازه می دهد تا دلایل جدید لغو را که خاص تر هستند درک کنند.

NOTIFICATION_TRAMPOLINE_BLOCK

شناسه تغییر: 167676448
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای بهبود عملکرد برنامه و UX ، برنامه هایی که Android 12 را هدف قرار می دهند نمی توانند از خدمات یا گیرنده های پخش به عنوان ترامپولین های اعلان استفاده کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، مراجعه کنید به ترامپولین های اعلان از خدمات یا گیرنده های پخش نمی توان ایجاد کرد .

NULL_TELEPHONY_THROW_NO_CB

شناسه تغییر: 182185642
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای بررسی اینکه آیا نسخه SDK هدف برای فرآیند فعلی Android 12 (API سطح 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، باید تغییرپذیری هر شیء PendingIntent را که برنامه شما ایجاد می کند ، مشخص کنید. این نیاز اضافی امنیت برنامه شما را بهبود می بخشد.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به اهداف در انتظار باید تغییر دهید .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

شناسه تغییر: 165573442
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برنامه های سرپرست هدف قرار دادن Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار setAlarmClock(AlarmClockInfo, PendingIntent) دهند ، برنامه ها باید دارای مجوز Manifest.permission.SCHEDULE_EXACT_ALARM setExactAndAllowWhileIdle(int, long, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

شناسه تغییر: 182478738
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، برنامه ها باید دارای مجوز Manifest.permission.READ_PHONE_STATE Permission.Read_Phone_State برای تماس با TelephonyCallback.ActiveDataSubscriptionIdListener باشند.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

شناسه تغییر: 184323934
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، برنامه ها باید دارای مجوز Manifest.permission.READ_PHONE_STATE برای تماس با TelephonyCallback.CellInfoListener باشند.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

شناسه تغییر: 183164979
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، برنامه ها باید دارای مجوز Manifest.permission.READ_PHONE_STATE Permission.Read_Phone_State برای تماس با TelephonyCallback.DisplayInfoListener باشند.

RESTRICT_ADB_BACKUP

شناسه تغییر: 171032338
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، adb backup به طور خودکار برای برنامه هایی که به صورت اشکال زدایی ( android:debuggable تنظیم شده به true ) روشن می شوند و برای هر برنامه دیگر در دسترس نیست.

RESTRICT_DOMAINS

شناسه تغییر: 175408749
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، فرم به روز شده API تأیید پیوندهای برنامه مورد نیاز است. این نیاز به معنای این است که یک برنامه باید دامنه ها را در داخل یک فیلتر قصد اعلام کند که شامل موارد زیر است:

  • 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) را هدف قرار می دهند و بالاتر ، این امر را اجرا می کند که کلیه attributionTags ارسال شده به noteOp(String, int, String) ، noteProxyOp(String, String) و startOp(String, int, String) در مانیفست بسته ای تعریف می شوند که به عنوان پارامتر روش ها مشخص شده است.

برای فعال کردن این تغییر ، هر دو noteOp(String, int, String) و همچنین بسته مشخص شده به عنوان پارامتر روش باید این تغییر را فعال کنند.

SELINUX_LATEST_CHANGES

شناسه تغییر: 143539591
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، به آخرین تغییرات Selinux انتخاب می کنند. خاموش کردن این تغییر برای برنامه ای که Android 12 (API سطح 31) یا بالاتر را هدف قرار می دهد ، یک OP است. هیچ تاثیری برای برنامه هایی که از شناسه کاربر مشترک استفاده می کنند ندارد.

SETTINGS_API_V2

شناسه تغییر: 178111421
حالت پیش فرض : برای همه برنامه ها فعال است.

API ترجیح کاربر جدید برای تأیید دامنه های مشخص شده autoVerify=true در فیلترهای AndroidManifest.xml هنوز در پیش نمایش پلت فرم فعلی اجرا نشده است. در حال حاضر ، می توان با فعال کردن این تغییر و استفاده از adb shell pm set-app-links-user-selection و دستورات مشابه ، تغییرات اولویت کاربر را پیش نمایش کرد.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

شناسه تغییر: 183972877
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، تعیین می کند که آیا قبل از بالا بردن سطل آماده به ACTIVE در هنگام شروع برنامه ها یک سرویس پیش زمینه ، از یک زمان کوتاهتر استفاده کنید.

،
شکل 1 . صفحه تغییرات سازگاری برنامه در گزینه‌های برنامه‌نویس، تغییراتی را که می‌توانید تغییر دهید فهرست می‌کند.

در این صفحه هر تغییر رفتاری که بخشی از چارچوب سازگاری در اندروید 12 است (API سطح 31) توصیف می کند. از این لیست در رابطه با گزینه های توسعه دهنده و دستورات ADB استفاده کنید تا برنامه خود را هنگام آماده سازی و هدف قرار دادن Android 12 آزمایش و اشکال زدایی کنید.

در اینجا برخی از کارهایی وجود دارد که می توانید با استفاده از ابزارهای چارچوب سازگاری انجام دهید:

  • تغییرات هدفمند را بدون تغییر در targetSdkVersion برنامه آزمایش کنید . می‌توانید از دکمه‌ها برای فعال کردن تغییرات رفتار هدفمند خاص برای ارزیابی تأثیر بر برنامه موجود خود استفاده کنید.
  • آزمایش خود را فقط بر روی تغییرات خاص متمرکز کنید . به جای پرداختن به همه تغییرات هدفمند به یکباره، ضامن ها به شما این امکان را می دهند که همه تغییرات هدفمند را غیرفعال کنید، به جز آنهایی که می خواهید آنها را آزمایش کنید.
  • ضامن ها را از طریق adb مدیریت کنید . می توانید از دستورات adb برای فعال و غیرفعال کردن تغییرات قابل تغییر در محیط تست خودکار خود استفاده کنید.
  • با استفاده از شناسه های تغییر استاندارد سریعتر اشکال زدایی کنید . تغییرات قابل تغییر هر کدام یک شناسه و نام منحصر به فرد دارند که می توانید از آنها برای رفع سریع علت اصلی در خروجی گزارش استفاده کنید.

برای جزئیات کامل در مورد استفاده از ابزار برای هر یک از این موارد استفاده، به ابزارهای چارچوب سازگاری مراجعه کنید.

تغییرات رفتاری که در چارچوب سازگاری گنجانده شده است

لیست در این بخش هر تغییر رفتاری را که در چارچوب سازگاری در اندروید 12 گنجانده شده است ، شرح می دهد.

می توانید لیست تغییرات را بر اساس حالت پیش فرض فیلتر کنید.

تغییرات رفتار به چارچوب سازگاری در Android 12 اضافه شده است

ALWAYS_SANDBOX_DISPLAY_APIS

شناسه تغییر: 185004937
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال بودن ، بدون در نظر گرفتن حالت پنجره ، ماسه جعبه API را روی یک بسته بندی قرار می دهد. API های نمایش همیشه مرزهای برنامه را ارائه می دهند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به بخش در صفحه تغییر رفتار Android 12 در مورد روشهای نمایشگر که مستهلک شده اند ، مراجعه کنید.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

شناسه تغییر: 163400105
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می دهند ، فعال می شود.

با شروع Android 12 ، این پلتفرم می تواند با استفاده از چارچوب Autofill تقویت شده ، پیشنهادات غیر متن (مانند تصاویر) را ارائه دهد (به خدمات Autofill مراجعه کنید). برای اینکه یک برنامه بتواند این پیشنهادات را اداره کند ، باید به طور عادی API OnReceiveContentListener پیاده سازی کند.

برای اتخاذ این API نرم تر برای برنامه هایی که قبلاً InputConnection.commitContent(InputContentInfo, int, Bundle) API را پیاده سازی کرده اند ، ما از API به عنوان یک بازپرداخت اگر OnReceiveContentListener هنوز توسط برنامه اجرا نشده باشد ، استفاده می کنیم. این بازگشت فقط در Android 12 (API سطح 31) فعال است. این شناسه تغییر ، برگشتی را غیرفعال می کند ، به گونه ای که برنامه هایی که Android 12 (API سطح 32) و بالاتر را هدف قرار می دهند ، باید API OnReceiveContentListener را به منظور پذیرش پیشنهادات غیر متنی پیاده سازی کنند.

BLOCK_FLAG_SLIPPERY

شناسه تغییر: 157929241
حالت پیش فرض : برای همه برنامه ها فعال است.

برای برنامه هایی که در Android 12 (API سطح 31) اجرا می شوند ، بررسی می کنند که آیا FLAG_SLIPPERY با هر ویندوز در برنامه استفاده می شود. ما انتظار داریم که این پرچم فقط توسط اجزای سیستم مورد استفاده قرار گیرد زیرا یک زمینه پشتیبانی نشده است. اگر چنین است ، محدود خواهد شد.

BLOCK_GPS_STATUS_USAGE

شناسه تغییر: 144027538
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، تمام استفاده از GpsStatus API باید با API GnssStatus جایگزین شود.

BLOCK_IMMUTABLE_PENDING_INTENTS

شناسه تغییر: 171317480
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر ، تغییر ناپذیر را هدف قرار می دهند اشیاء PendingIntent که به API های مکان منتقل می شوند ، یک IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

شناسه تغییر: 169887240
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، API های سیستم LocationRequest با درخواست های موقعیت مکانی PendingIntent استفاده نمی شوند.

BLOCK_UNTRUSTED_TOUCHES

تغییر شناسه: 158002302
حالت پیش فرض : برای همه برنامه ها فعال است.

برای حفظ امنیت سیستم و یک تجربه کاربری خوب ، Android 12 مانع از مصرف برنامه ها از رویدادهای لمسی می شود که در آن یک پوشش برنامه را به روشی ناامن مسدود می کند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، ببینید که رویدادهای لمسی غیرقابل اعتماد مسدود می شوند .

CALL_ACTIVITY_RESULT_BEFORE_RESUME

شناسه تغییر: 78294732
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می دهند ، چرخه حیات نتیجه فعالیت را تصحیح می کند تا تضمین کند که یک فعالیت قبل از رزومه نتیجه فعالیت را بدست می آورد.

CAMERA_MIC_INDICATORS_NOT_PRESENT

شناسه تغییر: 162547999
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

نشان می دهد که این دستگاه از نشانگرهای دوربین و میکروفون پشتیبانی می کند. در صورت وجود false خواهد بود، زیرا اگر شناسه تغییر وجود نداشته باشد، متد CompatChanges#isChangeEnabled true برمی گرداند.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

شناسه تغییر: 146211400
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 32) و بالاتر را هدف قرار می دهند ، مدیر بسته در صورت وجود گروه های مجوز ناهنجاری ، بسته ای را نصب نمی کند. گروه های مجوز فقط باید بین برنامه هایی که دارای گواهی هستند به اشتراک گذاشته شوند. اگر یک مجوز متعلق به یک گروه باشد ، باید آن گروه نیز تعریف شود.

CHANGE_ID_AUTH_STATE_DENIED

شناسه تغییر: 181350407
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه های مشتری که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، SecurityException هنگامی که در حالت مجوز تکذیب قرار می گیرند ، پرتاب می شوند و سعی می کنند پیام را به NanoApp ارسال کنند.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

شناسه تغییر: 136069189
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، SecurityException در صورت عدم مجوز HIGH_SAMPLING_RATE_SENSORS ، در حالت اشکال زدایی اجرا نمی شود و نرخ نمونه برداری را سریعتر از 200 هرتز درخواست می کند.

DELIVER_HISTORICAL_LOCATIONS

شناسه تغییر: 73144566
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، مشتری های موقعیت مکانی ممکن است در برخی شرایط مکان های تاریخی (از قبل از زمان فعلی) دریافت کنند.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

شناسه تغییر: 181658987
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، سازگاری به عقب را برای تغییر در TelephonyDisplayInfo فراهم می کند.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

شناسه تغییر: 170503758
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، این پلتفرم ممکن است در صورت ترجیح تر ، نرخ فریم برنامه را به یک تقسیم کننده نرخ تازه تبدیل کند (برای مثال ، اگر برنامه ای به Surface.setFrameRate(float, int) گفته شود). برنامه ها با تماس تلفنی و فشرده سازی برگشتی و فشار خون در نرخ فریم لرزه Choreographer.postFrameCallback(Choreographer.FrameCallback) را تجربه می کنند. برنامه ها از Display.getRefreshRate() و Display.Mode.getRefreshRate() استفاده می کنند تا بدانند نرخ تازه سازی نمایشگر چیست. Display.getRefreshRate() همیشه نرخ فریم برنامه را برمی گرداند و نه نرخ تازه کردن نمایشگر فیزیکی برای برنامه ها اجازه می دهد تا قدم زدن فریم را به درستی انجام دهند. Display.Mode.getRefreshRate() در صورت تهیه نسخه قبلی ، نرخ فریم برنامه را برمی گرداند و با Android 12 (سطح API 31) شروع می شود ، این نرخ تازه سازی نمایشگر فیزیکی را برمی گرداند.

DOWNSCALED

شناسه تغییر: 168419799
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

این تغییر دروازه بان تمام تغییرات کاهش مقیاس بافر هر برنامه است. فعال کردن این تغییر باعث می‌شود فاکتورهای مقیاس‌بندی زیر اعمال شوند:

وقتی این تغییر برای یک بسته برنامه فعال می شود، اندازه برنامه به اجبار به بالاترین ضریب مقیاس پذیری فعال تغییر می کند. برای مثال، اگر هر دو 80 درصد و 70 درصد ( DOWNSCALE_80 و DOWNSCALE_70 ) فعال باشند، 80٪ استفاده می شود.

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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برنامه های تلویزیونی Android که Android 12 (API سطح 31) را هدف قرار می دهند و بالاتر از هر اندازه پنجره ، از جمله اندازه پنجره بیشتر از 1080p ، انتظار می رود. برنامه هایی که نسخه های قبلی Android را هدف قرار می دهند انتظار ندارند ویندوز بزرگتر از 1080p دریافت کنند ، بنابراین ویندوز آنها در صورت لزوم به 1080p کاهش می یابد.

DROP_CLOSE_SYSTEM_DIALOGS

شناسه تغییر: 174664120
حالت پیش فرض : برای همه برنامه ها فعال است.

برای بهبود کنترل کاربر در هنگام تعامل با برنامه ها و سیستم ، عمل قصد ACTION_CLOSE_SYSTEM_DIALOGS از نظر Android 12 کاهش می یابد.

برای کسب اطلاعات بیشتر در مورد این تغییر ، ببینید برنامه ها نمی توانند گفتگوی سیستم را ببندند .

ENABLE_CHECKS_FOR_PRIVATE_FILES

شناسه تغییر: 172100307
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، نمی توانند پرونده های خصوصی را با استفاده از ارائه دهنده رسانه وارد یا به روز کنند.

ENABLE_DEFERRED_SCAN

شناسه تغییر: 180326732
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

این گزینه را فعال کنید تا اسکن را که به عنوان بخشی از MediaProvider#update() ایجاد شده است ، به تعویق بیندازید.

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

شناسه تغییر: 157233955
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، محافظت READ_PHONE_STATE در پرس و جو APIS و اطلاع رسانی به وضعیت تماس ، مانند TelecomManager#getCallState ، TelephonyManager.getCallStateForSubscription() و TelephonyCallback.CallStateListener امکان پذیر می کند.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

شناسه تغییر: 183407956
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، READ_PHONE_NUMBERS یا READ_PRIVILEGED_PHONE_STATE را در getPhoneAccount(PhoneAccountHandle) فعال می کند.

ENABLE_INCLUDE_ALL_VOLUMES

شناسه تغییر: 182734110
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

این گزینه را فعال کنید تا ردیف های پایگاه داده از پرونده ها را از یک جلد اخیراً بدون طرح در MediaProvider#query درج کنید.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

شناسه تغییر: 178209446
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

این گزینه را فعال کنید تا به برنامه هایی که دارای Manifest.permission.MANAGE_EXTERNAL_STORAGE .Permission.Manage_External_Storage برای درخواست دسترسی به ذخیره خارجی خام هستند اجازه دهید.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

شناسه تغییر: 185199076
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، تمام آلارم های ناچیز لازم است که حداقل اندازه پنجره داشته باشند ، انتظار می رود که به ترتیب چند دقیقه باشد. از نظر عملی ، هر هشدار دهنده ای که به ویندوزهای کوچکتر نیاز دارند همان هشدارهای دقیق هستند و باید از API های مربوطه ارائه شده مانند setExact(int, long, PendingIntent) استفاده کنند. زنگ هشدار با ویندوزهای کوتاهتر مشخص شده ویندوزهای خود را توسط سیستم دراز می کند.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

شناسه تغییر: 142191088
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برنامه هایی که Android 12 (API سطح 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) را هدف قرار می دهند و بالاتر ، محدود می شود که برنامه ها می توانند خدمات پیش زمینه را هنگام اجرای در پس زمینه شروع کنند.

FGS_START_EXCEPTION_CHANGE_ID

شناسه تغییر: 174041399
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، سیستم را قادر می سازد اگر یک برنامه سعی در شروع سرویس پیش زمینه در هنگام کار در پس زمینه داشته باشد ، یک IllegalStateException پرتاب کند.

FINISH_INPUT_NO_FALLBACK_CONNECTION

شناسه تغییر: 156215187
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

برای برنامه هایی که Android 12 (سطح API 31) را هدف قرار می دهند و بالاتر ، هنگامی که دستگاه non-interactive می شود ، InputConnection به پایان برسانید.

اگر با 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، دسترسی به ویژگی android.icu.impl.ICUBinary.dataPath را حذف می کند.

IGNORE_ALLOW_BACKUP_IN_D2D

شناسه تغییر: 183147249
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، android:allowBackup برای برنامه ها در هنگام مهاجرت دستگاه به دستگاه (D2D) نادیده گرفته می شود.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

شناسه تغییر: 180523564
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) را هدف قرار می دهند و بالاتر ، قوانین مشخص شده با استفاده از android:fullBackupContent در هنگام انتقال دستگاه به دستگاه (D2D) نادیده گرفته می شود.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

شناسه تغییر: 169273070
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، getSupportedLocales() اکنون به جای محل پیش فرض سیستم ، لیست محلی خالی را در هنگام تنظیم قرار نمی دهد.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

شناسه تغییر: 158482162
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، اجازه BACKUP مورد نیاز برای isBackupServiceActive() در سمت سرویس به جای مشتری در BackupManager اجرا می شود.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

شناسه تغییر: 169897160
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال بودن ، ممکن است با توجه به استراتژی هرس جدید ، ایجاد عملیات Keystore ممکن است شکست بخورد. Keystore قبلاً تحت این فرض کار می کرد که ایجاد عملیات رمزنگاری همیشه موفق می شود. با این حال ، پس زمینه KEYMINT فقط تعداد محدودی از شکاف های عملیاتی دارد.

به منظور حفظ ظاهر شکافهای عملیاتی "بی نهایت" ، Daemon Keystore در صورت عدم وجود شکاف عملیاتی در دسترس ، حداقل عملیات را که اخیراً استفاده می شود ، هرس می کند. در نتیجه ، عملیات خوب می تواند زودرس خاتمه یابد. این کار AndroidKeyStore را تا انکار سرویس (DOS) و LiveLock ناخواسته باز کرد. به عنوان مثال ، اگر چندین برنامه به دلیل بهینه سازی مدیریت انرژی در همان زمان از خواب بیدار شوند و سعی در انجام عملیات رمزنگاری داشته باشند ، آنها بدون هیچ گونه پیشرفتی شروع به خاتمه عملیات دیگران می کنند.

برای از بین بردن معیشت و دلسرد کردن تلاشهای DOS ، ما استراتژی هرس را به گونه ای تغییر داده ایم که مشتریانی را که به طور خلاصه از اسلات های عملیاتی استفاده می کنند ، ترجیح می دهد. در نتیجه ، عملیات منفرد که بیش از 5 ثانیه غیرفعال نمی شوند ، تقریباً همیشه از استراتژی هرس خارج نمی شوند. هنوز برخی از عملیات مربوط به رمزگذاری سیستم فایل وجود دارد که حتی می توانند این عملیات را هرس کنند ، اما این موارد بسیار نادر است. به عنوان یک عارضه جانبی این عملیات استراتژی جدید هرس ، در صورتی که مشتری از قدرت هرس کمتری نسبت به همه عملیات های موجود برخوردار باشد ، می تواند ایجاد شود.

استراتژی هرس : برای یافتن نامزد مناسب ، ما مالوس را برای تماس گیرنده و هر عملیات موجود محاسبه می کنیم. مالوس معکوس قدرت هرس (تماس گیرنده) یا مقاومت هرس (عملیات موجود) است. برای اینکه تماس گیرنده بتواند یک عمل را هرس کند ، باید عملیاتی را با مالوس بالاتر از خودش پیدا کند. برای اطلاعات بیشتر در مورد استراتژی هرس ، به اجرای operation.rs مراجعه کنید. در Android 11 (API سطح 30) و پایین ، KeyStore2 Daemon Keystore را برای یک شکاف عملکرد رایگان نظرسنجی می کند. برای برنامه هایی که Android 11 (API سطح 30) و پایین تر را هدف قرار می دهند ، هنوز هم مانند رمزگذاری رمز و امضای شیء شروع می شود همیشه موفق می شود - هرچند ، ممکن است برای انجام یک عملیات بیشتر طول بکشد. همه نسخه های Android از برنامه ریزی اسلات عملکرد عادلانه تر و فرصت بهتری برای نتیجه گیری با موفقیت در یک عملیات بهره مند می شوند.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

شناسه تغییر: 174664365
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، Intent.ACTION_CLOSE_SYSTEM_DIALOGS نمی تواند ارسال شود مگر اینکه برنامه همچنین دارای اجازه android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS باشد. توجه داشته باشید که این نسخه محدودتر از #DROP_CLOSE_SYSTEM_DIALOGS است که انتظار دارد برنامه پس از شروع Intent.ACTION_CLOSE_SYSTEM_DIALOGS ، Android 12 (سطح API 31) یا بالاتر را هدف قرار دهد.

LOCK_DOWN_COLLAPSE_STATUS_BAR

شناسه تغییر: 173031413
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، مجوز Manifest.permission.STATUS_BAR به دلیل دلایل امنیتی برای فروپاشی پانل های نوار وضعیت لازم است. این مورد توسط بدافزار مورد سوء استفاده قرار گرفت تا از دسترسی کاربر به اعلان های مهم جلوگیری شود.

LOW_POWER_EXCEPTIONS

شناسه تغییر: 168936375
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، تمام اشیاء LocationRequest که به عنوان استثنائات پرتاب انرژی کم مشخص می شوند ، اگر تماس گیرنده مجوز LOCATION_HARDWARE نداشته باشد ، به جای اینکه ساکت قسمت کم قدرت درخواست را رها کند.

MISSING_EXPORTED_FLAG

شناسه تغییر: 150232615
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار می دهند ، باید یک مقدار صریح برای android:exported هر زمان که یک فیلتر هدف تعریف شود.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به صادر کردن ایمن تر اجزای سازنده مراجعه کنید.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

شناسه تغییر: 207557677
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 32) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 32) و تخصیص پشته های بالاتر در فرآیند AppZygote را هدف قرار می دهند و فرزندان آن در مهمترین بایت از یک برچسب غیر صفر استفاده می کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به نشانگرهای برچسب خورده مراجعه کنید.

NATIVE_HEAP_ZERO_INIT

شناسه تغییر: 178038272
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

فعال کردن صفر اولیه سازی خودکار تخصیص حافظه هیپ بومی.

NATIVE_MEMTAG_ASYNC

شناسه تغییر: 135772972
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه ناهمزمان (ASYNC) را در این فرآیند فعال کنید. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد.

NATIVE_MEMTAG_SYNC

شناسه تغییر: 177438394
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه همزمان (SYNC) را در این فرآیند فعال می کند. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد. اگر هم NATIVE_MEMTAG_ASYNC و هم این گزینه فعال باشند، این گزینه اولویت دارد و MTE در حالت SYNC فعال می شود.

NEVER_SANDBOX_DISPLAY_APIS

شناسه تغییر: 184838306
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

در صورت فعال شدن ، از استفاده از جعبه ماسهبازی API جلوگیری می کند که به یک جعبه نامه یا فعالیت SCM اعمال شود. API های نمایشگر به ارائه مرزهای DisplayArea ادامه خواهند داد.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به بخش در صفحه تغییر رفتار Android 12 در مورد روشهای نمایشگر که مستهلک شده اند ، مراجعه کنید.

NOTIFICATION_CANCELLATION_REASONS

شناسه تغییر: 175319604
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

به شنوندگان اعلان اجازه می دهد تا دلایل جدید لغو را که خاص تر هستند درک کنند.

NOTIFICATION_TRAMPOLINE_BLOCK

شناسه تغییر: 167676448
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای بهبود عملکرد برنامه و UX ، برنامه هایی که Android 12 را هدف قرار می دهند نمی توانند از خدمات یا گیرنده های پخش به عنوان ترامپولین های اعلان استفاده کنند.

برای کسب اطلاعات بیشتر در مورد این تغییر ، مراجعه کنید به ترامپولین های اعلان از خدمات یا گیرنده های پخش نمی توان ایجاد کرد .

NULL_TELEPHONY_THROW_NO_CB

شناسه تغییر: 182185642
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای بررسی اینکه آیا نسخه SDK هدف برای فرآیند فعلی Android 12 (API سطح 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، باید تغییرپذیری هر شیء PendingIntent را که برنامه شما ایجاد می کند ، مشخص کنید. این نیاز اضافی امنیت برنامه شما را بهبود می بخشد.

برای کسب اطلاعات بیشتر در مورد این تغییر ، به اهداف در انتظار باید تغییر دهید .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

شناسه تغییر: 165573442
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برنامه های سرپرست هدف قرار دادن Android 12 (سطح API 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 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (API سطح 31) و بالاتر را هدف قرار setAlarmClock(AlarmClockInfo, PendingIntent) دهند ، برنامه ها باید دارای مجوز Manifest.permission.SCHEDULE_EXACT_ALARM setExactAndAllowWhileIdle(int, long, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

شناسه تغییر: 182478738
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

برای برنامه هایی که Android 12 (سطح API 31) و بالاتر را هدف قرار می دهند ، برنامه ها باید دارای مجوز Manifest.permission.READ_PHONE_STATE Permission.Read_Phone_State برای تماس با TelephonyCallback.ActiveDataSubscriptionIdListener باشند.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

شناسه تغییر: 184323934
حالت پیش فرض : برای برنامه هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می دهند ، فعال می شود.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.CellInfoListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

Change ID: 183164979
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.DisplayInfoListener .

RESTRICT_ADB_BACKUP

Change ID: 171032338
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, adb backup is automatically turned on for apps running as debuggable ( android:debuggable set to true ) and unavailable to any other apps.

RESTRICT_DOMAINS

Change ID: 175408749
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the updated form of the app links verification API is required. This requirement means an app must declare domains inside an intent filter that includes all of the following:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • Only IntentFilter.SCHEME_HTTP and/or IntentFilter.SCHEME_HTTPS , with no other schemes

On prior versions of Android, Intent.CATEGORY_BROWSABLE was not a requirement, other schemes were allowed, and setting autoVerify to true in any intent filter would implicitly pretend that all intent filters were set to autoVerify="true" .

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

Change ID: 151105954
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enforces that all attributionTags sent to noteOp(String, int, String) , noteProxyOp(String, String) , and startOp(String, int, String) are defined in the manifest of the package that is specified as a parameter of the methods.

To enable this change, both the package calling noteOp(String, int, String) as well as the package specified as a parameter of the method must have this change enabled.

SELINUX_LATEST_CHANGES

Change ID: 143539591
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, opts in to the latest SELinux changes. Turning this change off for an app targeting Android 12 (API level 31) or higher is a no-op. Has no effect for apps that use a shared user id.

SETTINGS_API_V2

Change ID: 178111421
حالت پیش فرض : برای همه برنامه ها فعال است.

The new user preference API for verifying domains marked autoVerify=true in AndroidManifest.xml intent filters is not yet implemented in the current platform preview. For now, it is possible to preview the new user preference changes by enabling this ChangeId and using the adb shell pm set-app-links-user-selection and similar commands.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

Change ID: 183972877
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, determines whether to use a shorter timeout before elevating the standby bucket to ACTIVE when apps start a foreground service.

،
شکل 1 . صفحه تغییرات سازگاری برنامه در گزینه‌های برنامه‌نویس، تغییراتی را که می‌توانید تغییر دهید فهرست می‌کند.

This page describes each behavior change that is part of the compatibility framework in Android 12 (API level 31). Use this list in conjunction with the developer options and ADB commands to test and debug your app as you prepare to support and target Android 12.

در اینجا برخی از کارهایی وجود دارد که می توانید با استفاده از ابزارهای چارچوب سازگاری انجام دهید:

  • تغییرات هدفمند را بدون تغییر در targetSdkVersion برنامه آزمایش کنید . می‌توانید از دکمه‌ها برای فعال کردن تغییرات رفتار هدفمند خاص برای ارزیابی تأثیر بر برنامه موجود خود استفاده کنید.
  • آزمایش خود را فقط بر روی تغییرات خاص متمرکز کنید . به جای پرداختن به همه تغییرات هدفمند به یکباره، ضامن ها به شما این امکان را می دهند که همه تغییرات هدفمند را غیرفعال کنید، به جز آنهایی که می خواهید آنها را آزمایش کنید.
  • ضامن ها را از طریق adb مدیریت کنید . می توانید از دستورات adb برای فعال و غیرفعال کردن تغییرات قابل تغییر در محیط تست خودکار خود استفاده کنید.
  • با استفاده از شناسه های تغییر استاندارد سریعتر اشکال زدایی کنید . تغییرات قابل تغییر هر کدام یک شناسه و نام منحصر به فرد دارند که می توانید از آنها برای رفع سریع علت اصلی در خروجی گزارش استفاده کنید.

برای جزئیات کامل در مورد استفاده از ابزار برای هر یک از این موارد استفاده، به ابزارهای چارچوب سازگاری مراجعه کنید.

تغییرات رفتاری که در چارچوب سازگاری گنجانده شده است

The list in this section describes each behavior change that is included in the compatibility framework in Android 12.

می توانید لیست تغییرات را بر اساس حالت پیش فرض فیلتر کنید.

Behavior changes added to the compatibility framework in Android 12

ALWAYS_SANDBOX_DISPLAY_APIS

Change ID: 185004937
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

When enabled, applies Display API sandboxing to a package regardless of windowing mode. The Display APIs will always provide the app bounds.

To learn more about this change, see the section in the Android 12 behavior changes page about Display methods that were deprecated .

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

Change ID: 163400105
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

Starting in Android 12, the platform can provide non-text suggestions (such as images) using the augmented autofill framework (see autofill services ). In order for an app to be able to handle these suggestions, it must normally implement the OnReceiveContentListener API.

To make the adoption of this API smoother for apps that have previously implemented the InputConnection.commitContent(InputContentInfo, int, Bundle) API, we reuse that API as a fallback if OnReceiveContentListener is not yet implemented by the app. This fallback is only enabled on Android 12 (API level 31). This change ID disables the fallback, such that apps targeting Android 12 (API level 32) and above must implement the OnReceiveContentListener API in order to accept non-text suggestions.

BLOCK_FLAG_SLIPPERY

Change ID: 157929241
حالت پیش فرض : برای همه برنامه ها فعال است.

For apps running on Android 12 (API level 31), checks if FLAG_SLIPPERY is being used with any windows in the app. We expect that this flag is likely only used by the system components as it is an unsupported field . If so, it will be restricted.

BLOCK_GPS_STATUS_USAGE

Change ID: 144027538
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all GpsStatus API usage must be replaced with GnssStatus APIs.

BLOCK_IMMUTABLE_PENDING_INTENTS

Change ID: 171317480
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, immutable PendingIntent objects that are passed into location APIs will generate an IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

Change ID: 169887240
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, LocationRequest system APIs can't be used with PendingIntent location requests.

BLOCK_UNTRUSTED_TOUCHES

Change ID: 158002302
حالت پیش فرض : برای همه برنامه ها فعال است.

To preserve system security and a good user experience, Android 12 prevents apps from consuming touch events where an overlay blocks the app in an unsafe way.

To learn more about this change, see Untrusted touch events are blocked .

CALL_ACTIVITY_RESULT_BEFORE_RESUME

Change ID: 78294732
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, corrects the lifecycle of activity result to guarantee that an activity gets the activity result just before resume.

CAMERA_MIC_INDICATORS_NOT_PRESENT

شناسه تغییر: 162547999
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

نشان می دهد که این دستگاه از نشانگرهای دوربین و میکروفون پشتیبانی می کند. در صورت وجود false خواهد بود، زیرا اگر شناسه تغییر وجود نداشته باشد، متد CompatChanges#isChangeEnabled true برمی گرداند.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

Change ID: 146211400
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, the package manager will not install a package if there are malformed permission groups. Permission groups should only be shared between apps sharing a certificate. If a permission belongs to a group, that group must also be defined.

CHANGE_ID_AUTH_STATE_DENIED

Change ID: 181350407
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For client apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they are in the denied authorization state and attempt to send a message to a nanoapp.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

Change ID: 136069189
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, a SecurityException is thrown when they do not have HIGH_SAMPLING_RATE_SENSORS permission, run in debug mode, and request sampling rates that are faster than 200 Hz.

DELIVER_HISTORICAL_LOCATIONS

Change ID: 73144566
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, location clients may receive historical locations (from before the present time) under some circumstances.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

Change ID: 181658987
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, provides backward compatibility for changes in TelephonyDisplayInfo .

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

Change ID: 170503758
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the platform might throttle down an app's frame rate to a divisor of the refresh rate if it is more preferable (for example, if the app called to Surface.setFrameRate(float, int) ). Apps will experience Choreographer.postFrameCallback(Choreographer.FrameCallback) callbacks and backpressure at the throttled frame rate. Apps use Display.getRefreshRate() and Display.Mode.getRefreshRate() to know what the display refresh rate is. Display.getRefreshRate() will always return the application frame rate and not the physical display refresh rate to allow apps to do frame pacing correctly. Display.Mode.getRefreshRate() will return the app frame rate if compiled to a previous release and starting with Android 12 (API level 31) it will return the physical display refresh rate.

DOWNSCALED

شناسه تغییر: 168419799
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

این تغییر دروازه بان تمام تغییرات کاهش مقیاس بافر هر برنامه است. فعال کردن این تغییر باعث می‌شود فاکتورهای مقیاس‌بندی زیر اعمال شوند:

وقتی این تغییر برای یک بسته برنامه فعال می شود، اندازه برنامه به اجبار به بالاترین ضریب مقیاس پذیری فعال تغییر می کند. برای مثال، اگر هر دو 80 درصد و 70 درصد ( DOWNSCALE_80 و DOWNSCALE_70 ) فعال باشند، 80٪ استفاده می شود.

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

Change ID: 157629738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Android TV apps targeting Android 12 (API level 31) and higher are expected to handle any Window size, including Window sizes greater than 1080p. Apps that target earlier versions of Android do not expect to receive Windows larger than 1080p, so their Windows are downscaled to 1080p when necessary.

DROP_CLOSE_SYSTEM_DIALOGS

Change ID: 174664120
حالت پیش فرض : برای همه برنامه ها فعال است.

To improve user control when interacting with apps and the system, the ACTION_CLOSE_SYSTEM_DIALOGS intent action is deprecated as of Android 12.

To learn more about this change, see Apps can't close system dialogs .

ENABLE_CHECKS_FOR_PRIVATE_FILES

Change ID: 172100307
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher can't insert or update private files using media provider.

ENABLE_DEFERRED_SCAN

Change ID: 180326732
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to defer the scan that is triggered as part of MediaProvider#update() .

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

Change ID: 157233955
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_STATE protection on APIs querying and notifying call state, such as TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() , and TelephonyCallback.CallStateListener .

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

Change ID: 183407956
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables READ_PHONE_NUMBERS or READ_PRIVILEGED_PHONE_STATE protections on getPhoneAccount(PhoneAccountHandle) .

ENABLE_INCLUDE_ALL_VOLUMES

Change ID: 182734110
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to include database rows of files from a recently unmounted volume in MediaProvider#query .

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

Change ID: 178209446
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Enable this option to allow apps holding the Manifest.permission.MANAGE_EXTERNAL_STORAGE permission to request raw external storage access.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

Change ID: 185199076
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all inexact alarms are required to have a minimum window size, expected to be on the order of a few minutes. Practically, any alarms requiring smaller windows are the same as exact alarms and should use the corresponding APIs provided, such as setExact(int, long, PendingIntent) . Inexact alarm with shorter windows specified will have their windows elongated by the system.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

Change ID: 142191088
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Apps targeting Android 12 (API level 31) and higher need to declare dependencies to the public native shared libraries that are defined by the device maker using uses-native-library tag in its AndroidManifest.xml . If any of the dependencies can't be satisfied—for example, one of the dependencies doesn't exist—the package manager won't install the app. The dependency can be specified as optional using the android:required attribute in the tag, in which case failing to satisfy the dependency won't stop the installation.

Once installed, an app is provided with only the native shared libraries that are specified in the app manifest. Calling dlopen on a native shared library that doesn't appear in the app manifest will fail even if it actually exists on the device.

ENFORCE_STRICT_QUERY_BUILDER

شناسه تغییر: 143231523
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

وقتی فعال باشد، SQLiteQueryBuilder تمام انتخاب‌های جستجوی CalendarProvider2 را در برابر آرگومان‌های مخرب تأیید می‌کند.

FGS_BG_START_RESTRICTION_CHANGE_ID

Change ID: 170668199
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, restricts when apps can start foreground services while running in the background.

FGS_START_EXCEPTION_CHANGE_ID

Change ID: 174041399
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enables the system to throw an IllegalStateException if an app attempts to start a foreground service while running in the background.

FINISH_INPUT_NO_FALLBACK_CONNECTION

Change ID: 156215187
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

For apps targeting Android 12 (API level 31) and higher, finish the InputConnection when the device becomes non-interactive .

If enabled by the current input method , the current input connection will be finished whenever the devices becomes non-interactive.

If not enabled, the current input connection will instead be silently deactivated when the devices becomes non-interactive, and an onFinishInput() and onStartInput() pair is dispatched when the device becomes interactive again.

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
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

Forces the packages it is applied to to be non-resizable.

FORCE_RESIZE_APP

شناسه تغییر: 174042936
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بسته هایی را که روی آنها اعمال می شود مجبور می کند قابل تغییر اندازه باشند. ما فقط اجازه تغییر اندازه را در حالت پنجره تمام صفحه می دهیم، اما برنامه را مجبور به تغییر اندازه در حالت چند پنجره ای نمی کنیم.

HIDE_PROP_ICUBINARY_DATA_PATH

Change ID: 171979766
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, removes access to the android.icu.impl.ICUBinary.dataPath property.

IGNORE_ALLOW_BACKUP_IN_D2D

Change ID: 183147249
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, android:allowBackup is ignored for apps during device-to-device (D2D) migrations.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

Change ID: 180523564
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, include and exclude rules specified using android:fullBackupContent are ignored during device-to-device (D2D) transfers.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

Change ID: 169273070
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, getSupportedLocales() now returns an empty locale list when it's not set, instead of the default system locale.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

Change ID: 158482162
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the BACKUP permission needed for isBackupServiceActive() is enforced on the service-side rather than client-side in BackupManager .

KEYSTORE_OPERATION_CREATION_MAY_FAIL

Change ID: 169897160
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

When enabled, keystore operation creation might fail according to the new pruning strategy. Keystore used to work under the assumption that the creation of cryptographic operations always succeeds. However, the KeyMint backend has only a limited number of operation slots.

In order to keep up the appearance of "infinite" operation slots, the Keystore daemon would prune least recently used operations if there was no available operation slot. As a result, good operations could be terminated prematurely. This opened up AndroidKeystore up to denial-of-service (DoS) and unintended livelock. For example, if multiple apps woke up at the same time due to power management optimizations and attempted to perform crypto operations, they start terminating each others operations without making any progress.

To break out of livelocks and to discourage DoS attempts, we have changed the pruning strategy for such that it prefers clients that use few operation slots briefly. As a result, single operations that don't linger inactive for more than 5 seconds will almost always conclude unhampered by the pruning strategy. There are still some operations related to file system encryption that can prune even these operations, but those cases are extremely rare. As a side effect of this new pruning strategy operation, creation can now fail if the client has a lower pruning power than all of the existing operations.

Pruning strategy : To find a suitable candidate, we compute the malus for the caller and each existing operation. The malus is the inverse of the pruning power (caller) or pruning resistance (existing operation). For the caller to be able to prune an operation, it must find an operation with a malus higher than its own. For more details on the pruning strategy, see the implementation of operation.rs . On Android 11 (API level 30) and lower, KeyStore2 will poll the Keystore daemon for a free operation slot. For apps targeting Android 11 (API level 30) and lower, it will still look like cipher and signature object initialization always succeeds—however, it may take longer to get an operation. All Android versions benefit from fairer operation slot scheduling and a better chance to successfully conclude an operation.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

Change ID: 174664365
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Intent.ACTION_CLOSE_SYSTEM_DIALOGS can't be sent unless the app also has the android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS permission. Note that this is the more restrictive version of #DROP_CLOSE_SYSTEM_DIALOGS that expects the app to stop sending the Intent.ACTION_CLOSE_SYSTEM_DIALOGS intent once the app starts targets Android 12 (API level 31) or higher.

LOCK_DOWN_COLLAPSE_STATUS_BAR

Change ID: 173031413
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the Manifest.permission.STATUS_BAR permission is required to collapse the status bar panels due to security reasons. This was being exploited by malware to prevent the user from accessing critical notifications.

LOW_POWER_EXCEPTIONS

Change ID: 168936375
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, all LocationRequest objects marked as low power throw exceptions if the caller does not have the LOCATION_HARDWARE permission, instead of silently dropping the low power part of the request.

MISSING_EXPORTED_FLAG

Change ID: 150232615
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, an explicit value must be specified for the android:exported attribute whenever an intent filter is defined.

To learn more about this change, see Safer exporting of components .

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

Change ID: 207557677
Default State : Enabled for apps that target Android 12 (API level 32) or higher.

For apps targeting Android 12 (API level 32) and higher, native heap allocations in AppZygote process and its descendants use a non-zero tag in the most significant byte.

To learn more about this change, see Tagged Pointers .

NATIVE_HEAP_ZERO_INIT

شناسه تغییر: 178038272
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

فعال کردن صفر اولیه سازی خودکار تخصیص حافظه هیپ بومی.

NATIVE_MEMTAG_ASYNC

شناسه تغییر: 135772972
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه ناهمزمان (ASYNC) را در این فرآیند فعال کنید. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد.

NATIVE_MEMTAG_SYNC

شناسه تغییر: 177438394
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

بررسی تگ حافظه همزمان (SYNC) را در این فرآیند فعال می کند. این پرچم فقط بر سخت افزار پشتیبانی کننده از برنامه افزودنی برچسب گذاری حافظه ARM (MTE) تأثیر می گذارد. اگر هم NATIVE_MEMTAG_ASYNC و هم این گزینه فعال باشند، این گزینه اولویت دارد و MTE در حالت SYNC فعال می شود.

NEVER_SANDBOX_DISPLAY_APIS

Change ID: 184838306
حالت پیش‌فرض : برای همه برنامه‌ها غیرفعال است.

When enabled, prevents Display API sandboxing from applying to a letterbox or SCM activity. The Display APIs will continue to provide DisplayArea bounds.

To learn more about this change, see the section in the Android 12 behavior changes page about Display methods that were deprecated .

NOTIFICATION_CANCELLATION_REASONS

Change ID: 175319604
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Allows notification listeners to understand new cancellation reasons that are more specific.

NOTIFICATION_TRAMPOLINE_BLOCK

Change ID: 167676448
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

To improve app performance and UX, apps that target Android 12 cannot use services or broadcast receivers as notification trampolines.

To learn more about this change, see Notification trampolines cannot be created from services or broadcast receivers .

NULL_TELEPHONY_THROW_NO_CB

Change ID: 182185642
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Used for checking if the target SDK version for the current process is Android 12 (API level 31) or higher.

Applies to the following methods:

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

Change ID: 160794467
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, you must specify the mutability of each PendingIntent object that your app creates. This additional requirement improves your app's security.

To learn more about this change, see Pending intents must declare mutability .

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

Change ID: 165573442
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

Admin apps targeting Android 12 (API level 31) and higher can't use DevicePolicyManager.setPasswordQuality(ComponentName, int) to set password quality on the DevicePolicyManager instance obtained by calling DevicePolicyManager.getParentProfileInstance(ComponentName) . Instead, they should use DevicePolicyManager.setRequiredPasswordComplexity(int) to set coarse-grained password requirements device-wide.

RATE_LIMIT_TOASTS

شناسه تغییر: 174840628
حالت پیش فرض : این تغییر را نمی توان تغییر داد. فقط توسط چارچوب سازگاری ثبت شده است.

محدود کردن نرخ تعداد تماس‌های Toast.show() را فعال می‌کند تا از بار بیش از حد کاربر با نان تست‌های زیاد در مدت زمان محدود جلوگیری کند. هر تلاشی برای نشان دادن نان تست های بیشتر از حد مجاز در یک بازه زمانی خاص منجر به دور انداختن نان تست می شود.

REQUIRE_EXACT_ALARM_PERMISSION

Change ID: 171306433
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.SCHEDULE_EXACT_ALARM permission in order to use any APIs for setting exact alarms, such as setExactAndAllowWhileIdle(int, long, PendingIntent) and setAlarmClock(AlarmClockInfo, PendingIntent) .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

Change ID: 182478738
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.ActiveDataSubscriptionIdListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

Change ID: 184323934
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.CellInfoListener .

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

Change ID: 183164979
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, apps must have the Manifest.permission.READ_PHONE_STATE permission in order to call TelephonyCallback.DisplayInfoListener .

RESTRICT_ADB_BACKUP

Change ID: 171032338
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, adb backup is automatically turned on for apps running as debuggable ( android:debuggable set to true ) and unavailable to any other apps.

RESTRICT_DOMAINS

Change ID: 175408749
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, the updated form of the app links verification API is required. This requirement means an app must declare domains inside an intent filter that includes all of the following:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • Only IntentFilter.SCHEME_HTTP and/or IntentFilter.SCHEME_HTTPS , with no other schemes

On prior versions of Android, Intent.CATEGORY_BROWSABLE was not a requirement, other schemes were allowed, and setting autoVerify to true in any intent filter would implicitly pretend that all intent filters were set to autoVerify="true" .

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

Change ID: 151105954
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, enforces that all attributionTags sent to noteOp(String, int, String) , noteProxyOp(String, String) , and startOp(String, int, String) are defined in the manifest of the package that is specified as a parameter of the methods.

To enable this change, both the package calling noteOp(String, int, String) as well as the package specified as a parameter of the method must have this change enabled.

SELINUX_LATEST_CHANGES

Change ID: 143539591
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, opts in to the latest SELinux changes. Turning this change off for an app targeting Android 12 (API level 31) or higher is a no-op. Has no effect for apps that use a shared user id.

SETTINGS_API_V2

Change ID: 178111421
حالت پیش فرض : برای همه برنامه ها فعال است.

The new user preference API for verifying domains marked autoVerify=true in AndroidManifest.xml intent filters is not yet implemented in the current platform preview. For now, it is possible to preview the new user preference changes by enabling this ChangeId and using the adb shell pm set-app-links-user-selection and similar commands.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

Change ID: 183972877
Default State : Enabled for apps that target Android 12 (API level 31) or higher.

For apps targeting Android 12 (API level 31) and higher, determines whether to use a shorter timeout before elevating the standby bucket to ACTIVE when apps start a foreground service.