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

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

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

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

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

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

تغییرات رفتاری که در چارچوب سازگاری لحاظ شده‌اند

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

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

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

ALWAYS_SANDBOX_DISPLAY_APIS

شناسه تغییر: ۱۸۵۰۰۴۹۳۷
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

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

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

شناسه تغییر: ۱۶۳۴۰۰۱۰۵
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 32) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

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

BLOCK_FLAG_SLIPPERY

شناسه تغییر: ۱۵۷۹۲۹۲۴۱
حالت پیش‌فرض : برای همه برنامه‌ها فعال است.

برای برنامه‌هایی که روی اندروید ۱۲ (سطح API ۳۱) اجرا می‌شوند، بررسی می‌کند که آیا FLAG_SLIPPERY با هیچ پنجره‌ای در برنامه استفاده می‌شود یا خیر. ما انتظار داریم که این پرچم احتمالاً فقط توسط اجزای سیستم استفاده شود زیرا یک فیلد پشتیبانی نشده است. در این صورت، محدود خواهد شد.

BLOCK_GPS_STATUS_USAGE

شناسه تغییر: ۱۴۴۰۲۷۵۳۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

BLOCK_IMMUTABLE_PENDING_INTENTS

شناسه تغییر: ۱۷۱۳۱۷۴۸۰
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

شناسه تغییر: ۱۶۹۸۸۷۲۴۰
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

BLOCK_UNTRUSTED_TOUCHES

شناسه تغییر: ۱۵۸۰۰۲۳۰۲
حالت پیش‌فرض : برای همه برنامه‌ها فعال است.

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

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

CALL_ACTIVITY_RESULT_BEFORE_RESUME

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

برای برنامه‌هایی که اندروید ۱۲ (سطح API ۳۲) و بالاتر را هدف قرار می‌دهند، چرخه حیات نتیجه فعالیت را اصلاح می‌کند تا تضمین شود که یک فعالیت، نتیجه فعالیت را درست قبل از ادامه دریافت می‌کند.

CAMERA_MIC_INDICATORS_NOT_PRESENT

شناسه تغییر: ۱۶۲۵۴۷۹۹
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

شناسه تغییر: ۱۴۶۲۱۱۴۰۰
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 32) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

CHANGE_ID_AUTH_STATE_DENIED

شناسه تغییر: ۱۸۱۳۵۰۴۰۷
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

شناسه تغییر: ۱۳۶۰۶۹۱۸۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

DELIVER_HISTORICAL_LOCATIONS

شناسه تغییر: ۷۳۱۴۴۵۶۶
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

شناسه تغییر: ۱۸۱۶۵۸۹۸۷
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

شناسه تغییر: ۱۷۰۵۰۳۷۵۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

DOWNSCALED

شناسه تغییر: ۱۶۸۴۱۹۷۹۹
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

وقتی این تغییر برای یک بسته برنامه فعال شود، برنامه به اجبار به بالاترین ضریب مقیاس‌بندی فعال تغییر اندازه می‌دهد. برای مثال، اگر هر دو ضریب ۸۰٪ و ۷۰٪ ( DOWNSCALE_80 و DOWNSCALE_70 ) فعال باشند، از ۸۰٪ استفاده می‌شود.

DOWNSCALE_30

شناسه تغییر: ۱۸۹۹۷۰۰۴۰
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با 30٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_35

شناسه تغییر: ۱۸۹۹۶۹۷۴۹
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۳۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_40

شناسه تغییر: ۱۸۹۹۷۰۰۳۸
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۴۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_45

شناسه تغییر: ۱۸۹۹۶۹۷۸۲
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۴۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_50

شناسه تغییر: ۱۷۶۹۲۶۷۴۱
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۵۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_55

شناسه تغییر: ۱۸۹۹۷۰۰۳۶
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۵۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_60

شناسه تغییر: ۱۷۶۹۲۶۷۷۱
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۶۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_65

شناسه تغییر: ۱۸۹۹۶۹۷۴۴
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۶۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_70

شناسه تغییر: ۱۷۶۹۲۶۸۲۹
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۷۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_75

شناسه تغییر: ۱۸۹۹۶۹۷۷۹
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۷۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_80

شناسه تغییر: ۱۷۶۹۲۶۷۵۳
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۸۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_85

شناسه تغییر: ۱۸۹۹۶۹۷۳۴
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۸۵٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DOWNSCALE_90

شناسه تغییر: ۱۸۲۸۱۱۲۴۳
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی DOWNSCALED نیز فعال باشد، فعال کردن این تغییر برای یک بسته، برنامه را مجبور می‌کند فرض کند که روی نمایشگری با ۹۰٪ وضوح عمودی و افقی نمایشگر واقعی اجرا می‌شود.

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

شناسه تغییر: ۱۵۷۶۲۹۷۳۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

DROP_CLOSE_SYSTEM_DIALOGS

شناسه تغییر: ۱۷۴۶۶۴۱۲۰
حالت پیش‌فرض : برای همه برنامه‌ها فعال است.

برای بهبود کنترل کاربر هنگام تعامل با برنامه‌ها و سیستم، اکشن اینتنت ACTION_CLOSE_SYSTEM_DIALOGS از اندروید ۱۲ منسوخ شده است.

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

ENABLE_CHECKS_FOR_PRIVATE_FILES

شناسه تغییر: ۱۷۲۱۰۰۳۰۷
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

برنامه‌هایی که اندروید ۱۲ (سطح API ۳۱) و بالاتر را هدف قرار می‌دهند، نمی‌توانند با استفاده از ارائه‌دهنده رسانه، فایل‌های خصوصی را درج یا به‌روزرسانی کنند.

ENABLE_DEFERRED_SCAN

شناسه تغییر: ۱۸۰۳۲۶۷۳۲
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

شناسه تغییر: ۱۵۷۲۳۳۹۵
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

شناسه تغییر: ۱۸۳۴۰۷۹۵۶
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENABLE_INCLUDE_ALL_VOLUMES

شناسه تغییر: ۱۸۲۷۳۴۱۱۰
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

شناسه تغییر: ۱۷۸۲۰۹۴۴۶
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

شناسه تغییر: ۱۸۵۱۹۹۰۷۶
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

شناسه تغییر: ۱۴۲۱۹۱۰۸۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

برنامه‌هایی که اندروید ۱۲ (سطح API 31) و بالاتر را هدف قرار می‌دهند، باید وابستگی‌هایی را به کتابخانه‌های اشتراکی عمومی بومی که توسط سازنده دستگاه تعریف شده‌اند، با استفاده از برچسب uses-native-library در AndroidManifest.xml خود اعلام کنند. اگر هر یک از وابستگی‌ها برآورده نشوند - به عنوان مثال، یکی از وابستگی‌ها وجود نداشته باشد - مدیر بسته برنامه را نصب نخواهد کرد. وابستگی را می‌توان با استفاده از ویژگی android:required در برچسب، به عنوان اختیاری مشخص کرد، در این صورت عدم برآورده شدن وابستگی، نصب را متوقف نمی‌کند.

پس از نصب، یک برنامه فقط کتابخانه‌های اشتراکی بومی که در مانیفست برنامه مشخص شده‌اند را ارائه می‌دهد. فراخوانی dlopen روی یک کتابخانه اشتراکی بومی که در مانیفست برنامه ظاهر نمی‌شود، حتی اگر واقعاً در دستگاه وجود داشته باشد، با شکست مواجه خواهد شد.

ENFORCE_STRICT_QUERY_BUILDER

شناسه تغییر: ۱۴۳۲۳۱۵۲
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

FGS_BG_START_RESTRICTION_CHANGE_ID

شناسه تغییر: ۱۷۰۶۶۸۱۹۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

FGS_START_EXCEPTION_CHANGE_ID

شناسه تغییر: ۱۷۴۰۴۱۳۹۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

FINISH_INPUT_NO_FALLBACK_CONNECTION

شناسه تغییر: ۱۵۶۲۱۵۱۸۷
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

اگر با input method فعلی فعال شود، اتصال ورودی فعلی هر زمان که دستگاه‌ها غیرتعاملی شوند، finished می‌یابد.

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

FORCE_DISABLE_HEVC_SUPPORT

شناسه تغییر: ۱۷۴۲۲۷۸۲۰
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

غیرفعال کردن اجباری پشتیبانی یک برنامه از قابلیت رسانه HEVC. برنامه‌ها باید قابلیت‌های رسانه‌ای پشتیبانی‌شده خود را در مانیفست خود اعلام کنند، اما این پرچم می‌تواند برای مجبور کردن یک برنامه به عدم پشتیبانی از HEVC استفاده شود، از این رو هنگام دسترسی به رسانه‌های کدگذاری‌شده در HEVC، مجبور به تبدیل کد می‌شود. تنظیم این پرچم، هرگونه پیش‌فرض سطح سیستم عامل را برای برنامه‌ها لغو می‌کند. این پرچم به طور پیش‌فرض غیرفعال است، به این معنی که پیش‌فرض‌های سیستم عامل اولویت دارند. اگر هم این پرچم و FORCE_ENABLE_HEVC_SUPPORT فعال باشند، سیستم عامل هر دو پرچم را نادیده می‌گیرد.

FORCE_ENABLE_HEVC_SUPPORT

شناسه تغییر: ۱۷۴۲۲۸۱۲۷
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

فعال کردن اجباری یک برنامه برای پشتیبانی از قابلیت رسانه HEVC برنامه‌ها باید قابلیت‌های رسانه‌ای پشتیبانی‌شده خود را در مانیفست خود اعلام کنند، اما این پرچم می‌تواند برای مجبور کردن یک برنامه به پشتیبانی از HEVC استفاده شود، از این رو از تبدیل کد هنگام دسترسی به رسانه‌های کدگذاری‌شده در HEVC جلوگیری می‌شود. تنظیم این پرچم، هرگونه پیش‌فرض سطح سیستم عامل را برای برنامه‌ها لغو می‌کند. این پرچم به طور پیش‌فرض غیرفعال است، به این معنی که پیش‌فرض‌های سیستم عامل اولویت دارند. اگر هر دو این پرچم و FORCE_DISABLE_HEVC_SUPPORT فعال باشند، سیستم عامل هر دو پرچم را نادیده می‌گیرد.

FORCE_NON_RESIZE_APP

شناسه تغییر: ۱۸۱۱۳۶۳۹۵
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

FORCE_RESIZE_APP

شناسه تغییر: ۱۷۴۰۴۲۹۳۶
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

HIDE_PROP_ICUBINARY_DATA_PATH

شناسه تغییر: ۱۷۱۹۷۹۷۶۶
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

IGNORE_ALLOW_BACKUP_IN_D2D

شناسه تغییر: ۱۸۳۱۴۷۲۴۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

شناسه تغییر: ۱۸۰۵۲۳۵۶۴
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

شناسه تغییر: ۱۶۹۲۷۳۰۷۰
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

شناسه تغییر: ۱۵۸۴۸۲۱۶۲
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

KEYSTORE_OPERATION_CREATION_MAY_FAIL

شناسه تغییر: ۱۶۹۸۹۷۱۶۰
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

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

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

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

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

شناسه تغییر: ۱۷۴۶۶۴۳۶۵
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

LOCK_DOWN_COLLAPSE_STATUS_BAR

شناسه تغییر: ۱۷۳۰۳۱۴۱۳
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

LOW_POWER_EXCEPTIONS

شناسه تغییر: ۱۶۸۹۳۶۳۷۵
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

MISSING_EXPORTED_FLAG

شناسه تغییر: ۱۵۰۲۳۲۶۱۵
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

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

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

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

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

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

NATIVE_HEAP_ZERO_INIT

شناسه تغییر: ۱۷۸۰۳۸۲۷۲
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

NATIVE_MEMTAG_ASYNC

شناسه تغییر: ۱۳۵۷۷۲۹۷۲
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

NATIVE_MEMTAG_SYNC

شناسه تغییر: ۱۷۷۴۳۸۳۹۴
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

NEVER_SANDBOX_DISPLAY_APIS

شناسه تغییر: ۱۸۴۸۳۸۳۰۶
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی فعال باشد، از اعمال sandboxing API Display به یک letterbox یا فعالیت SCM جلوگیری می‌کند. APIهای Display همچنان به ارائه محدوده‌های DisplayArea ادامه خواهند داد.

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

NOTIFICATION_CANCELLATION_REASONS

شناسه تغییر: ۱۷۵۳۱۹۶۰۴
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

NOTIFICATION_TRAMPOLINE_BLOCK

شناسه تغییر: ۱۶۷۶۷۶۴۴۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

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

NULL_TELEPHONY_THROW_NO_CB

شناسه تغییر: ۱۸۲۱۸۵۶۴۲
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

برای بررسی اینکه آیا نسخه SDK هدف برای فرآیند فعلی، اندروید ۱۲ (سطح API 31) یا بالاتر است، استفاده می‌شود.

به روش‌های زیر اعمال می‌شود:

OVERRIDE_MIN_ASPECT_RATIO

شناسه تغییر: ۱۷۴۰۴۲۹۸۰
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

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

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

OVERRIDE_MIN_ASPECT_RATIO_LARGE

شناسه تغییر: ۱۸۰۳۲۶۷۸۷
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی OVERRIDE_MIN_ASPECT_RATIO نیز فعال باشد، فعال کردن این تغییر برای یک بسته، حداقل نسبت ابعاد فعالیت را روی یک مقدار بزرگ که توسط OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE تعریف شده است، تنظیم می‌کند.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

شناسه تغییر: ۱۸۰۳۲۶۸۴۵
حالت پیش‌فرض : غیرفعال برای همه برنامه‌ها.

وقتی OVERRIDE_MIN_ASPECT_RATIO نیز فعال باشد، فعال کردن این تغییر برای یک بسته، حداقل نسبت ابعاد فعالیت را روی مقداری متوسط ​​​​قرار می‌دهد که توسط OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE تعریف شده است.

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

شناسه تغییر: ۱۶۰۷۹۴۴۶۷
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

برای کسب اطلاعات بیشتر در مورد این تغییر، به Pending intents must declare mutability مراجعه کنید.

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

شناسه تغییر: ۱۶۵۵۷۳۴۴۲
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

برنامه‌های مدیریتی که اندروید ۱۲ (سطح API 31) و بالاتر را هدف قرار می‌دهند، نمی‌توانند از DevicePolicyManager.setPasswordQuality(ComponentName, int) برای تنظیم کیفیت رمز عبور روی نمونه DevicePolicyManager که با فراخوانی DevicePolicyManager.getParentProfileInstance(ComponentName) به دست می‌آید، استفاده کنند. در عوض، آن‌ها باید از DevicePolicyManager.setRequiredPasswordComplexity(int) برای تنظیم الزامات رمز عبور دانه‌بندی‌شده در کل دستگاه استفاده کنند.

RATE_LIMIT_TOASTS

شناسه تغییر: ۱۷۴۸۴۰۶۲۸
حالت پیش‌فرض : این تغییر قابل تغییر نیست. فقط توسط چارچوب سازگاری ثبت می‌شود.

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

REQUIRE_EXACT_ALARM_PERMISSION

شناسه تغییر: ۱۷۱۳۰۶۴۳۳
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

برای برنامه‌هایی که اندروید ۱۲ (سطح 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

شناسه تغییر: ۱۸۲۴۷۸۷۳۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

شناسه تغییر: ۱۸۴۳۲۳۹۳۴
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

شناسه تغییر: ۱۸۳۱۶۴۹۷۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

RESTRICT_ADB_BACKUP

شناسه تغییر: ۱۷۱۰۳۲۳۳۸
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

RESTRICT_DOMAINS

شناسه تغییر: ۱۷۵۴۰۸۷۴۹۹
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

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

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

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

شناسه تغییر: ۱۵۱۱۰۵۹۵۴
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

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

SELINUX_LATEST_CHANGES

شناسه تغییر: ۱۴۳۵۳۹۵۹۱
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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

SETTINGS_API_V2

شناسه تغییر: ۱۷۸۱۱۱۴۲۱
حالت پیش‌فرض : برای همه برنامه‌ها فعال است.

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

USE_SHORT_FGS_USAGE_INTERACTION_TIME

شناسه تغییر: ۱۸۳۹۷۲۸۷۷
حالت پیش‌فرض : برای برنامه‌هایی که اندروید ۱۲ (سطح API 31) یا بالاتر را هدف قرار می‌دهند، فعال است.

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