ALWAYS_SANDBOX_DISPLAY_APIS
Identyfikator zmiany: 185004937
Stan domyślny: wyłączone we wszystkich aplikacjach.
Po włączeniu ta opcja stosuje piaskownicę Display API do pakietu niezależnie od trybu okna. Interfejsy Display API zawsze podają granice aplikacji.
Więcej informacji o tej zmianie znajdziesz w sekcji na stronie poświęconej zmianom w zachowaniu Androida 12, w której omawiamy
metody wyświetlania wycofane.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
Identyfikator zmiany: 163400105
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 32) lub nowszego.
Od Androida 12 platforma może wyświetlać sugestie nietekstowe (np. obrazy) za pomocą rozszerzonego frameworku autouzupełniania (patrz usługi autouzupełniania). Aby aplikacja mogła obsługiwać te sugestie, musi zwykle implementować interfejs API OnReceiveContentListener .
Aby ułatwić stosowanie tego interfejsu API w przypadku aplikacji, które wcześniej implementowały interfejs InputConnection.commitContent(InputContentInfo, int, Bundle) , ponownie używamy tego interfejsu jako rozwiązania zastępczego, jeśli aplikacja nie ma jeszcze zaimplementowanego interfejsu OnReceiveContentListener . To rozwiązanie zastępcze jest włączone tylko na Androidzie 12 (poziom API 31). Ten identyfikator zmiany wyłącza substytut, co oznacza, że aplikacje kierowane na Androida 12 (poziom API 32) i nowsze muszą zaimplementować interfejs API OnReceiveContentListener , aby akceptować sugestie inne niż tekstowe.
|
BLOCK_FLAG_SLIPPERY
Identyfikator zmiany: 157929241
Stan domyślny: włączone dla wszystkich aplikacji.
W przypadku aplikacji działających na Androidzie 12 (poziom interfejsu API 31) sprawdza, czy flaga FLAG_SLIPPERY jest używana w jakichkolwiek oknach w aplikacji. Spodziewamy się, że flaga ta jest używana tylko przez komponenty systemowe, ponieważ jest to nieobsługiwane pole. Jeśli tak, zostanie ograniczony.
|
BLOCK_GPS_STATUS_USAGE
Identyfikator zmiany: 144027538
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 należy zastąpić wszystkie interfejsy API GpsStatus interfejsami GnssStatus .
|
BLOCK_IMMUTABLE_PENDING_INTENTS
Identyfikator zmiany: 171317480
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowszych obiekty PendingIntent , które są przekazywane do interfejsów API lokalizacji, będą generować błąd IllegalArgumentException. .
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
Identyfikator zmiany: 169887240
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego nie można używać interfejsów API systemu LocationRequest w zapytaniach o lokalizację PendingIntent .
|
BLOCK_UNTRUSTED_TOUCHES
Identyfikator zmiany: 158002302
Stan domyślny: Włączone dla wszystkich aplikacji.
Aby zapewnić bezpieczeństwo systemu i wygodę użytkowników, Android 12 uniemożliwia aplikacjom korzystanie z zdarzeń dotykowych, gdy nakładka blokuje aplikację w niebezpieczny sposób.
Więcej informacji o tej zmianie znajdziesz w artykule Zablokowanie zdarzeń dotyku pochodzących z nieznanego źródła.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
Identyfikator zmiany: 78294732
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 32) lub nowszego poprawia cykl życia wyniku aktywności, aby zagwarantować, że aktywność otrzyma wynik aktywności tuż przed wznowieniem.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
Identyfikator zmiany: 162547999
Stan domyślny: wyłączone we wszystkich aplikacjach.
Wskaźnik, że urządzenie obsługuje wskaźniki kamery i mikrofonu. Jeśli jest obecny, zwraca wartość false , ponieważ metoda CompatChanges#isChangeEnabled zwraca wartość true , jeśli identyfikator zmiany jest nieobecny.
|
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
Identyfikator zmiany: 146211400
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 32) i nowszych menedżer pakietów nie zainstaluje pakietu, jeśli zawiera on źle sformułowane grupy uprawnień.
Grupy uprawnień powinny być udostępniane tylko między aplikacjami, które mają ten sam certyfikat. Jeśli uprawnienie należy do grupy, musisz też zdefiniować tę grupę.
|
CHANGE_ID_AUTH_STATE_DENIED
Identyfikator zmiany: 181350407
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji klienckich kierowanych na Androida 12 (poziom API 31) lub nowszego, gdy są one w stanie odmowy autoryzacji i próbują wysłać wiadomość do nanoaplikacji, SecurityException zostanie wyrzucony.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
Identyfikator zmiany: 136069189
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego SecurityException jest zgłaszany, gdy aplikacja nie ma uprawnienia HIGH_SAMPLING_RATE_SENSORS , działa w trybie debugowania i prosi o szybkość próbkowania wyższą niż 200 Hz.
|
DELIVER_HISTORICAL_LOCATIONS
Identyfikator zmiany: 73144566
Stan domyślny: włączone 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 klienci lokalizacji mogą w niektórych okolicznościach 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 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych zapewnia zgodność wsteczną z modyfikacjami w TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
Identyfikator zmiany: 170503758
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego platforma może ograniczyć częstotliwość generowania klatek do dzielnika częstotliwości odświeżania, jeśli jest to bardziej pożądane (na przykład, gdy aplikacja wywołuje funkcję Surface.setFrameRate(float, int) ). Aplikacje będą otrzymywać wywołania zwrotne Choreographer.postFrameCallback(Choreographer.FrameCallback) i będzie na nie wywierany nacisk przy ograniczonej częstotliwości generowania klatek. Aplikacje używają wartości Display.getRefreshRate() i Display.Mode.getRefreshRate() , aby poznać częstotliwość odświeżania wyświetlacza.
Display.getRefreshRate() zawsze zwraca liczbę klatek aplikacji, a nie częstotliwość odświeżania fizycznego wyświetlacza, aby umożliwić aplikacjom prawidłowe dopasowanie liczby klatek. Display.Mode.getRefreshRate() zwróci liczbę klatek aplikacji, jeśli została skompilowana w poprzedniej wersji, a od Androida 12 (poziom API 31) zwróci rzeczywistą częstotliwość odświeżania wyświetlacza.
|
DOWNSCALED
Identyfikator zmiany: 168419799
Stan domyślny: wyłączone we wszystkich aplikacjach.
Ta zmiana jest bramką dla wszystkich zmian dotyczących zmniejszania rozmiaru bufora w poszczególnych aplikacjach. Włączenie tej zmiany umożliwia zastosowanie tych czynników skalowania:
Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, aplikacja zostanie zmuszona do zmiany rozmiaru do najwyższego, włączonego współczynnika skalowania. Na przykład 80% jest używane, jeśli włączone są ustawienia 80% i 70% (DOWNSCALE_80 i DOWNSCALE_70 ).
|
DOWNSCALE_30
Identyfikator zmiany: 189970040
Stan domyślny: wyłączone dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu z taką zmianą aplikacja zakłada, że działa na wyświetlaczu o 30% mniejszej rozdzielczości w osiach pionowej i poziomej w porównaniu do rzeczywistego wyświetlacza.
|
DOWNSCALE_35
Identyfikator zmiany: 189969749
Stan domyślny: wyłączone dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu ta zmiana spowoduje, że aplikacja będzie działać na wyświetlaczu o 35% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty wyświetlacz.
|
DOWNSCALE_40
Identyfikator zmiany: 189970038
Stan domyślny: wyłączone dla wszystkich aplikacji.
Jeśli włączysz też opcję DOWNSCALED , aplikacja będzie działać z założenia, że jest uruchomiona na wyświetlaczu o rozdzielczości w poziomie i w pionie równej 40% rzeczywistej rozdzielczości wyświetlacza.
|
DOWNSCALE_45
Identyfikator zmiany: 189969782
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu z tą zmianą aplikacja zakłada, że działa na wyświetlaczu o 45% mniejszej rozdzielczości w kierunku pionowym i poziomym niż rzeczywisty wyświetlacz.
|
DOWNSCALE_50
Identyfikator zmiany: 176926741
Stan domyślny: wyłączone dla wszystkich aplikacji.
Jeśli włączysz też opcję DOWNSCALED , aplikacja będzie działać z założenia, że jest uruchomiona na wyświetlaczu o rozdzielczości w poziomie i w pionie równej 50% rzeczywistej rozdzielczości.
|
DOWNSCALE_55
Identyfikator zmiany: 189970036
Stan domyślny: Wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu z tą zmianą aplikacja zakłada, że działa na wyświetlaczu o rozdzielczości w poziomie i w piotrze równej 55% rzeczywistej rozdzielczości.
|
DOWNSCALE_60
Identyfikator zmiany: 176926771
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączysz też opcję DOWNSCALED , aplikacja będzie działać z założeniem, że wyświetla się na ekranie o 60% mniejszej rozdzielczości w orientacji pionowej i poziomej niż rzeczywisty ekran.
|
DOWNSCALE_65
Identyfikator zmiany: 189969744
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu z tą zmianą aplikacja zakłada, że działa na wyświetlaczu o rozdzielczości w poziomie i w pionie o 65% mniejszej od rzeczywistej.
|
DOWNSCALE_70
Identyfikator zmiany: 176926829
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 70% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością.
|
DOWNSCALE_75
Identyfikator zmiany: 189969779
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o rozdzielczości 75% w orientacji pionowej i poziomej w porównaniu z rzeczywistą rozdzielczością.
|
DOWNSCALE_80
Identyfikator zmiany: 176926753
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o 80% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.
|
DOWNSCALE_85
Identyfikator zmiany: 189969734
Stan domyślny: wyłączone dla wszystkich aplikacji.
Jeśli włączona jest też opcja DOWNSCALED , w przypadku pakietu ta zmiana spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o 85% rozdzielczości pionowej i poziomej rzeczywistego wyświetlacza.
|
DOWNSCALE_90
Identyfikator zmiany: 182811243
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja DOWNSCALED , włączenie tej zmiany w przypadku pakietu spowoduje, że aplikacja będzie zakładać, że działa na wyświetlaczu o 90% rozdzielczości pionowej i poziomej 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 (poziom API 31) lub nowszego.
Aplikacje na Androida TV kierowane na Androida 12 (poziom API 31) lub nowszego powinny obsługiwać dowolny rozmiar okna, w tym większy niż 1080p.
Aplikacje kierowane na starsze wersje Androida nie oczekują, że otrzymają okna większe niż 1080p, więc w razie potrzeby są one zmniejszane do 1080p.
|
DROP_CLOSE_SYSTEM_DIALOGS
Identyfikator zmiany: 174664120
Stan domyślny: Włączone dla wszystkich aplikacji.
Aby zwiększyć kontrolę użytkownika podczas interakcji z aplikacjami i systemem, od Androida 12 nie obsługujemy już działania intencji ACTION_CLOSE_SYSTEM_DIALOGS .
Więcej informacji o tej zmianie znajdziesz w artykule Aplikacje nie mogą zamykać okienek dialogowych systemu.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
Identyfikator zmiany: 172100307
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Aplikacje kierowane na Androida 12 (poziom interfejsu API 31) lub nowszego nie mogą wstawiać ani aktualizować plików prywatnych za pomocą dostawcy multimediów.
|
ENABLE_DEFERRED_SCAN
Identyfikator zmiany: 180326732
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Włącz tę opcję, aby opóźnić skanowanie, które zostało uruchomione 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 (poziom 31 interfejsu API) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych włącza ochronę READ_PHONE_STATE w interfejsach API wysyłających zapytania i wysyłających powiadomienia o stanie połączenia, takich jak 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 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego włącza zabezpieczenia READ_PHONE_NUMBERS lub READ_PRIVILEGED_PHONE_STATE w getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
Identyfikator zmiany: 182734110
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Włącz tę opcję, aby uwzględnić wiersze bazy danych plików z niedawno odmontowanego woluminu w MediaProvider#query .
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
Identyfikator zmiany: 178209446
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
Włącz tę opcję, aby umożliwić aplikacjom z uprawnieniem Manifest.permission.MANAGE_EXTERNAL_STORAGE prosić o dostęp do zewnętrznej pamięci masowej w trybie bez ograniczeń.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
Identyfikator zmiany: 185199076
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) lub nowszego wszystkie nieprecyzyjne alarmy muszą mieć minimalny rozmiar okna, który powinien wynosić kilka minut. Praktycznie wszystkie alarmy wymagające krótszych okien są takie same jak alarmy precyzyjne i powinny używać odpowiednich interfejsów API, takich jak setExact(int, long, PendingIntent) . Nieprecyzyjne alarmy z krótszymi oknami zostaną wydłużone przez system.
|
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) lub nowszego muszą deklarować zależności od publicznych natywnych bibliotek współdzielonych zdefiniowanych przez producenta urządzenia za pomocą tagu uses-native-library w pliku AndroidManifest.xml . Jeśli nie uda się spełnić wymagań dotyczących zależności (np. jedna z nich nie istnieje), menedżer pakietów nie zainstaluje aplikacji. Zależność można oznaczyć jako opcjonalną, używając atrybutu android:required w tagu. W takim przypadku niespełnienie wymagań dotyczących zależności nie spowoduje przerwania instalacji.
Po zainstalowaniu aplikacja ma dostęp tylko do natywnych bibliotek udostępnionych określonych w pliku manifestu aplikacji. Wywołanie funkcji dlopen w przypadku natywnej biblioteki współdzielonej, która nie występuje w pliku manifestu aplikacji, spowoduje niepowodzenie, nawet jeśli biblioteka rzeczywiście istnieje na urządzeniu.
|
ENFORCE_STRICT_QUERY_BUILDER
Identyfikator zmiany: 143231523
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli ta opcja jest włączona, SQLiteQueryBuilder
sprawdza wszystkie CalendarProvider2 zapytania pod kątem złośliwych argumentów.
|
FGS_BG_START_RESTRICTION_CHANGE_ID
Identyfikator zmiany: 170668199
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych ogranicza się, kiedy aplikacje mogą uruchamiać usługi na pierwszym planie podczas działania w tle.
|
FGS_START_EXCEPTION_CHANGE_ID
Identyfikator zmiany: 174041399
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych system może wyrzucić błąd IllegalStateException , jeśli aplikacja spróbuje uruchomić usługę na pierwszym planie, gdy działa w tle.
|
Identyfikator zmiany: 156215187
Stan domyślny: wyłączone we wszystkich aplikacjach.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego zakończ InputConnection , gdy urządzenie stanie się non-interactive .
Jeśli jest włączone przez bieżące input method , bieżące połączenie wejściowe zostanie finished , gdy urządzenia staną się nieinteraktywne.
Jeśli nie jest włączone, bieżące połączenie wejściowe zostanie cicho dezaktywowane, gdy urządzenia staną 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łączone we wszystkich aplikacjach.
Wymusić wyłączenie obsługi formatu HEVC przez aplikację.
Aplikacje powinny deklarować obsługiwane formaty multimediów w pliku manifestu, ale ta flaga może być używana do wymuszania w aplikacji braku obsługi HEVC, co spowoduje wymuszenie transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest ona wyłączona, co oznacza, że mają pierwszeństwo ustawienia domyślne systemu operacyjnego. Jeśli włączone są zarówno ta flaga, jak i FORCE_ENABLE_HEVC_SUPPORT , system operacyjny ignoruje obie flagi.
|
FORCE_ENABLE_HEVC_SUPPORT
Identyfikator zmiany: 174228127
Stan domyślny: wyłączone we wszystkich aplikacjach.
Wymuszanie obsługi przez aplikację obsługiwanej przez nią funkcji multimediów HEVC. Aplikacje powinny deklarować obsługiwane funkcje multimediów w pliku manifestu, ale ta flaga może być używana do wymuszania obsługi HEVC, co pozwala uniknąć transkodowania podczas uzyskiwania dostępu do multimediów zakodowanych w HEVC. Ustawienie tego parametru zastępuje wszelkie domyślne ustawienia na poziomie systemu operacyjnego dla aplikacji. Domyślnie jest ona wyłączona, co oznacza, że mają zastosowanie ustawienia domyślne systemu operacyjnego. Jeśli włączone są zarówno ta flaga, jak i FORCE_DISABLE_HEVC_SUPPORT , system operacyjny ignoruje obie flagi.
|
FORCE_NON_RESIZE_APP
Identyfikator zmiany: 181136395
Stan domyślny: wyłączone we wszystkich aplikacjach.
Wymusza na pakietach, do których jest stosowany, niemożność zmiany rozmiaru.
|
FORCE_RESIZE_APP
Identyfikator zmiany: 174042936
Stan domyślny: wyłączone we wszystkich aplikacjach.
Wymusza możliwość zmiany rozmiaru pakietów, do których jest stosowany. Zezwalanie na zmianę rozmiaru tylko w trybie pełnoekranowym, a nie wymuszanie na aplikacji 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 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowszych usuwamy dostęp do właściwości android.icu.impl.ICUBinary.dataPath .
|
IGNORE_ALLOW_BACKUP_IN_D2D
Identyfikator zmiany: 183147249
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego podczas migracji z jednego urządzenia na drugie (D2D) symbol wieloznaczny android:allowBackup jest ignorowany.
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
Identyfikator zmiany: 180523564
Stan domyślny: Włączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych reguły uwzględniania i wykluczania określone za pomocą android:fullBackupContent są ignorowane podczas przesyłania z urządzenia na urządzenie (D2D).
|
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
Identyfikator zmiany: 169273070
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych funkcja getSupportedLocales() zwraca teraz pustą listę języków, gdy nie jest ustawiona, zamiast domyślnego języka systemu.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
Identyfikator zmiany: 158482162
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowszych uprawnienia BACKUP wymagane do isBackupServiceActive() są wymuszane po stronie usługi, a nie po stronie klienta w komponencie BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
Identyfikator zmiany: 169897160
Stan domyślny: wyłączone we wszystkich aplikacjach.
Gdy ta opcja jest włączona, utworzenie operacji dotyczącej klucza może się nie udać zgodnie z nową strategią przycinania. Keystore działał z założenia, że operacje kryptograficzne zawsze się udają.
Jednak backend KeyMint ma tylko ograniczoną liczbę slotów operacji.
Aby zachować pozory „nieograniczonych” slotów operacji,
demon Keystore usuwałby operacje, których nie używano od dłuższego czasu, gdyby nie było dostępnego slotu operacji. W efekcie może to spowodować przedwczesne zakończenie działania prawidłowo działających procesów. Oznacza to, że AndroidKeystore jest narażony na ataki typu DoS (odmowa usługi) i niezamierzone blokowanie. Jeśli na przykład wiele aplikacji zostanie uruchomionych jednocześnie z powodu optymalizacji zarządzania energią i próbuje wykonać operacje kryptograficzne, zaczną one kończyć operacje innych aplikacji bez żadnego postępu.
Aby uniknąć blokad i zniechęcić do prób ataku DoS, zmieniliśmy strategię przycinania, tak aby preferowała klientów, którzy przez krótki czas korzystają z niewielkiej liczby slotów operacyjnych. W efekcie pojedyncze operacje, które nie pozostają nieaktywne dłużej niż 5 sekund, prawie zawsze będą się kończyć bez wpływu strategii przycinania. Nadal istnieją operacje związane z szyfrowaniem systemu plików, które mogą przycinać nawet te operacje, ale takie przypadki są niezwykle rzadkie. W efekcie ubocznym tej nowej operacji związanej ze strategią przycinania tworzenie może się nie udać, jeśli klient ma mniejszą moc przycinania niż wszystkie dotychczasowe operacje.
Strategia przycinania: aby znaleźć odpowiednią kandydaturę, obliczamy malus dla wywołującego i każdej istniejącej operacji. Malus jest odwrotnością mocy przycinania (rozmówca) lub oporu przycinania (istniejącej operacji). Aby wywołujący mógł przyciąć operację, musi znaleźć operację z malus wyższym niż jego własny. Więcej informacji o strategii przycinania znajdziesz w dokumentacji dotyczącej implementacji operation.rs .
W Androidzie 11 (poziom interfejsu API 30) i starszym KeyStore2 będzie sprawdzać demona Keystore pod kątem wolnego slotu operacji. W przypadku aplikacji kierowanych na Androida 11 (poziom interfejsu API 30) lub starszego nadal będzie wyglądać na to, że szyfrowanie i inicjalizacja obiektu podpisu zawsze się udaje – jednak wykonanie operacji może zająć więcej czasu. Wszystkie wersje Androida korzystają z bardziej sprawiedliwego harmonogramu operacji i większych szans na pomyślne zakończenie operacji.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
Identyfikator zmiany: 174664365
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego nie można wysyłać wiadomości Intent.ACTION_CLOSE_SYSTEM_DIALOGS , chyba że aplikacja ma też uprawnienie 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 rozpocznie działanie na Androidzie 12 (poziom API 31) lub nowszym.
|
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) lub nowszego uprawnienie Manifest.permission.STATUS_BAR jest wymagane, aby z powodów bezpieczeństwa móc zwijać panele na pasku stanu. Złośliwe oprogramowanie wykorzystywało tę funkcję, aby uniemożliwić użytkownikom dostęp do powiadomień o znaczeniu krytycznym.
|
LOW_POWER_EXCEPTIONS
Identyfikator zmiany: 168936375
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego wszystkie obiekty LocationRequest oznaczone jako low power throw
wyrzucają wyjątki, jeśli wywołujący nie ma uprawnień LOCATION_HARDWARE , zamiast po cichu odrzucać część żądania dotyczącą niskiego zużycia energii.
|
MISSING_EXPORTED_FLAG
Identyfikator zmiany: 150232615
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego należy określić jawną 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łączone w przypadku aplikacji kierowanych na Androida 12 (API na poziomie 32) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 32) i nowszych przydzielanie pamięci natywnych w procesie AppZygote i jego potomkach używa tagu o wartości innej niż 0 w najstarszym bajcie.
Więcej informacji o tej zmianie znajdziesz w artykule Otagowane kursory.
|
NATIVE_HEAP_ZERO_INIT
Identyfikator zmiany: 178038272
Stan domyślny: wyłączone we wszystkich aplikacjach.
Włącz automatyczną zerową inicjalizację przydzielanej pamięci natywnych stosów.
|
NATIVE_MEMTAG_ASYNC
Identyfikator zmiany: 135772972
Stan domyślny: wyłączone we wszystkich aplikacjach.
Włącz w tym procesie asynchroniczne (ASYNC) sprawdzanie tagów pamięci. Ten parametr dotyczy tylko sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM.
|
NATIVE_MEMTAG_SYNC
Identyfikator zmiany: 177438394
Stan domyślny: wyłączone dla wszystkich aplikacji.
Włącza w tym procesie synchroniczne (SYNC) sprawdzanie etykiet pamięci. Ten parametr dotyczy tylko sprzętu obsługującego rozszerzenie Memory Tagging Extension (MTE) na ARM. Jeśli włączone są opcje NATIVE_MEMTAG_ASYNC i ta opcja, ta ostatnia ma pierwszeństwo, a MTE jest włączone w trybie synchronizacji.
|
NEVER_SANDBOX_DISPLAY_APIS
Identyfikator zmiany: 184838306
Stan domyślny: wyłączone dla wszystkich aplikacji.
Gdy ta opcja jest włączona, zapobiega stosowaniu piaskownicy interfejsu Display API do aktywności związanej z letterboxem lub SCM. Interfejsy Display API nadal będą udostępniać granice DisplayArea.
Więcej informacji o tej zmianie znajdziesz w sekcji na stronie 12 zmian zachowania na Androidzie dotyczącej
metod wyświetlania, które zostały wycofane.
|
NOTIFICATION_CANCELLATION_REASONS
Identyfikator zmiany: 175319604
Stan domyślny: włączony w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Umożliwia odbiorcom powiadomień zrozumienie nowych, bardziej szczegółowych przyczyn anulowania.
|
NOTIFICATION_TRAMPOLINE_BLOCK
Identyfikator zmiany: 167676448
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
Aby poprawić wydajność i wrażenia użytkownika, 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 lub odbiorników transmisji danych.
|
NULL_TELEPHONY_THROW_NO_CB
Identyfikator zmiany: 182185642
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Służy do sprawdzania, czy docelową wersją pakietu SDK dla bieżącego procesu jest Android 12 (poziom API 31) lub nowsza.
Dotyczy tych metod:
|
OVERRIDE_MIN_ASPECT_RATIO
Identyfikator zmiany: 174042980
Stan domyślny: wyłączone we wszystkich aplikacjach.
Ta zmiana jest bramką dla wszystkich zmian, które wymuszają określony minimalny format obrazu. Włączenie tej zmiany pozwala zastosować te minimalne proporcje:
Gdy ta zmiana zostanie włączona w przypadku pakietu aplikacji, minimalne proporcje podane w pliku manifestu zostaną zastąpione przez największe dozwolone proporcje, chyba że wartość w pliku manifestu jest wyższa.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
Identyfikator zmiany: 180326787
Stan domyślny: wyłączone we wszystkich aplikacjach.
Jeśli włączona jest też opcja OVERRIDE_MIN_ASPECT_RATIO , jej włączenie w przypadku pakietu powoduje ustawienie minimalnego współczynnika proporcji aktywności na dużą wartość określoną przez opcję OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
Identyfikator zmiany: 180326845
Stan domyślny: wyłączone dla wszystkich aplikacji.
Gdy włączona jest również opcja OVERRIDE_MIN_ASPECT_RATIO , w przypadku pakietu zmiana ta powoduje ustawienie minimalnego współczynnika proporcji aktywności na średnią wartość określoną przez opcję 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 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego musisz określić zmienność każdego obiektu PendingIntent , który tworzy aplikacja. To dodatkowe wymaganie zwiększa bezpieczeństwo aplikacji.
Więcej informacji o tej zmianie znajdziesz w artykule Oczekujące intencje muszą deklarować zmienność.
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
Identyfikator zmiany: 165573442
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
Aplikacje administracyjne kierowane na Androida 12 (poziom interfejsu API 31) lub nowszego nie mogą używać funkcji DevicePolicyManager.setPasswordQuality(ComponentName, int) do ustawiania jakości hasła w instansji DevicePolicyManager uzyskanej przez wywołanie funkcji DevicePolicyManager.getParentProfileInstance(ComponentName) .
Zamiast tego należy użyć 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 zmienić. Jest on rejestrowany tylko przez system sprawdzania zgodności.
Umożliwia ograniczenie szybkości wywoływania funkcji Toast.show() , aby nie obciążać użytkownika zbyt dużą liczbą toastów w określonym czasie. Każda próba wyświetlenia większej liczby toastów niż dozwolona w określonym przedziale czasowym powoduje odrzucenie toastu.
|
REQUIRE_EXACT_ALARM_PERMISSION
Identyfikator zmiany: 171306433
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) lub nowszego 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 (poziom API 31) lub nowszego.
Aplikacje kierowane na Androida 12 (poziom API 31) lub nowszego muszą mieć uprawnienie 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łączone w przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego.
Aplikacje kierowane na Androida 12 (poziom API 31) lub nowszego muszą mieć uprawnienie 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.
Aplikacje kierowane na Androida 12 (poziom API 31) lub nowszego muszą mieć uprawnienie Manifest.permission.READ_PHONE_STATE , aby wywoływać funkcję TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
Identyfikator zmiany: 171032338
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) lub nowszego adb backup jest automatycznie włączone w przypadku aplikacji działających w trybie debugowania (android:debuggable ustawione na true ) i niedostępne dla innych aplikacji.
|
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 wersja interfejsu API do weryfikacji linków aplikacji. Ten wymóg oznacza, że aplikacja musi zadeklarować domeny w filtrze intencji, który obejmuje 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 wartości 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łączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowszych wszystkie parametry attributionTags wysyłane do noteOp(String, int, String) , noteProxyOp(String, String) i startOp(String, int, String) są zdefiniowane w pliku manifestu pakietu, który jest określony jako parametr metod.
Aby można było wdrożyć tę zmianę, zarówno pakiet wywołujący funkcję noteOp(String, int, String) , jak i pakiet podany jako parametr metody muszą mieć włączoną tę zmianę.
|
SELINUX_LATEST_CHANGES
Identyfikator zmiany: 143539591
Stan domyślny: włączone w przypadku aplikacji kierowanych na Androida 12 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom API 31) i nowszych włącza najnowsze zmiany w SELinux. Wyłączenie tej zmiany w przypadku aplikacji kierowanej na Androida 12 (poziom interfejsu API 31) lub nowszego nie ma żadnego wpływu. 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łączone dla wszystkich aplikacji.
Nowy interfejs API preferencji użytkownika służący do weryfikacji domen oznaczonych jako autoVerify=true w filtrach intencji w pliku AndroidManifest.xml nie został jeszcze zaimplementowany w ramach bieżącej wersji w wersji próbnej. Obecnie można wyświetlić podgląd nowych zmian w ustawieniach użytkownika, włączając ten identyfikator zmiany i korzystając z 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 (poziom API 31) lub nowszego.
W przypadku aplikacji kierowanych na Androida 12 (poziom interfejsu API 31) i nowszych określa, czy należy użyć krótszego limitu czasu przed podniesieniem puli w stanie gotowości do
ACTIVE , gdy aplikacje uruchamiają usługę na pierwszym planie.
|