| Mã thay đổi: 185004937ALWAYS_SANDBOX_DISPLAY_APIS
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Khi bật, sẽ áp dụng hộp cát API Hiển thị cho một gói bất kể chế độ cửa sổ. API Hiển thị sẽ luôn cung cấp các giới hạn đối với ứng dụng. Để tìm hiểu thêm về thay đổi này, hãy xem phần về 
           Các phương thức hiển thị đã ngừng hoạt động trên trang Các thay đổi về hành vi của Android 12. | 
      
        | Mã thay đổi: 163400105AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 32) trở lên.
 
 Kể từ Android 12, nền tảng này có thể cung cấp các đề xuất không phải dạng văn bản (chẳng hạn như hình ảnh) bằng cách sử dụng khung tự động điền tăng cường (xem dịch vụ tự động điền). Để có thể xử lý những đề xuất này, ứng dụng thường phải triển khai API OnReceiveContentListener. Để giúp các ứng dụng đã triển khai API InputConnection.commitContent(InputContentInfo, int, Bundle)trước đó chuyển sang dùng API này một cách suôn sẻ hơn, chúng tôi sẽ dùng lại API đó làm phương án dự phòng nếu ứng dụng chưa triển khaiOnReceiveContentListener. Phương án dự phòng này chỉ được bật trên Android 12 (API cấp 31). Mã thay đổi này sẽ vô hiệu hoá cơ chế dự phòng, sao cho các ứng dụng nhắm đến Android 12 (API cấp 32) trở lên phải triển khai APIOnReceiveContentListenerđể chấp nhận các đề xuất không phải dạng văn bản. | 
      
        | Mã thay đổi: 157929241BLOCK_FLAG_SLIPPERY
Trạng thái mặc định: Bật đối với tất cả ứng dụng.
 
 Đối với các ứng dụng chạy trên Android 12 (API cấp 31), hãy kiểm tra xem FLAG_SLIPPERYcó đang được dùng với bất kỳ cửa sổ nào trong ứng dụng hay không. Chúng tôi cho rằng cờ này có thể chỉ được các thành phần hệ thống dùng vì đây là một trường không được hỗ trợ. Nếu có, video đó sẽ bị hạn chế. | 
      
        | Mã thay đổi: 144027538BLOCK_GPS_STATUS_USAGE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải thay thế mọi hoạt động sử dụng API GpsStatusbằng APIGnssStatus. | 
      
        | Mã thay đổi: 171317480BLOCK_IMMUTABLE_PENDING_INTENTS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các đối tượng PendingIntentbất biến được truyền vào API vị trí sẽ tạo ra mộtIllegalArgumentException. | 
      
        | Mã thay đổi: 169887240BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn không thể dùng API hệ thống LocationRequestvới các yêu cầu về vị tríPendingIntent. | 
      
        | Mã thay đổi: 158002302BLOCK_UNTRUSTED_TOUCHES
Trạng thái mặc định: Bật đối với tất cả ứng dụng.
 
 Để duy trì tính bảo mật của hệ thống và trải nghiệm tốt cho người dùng, Android 12 ngăn các ứng dụng sử dụng sự kiện chạm khi một lớp phủ chặn ứng dụng theo cách không an toàn. Để tìm hiểu thêm về thay đổi này, hãy xem bài viết Các sự kiện chạm không đáng tin cậy sẽ bị chặn. | 
      
        | Mã thay đổi: 78294732CALL_ACTIVITY_RESULT_BEFORE_RESUME
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 32) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 32) trở lên, hãy điều chỉnh vòng đời của kết quả hoạt động để đảm bảo rằng một hoạt động nhận được kết quả hoạt động ngay trước khi tiếp tục. | 
      
        | Mã thay đổi: 162547999CAMERA_MIC_INDICATORS_NOT_PRESENT
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Cho biết rằng thiết bị này có hỗ trợ các chỉ báo máy ảnh và micrô. Sẽ là falsenếu có Mã thay đổi, vì phương thứcCompatChanges#isChangeEnabledsẽ trả vềtruenếu không có Mã thay đổi. | 
      
        | Mã thay đổi: 146211400CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 32) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 32) trở lên, trình quản lý gói sẽ không cài đặt một gói nếu có các nhóm quyền bị lỗi.
             Bạn chỉ nên chia sẻ nhóm quyền giữa các ứng dụng dùng chung một chứng chỉ. Nếu một quyền thuộc về một nhóm, thì bạn cũng phải xác định nhóm đó. | 
      
        | Mã thay đổi: 181350407CHANGE_ID_AUTH_STATE_DENIED
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng khách nhắm đến Android 12 (API cấp 31) trở lên, SecurityExceptionsẽ được gửi khi các ứng dụng này ở trạng thái uỷ quyền bị từ chối và cố gắng gửi thông báo đến một ứng dụng nano. | 
      
        | Mã thay đổi: 136069189CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, SecurityExceptionsẽ được gửi đi khi các ứng dụng đó không có quyềnHIGH_SAMPLING_RATE_SENSORS, chạy ở chế độ gỡ lỗi và yêu cầu tốc độ lấy mẫu nhanh hơn 200 Hz. | 
      
        | Mã thay đổi: 73144566DELIVER_HISTORICAL_LOCATIONS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, trong một số trường hợp, các ứng dụng vị trí có thể nhận được thông tin vị trí trong quá khứ (từ trước thời điểm hiện tại). | 
      
        | Mã thay đổi: 181658987DISPLAY_INFO_NR_ADVANCED_SUPPORTED
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy cung cấp khả năng tương thích ngược cho các thay đổi trong TelephonyDisplayInfo. | 
      
        | Mã thay đổi: 170503758DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, nền tảng này có thể giảm tốc độ khung hình của ứng dụng xuống thành một số chia của tốc độ làm mới nếu tốc độ này phù hợp hơn (ví dụ: nếu ứng dụng gọi đến Surface.setFrameRate(float, int)). Các ứng dụng sẽ gặp phải các lệnh gọi lạiChoreographer.postFrameCallback(Choreographer.FrameCallback)và áp lực ngược ở tốc độ khung hình bị giảm. Các ứng dụng sử dụngDisplay.getRefreshRate()vàDisplay.Mode.getRefreshRate()để biết tốc độ làm mới màn hình.Display.getRefreshRate()sẽ luôn trả về tốc độ khung hình của ứng dụng chứ không phải tốc độ làm mới màn hình thực tế để cho phép các ứng dụng thực hiện việc điều chỉnh tốc độ khung hình một cách chính xác.Display.Mode.getRefreshRate()sẽ trả về tốc độ khung hình của ứng dụng nếu được biên dịch thành một bản phát hành trước đó và bắt đầu từ Android 12 (API cấp 31), nó sẽ trả về tốc độ làm mới màn hình thực. | 
      
        | Mã thay đổi: 168419799DOWNSCALED
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Thay đổi này là yếu tố thúc đẩy tất cả thay đổi về việc giảm quy mô vùng đệm cho mỗi ứng dụng. Khi bật thay đổi này, hệ thống sẽ áp dụng các hệ số tỷ lệ sau: Khi thay đổi này được bật đối với một gói ứng dụng, ứng dụng sẽ bị buộc đổi kích thước thành hệ số tỷ lệ cao nhất được bật. Ví dụ: tỷ lệ 80% sẽ được sử dụng nếu bật cả tỷ lệ 80% và 70% (DOWNSCALE_80vàDOWNSCALE_70). | 
      
        | Mã thay đổi: 189970040DOWNSCALE_30
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 30%. | 
      
        | Mã thay đổi: 189969749DOWNSCALE_35
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 35%. | 
      
        | Mã thay đổi: 189970038DOWNSCALE_40
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 40%. | 
      
        | Mã thay đổi: 189969782DOWNSCALE_45
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 45%. | 
      
        | Mã thay đổi: 176926741DOWNSCALE_50
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có độ phân giải thực theo chiều dọc và chiều ngang là 50%. | 
      
        | Mã thay đổi: 189970036DOWNSCALE_55
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 55%. | 
      
        | Mã thay đổi: 176926771DOWNSCALE_60
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 60%. | 
      
        | Mã thay đổi: 189969744DOWNSCALE_65
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 65%. | 
      
        | Mã thay đổi: 176926829DOWNSCALE_70
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 70%. | 
      
        | Mã thay đổi: 189969779DOWNSCALE_75
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 75%. | 
      
        | Mã thay đổi: 176926753DOWNSCALE_80
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 80%. | 
      
        | Mã thay đổi: 189969734DOWNSCALE_85
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có tỷ lệ độ phân giải thực theo chiều dọc và chiều ngang là 85%. | 
      
        | Mã thay đổi: 182811243DOWNSCALE_90
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu DOWNSCALEDcũng được bật, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng ứng dụng đang chạy trên màn hình có 90% độ phân giải thực theo chiều dọc và chiều ngang. | 
      
        | Mã thay đổi: 157629738DO_NOT_DOWNSCALE_TO_1080P_ON_TV
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Các ứng dụng Android TV nhắm đến Android 12 (API cấp 31) trở lên dự kiến sẽ xử lý mọi kích thước Cửa sổ, kể cả kích thước Cửa sổ lớn hơn 1080p.
             Những ứng dụng nhắm đến các phiên bản Android cũ hơn không mong đợi nhận được cửa sổ lớn hơn 1080p, vì vậy, cửa sổ của các ứng dụng này sẽ được giảm tỷ lệ xuống 1080p khi cần thiết. | 
      
        | Mã thay đổi: 174664120DROP_CLOSE_SYSTEM_DIALOGS
Trạng thái mặc định: Bật đối với tất cả ứng dụng.
 
 Để cải thiện khả năng kiểm soát của người dùng khi tương tác với các ứng dụng và hệ thống, thao tác bằng ý định ACTION_CLOSE_SYSTEM_DIALOGSkhông được dùng nữa kể từ Android 12. Để tìm hiểu thêm về thay đổi này, hãy xem bài viết Ứng dụng không thể đóng hộp thoại hệ thống. | 
      
        | Mã thay đổi: 172100307ENABLE_CHECKS_FOR_PRIVATE_FILES
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên không thể chèn hoặc cập nhật các tệp riêng tư bằng trình cung cấp nội dung nghe nhìn. | 
      
        | Mã thay đổi: 180326732ENABLE_DEFERRED_SCAN
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Bật lựa chọn này để hoãn quá trình quét được kích hoạt trong MediaProvider#update(). | 
      
        | Mã thay đổi: 157233955ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy bật tính năng bảo vệ READ_PHONE_STATEtrên các API truy vấn và thông báo trạng thái cuộc gọi, chẳng hạn nhưTelecomManager#getCallState,TelephonyManager.getCallStateForSubscription()vàTelephonyCallback.CallStateListener. | 
      
        | Mã thay đổi: 183407956ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy bật chế độ bảo vệ READ_PHONE_NUMBERShoặcREAD_PRIVILEGED_PHONE_STATEtrêngetPhoneAccount(PhoneAccountHandle). | 
      
        | Mã thay đổi: 182734110ENABLE_INCLUDE_ALL_VOLUMES
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Bật lựa chọn này để đưa các hàng trong cơ sở dữ liệu của tệp trong một ổ đĩa vừa được tháo gần đây vào MediaProvider#query. | 
      
        | Mã thay đổi: 178209446ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Bật lựa chọn này để cho phép các ứng dụng có quyền Manifest.permission.MANAGE_EXTERNAL_STORAGEyêu cầu quyền truy cập vào bộ nhớ ngoài thô. | 
      
        | Mã thay đổi: 185199076ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, tất cả chuông báo không chính xác đều phải có kích thước cửa sổ tối thiểu, dự kiến là trong khoảng vài phút. Trên thực tế, mọi chuông báo yêu cầu cửa sổ nhỏ hơn đều giống như chuông báo chính xác và phải sử dụng các API tương ứng được cung cấp, chẳng hạn như setExact(int, long, PendingIntent). Hệ thống sẽ kéo dài khoảng thời gian của báo thức không chính xác có khoảng thời gian ngắn hơn. | 
      
        | Mã thay đổi: 142191088ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên cần khai báo các phần phụ thuộc đối với các thư viện dùng chung gốc công khai do nhà sản xuất thiết bị xác định bằng cách sử dụng thẻ uses-native-librarytrongAndroidManifest.xml. Nếu không đáp ứng được bất kỳ phần phụ thuộc nào (ví dụ: một trong các phần phụ thuộc không tồn tại), thì trình quản lý gói sẽ không cài đặt ứng dụng. Bạn có thể chỉ định phần phụ thuộc là không bắt buộc bằng cách sử dụng thuộc tínhandroid:requiredtrong thẻ. Trong trường hợp này, việc không đáp ứng được phần phụ thuộc sẽ không dừng quá trình cài đặt. Sau khi cài đặt, ứng dụng sẽ chỉ được cung cấp các thư viện dùng chung gốc được chỉ định trong tệp kê khai ứng dụng. Việc gọi dlopentrên một thư viện dùng chung gốc không xuất hiện trong tệp kê khai ứng dụng sẽ không thành công ngay cả khi thư viện đó thực sự tồn tại trên thiết bị. | 
      
        | Mã thay đổi: 143231523ENFORCE_STRICT_QUERY_BUILDER
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Khi được bật, SQLiteQueryBuildersẽ xác minh đối số độc hại trên tất cả lựa chọn truy vấnCalendarProvider2. | 
      
        | Mã thay đổi: 170668199FGS_BG_START_RESTRICTION_CHANGE_ID
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy hạn chế thời điểm các ứng dụng có thể bắt đầu dịch vụ trên nền trước trong khi chạy ở chế độ nền. | 
      
        | Mã thay đổi: 174041399FGS_START_EXCEPTION_CHANGE_ID
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, cho phép hệ thống gửi một IllegalStateExceptionnếu một ứng dụng cố gắng khởi động một dịch vụ trên nền trước trong khi đang chạy ở chế độ nền. | 
      
        | Mã thay đổi: 156215187 Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy hoàn tất InputConnectionkhi thiết bị chuyển sang trạng tháinon-interactive. Nếu được input methodhiện tại cho phép, kết nối đầu vào hiện tại sẽfinishedbất cứ khi nào thiết bị chuyển sang trạng thái không tương tác. Nếu không được bật, kết nối đầu vào hiện tại sẽ bị huỷ kích hoạt âm thầm khi thiết bị chuyển sang trạng thái không tương tác và một cặp onFinishInput()vàonStartInput()sẽ được gửi đi khi thiết bị chuyển sang trạng thái tương tác trở lại. | 
      
        | Mã thay đổi: 174227820FORCE_DISABLE_HEVC_SUPPORT
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Buộc tắt chế độ hỗ trợ tính năng đa phương tiện HEVC trên một ứng dụng.
           Ứng dụng nên khai báo các tính năng đa phương tiện được hỗ trợ trong tệp kê khai, nhưng cờ này có thể được dùng để buộc ứng dụng không hỗ trợ HEVC, do đó, buộc chuyển mã khi truy cập nội dung đa phương tiện được mã hoá theo HEVC. Việc đặt cờ này sẽ ghi đè mọi chế độ mặc định cấp hệ điều hành đối với ứng dụng. Trạng thái mặc định là tắt, có nghĩa là chế độ mặc định của hệ điều hành sẽ được ưu tiên. Nếu bạn bật cả cờ này và FORCE_ENABLE_HEVC_SUPPORT, thì hệ điều hành sẽ bỏ qua cả hai cờ. | 
      
        | Mã thay đổi: 174228127FORCE_ENABLE_HEVC_SUPPORT
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Buộc một ứng dụng bật chế độ hỗ trợ tính năng đa phương tiện HEVC. Các ứng dụng nên khai báo tính năng đa phương tiện được hỗ trợ trong tệp kê khai, nhưng cờ này có thể dùng để buộc một ứng dụng hỗ trợ HEVC, do đó, tránh chuyển mã khi truy cập vào nội dung đa phương tiện được mã hoá theo HEVC. Việc thiết lập cờ này sẽ ghi đè mọi giá trị mặc định cấp hệ điều hành đối với ứng dụng. Trạng thái mặc định là tắt, có nghĩa là chế độ mặc định của hệ điều hành sẽ được ưu tiên. Nếu bạn bật cả cờ này và FORCE_DISABLE_HEVC_SUPPORT, thì hệ điều hành sẽ bỏ qua cả hai cờ. | 
      
        | Mã thay đổi: 181136395FORCE_NON_RESIZE_APP
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Buộc các gói được áp dụng không được thay đổi kích thước. | 
      
        | Mã thay đổi: 174042936FORCE_RESIZE_APP
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Buộc các gói được áp dụng phải đổi kích thước được. Chúng tôi chỉ cho phép đổi kích thước ở chế độ cửa sổ toàn màn hình, nhưng không buộc ứng dụng phải thay đổi thành chế độ nhiều cửa sổ có thể đổi kích thước. | 
      
        | Mã thay đổi: 171979766HIDE_PROP_ICUBINARY_DATA_PATH
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy xoá quyền truy cập vào thuộc tính android.icu.impl.ICUBinary.dataPath. | 
      
        | Mã thay đổi: 183147249IGNORE_ALLOW_BACKUP_IN_D2D
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, android:allowBackupsẽ bị bỏ qua đối với các ứng dụng trong quá trình di chuyển dữ liệu từ thiết bị này sang thiết bị khác (D2D). | 
      
        | Mã thay đổi: 180523564IGNORE_FULL_BACKUP_CONTENT_IN_D2D
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các quy tắc bao gồm và loại trừ được chỉ định bằng android:fullBackupContentsẽ bị bỏ qua trong quá trình chuyển dữ liệu giữa các thiết bị (D2D). | 
      
        | Mã thay đổi: 169273070IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, getSupportedLocales()hiện trả về một danh sách ngôn ngữ trống khi chưa được đặt, thay vì ngôn ngữ hệ thống mặc định. | 
      
        | Mã thay đổi: 158482162IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, quyền BACKUPcần thiết choisBackupServiceActive()sẽ được thực thi ở phía dịch vụ thay vì phía máy khách trongBackupManager. | 
      
        | Mã thay đổi: 169897160KEYSTORE_OPERATION_CREATION_MAY_FAIL
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Khi được bật, quá trình tạo hoạt động kho khoá có thể không thành công theo chiến lược cắt giảm mới. Trước đây, kho khoá hoạt động theo giả định rằng việc tạo hoạt động mã hoá luôn thành công.
           Tuy nhiên, phần phụ trợ KeyMint chỉ có số chỗ giới hạn dành cho hoạt động. Để duy trì số lượng các hoạt động "vô hạn", trình nền Kho khoá sẽ cắt giảm các thao tác được sử dụng gần đây nhất nếu không có sẵn chỗ cho thao tác đó. Do đó, các hoạt động tốt có thể bị chấm dứt sớm. Điều này khiến AndroidKeystore gặp phải tình trạng từ chối dịch vụ (DoS) và bị khoá không mong muốn. Ví dụ: nếu nhiều ứng dụng bị đánh thức cùng một lúc do các hoạt động tối ưu hoá quản lý nguồn pin và cố gắng thực hiện hoạt động mã hoá, thì các ứng dụng đó sẽ bắt đầu chấm dứt các hoạt động khác mà không thực hiện tiến trình nào. Để thoát khỏi tình trạng tắc nghẽn trực tiếp và nỗ lực ngăn chặn DoS, chúng tôi đã thay đổi chiến lược cắt giảm để ưu tiên những ứng dụng khách sử dụng ít chỗ cho hoạt động trong thời gian ngắn. Do đó, các hoạt động đơn lẻ không kéo dài quá 5 giây hầu như sẽ không kết thúc được bằng chiến lược cắt giảm. Vẫn còn một số thao tác liên quan đến mã hoá hệ thống tệp có thể cắt giảm cả những hoạt động này, nhưng những trường hợp đó rất hiếm xảy ra. Do tác dụng phụ của chiến lược mới nhằm cắt giảm hoạt động này, quá trình tạo giờ đây có thể không thành công nếu ứng dụng có năng lực cắt giảm thấp hơn so với tất cả các hoạt động hiện tại. Chiến lược cắt giảm: Để tìm đối tượng phù hợp, chúng tôi tính toán malus cho phương thức gọi và từng hoạt động hiện có. Malus là khái niệm ngược lại với năng lực cắt giảm (phương thức gọi) hoặc có thể hiểu là năng lực chống cắt giảm (hoạt động hiện có). Để có thể cắt giảm một hoạt động, thì phương thức gọi phải tìm một hoạt động có malus cao hơn malus của chính phương thức đó. Để biết thêm thông tin chi tiết về chiến lược cắt giảm, hãy xem phương thức triển khai operation.rs.
          Trên Android 11 (API cấp 30) trở xuống, KeyStore2 sẽ thăm dò trình nền Kho khoá để xem có chỗ trống cho hoạt động không. Đối với các ứng dụng nhắm đến Android 11 (API cấp 30) trở xuống, có vẻ như quá trình khởi động đối tượng mật mã và chữ ký luôn thành công. Tuy nhiên, có thể mất nhiều thời gian hơn để nhận được thao tác. Mọi phiên bản Android đều được hưởng lợi từ khả năng lên lịch vùng hoạt động công bằng hơn và mang đến cơ hội tốt hơn để kết thúc hoạt động. | 
      
        | Mã thay đổi: 174664365LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn không thể gửi Intent.ACTION_CLOSE_SYSTEM_DIALOGStrừ phi ứng dụng cũng có quyềnandroid.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS. Xin lưu ý rằng đây là phiên bản hạn chế hơn của#DROP_CLOSE_SYSTEM_DIALOGS. Phiên bản này yêu cầu ứng dụng ngừng gửi ý địnhIntent.ACTION_CLOSE_SYSTEM_DIALOGSsau khi ứng dụng bắt đầu nhắm đến Android 12 (API cấp 31) trở lên. | 
      
        | Mã thay đổi: 173031413LOCK_DOWN_COLLAPSE_STATUS_BAR
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải có quyền Manifest.permission.STATUS_BARđể thu gọn các bảng điều khiển trên thanh trạng thái vì lý do bảo mật. Phần mềm độc hại đang khai thác lỗ hổng này để ngăn người dùng truy cập vào các thông báo quan trọng. | 
      
        | Mã thay đổi: 168936375LOW_POWER_EXCEPTIONS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, tất cả các đối tượng LocationRequestđược đánh dấu là tiêu thụ ít điện năng sẽ gửi các ngoại lệ nếu phương thức gọi không có quyềnLOCATION_HARDWARE, thay vì âm thầm loại bỏ phần tiêu thụ ít điện năng của yêu cầu. | 
      
        | Mã thay đổi: 150232615MISSING_EXPORTED_FLAG
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải chỉ định một giá trị rõ ràng cho thuộc tính android:exportedbất cứ khi nào bạn xác định một bộ lọc ý định. Để tìm hiểu thêm về thay đổi này, hãy xem phần Xuất thành phần an toàn hơn. | 
      
        | Mã thay đổi: 207557677NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 32) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 32) trở lên, các hoạt động phân bổ vùng nhớ heap gốc trong quy trình AppZygotevà các quy trình con của quy trình này sẽ sử dụng thẻ khác 0 trong byte quan trọng nhất. Để tìm hiểu thêm về thay đổi này, hãy xem bài viết Con trỏ được gắn thẻ. | 
      
        | Mã thay đổi: 178038272NATIVE_HEAP_ZERO_INIT
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Bật tính năng tự động khởi chạy không phân bổ bộ nhớ vùng nhớ khối xếp gốc. | 
      
        | Mã thay đổi: 135772972NATIVE_MEMTAG_ASYNC
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Bật tính năng kiểm tra bộ nhớ không đồng bộ (ASYNC) trong quá trình này. Cờ này chỉ ảnh hưởng đến phần cứng hỗ trợ Tiện ích gắn thẻ bộ nhớ (MTE) ARM. | 
      
        | Mã thay đổi: 177438394NATIVE_MEMTAG_SYNC
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Bật tính năng kiểm tra thẻ nhớ đồng bộ (SYNC) trong quá trình này. Cờ này chỉ ảnh hưởng đến phần cứng hỗ trợ Tiện ích gắn thẻ bộ nhớ (MTE) ARM. Nếu cả NATIVE_MEMTAG_ASYNCvà cờ này đều được bật, thì cờ này sẽ được ưu tiên và MTE sẽ được bật ở chế độ SYNC. | 
      
        | Mã thay đổi: 184838306NEVER_SANDBOX_DISPLAY_APIS
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Khi bật, hộp cát của API Hiển thị sẽ không áp dụng cho hộp thư hoặc hoạt động SCM. API Hiển thị sẽ tiếp tục cung cấp các giới hạn của DisplayArea. Để tìm hiểu thêm về thay đổi này, hãy xem phần về 
           Các phương thức hiển thị đã ngừng hoạt động trên trang Các thay đổi về hành vi của Android 12. | 
      
        | Mã thay đổi: 175319604NOTIFICATION_CANCELLATION_REASONS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Cho phép trình nghe thông báo hiểu rõ hơn về các lý do huỷ mới. | 
      
        | Mã thay đổi: 167676448NOTIFICATION_TRAMPOLINE_BLOCK
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Để cải thiện hiệu suất và trải nghiệm người dùng của ứng dụng, các ứng dụng nhắm đến Android 12 không thể dùng các dịch vụ hoặc broadcast receiver làm thành phần phản hồi với thao tác nhấn vào thông báo. Để tìm hiểu thêm về thay đổi này, hãy xem bài viết Không thể tạo thành phần phản hồi với thao tác nhấn vào thông báo từ các dịch vụ hoặc broadcast receiver. | 
      
        | Mã thay đổi: 182185642NULL_TELEPHONY_THROW_NO_CB
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Dùng để kiểm tra xem phiên bản SDK mục tiêu cho quy trình hiện tại có phải là Android 12 (API cấp 31) trở lên hay không. Áp dụng cho các phương thức sau:
              | 
      
        | Mã thay đổi: 174042980OVERRIDE_MIN_ASPECT_RATIO
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Thay đổi này là yếu tố thúc đẩy tất cả thay đổi có hành vi buộc áp dụng tỷ lệ khung hình tối thiểu nhất định. Khi bật đổi thay đổi này, hệ thống sẽ áp dụng tỷ lệ khung hình tối thiểu sau đây: Khi thay đổi này được bật đối với một gói ứng dụng, tỷ lệ khung hình tối thiểu được cung cấp trong tệp kê khai của ứng dụng sẽ được ghi đè thành tỷ lệ khung hình lớn nhất được bật, trừ khi giá trị trong tệp kê khai của ứng dụng cao hơn. | 
      
        | Mã thay đổi: 180326787OVERRIDE_MIN_ASPECT_RATIO_LARGE
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu OVERRIDE_MIN_ASPECT_RATIOđược bật cùng, việc bật thay đổi này cho một gói sẽ thiết lập tỷ lệ khung hình tối thiểu của hoạt động thành một giá trị lớn doOVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUExác định. | 
      
        | Mã thay đổi: 180326845OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
 
 Nếu OVERRIDE_MIN_ASPECT_RATIOđược bật cùng, việc bật thay đổi này cho một gói sẽ thiết lập tỷ lệ khung hình tối thiểu của hoạt động thành một giá trị trung bình doOVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUExác định. | 
      
        | Mã thay đổi: 160794467PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải chỉ định khả năng biến đổi của từng đối tượng PendingIntentmà ứng dụng của bạn tạo ra. Yêu cầu bổ sung này giúp cải thiện tính bảo mật của ứng dụng. Để tìm hiểu thêm về thay đổi này, hãy xem phần Ý định đang chờ xử lý phải khai báo khả năng biến đổi. | 
      
        | Mã thay đổi: 165573442PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Các ứng dụng quản trị nhắm đến Android 12 (API cấp 31) trở lên không thể dùng DevicePolicyManager.setPasswordQuality(ComponentName, int)để đặt chất lượng mật khẩu trên thực thểDevicePolicyManagerthu được bằng cách gọiDevicePolicyManager.getParentProfileInstance(ComponentName).
             Thay vào đó, họ nên dùngDevicePolicyManager.setRequiredPasswordComplexity(int)để đặt các yêu cầu về mật khẩu ở mức độ thô cho toàn thiết bị. | 
      
        | Mã thay đổi: 174840628RATE_LIMIT_TOASTS
Trạng thái mặc định: Không thể bật/tắt thay đổi này. Chỉ có khung tương thích ghi lại nhật ký này.
 
 Bật giới hạn số lượng lệnh gọi Toast.show()để ngăn việc gửi quá nhiều thông báo ngắn cho người dùng trong một khoảng thời gian có hạn. Nếu bạn cố gắng hiện nhiều thông báo ngắn hơn mức cho phép trong một khung thời gian nhất định thì sẽ dẫn đến việc thông báo ngắn bị loại bỏ. | 
      
        | Mã thay đổi: 171306433REQUIRE_EXACT_ALARM_PERMISSION
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các ứng dụng phải có quyền Manifest.permission.SCHEDULE_EXACT_ALARMđể sử dụng mọi API để đặt chuông báo chính xác, chẳng hạn nhưsetExactAndAllowWhileIdle(int, long, PendingIntent)vàsetAlarmClock(AlarmClockInfo, PendingIntent). | 
      
        | Mã thay đổi: 182478738REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATEđể gọiTelephonyCallback.ActiveDataSubscriptionIdListener. | 
      
        | Mã thay đổi: 184323934REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATEđể gọiTelephonyCallback.CellInfoListener. | 
      
        | Mã thay đổi: 183164979REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, các ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATEđể gọiTelephonyCallback.DisplayInfoListener. | 
      
        | Mã thay đổi: 171032338RESTRICT_ADB_BACKUP
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, adb backupsẽ tự động bật cho các ứng dụng chạy ở chế độ có thể gỡ lỗi (android:debuggableđược đặt thànhtrue) và không dùng được cho bất kỳ ứng dụng nào khác. | 
      
        | Mã thay đổi: 175408749RESTRICT_DOMAINS
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải sử dụng phiên bản mới của API xác minh đường liên kết đến ứng dụng. Yêu cầu này có nghĩa là ứng dụng phải khai báo các miền bên trong một bộ lọc ý định bao gồm tất cả những điều sau:  
             android:autoVerify="true"Intent.ACTION_VIEWIntent.CATEGORY_BROWSABLEIntet.CATEGORY_DEFAULTChỉ IntentFilter.SCHEME_HTTPvà/hoặcIntentFilter.SCHEME_HTTPS, không có giao thức nào khác Trên các phiên bản Android trước, Intent.CATEGORY_BROWSABLEkhông phải là yêu cầu bắt buộc, các lược đồ khác được phép và việc đặtautoVerifythànhtruetrong bất kỳ bộ lọc ý định nào sẽ ngầm giả định rằng tất cả bộ lọc ý định đều được đặt thànhautoVerify="true". | 
      
        | Mã thay đổi: 151105954SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy thực thi để tất cả attributionTagsđược gửi đếnnoteOp(String, int, String),noteProxyOp(String, String)vàstartOp(String, int, String)đều được xác định trong tệp kê khai của gói được chỉ định làm tham số của các phương thức. Để bật thay đổi này, cả gói gọi noteOp(String, int, String)cũng như gói được chỉ định làm tham số của phương thức đều phải bật thay đổi này. | 
      
        | Mã thay đổi: 143539591SELINUX_LATEST_CHANGES
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy chọn sử dụng các thay đổi mới nhất của SELinux. Việc tắt thay đổi này đối với ứng dụng nhắm đến Android 12 (API cấp 31) trở lên là không cần thiết. Không ảnh hưởng đến những ứng dụng dùng một mã nhận dạng người dùng chung. | 
      
        | Mã thay đổi: 178111421SETTINGS_API_V2
Trạng thái mặc định: Bật đối với tất cả ứng dụng.
 
 API lựa chọn ưu tiên của người dùng mới để xác minh các miền được đánh dấu autoVerify=truetrong bộ lọc ý định AndroidManifest.xml chưa được triển khai trong bản xem trước nền tảng hiện tại. Hiện tại, bạn có thể xem trước các thay đổi về lựa chọn ưu tiên của người dùng mới bằng cách bật ChangeId này và sử dụngadb shell pm set-app-links-user-selectioncũng như các lệnh tương tự. | 
      
        | Mã thay đổi: 183972877USE_SHORT_FGS_USAGE_INTERACTION_TIME
Trạng thái mặc định: Bật đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
 
 Đối với các ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hãy xác định xem có nên sử dụng thời gian chờ ngắn hơn trước khi nâng cấp nhóm ở chế độ chờ lên ACTIVEkhi ứng dụng bắt đầu một dịch vụ trên nền trước hay không. |