ALWAYS_SANDBOX_DISPLAY_APIS
Change ID: 185004937
Default State: Wyłączone dla wszystkich aplikacji.
Gdy ta opcja jest włączona, piaskownica interfejsu Display API jest stosowana do pakietu niezależnie od trybu okienkowego. Interfejsy Display API zawsze będą podawać granice aplikacji.
Więcej informacji o tej zmianie znajdziesz w sekcji na stronie dotyczącej zmian w zachowaniu Androida 12, która opisuje
wycofane metody wyświetlania.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
Identyfikator zmiany: 163400105
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 32) lub nowszego.
Od Androida 12 platforma może wyświetlać sugestie inne niż tekstowe (np. obrazy) za pomocą rozszerzonego frameworka autouzupełniania (patrz usługi autouzupełniania). Aby aplikacja mogła obsługiwać te sugestie, musi zwykle implementować interfejs OnReceiveContentListener API.
Aby ułatwić wdrożenie tego interfejsu API w aplikacjach, które wcześniej implementowały interfejs API
InputConnection.commitContent(InputContentInfo, int, Bundle)
, używamy tego interfejsu API jako rezerwy, jeśli aplikacja nie implementuje jeszcze interfejsu OnReceiveContentListener . Ta rezerwa jest włączona tylko na Androidzie 12 (poziom interfejsu API 31). Ten identyfikator zmiany wyłącza rezerwę, co oznacza, że aplikacje kierowane na Androida 12 (API na poziomie 32) i nowsze wersje muszą wdrożyć interfejs OnReceiveContentListener API, aby akceptować sugestie inne niż tekstowe.
|
BLOCK_FLAG_SLIPPERY
Identyfikator zmiany: 157929241
Stan domyślny: włączony dla wszystkich aplikacji.
W przypadku aplikacji działających na Androidzie 12 (poziom interfejsu API 31) sprawdza, czy
FLAG_SLIPPERY
jest używane w jakichkolwiek oknach aplikacji. Oczekujemy, że ta flaga będzie prawdopodobnie używana tylko przez komponenty systemu, ponieważ jest to nieobsługiwane pole. Jeśli tak, zostanie on objęty ograniczeniami.
|
BLOCK_GPS_STATUS_USAGE
Identyfikator zmiany: 144027538
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wszystkie wywołania interfejsu GpsStatus
API muszą zostać zastąpione wywołaniami interfejsu GnssStatus API.
|
BLOCK_IMMUTABLE_PENDING_INTENTS
Identyfikator zmiany: 171317480
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego niezmienne obiekty PendingIntent , które są przekazywane do interfejsów API lokalizacji, będą generować wyjątek IllegalArgumentException. .
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
Identyfikator zmiany: 169887240
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze LocationRequest interfejsów API systemu nie można używać z PendingIntent
żądaniami lokalizacji.
|
BLOCK_UNTRUSTED_TOUCHES
Identyfikator zmiany: 158002302
Stan domyślny: włączony w przypadku wszystkich aplikacji.
Aby zachować bezpieczeństwo systemu i zapewnić użytkownikom wygodę, Android 12 uniemożliwia aplikacjom korzystanie ze zdarzeń dotykowych, gdy nakładka blokuje aplikację w niebezpieczny sposób.
Więcej informacji o tej zmianie znajdziesz w artykule Zablokowane niezaufane zdarzenia dotyku.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
Identyfikator zmiany: 78294732
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 32) lub nowszego poprawia cykl życia wyniku aktywności, aby zagwarantować, że aktywność otrzyma wynik tuż przed wznowieniem.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
Identyfikator zmiany: 162547999
Stan domyślny: wyłączony dla wszystkich aplikacji.
Wskazuje, że to urządzenie obsługuje wskaźniki kamery i mikrofonu. Wartość false , jeśli jest obecna, ponieważ metoda CompatChanges#isChangeEnabled zwraca true , jeśli identyfikator zmiany nie jest obecny.
|
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
Identyfikator zmiany: 146211400
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 32) i nowsze wersje menedżer pakietów nie zainstaluje pakietu, jeśli zawiera on nieprawidłowo sformułowane grupy uprawnień.
Grupy uprawnień powinny być udostępniane tylko między aplikacjami, które mają wspólny certyfikat. Jeśli uprawnienie należy do grupy, musi być ona również zdefiniowana.
|
CHANGE_ID_AUTH_STATE_DENIED
Identyfikator zmiany: 181350407
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom 31 interfejsu API) lub nowszego.
W przypadku aplikacji klienckich kierowanych na Androida 12 (poziom API 31) i nowsze, gdy są one w stanie odmowy autoryzacji i próbują wysłać wiadomość do nanoaplikacji, zgłaszany jest wyjątek SecurityException .
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
Identyfikator zmiany: 136069189
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego, które nie mają uprawnień, działają w trybie debugowania i żądają częstotliwości próbkowania wyższych niż 200 Hz, zgłaszany jest wyjątek SecurityException .HIGH_SAMPLING_RATE_SENSORS
|
DELIVER_HISTORICAL_LOCATIONS
Identyfikator zmiany: 73144566
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) i nowsze w pewnych okolicznościach klienci lokalizacji mogą otrzymywać historyczne lokalizacje (sprzed obecnego czasu).
|
DISPLAY_INFO_NR_ADVANCED_SUPPORTED
Identyfikator zmiany: 181658987
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje zapewnia zgodność wsteczną ze zmianami w TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
Identyfikator zmiany: 170503758
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego platforma może obniżyć liczbę klatek na sekundę do dzielnika częstotliwości odświeżania, jeśli jest to bardziej korzystne (np. jeśli aplikacja wywołała Surface.setFrameRate(float, int) ). Aplikacje będą otrzymywać wywołania zwrotne Choreographer.postFrameCallback(Choreographer.FrameCallback) i odczuwać wzrost ciśnienia przy obniżonej liczbie klatek na sekundę. Aplikacje używają Display.getRefreshRate() i Display.Mode.getRefreshRate() , aby określić częstotliwość odświeżania wyświetlacza. Display.getRefreshRate() zawsze zwraca liczbę klatek na sekundę aplikacji, a nie fizyczną częstotliwość odświeżania wyświetlacza, aby umożliwić aplikacjom prawidłowe dopasowywanie liczby klatek. Display.Mode.getRefreshRate() zwróci liczbę klatek na sekundę aplikacji, jeśli zostanie skompilowana w poprzedniej wersji, a od Androida 12 (API na poziomie 31) będzie zwracać częstotliwość odświeżania wyświetlacza.
|
DOWNSCALED
Identyfikator zmiany: 168419799
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Ta zmiana jest punktem kontrolnym wszystkich zmian dotyczących zmniejszania bufora w poszczególnych aplikacjach. Włączenie tej zmiany umożliwia zastosowanie tych współczynników skalowania:
Gdy ta zmiana jest włączona w przypadku pakietu aplikacji, rozmiar aplikacji jest wymuszany do najwyższego włączonego współczynnika skalowania. Na przykład jeśli włączone są zarówno 80%, jak i 70% (DOWNSCALE_80 i DOWNSCALE_70 ), używana jest wartość 80%.
|
DOWNSCALE_30
Identyfikator zmiany: 189970040
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej stanowiącej 30% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_35
Identyfikator zmiany: 189969749
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 35% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_40
Identyfikator zmiany: 189970038
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej stanowiącej 40% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_45
Identyfikator zmiany: 189969782
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej stanowiącej 45% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_50
Identyfikator zmiany: 176926741
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 50% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_55
Identyfikator zmiany: 189970036
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 55% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_60
Identyfikator zmiany: 176926771
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 60% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_65
Identyfikator zmiany: 189969744
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 65% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_70
Identyfikator zmiany: 176926829
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 70% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_75
Identyfikator zmiany: 189969779
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, wprowadzenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 75% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_80
Identyfikator zmiany: 176926753
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Jeśli opcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 80% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_85
Identyfikator zmiany: 189969734
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 85% rozdzielczości rzeczywistego wyświetlacza.
|
DOWNSCALE_90
Identyfikator zmiany: 182811243
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli funkcja DOWNSCALED jest również włączona, włączenie tej zmiany w przypadku pakietu wymusza założenie, że aplikacja działa na wyświetlaczu o rozdzielczości pionowej i poziomej równej 90% rozdzielczości rzeczywistego wyświetlacza.
|
DO_NOT_DOWNSCALE_TO_1080P_ON_TV
Identyfikator zmiany: 157629738
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Aplikacje na Androida TV kierowane na Androida 12 (API na poziomie 31) i nowsze powinny obsługiwać dowolny rozmiar okna, w tym rozmiary większe niż 1080p.
Aplikacje przeznaczone na starsze wersje Androida nie oczekują okien o rozdzielczości większej niż 1080p, więc w razie potrzeby są one skalowane w dół do 1080p.
|
DROP_CLOSE_SYSTEM_DIALOGS
Identyfikator zmiany: 174664120
Stan domyślny: włączony dla wszystkich aplikacji.
Aby zwiększyć kontrolę użytkowników podczas interakcji z aplikacjami i systemem, działanie intencji ACTION_CLOSE_SYSTEM_DIALOGS jest od Androida 12 wycofane.
Więcej informacji o tej zmianie znajdziesz w artykule Aplikacje nie mogą zamykać okien systemowych.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
Identyfikator zmiany: 172100307
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom 31 interfejsu API) lub nowszego.
Aplikacje kierowane na Androida 12 (API na poziomie 31) i nowsze nie mogą wstawiać ani aktualizować plików prywatnych za pomocą dostawcy multimediów.
|
ENABLE_DEFERRED_SCAN
Identyfikator zmiany: 180326732
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Włącz tę opcję, aby odroczyć skanowanie, które jest wywoływane w ramach MediaProvider#update() .
|
ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
Identyfikator zmiany: 157233955
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze włącza ochronę READ_PHONE_STATE w interfejsach API, które wysyłają zapytania o stan połączenia i powiadamiają o nim, np. TelecomManager#getCallState , TelephonyManager.getCallStateForSubscription() i TelephonyCallback.CallStateListener .
|
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
Identyfikator zmiany: 183407956
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego włącza ochronę READ_PHONE_NUMBERS lub READ_PRIVILEGED_PHONE_STATE
w przypadku getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
Identyfikator zmiany: 182734110
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Włącz tę opcję, aby uwzględnić w MediaProvider#query wiersze bazy danych plików z ostatnio odmontowanego woluminu.
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
Identyfikator zmiany: 178209446
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Włącz tę opcję, aby zezwolić aplikacjom z uprawnieniem Manifest.permission.MANAGE_EXTERNAL_STORAGE na żądanie nieprzetworzonego dostępu do pamięci zewnętrznej.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
Identyfikator zmiany: 185199076
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom 31 interfejsu API) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego wszystkie niedokładne alarmy muszą mieć minimalny okres, który powinien wynosić kilka minut. Praktycznie wszystkie alarmy wymagające mniejszych okien są takie same jak alarmy precyzyjne i powinny korzystać z odpowiednich interfejsów API, takich jak setExact(int, long, PendingIntent) . W przypadku nieprecyzyjnych alarmów z określonymi krótszymi przedziałami czasu system wydłuży te przedziały.
|
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
Identyfikator zmiany: 142191088
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Aplikacje kierowane na Androida 12 (poziom API 31) i nowsze muszą deklarować zależności od publicznych natywnych bibliotek współdzielonych, które są definiowane przez producenta urządzenia za pomocą tagu uses-native-library w pliku AndroidManifest.xml . Jeśli nie można spełnić żadnego z wymagań wstępnych, np. jedno z nich nie istnieje, menedżer pakietów nie zainstaluje aplikacji. Wymaganie wstępne można określić jako opcjonalne za pomocą atrybutu android:required w tagu. W takim przypadku niespełnienie wymagania wstępnego nie spowoduje przerwania instalacji.
Po zainstalowaniu aplikacja ma dostęp tylko do natywnych bibliotek udostępnionych określonych w jej pliku manifestu. Wywołanie dlopen w przypadku natywnej biblioteki współdzielonej, która nie występuje w pliku manifestu aplikacji, zakończy się niepowodzeniem, nawet jeśli w rzeczywistości znajduje się na urządzeniu.
|
ENFORCE_STRICT_QUERY_BUILDER
Identyfikator zmiany: 143231523
Stan domyślny: wyłączony dla wszystkich aplikacji.
Gdy ta opcja jest włączona, SQLiteQueryBuilder weryfikuje wszystkie wybory zapytań CalendarProvider2 pod kątem złośliwych argumentów.
|
FGS_BG_START_RESTRICTION_CHANGE_ID
Identyfikator zmiany: 170668199
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje ogranicza możliwość uruchamiania usług działających na pierwszym planie podczas działania aplikacji w tle.
|
FGS_START_EXCEPTION_CHANGE_ID
Identyfikator zmiany: 174041399
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowsze wersje umożliwia systemowi zgłaszanie wyjątku IllegalStateException , jeśli aplikacja próbuje uruchomić usługę działającą na pierwszym planie podczas działania w tle.
|
Identyfikator zmiany: 156215187
Stan domyślny: wyłączony dla wszystkich aplikacji.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego należy zakończyć InputConnection , gdy urządzenie stanie się non-interactive .
Jeśli bieżący input method jest włączony, bieżące połączenie wejściowe będzie finished , gdy urządzenie przestanie reagować.
Jeśli nie jest włączona, bieżące połączenie wejściowe zostanie po cichu dezaktywowane, gdy urządzenie stanie się nieinteraktywne, a para onFinishInput() i onStartInput()
zostanie wysłana, gdy urządzenie znów stanie się interaktywne.
|
FORCE_DISABLE_HEVC_SUPPORT
Identyfikator zmiany: 174227820
Stan domyślny: wyłączony dla wszystkich aplikacji.
Wymuś wyłączenie obsługi HEVC w aplikacji.
Aplikacje powinny deklarować obsługiwane funkcje multimedialne w pliku manifestu, ale ta flaga może wymusić, aby aplikacja nie obsługiwała HEVC, a tym samym wymusić transkodowanie podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego flagi zastępuje wszelkie domyślne ustawienia systemu operacyjnego w przypadku aplikacji. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli ta flaga i flaga FORCE_ENABLE_HEVC_SUPPORT są włączone, system operacyjny ignoruje obie flagi.
|
FORCE_ENABLE_HEVC_SUPPORT
Identyfikator zmiany: 174228127
Stan domyślny: wyłączony dla wszystkich aplikacji.
Wymuszanie włączenia obsługi formatu HEVC w aplikacji. Aplikacje powinny deklarować obsługiwane funkcje multimedialne w pliku manifestu, ale ta flaga może służyć do wymuszania obsługi formatu HEVC w aplikacji, a tym samym do unikania transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w tym formacie. Ustawienie tego flagi zastępuje wszelkie domyślne ustawienia aplikacji na poziomie systemu operacyjnego. Domyślnie jest wyłączona, co oznacza, że pierwszeństwo mają ustawienia domyślne systemu operacyjnego. Jeśli ta flaga i flaga FORCE_DISABLE_HEVC_SUPPORT są włączone, system operacyjny ignoruje obie flagi.
|
FORCE_NON_RESIZE_APP
Identyfikator zmiany: 181136395
Stan domyślny: wyłączony dla wszystkich aplikacji.
Wymusza brak możliwości zmiany rozmiaru pakietów, do których jest stosowany.
|
FORCE_RESIZE_APP
Identyfikator zmiany: 174042936
Stan domyślny: wyłączony dla wszystkich aplikacji.
Wymusza zmianę rozmiaru pakietów, do których jest stosowany. Zezwalamy na zmianę rozmiaru tylko w trybie pełnoekranowym, ale nie wymuszamy na aplikacji przejścia do trybu wielu okien z możliwością zmiany rozmiaru.
|
HIDE_PROP_ICUBINARY_DATA_PATH
Identyfikator zmiany: 171979766
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje usuwa dostęp do właściwości android.icu.impl.ICUBinary.dataPath .
|
IGNORE_ALLOW_BACKUP_IN_D2D
Identyfikator zmiany: 183147249
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego parametr android:allowBackup jest ignorowany podczas migracji aplikacji z urządzenia na urządzenie.
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
Identyfikator zmiany: 180523564
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowsze wersje reguły uwzględniania i wykluczania określone za pomocą android:fullBackupContent są ignorowane podczas przesyłania danych między urządzeniami (D2D).
|
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
Identyfikator zmiany: 169273070
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje funkcja getSupportedLocales() zwraca teraz pustą listę ustawień regionalnych, gdy nie jest ona ustawiona, zamiast domyślnych ustawień regionalnych systemu.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
Identyfikator zmiany: 158482162
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje uprawnienia BACKUP potrzebne do isBackupServiceActive() są egzekwowane po stronie usługi, a nie po stronie klienta w BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
Identyfikator zmiany: 169897160
Stan domyślny: wyłączony dla wszystkich aplikacji.
Gdy ta opcja jest włączona, tworzenie operacji w magazynie kluczy może się nie powieść zgodnie z nową strategią przycinania. Keystore działał w założeniu, że tworzenie operacji kryptograficznych zawsze się udaje.
Backend KeyMint ma jednak tylko ograniczoną liczbę miejsc na operacje.
Aby zachować wrażenie „nieskończonej” liczby miejsc na operacje, demon Keystore usuwa najrzadziej używane operacje, jeśli nie ma dostępnego miejsca na operację. W efekcie dobre operacje mogą zostać przedwcześnie zakończone. Umożliwiło to atakowanie AndroidKeystore za pomocą ataków typu DoS i niezamierzone zakleszczenie. Jeśli na przykład kilka aplikacji zostanie uruchomionych w tym samym czasie z powodu optymalizacji zarządzania energią i spróbuje wykonać operacje kryptograficzne, zaczną przerywać sobie nawzajem te operacje, nie osiągając żadnych postępów.
Aby zapobiegać zakleszczeniom i zniechęcać do prób ataków typu DoS, zmieniliśmy strategię usuwania, tak aby preferowała klientów, którzy krótko korzystają z niewielkiej liczby miejsc na operacje. Dzięki temu pojedyncze operacje, które nie pozostają nieaktywne dłużej niż 5 sekund, prawie zawsze zakończą się bez przeszkód wynikających ze strategii przycinania. Istnieją jeszcze pewne operacje związane z szyfrowaniem systemu plików, które mogą wykluczyć nawet te operacje, ale zdarzają się one niezwykle rzadko. Skutkiem ubocznym tej nowej strategii przycinania jest to, że tworzenie może się teraz nie powieść, jeśli klient ma mniejszą moc przycinania niż wszystkie istniejące operacje.
Strategia przycinania: aby znaleźć odpowiedniego kandydata, obliczamy karę dla wywołującego i każdej istniejącej operacji. Wartość malus jest odwrotnością siły przycinania (wywołującego) lub odporności na przycinanie (istniejącej operacji). Aby wywołujący mógł usunąć operację, musi znaleźć operację z większym ujemnym współczynnikiem niż jego własny. Więcej informacji o strategii przycinania znajdziesz w sekcji dotyczącej implementacji operation.rs .
Na Androidzie 11 (poziom interfejsu API 30) i starszym usługa KeyStore2 będzie odpytywać demona Keystore o wolne miejsce na operację. W przypadku aplikacji kierowanych na Androida 11 (API na poziomie 30) lub starszego inicjowanie szyfru i obiektu podpisu nadal będzie wyglądać na udane, ale uzyskanie operacji może zająć więcej czasu. Wszystkie wersje Androida korzystają z bardziej sprawiedliwego harmonogramu przydzielania czasu na operacje i mają większą szansę na pomyślne zakończenie operacji.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
Identyfikator zmiany: 174664365
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje element Intent.ACTION_CLOSE_SYSTEM_DIALOGS nie może być wysyłany, chyba że aplikacja ma też uprawnienia android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS . Pamiętaj, że jest to bardziej restrykcyjna wersja #DROP_CLOSE_SYSTEM_DIALOGS
, która wymaga, aby aplikacja przestała wysyłać intencję Intent.ACTION_CLOSE_SYSTEM_DIALOGS , gdy zacznie być kierowana na Androida 12 (API na poziomie 31) lub nowszego.
|
LOCK_DOWN_COLLAPSE_STATUS_BAR
Identyfikator zmiany: 173031413
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wersje ze względów bezpieczeństwa wymagane jest uprawnienie Manifest.permission.STATUS_BAR , aby zwinąć panele paska stanu. Złośliwe oprogramowanie wykorzystywało tę funkcję, aby uniemożliwić użytkownikowi dostęp do ważnych powiadomień.
|
LOW_POWER_EXCEPTIONS
Identyfikator zmiany: 168936375
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego wszystkie obiekty LocationRequest oznaczone jako wymagające małej mocy zgłaszają wyjątki, jeśli wywołujący nie ma uprawnienia LOCATION_HARDWARE , zamiast cicho pomijać część żądania związaną z małą mocą.
|
MISSING_EXPORTED_FLAG
Identyfikator zmiany: 150232615
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego należy podać wyraźną wartość atrybutu android:exported za każdym razem, gdy zdefiniowany jest filtr intencji.
Więcej informacji o tej zmianie znajdziesz w artykule Bezpieczniejsze eksportowanie komponentów.
|
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
Identyfikator zmiany: 207557677
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 32) i nowsze wersje przydziały pamięci sterty natywnej w AppZygote procesie i jego elementach podrzędnych
używają niezerowego tagu w najbardziej znaczącym bajcie.
Więcej informacji o tej zmianie znajdziesz w sekcji Wskaźniki otagowane.
|
NATIVE_HEAP_ZERO_INIT
Zmień identyfikator: 178038272
Stan domyślny: wyłączony dla wszystkich aplikacji.
Włącz automatyczne zerowanie pamięci sterty natywnej.
|
NATIVE_MEMTAG_ASYNC
Identyfikator zmiany: 135772972
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Włącz asynchroniczne sprawdzanie tagów pamięci (ASYNC) w tym procesie. Ta flaga ma wpływ tylko na sprzęt obsługujący rozszerzenie ARM Memory Tagging Extension (MTE).
|
NATIVE_MEMTAG_SYNC
Identyfikator zmiany: 177438394
Stan domyślny: wyłączony dla wszystkich aplikacji.
Włącza w tym procesie synchroniczne sprawdzanie tagu pamięci (SYNC). Ta flaga ma wpływ tylko na sprzęt obsługujący rozszerzenie ARM Memory Tagging Extension (MTE). Jeśli zarówno parametr NATIVE_MEMTAG_ASYNC , jak i ta opcja są włączone, ta opcja ma pierwszeństwo i MTE jest włączony w trybie SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
Identyfikator zmiany: 184838306
Stan domyślny: wyłączony dla wszystkich aplikacji.
Gdy ta opcja jest włączona, zapobiega zastosowaniu piaskownicy interfejsu Display API do aktywności w przypadku letterboxa lub SCM. Interfejsy Display API nadal będą udostępniać granice DisplayArea.
Więcej informacji o tej zmianie znajdziesz w sekcji na stronie dotyczącej zmian w zachowaniu Androida 12, która opisuje
wycofane metody wyświetlania.
|
NOTIFICATION_CANCELLATION_REASONS
Identyfikator zmiany: 175319604
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Umożliwia odbiorcom powiadomień poznanie nowych, bardziej szczegółowych przyczyn anulowania.
|
NOTIFICATION_TRAMPOLINE_BLOCK
Identyfikator zmiany: 167676448
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom 31 interfejsu API) lub nowszego.
Aby zwiększyć wydajność aplikacji i poprawić wrażenia użytkowników, aplikacje kierowane na Androida 12 nie mogą używać usług ani odbiorników transmisji
jako trampolin powiadomień.
Więcej informacji o tej zmianie znajdziesz w artykule Nie można tworzyć trampolin powiadomień z usług ani odbiorników transmisji.
|
NULL_TELEPHONY_THROW_NO_CB
Identyfikator zmiany: 182185642
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Używany do sprawdzania, czy docelowa wersja pakietu SDK dla bieżącego procesu to Android 12 (API na poziomie 31) lub nowszy.
Dotyczy tych metod:
|
OVERRIDE_MIN_ASPECT_RATIO
Identyfikator zmiany: 174042980
Stan domyślny: wyłączony dla wszystkich aplikacji.
Ta zmiana jest punktem kontrolnym wszystkich zmian, które wymuszają określony minimalny współczynnik proporcji. Włączenie tej zmiany umożliwia stosowanie tych minimalnych współczynników proporcji:
Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, minimalne proporcje podane w manifeście aplikacji zostaną zastąpione największymi włączonymi proporcjami, chyba że wartość w manifeście aplikacji jest wyższa.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
Identyfikator zmiany: 180326787
Stan domyślny: wyłączony w przypadku wszystkich aplikacji.
Gdy włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO , włączenie tej zmiany w przypadku pakietu ustawia minimalny współczynnik proporcji aktywności na dużą wartość określoną przez OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
Identyfikator zmiany: 180326845
Stan domyślny: wyłączony dla wszystkich aplikacji.
Jeśli włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO , włączenie tej zmiany w przypadku pakietu ustawia minimalny współczynnik proporcji aktywności na średnią wartość określoną przez OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .
|
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
Identyfikator zmiany: 160794467
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego musisz określić zmienność każdego obiektu PendingIntent
tworzonego przez aplikację. To dodatkowe wymaganie zwiększa bezpieczeństwo aplikacji.
Więcej informacji o tej zmianie znajdziesz w artykule Pending intents must declare mutability (Intencje oczekujące muszą deklarować zmienność).
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
Identyfikator zmiany: 165573442
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
Aplikacje administracyjne kierowane na Androida 12 (poziom interfejsu API 31) i nowsze nie mogą używać DevicePolicyManager.setPasswordQuality(ComponentName, int)
do ustawiania jakości hasła w instancji DevicePolicyManager uzyskanej przez wywołanie DevicePolicyManager.getParentProfileInstance(ComponentName) .
Zamiast tego powinni używać DevicePolicyManager.setRequiredPasswordComplexity(int) , aby ustawić ogólne wymagania dotyczące haseł na wszystkich urządzeniach.
|
RATE_LIMIT_TOASTS
Identyfikator zmiany: 174840628
Stan domyślny: tej zmiany nie można przełączać. Jest rejestrowany tylko przez system sprawdzania zgodności.
Włącza ograniczenie liczby Toast.show() wywołań, aby zapobiec przeciążeniu użytkownika zbyt dużą liczbą komunikatów w ograniczonym czasie. Każda próba wyświetlenia większej liczby komunikatów niż dozwolona w określonym przedziale czasu spowoduje odrzucenie komunikatu.
|
REQUIRE_EXACT_ALARM_PERMISSION
Identyfikator zmiany: 171306433
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego aplikacje muszą mieć uprawnienia Manifest.permission.SCHEDULE_EXACT_ALARM , aby używać interfejsów API do ustawiania alarmów precyzyjnych, takich jak setExactAndAllowWhileIdle(int, long, PendingIntent)
i setAlarmClock(AlarmClockInfo, PendingIntent) .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
Identyfikator zmiany: 182478738
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego aplikacje muszą mieć uprawnienia Manifest.permission.READ_PHONE_STATE , aby wywoływać funkcję TelephonyCallback.ActiveDataSubscriptionIdListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
Identyfikator zmiany: 184323934
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego aplikacje muszą mieć uprawnienia Manifest.permission.READ_PHONE_STATE , aby wywoływać funkcję TelephonyCallback.CellInfoListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
Identyfikator zmiany: 183164979
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego aplikacje muszą mieć uprawnienia Manifest.permission.READ_PHONE_STATE , aby wywoływać funkcję TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
Identyfikator zmiany: 171032338
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego funkcja adb backup jest automatycznie włączana w aplikacjach, które można debugować (android:debuggable ustawione na true ), i niedostępna w innych aplikacjach.
|
RESTRICT_DOMAINS
Identyfikator zmiany: 175408749
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego wymagana jest zaktualizowana forma interfejsu API weryfikacji linków do aplikacji. To wymaganie oznacza, że aplikacja musi deklarować domeny w filtrze intencji, który zawiera wszystkie te elementy:
android:autoVerify="true"
Intent.ACTION_VIEW
Intent.CATEGORY_BROWSABLE
Intet.CATEGORY_DEFAULT
- Tylko
IntentFilter.SCHEME_HTTP lub IntentFilter.SCHEME_HTTPS , bez innych schematów
W poprzednich wersjach Androida Intent.CATEGORY_BROWSABLE nie było wymagane, dozwolone były inne schematy, a ustawienie autoVerify na true w dowolnym filtrze intencji powodowało, że wszystkie filtry intencji były traktowane jako ustawione na autoVerify="true" .
|
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
Identyfikator zmiany: 151105954
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze wymusza, aby wszystkie attributionTags wysyłane do noteOp(String, int, String) ,
noteProxyOp(String, String) ,
i startOp(String, int, String)
były zdefiniowane w manifeście pakietu określonego jako parametr metod.
Aby włączyć tę zmianę, musi ona być włączona zarówno w pakiecie wywołującym noteOp(String, int, String) , jak i w pakiecie określonym jako parametr metody.
|
SELINUX_LATEST_CHANGES
Identyfikator zmiany: 143539591
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowsze włącza najnowsze zmiany w SELinux. Wyłączenie tej zmiany w przypadku aplikacji kierowanej na Androida 12 (poziom API 31) lub nowszego nie ma żadnego efektu. Nie ma też wpływu na aplikacje, które używają wspólnego identyfikatora użytkownika.
|
SETTINGS_API_V2
Identyfikator zmiany: 178111421
Stan domyślny: włączony w przypadku wszystkich aplikacji.
Nowy interfejs API preferencji użytkownika do weryfikowania domen oznaczonych symbolem autoVerify=true w filtrach intencji pliku AndroidManifest.xml nie został jeszcze zaimplementowany w obecnej wersji platformy. Obecnie możesz wyświetlić podgląd nowych zmian w ustawieniach użytkownika, włączając ten identyfikator zmiany i używając poleceń adb shell pm set-app-links-user-selection i podobnych.
|
USE_SHORT_FGS_USAGE_INTERACTION_TIME
Identyfikator zmiany: 183972877
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowsze wersje określa, czy przed podniesieniem poziomu gotowości do ACTIVE , gdy aplikacje uruchamiają usługę na pierwszym planie, należy użyć krótszego limitu czasu.
|