ALWAYS_SANDBOX_DISPLAY_APIS
Mã thay đổi: 185004937
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.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
Mã thay đổi: 163400105
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 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ý các đề xuất này, ứng dụng thường phải triển khai API OnReceiveContentListener .
Để việc sử dụng API này trở nên suôn sẻ hơn cho các ứng dụng đã triển khai API InputConnection.commitContent(InputContentInfo, int, Bundle) trước đó, chúng ta sẽ sử dụng lại API đó làm phương án dự phòng nếu ứng dụng chưa triển khai OnReceiveContentListener . 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ẽ tắt phương thức dự phòng, chẳng hạn như các ứng dụng nhắm đến Android 12 (API cấp 32) trở lên phải triển khai API OnReceiveContentListener để chấp nhận các đề xuất không phải văn bản.
|
BLOCK_FLAG_SLIPPERY
Mã thay đổi: 157929241
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_SLIPPERY
có đang được sử dụng với bất kỳ cửa sổ nào trong ứng dụng hay không. Chúng tôi dự kiến rằng cờ này có thể chỉ được các thành phần hệ thống sử dụng vì đây là một
trường không được hỗ trợ. Nếu có, video đó sẽ bị hạn chế.
|
BLOCK_GPS_STATUS_USAGE
Mã thay đổi: 144027538
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ả hoạt động sử dụng API GpsStatus phải được thay thế bằng API GnssStatus .
|
BLOCK_IMMUTABLE_PENDING_INTENTS
Mã thay đổi: 171317480
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 PendingIntent không thể thay đổi được truyền vào API vị trí sẽ tạo ra một IllegalArgumentException.
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
Mã thay đổi: 169887240
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ể sử dụng API hệ thống LocationRequest với các yêu cầu vị trí PendingIntent .
|
BLOCK_UNTRUSTED_TOUCHES
Mã thay đổi: 158002302
Trạng thái mặc định: Bật đối với tất cả ứng dụng.
Để bảo vệ tính bảo mật của hệ thống và mang lại 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 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 Bị chặn sự kiện chạm không đáng tin cậy.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
Mã thay đổi: 78294732
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 sửa 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.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
Mã thay đổi: 162547999
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à false nếu có Mã thay đổi, vì phương thức CompatChanges#isChangeEnabled sẽ trả về true nếu không có Mã thay đổi.
|
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
Mã thay đổi: 146211400
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 gói nếu có các nhóm quyền bị định dạng không chính xác.
Bạn chỉ nên chia sẻ các 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 đó.
|
CHANGE_ID_AUTH_STATE_DENIED
Mã thay đổi: 181350407
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, SecurityException sẽ đượ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.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
Mã thay đổi: 136069189
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, SecurityException sẽ được gửi khi ứng dụng không có quyền HIGH_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.
|
DELIVER_HISTORICAL_LOCATIONS
Mã thay đổi: 73144566
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, ứng dụng vị trí có thể nhận được thông tin vị trí trước đây (trước thời điểm hiện tại) trong một số trường hợp.
|
DISPLAY_INFO_NR_ADVANCED_SUPPORTED
Mã thay đổi: 181658987
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, cung cấp khả năng tương thích ngược cho các thay đổi trong TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
Mã thay đổi: 170503758
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 có thể điều tiết tốc độ khung hình của ứng dụng xuống một bộ chia của
tốc độ làm mới nếu tốc độ này được ưu tiên hơn (ví dụ: nếu ứng dụng được gọi đến Surface.setFrameRate(float, int) ).
Các ứng dụng sẽ trải nghiệm lệnh gọi lại Choreographer.postFrameCallback(Choreographer.FrameCallback)
và áp lực ngược ở tốc độ khung hình bị điều tiết. Các ứng dụng sử dụng Display.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 để cho phép
ứng dụng thực hiện tốc độ khung hình 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 sang một bản phát hành trước đó và bắt đầu từ Android 12 (API cấp 31), hàm này sẽ trả về tốc độ làm mới màn hình thực.
|
DOWNSCALED
Mã thay đổi: 168419799
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_80 và DOWNSCALE_70 ).
|
DOWNSCALE_30
Mã thay đổi: 189970040
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_35
Mã thay đổi: 189969749
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_40
Mã thay đổi: 189970038
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_45
Mã thay đổi: 189969782
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_50
Mã thay đổi: 176926741
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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à 50%.
|
DOWNSCALE_55
Mã thay đổi: 189970036
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_60
Mã thay đổi: 176926771
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_65
Mã thay đổi: 189969744
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_70
Mã thay đổi: 176926829
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_75
Mã thay đổi: 189969779
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_80
Mã thay đổi: 176926753
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_85
Mã thay đổi: 189969734
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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%.
|
DOWNSCALE_90
Mã thay đổi: 182811243
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Nếu DOWNSCALED được bật cùng, việc bật thay đổi này cho một gói sẽ buộc ứng dụng giả định rằng nó đ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à 90%.
|
DO_NOT_DOWNSCALE_TO_1080P_ON_TV
Mã thay đổi: 157629738
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ổ, bao gồm cả Kích thước cửa sổ lớn hơn 1080p.
Các ứ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 chúng sẽ được giảm tỷ lệ xuống 1080p khi cần.
|
DROP_CLOSE_SYSTEM_DIALOGS
Mã thay đổi: 174664120
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 ứng dụng và hệ thống, hành động theo ý định ACTION_CLOSE_SYSTEM_DIALOGS không còn đượ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.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
Mã thay đổi: 172100307
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 không thể chèn hoặc cập nhật tệp riêng tư bằng trình cung cấp nội dung đa phương tiện.
|
ENABLE_DEFERRED_SCAN
Mã thay đổi: 180326732
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 tuỳ chọn này để trì hoãn quá trình quét được kích hoạt trong MediaProvider#update() .
|
ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
Mã thay đổi: 157233955
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_STATE trê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 .
|
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
Mã thay đổi: 183407956
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_NUMBERS hoặc READ_PRIVILEGED_PHONE_STATE trên getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
Mã thay đổi: 182734110
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 tuỳ chọn này để đưa các hàng cơ sở dữ liệu của tệp từ một phương tiện gần đây đã tháo trong MediaProvider#query .
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
Mã thay đổi: 178209446
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 tuỳ chọn này để cho phép các ứng dụng có quyền Manifest.permission.MANAGE_EXTERNAL_STORAGE yêu cầu quyền truy cập vào bộ nhớ ngoài thô.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
Mã thay đổi: 185199076
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 ứ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à 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à nên sử dụng các API tương ứng được cung cấp, chẳng hạn như setExact(int, long, PendingIntent) . Chuông báo không chính xác với các khoảng thời gian ngắn hơn được chỉ định sẽ có khoảng thời gian được hệ thống kéo dài.
|
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
Mã thay đổi: 142191088
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 cho 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 thẻ uses-native-library trong AndroidManifest.xml . Nếu không thể đáp ứng 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ính android:required trong thẻ. Trong trường hợp này, việc không đáp ứng phần phụ thuộc sẽ không ngăn quá trình cài đặt.
Sau khi cài đặt, ứng dụng 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 dlopen trê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ị.
|
ENFORCE_STRICT_QUERY_BUILDER
Mã thay đổi: 143231523
Trạng thái mặc định: Tắt đối với tất cả ứng dụng.
Khi được bật, SQLiteQueryBuilder sẽ xác minh đối số độc hại trên tất cả lựa chọn truy vấn CalendarProvider2 .
|
FGS_BG_START_RESTRICTION_CHANGE_ID
Mã thay đổi: 170668199
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 ứng dụng có thể bắt đầu các dịch vụ trên nền trước trong khi chạy ở chế độ nền.
|
FGS_START_EXCEPTION_CHANGE_ID
Mã thay đổi: 174041399
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 cho phép hệ thống gửi IllegalStateException nếu một ứng dụng cố gắng khởi động dịch vụ trên nền trước trong khi 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 InputConnection khi thiết bị trở thành
non-interactive .
Nếu input method hiện tại bật, thì kết nối đầu vào hiện tại sẽ là finished bất cứ khi nào thiết bị 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ị vô hiệu hoá một cách thầm lặng khi thiết bị không tương tác và một cặp
onFinishInput() và
onStartInput()
sẽ được gửi khi thiết bị tương tác trở lại.
|
FORCE_DISABLE_HEVC_SUPPORT
Mã thay đổi: 174227820
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 cả cờ này và FORCE_ENABLE_HEVC_SUPPORT đều được bật, hệ điều hành sẽ bỏ qua cả hai cờ.
|
FORCE_ENABLE_HEVC_SUPPORT
Mã thay đổi: 174228127
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 đặ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_DISABLE_HEVC_SUPPORT , hệ điều hành sẽ bỏ qua cả hai cờ.
|
FORCE_NON_RESIZE_APP
Mã thay đổi: 181136395
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.
|
FORCE_RESIZE_APP
Mã thay đổi: 174042936
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.
|
HIDE_PROP_ICUBINARY_DATA_PATH
Mã thay đổi: 171979766
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 ứ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 .
|
IGNORE_ALLOW_BACKUP_IN_D2D
Mã thay đổi: 183147249
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:allowBackup sẽ bị bỏ qua đối với các ứng dụng trong quá trình di chuyển từ thiết bị này sang thiết bị khác (D2D).
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
Mã thay đổi: 180523564
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:fullBackupContent sẽ bị bỏ qua trong quá trình chuyển từ thiết bị này sang thiết bị khác (D2D).
|
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
Mã thay đổi: 169273070
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 không được đặt, thay vì ngôn ngữ hệ thống mặc định.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
Mã thay đổi: 158482162
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 BACKUP cần thiết cho isBackupServiceActive() sẽ được thực thi ở phía dịch vụ thay vì phía máy khách trong BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
Mã thay đổi: 169897160
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 việc 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 cách 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.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
Mã thay đổi: 174664365
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_DIALOGS trừ phi ứng dụng đó cũng có quyền android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS . Xin lưu ý rằng đây là phiên bản #DROP_CLOSE_SYSTEM_DIALOGS hạn chế hơn, dự kiến ứng dụng sẽ ngừng gửi ý định Intent.ACTION_CLOSE_SYSTEM_DIALOGS sau khi ứng dụng bắt đầu nhắm đến Android 12 (API cấp 31) trở lên.
|
LOCK_DOWN_COLLAPSE_STATUS_BAR
Mã thay đổi: 173031413
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 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 đã 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.
|
LOW_POWER_EXCEPTIONS
Mã thay đổi: 168936375
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ả đối tượng LocationRequest được đánh dấu là tiết kiệm pin sẽ gửi ngoại lệ nếu phương thức gọi không có quyền LOCATION_HARDWARE , thay vì âm thầm loại bỏ phần tiết kiệm pin của yêu cầu.
|
MISSING_EXPORTED_FLAG
Mã thay đổi: 150232615
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 ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, bạn phải chỉ định giá trị rõ ràng cho thuộc tính android:exported mỗi khi xác định 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.
|
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
Mã thay đổi: 207557677
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 lượt phân bổ vùng nhớ khối xếp gốc trong quy trình AppZygote và các quy trình con của quy trình này sử dụng thẻ khác 0 trong byte có giá trị 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ẻ.
|
NATIVE_HEAP_ZERO_INIT
Mã thay đổi: 178038272
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.
|
NATIVE_MEMTAG_ASYNC
Mã thay đổi: 135772972
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.
|
NATIVE_MEMTAG_SYNC
Mã thay đổi: 177438394
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_ASYNC và cờ này đều được bật, thì cờ này sẽ được ưu tiên và MTE sẽ được bật ở chế độ SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
Mã thay đổi: 184838306
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.
|
NOTIFICATION_CANCELLATION_REASONS
Mã thay đổi: 175319604
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ề lý do huỷ mới.
|
NOTIFICATION_TRAMPOLINE_BLOCK
Mã thay đổi: 167676448
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ể sử dụng dịch vụ hoặc broadcast receiver làm thành phần đàn hồi (trampoline) cho thông báo.
Để tìm hiểu thêm về thay đổi này, hãy xem phần 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.
|
NULL_TELEPHONY_THROW_NO_CB
Mã thay đổi: 182185642
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:
|
OVERRIDE_MIN_ASPECT_RATIO
Mã thay đổi: 174042980
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.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
Mã thay đổi: 180326787
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 do OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE xác định.
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
Mã thay đổi: 180326845
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 do OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE xác định.
|
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
Mã thay đổi: 160794467
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 ứ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 PendingIntent mà ứng dụng của bạn tạo ra. Yêu cầu bổ sung này giúp tăng cường 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.
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
Mã thay đổi: 165573442
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ể sử dụng DevicePolicyManager.setPasswordQuality(ComponentName, int) để đặt chất lượng mật khẩu trên thực thể DevicePolicyManager thu được bằng cách gọi DevicePolicyManager.getParentProfileInstance(ComponentName) .
Thay vào đó, họ nên sử dụng DevicePolicyManager.setRequiredPasswordComplexity(int) để đặt các yêu cầu về mật khẩu ở mức độ tổng quát trên toàn thiết bị.
|
RATE_LIMIT_TOASTS
Mã thay đổi: 174840628
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ỏ.
|
REQUIRE_EXACT_ALARM_PERMISSION
Mã thay đổi: 171306433
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, ứng dụng phải có quyền Manifest.permission.SCHEDULE_EXACT_ALARM để sử dụng mọi API nhằm đặt chuông báo chính xác, chẳng hạn như setExactAndAllowWhileIdle(int, long, PendingIntent) và setAlarmClock(AlarmClockInfo, PendingIntent) .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
Mã thay đổi: 182478738
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, ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATE để gọi TelephonyCallback.ActiveDataSubscriptionIdListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
Mã thay đổi: 184323934
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, ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATE để gọi TelephonyCallback.CellInfoListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
Mã thay đổi: 183164979
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, ứng dụng phải có quyền Manifest.permission.READ_PHONE_STATE để gọi TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
Mã thay đổi: 171032338
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 backup sẽ tự động bật cho các ứng dụng chạy ở chế độ có thể gỡ lỗi (android:debuggable được đặt thành true ) và không có sẵn cho bất kỳ ứng dụng nào khác.
|
RESTRICT_DOMAINS
Mã thay đổi: 175408749
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 sử dụng biểu mẫu mới của API xác minh đường liên kết trong ứ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 bộ lọc ý định bao gồm tất cả các miền sau:
android:autoVerify="true"
Intent.ACTION_VIEW
Intent.CATEGORY_BROWSABLE
Intet.CATEGORY_DEFAULT
- Chỉ
IntentFilter.SCHEME_HTTP và/hoặc IntentFilter.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_BROWSABLE không phải là yêu cầu, các lược đồ khác được cho phép và việc đặt autoVerify thành true trong 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ành autoVerify="true" .
|
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
Mã thay đổi: 151105954
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 thực thi việc tất cả attributionTags được gửi đến noteOp(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.
|
SELINUX_LATEST_CHANGES
Mã thay đổi: 143539591
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 về SELinux. Bạn không thể tắt thay đổi này đối với ứng dụng nhắm đến Android 12 (API cấp 31) trở lên. Thay đổi này không ảnh hưởng đến các ứng dụng sử dụng mã nhận dạng người dùng dùng chung.
|
SETTINGS_API_V2
Mã thay đổi: 178111421
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 mới của người dùng để xác minh các miền được đánh dấu là autoVerify=true trong 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 mới của người dùng bằng cách bật ChangeId này và sử dụng adb shell pm set-app-links-user-selection cũng như các lệnh tương tự.
|
USE_SHORT_FGS_USAGE_INTERACTION_TIME
Mã thay đổi: 183972877
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 bộ chứa chế độ chờ lên
ACTIVE khi ứng dụng khởi động một dịch vụ trên nền trước hay không.
|