Włączanie i wyłączanie Centrum bezpieczeństwa
Aby włączyć lub wyłączyć Centrum bezpieczeństwa, użyj nakładalnego pola logicznego config_enableSafetyCenter
w pliku frameworks/base/core/res/res/values/config.xml
.
Na większości urządzeń Centrum bezpieczeństwa jest domyślnie obsługiwane, na przykład na telefonach i tabletach. W przypadku niektórych formatów Centrum bezpieczeństwa jest domyślnie wyłączone, na przykład na urządzeniach Auto, TV i Wear.
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- ... -->
<!-- Determines whether SafetyCenter feature is enabled. -->
<bool name="config_enableSafetyCenter">true</bool>
<!-- ... -->
</resources>
Aby obsługiwać Centrum bezpieczeństwa, ustaw wartość config_enableSafetyCenter
na true
. Jeśli nie chcesz korzystać z Safety Center, ustaw tę wartość na false
, aby go wyłączyć.
Gdy Centrum bezpieczeństwa jest wyłączone, każda próba przekierowania do strony Bezpieczeństwo i prywatność powoduje otwarcie aplikacji Ustawienia. Każda próba interakcji z interfejsami API jest dyskretnie ignorowana lub zwraca wartość domyślną. Powiązany kafelek Szybkie ustawienia i wpis Ustawienia też są widoczne lub ukryte w zależności od tego, czy włączone jest Centrum bezpieczeństwa.
Flaga DeviceConfig
Oprócz włączenia Centrum bezpieczeństwa przy użyciu konfiguracji config_enableSafetyCenter
używana jest flaga DeviceConfig
(safety_center_is_enabled
) do zdalnego włączania lub wyłączania Centrum bezpieczeństwa.
W Androidzie 14 i nowszych nie musisz nic robić, ponieważ ta flaga ma domyślnie wartość true
.
W Androidzie 13 Centrum bezpieczeństwa jest domyślnie wyłączone po stronie serwera i włączone przez listę dozwolonych za pomocą tej flagi. Prześlij odciski palców urządzenia i skontaktuj się z osobą kontaktową ds. obsługi klienta, aby dodać urządzenie do listy dozwolonych. Pamiętaj, że do dodania do listy dozwolonych wymagana jest główna wersja M-2022-11
lub nowsza.
Na potrzeby lokalnego programowania i testowania flagę można włączyć lub wyłączyć lokalnie (do czasu ponownego uruchomienia) za pomocą polecenia adb
. Na przykład, aby włączyć flagę:
adb root
adb shell device_config set_sync_disabled_for_tests until_reboot
adb shell device_config put privacy safety_center_is_enabled true
Aby sprawdzić, czy Centrum bezpieczeństwa jest włączone:
adb root
adb shell cmd safety_center enabled
Wynik zwróci, czy Centrum bezpieczeństwa jest prawidłowo włączone na urządzeniu.
Aktualizowanie pliku konfiguracji
Aby zmodyfikować zawartość ekranu Centrum bezpieczeństwa, użyj pliku konfiguracji safety_center_config.xml
. Możesz nakładać ten plik, jeśli spełniasz wymagania dotyczące dostosowywania.
Nakładanie pliku konfiguracji
Aby nałożyć plik safety_center_config.xml
, zapoznaj się z artykułem Zmienianie wartości zasobów aplikacji w czasie wykonywania, w którym znajdziesz informacje o modyfikowaniu nakładek zasobów w czasie wykonywania.
W Androidzie 14 musisz zastosować nakładkę do pliku res/raw-v34/safety_center_config.xml
, a nie do pliku res/raw/safety_center_config.xml
, ponieważ ten pierwszy ma pierwszeństwo (dotyczy to też innych plików, które są ograniczone do v34
, np. res/values-v34/strings.xml
). Pakiet nakładki musi mieć minimalną wersję pakietu Android SDK niższą niż 34
, w przeciwnym razie podczas optymalizacji może zostać usunięty ogranicznik v34
.
Pamiętaj też, aby używać nakładki statycznej, ponieważ ta wartość jest wczytywana w okresie uruchamiania.
W przypadku urządzeń Android Open Source Project (AOSP) ustaw kierowanie na pakiet com.android.safetycenter.resources
. Nie ma konfiguracji nakładki do użycia. Wszystkie zasoby można nałożyć bez ograniczeń na treść.
W przypadku urządzeń GMS skonfigurowanych do otrzymywania aktualizacji Mainline ustaw kierowanie na pakiet com.google.android.safetycenter.resources
. Kieruj na konfigurację
SafetyCenterConfig
. Ta konfiguracja wymaga, aby pakiet nakładki znajdował się na partycji product
, system
lub vendor
. Producenci OEM GMS powinni skopiować safety_center_config.xml
plik dostarczony przez Google i ograniczyć zmiany do tych dozwolonych przez testy GTS. Definicja nakładki powinna wyglądać mniej więcej tak:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.overlay.package"
android:versionCode="1"
android:versionName="1.0">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.google.android.safetycenter.resources"
android:targetName="SafetyCenterConfig"
android:isStatic="true"
android:priority="0"/>
</manifest>
W przypadku urządzeń GMS, które nie są skonfigurowane do otrzymywania aktualizacji Mainline, ustaw kierowanie na pakiet com.android.safetycenter.resources
. Nie ma konfiguracji nakładki docelowej. Pakiet nakładki musi używać nazwy pakietu com.google.android.safetycenter.resources
.
OEM firmy GMS powinien skopiować udostępniony przez Google plik safety_center_config.xml
i ograniczyć modyfikacje dopuszczone w testach GTS. Muszą też określić ciągi tekstowe używane w konfiguracji XML.
Struktura pliku
Ogólnie plik safety_center_config.xml
to lista źródeł bezpieczeństwa. Te źródła bezpieczeństwa są uporządkowane w grupy, aby można było nimi zarządzać na ekranie Centrum bezpieczeństwa, na przykład w przypadku Bezpieczeństwa aplikacji lub Blokady ekranu. Kolejność wyświetlania listy określa kolejność wyświetlania:
<safety-center-config> <!-- Wrapper for the Safety Center configuration -->
<safety-sources-config>< !-- Wrapper for the safety sources groups -->
<safety-sources-group> <!-- Contains information about a safety sources group -->
<dynamic-safety-source /> <!-- Contains information about a safety source -->
<!-- More safety sources in the group -->
</safety-sources-group> <!-- More safety sources groups -->
</safety-sources-config>
</safety-center-config>
Plik konfiguracji Google
Plik konfiguracji AOSP znajduje się w folderze packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml
.
W Androidzie 13 plik konfiguracji Google znajduje się w miejscu:
<safety-center-config>
<safety-sources-config>
<safety-sources-group
id="GoogleAppSecuritySources"
title="@com.google.android.safetycenter.resources:string/google_app_security_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_app_security_sources_summary">
<dynamic-safety-source
id="GooglePlayProtect"
packageName="com.android.vending"
profile="all_profiles"
intentAction="com.google.android.finsky.PLAY_PROTECT"
title="@com.google.android.safetycenter.resources:string/google_play_protect_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_play_protect_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_protect_search_terms"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GoogleAppProtectionService"
packageName="com.google.android.odad"
profile="primary_profile_only"
initialDisplayState="hidden"
loggingAllowed="false"/>
</safety-sources-group>
<safety-sources-group
id="AndroidLockScreenSources"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_summary">
<dynamic-safety-source
id="AndroidLockScreen"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_lock_screen_search_terms"
initialDisplayState="disabled"
maxSeverityLevel="300"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="AndroidBiometrics"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_biometrics_title"
summary="@com.google.android.safetycenter.resources:string/google_biometrics_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_biometrics_search_terms"
initialDisplayState="@com.google.android.safetycenter.resources:string/google_biometrics_initial_display_state"
maxSeverityLevel="0"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="GoogleAccountsSources"
title="@com.google.android.safetycenter.resources:string/google_accounts_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_accounts_sources_summary">
<dynamic-safety-source
id="GoogleSecurityCheckup"
packageName="com.google.android.gms"
profile="all_profiles"
intentAction="com.google.android.gms.accountsettings.action.SAFETY_CENTER_SECURITY_CHECKUP"
title="@com.google.android.safetycenter.resources:string/google_security_checkup_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_security_checkup_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_security_checkup_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_checkup_search_terms"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="GoogleDeviceFinderSources"
title="@com.google.android.safetycenter.resources:string/google_device_finder_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_device_finder_sources_summary">
<dynamic-safety-source
id="GoogleFindMyDevice"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="com.google.android.gms.settings.FIND_MY_DEVICE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_find_my_device_title"
summary="@com.google.android.safetycenter.resources:string/google_find_my_device_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_find_my_device_search_terms"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GoogleRogueTag"
packageName="com.google.android.gms"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="GoogleUpdateSources"
title="@com.google.android.safetycenter.resources:string/google_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_updates_summary">
<dynamic-safety-source
id="GoogleSecurityUpdates"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="@com.google.android.safetycenter.resources:string/google_security_updates_intent"
title="@com.google.android.safetycenter.resources:string/google_security_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_security_updates_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_updates_search_terms"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GooglePlaySystemUpdate"
packageName="com.android.vending"
profile="primary_profile_only"
intentAction="android.settings.MODULE_UPDATE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_play_system_update_title"
summary="@com.google.android.safetycenter.resources:string/google_play_system_update_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_system_update_search_terms"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="AndroidPrivacySources"
title="@com.google.android.safetycenter.resources:string/google_privacy_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_sources_summary"
statelessIconType="privacy">
<static-safety-source
id="AndroidPermissionUsage"
profile="primary_profile_only"
intentAction="android.intent.action.REVIEW_PERMISSION_USAGE"
title="@com.google.android.safetycenter.resources:string/google_permission_usage_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_usage_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_usage_search_terms"/>
<static-safety-source
id="AndroidPermissionManager"
profile="primary_profile_only"
intentAction="android.intent.action.MANAGE_PERMISSIONS"
title="@com.google.android.safetycenter.resources:string/google_permission_manager_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_manager_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_manager_search_terms"/>
<static-safety-source
id="AndroidPrivacyControls"
profile="primary_profile_only"
intentAction="android.settings.PRIVACY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_privacy_controls_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_privacy_controls_search_terms"/>
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidNotificationListener"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidBackgroundLocation"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidPermissionAutoRevoke"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="AndroidAdvancedSources"
title="@com.google.android.safetycenter.resources:string/google_advanced_title">
<dynamic-safety-source
id="AndroidWorkPolicyInfo"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
<static-safety-source
id="AndroidAdvancedSecurity"
profile="primary_profile_only"
intentAction="com.android.settings.security.SECURITY_ADVANCED_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_advanced_security_title"
summary="@com.google.android.safetycenter.resources:string/google_advanced_security_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_advanced_security_search_terms"/>
<static-safety-source
id="AndroidAdvancedPrivacy"
profile="primary_profile_only"
intentAction="android.settings.PRIVACY_ADVANCED_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_advanced_privacy_title"
summary="@com.google.android.safetycenter.resources:string/google_advanced_privacy_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_advanced_privacy_search_terms"/>
</safety-sources-group>
</safety-sources-config>
</safety-center-config>
Na Androidzie 14 plik konfiguracji Google to:
<safety-center-config>
<safety-sources-config>
<safety-sources-group
id="GoogleAppSecuritySources"
title="@com.google.android.safetycenter.resources:string/google_app_security_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_app_security_sources_summary">
<dynamic-safety-source
id="GooglePlayProtect"
packageName="com.android.vending"
profile="all_profiles"
intentAction="com.google.android.finsky.PLAY_PROTECT"
title="@com.google.android.safetycenter.resources:string/google_play_protect_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_play_protect_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_protect_search_terms"
notificationsAllowed="true"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
deduplicationGroup="AppSecurity"/>
<issue-only-safety-source
id="GoogleAppProtectionService"
packageName="com.google.android.odad"
profile="primary_profile_only"
loggingAllowed="false"
deduplicationGroup="AppSecurity"/>
</safety-sources-group>
<safety-sources-group
id="AndroidLockScreenSources"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_summary">
<dynamic-safety-source
id="AndroidLockScreen"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_lock_screen_search_terms"
initialDisplayState="disabled"
notificationsAllowed="true"
maxSeverityLevel="300"/>
<dynamic-safety-source
id="AndroidBiometrics"
packageName="com.android.settings"
profile="all_profiles"
title="@com.google.android.safetycenter.resources:string/google_biometrics_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_biometrics_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_biometrics_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_biometrics_search_terms"
initialDisplayState="@com.google.android.safetycenter.resources:string/google_biometrics_initial_display_state"
maxSeverityLevel="0"/>
</safety-sources-group>
<safety-sources-group
id="GoogleAccountsSources"
title="@com.google.android.safetycenter.resources:string/google_accounts_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_accounts_sources_summary">
<dynamic-safety-source
id="GoogleSecurityCheckup"
packageName="com.google.android.gms"
profile="all_profiles"
intentAction="com.google.android.gms.accountsettings.action.SAFETY_CENTER_SECURITY_CHECKUP"
title="@com.google.android.safetycenter.resources:string/google_security_checkup_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_security_checkup_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_security_checkup_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_checkup_search_terms"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GooglePasswordCheckup"
packageName="com.google.android.gms"
profile="all_profiles"
title="@com.google.android.safetycenter.resources:string/google_password_checkup_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_password_checkup_title_for_work"
searchTerms="@com.google.android.safetycenter.resources:string/google_password_checkup_search_terms"
initialDisplayState="hidden"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
refreshOnPageOpenAllowed="false"/>
</safety-sources-group>
<safety-sources-group
id="GoogleDeviceFinderSources"
title="@com.google.android.safetycenter.resources:string/google_device_finder_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_device_finder_sources_summary">
<dynamic-safety-source
id="GoogleFindMyDevice"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="com.google.android.gms.settings.FIND_MY_DEVICE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_find_my_device_title"
summary="@com.google.android.safetycenter.resources:string/google_find_my_device_summary"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_find_my_device_search_terms"/>
<dynamic-safety-source
id="GoogleRogueTag"
packageName="com.google.android.gms"
profile="primary_profile_only"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
initialDisplayState="hidden"/>
</safety-sources-group>
<safety-sources-group
id="GoogleUpdateSources"
title="@com.google.android.safetycenter.resources:string/google_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_updates_summary">
<dynamic-safety-source
id="GoogleSecurityUpdates"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="@com.google.android.safetycenter.resources:string/google_security_updates_intent"
title="@com.google.android.safetycenter.resources:string/google_security_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_security_updates_summary"
notificationsAllowed="true"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_updates_search_terms"/>
<dynamic-safety-source
id="GooglePlaySystemUpdate"
packageName="com.android.vending"
profile="primary_profile_only"
intentAction="android.settings.MODULE_UPDATE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_play_system_update_title"
summary="@com.google.android.safetycenter.resources:string/google_play_system_update_summary"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_system_update_search_terms"/>
<dynamic-safety-source
id="GoogleBackupAndRestore"
packageName="com.google.android.gms"
profile="primary_profile_only"
initialDisplayState="hidden"
title="@com.google.android.safetycenter.resources:string/google_backup_title"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_backup_search_terms"/>
</safety-sources-group>
<safety-sources-group
id="AndroidPrivacySources"
title="@com.google.android.safetycenter.resources:string/google_privacy_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_sources_summary"
statelessIconType="privacy">
<static-safety-source
id="AndroidPermissionManager"
profile="primary_profile_only"
intentAction="android.intent.action.MANAGE_PERMISSIONS"
title="@com.google.android.safetycenter.resources:string/google_permission_manager_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_manager_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_manager_search_terms"/>
<static-safety-source
id="AndroidPermissionUsage"
profile="primary_profile_only"
intentAction="android.intent.action.REVIEW_PERMISSION_USAGE"
title="@com.google.android.safetycenter.resources:string/google_permission_usage_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_usage_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_usage_search_terms"/>
<static-safety-source
id="GoogleAdsIdentity"
profile="all_profiles"
packageName="com.google.android.gms"
intentAction="com.google.android.gms.adsidentity.ACTION_ADS_IDENTITY_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_ads_identity_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_ads_identity_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_ads_identity_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_ads_identity_search_terms"/>
<dynamic-safety-source
id="AndroidHealthConnect"
profile="primary_profile_only"
packageName="com.google.android.healthconnect.controller"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="false"
title="@com.google.android.safetycenter.resources:string/google_health_connect_title"
searchTerms="@com.google.android.safetycenter.resources:string/google_health_connect_search_terms"/>
<dynamic-safety-source
id="AndroidPrivacyAppDataSharingUpdates"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"
title="@com.google.android.safetycenter.resources:string/google_app_data_sharing_updates_title"
searchTerms="@com.google.android.safetycenter.resources:string/google_app_data_sharing_updates_search_terms"/>
<static-safety-source
id="AndroidPrivacyControls"
profile="primary_profile_only"
intentAction="android.settings.PRIVACY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_privacy_controls_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_privacy_controls_search_terms"/>
<static-safety-source
id="GoogleActivityControls"
profile="all_profiles"
packageName="com.google.android.gms"
intentAction="com.google.android.gms.accountsettings.action.ACTIVITY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_activity_controls_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_activity_controls_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_activity_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_activity_controls_search_terms"/>
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidNotificationListener"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidBackgroundLocation"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidPermissionAutoRevoke"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="AndroidAdvancedSources"
title="@com.google.android.safetycenter.resources:string/google_advanced_title">
<dynamic-safety-source
id="AndroidWorkPolicyInfo"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_work_policy_title"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
<static-safety-source
id="AndroidMoreSettings"
profile="primary_profile_only"
intentAction="com.android.settings.MORE_SECURITY_PRIVACY_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_more_settings_title"
summary="@com.google.android.safetycenter.resources:string/google_more_settings_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_more_settings_search_terms"/>
</safety-sources-group>
</safety-sources-config>
</safety-center-config>
W Androidzie 15 plik konfiguracji Google ma następującą lokalizację:
<safety-center-config>
<safety-sources-config>
<safety-sources-group
id="GoogleAppSecuritySources"
title="@com.google.android.safetycenter.resources:string/google_app_security_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_app_security_sources_summary">
<dynamic-safety-source
id="GooglePlayProtect"
packageName="com.android.vending"
profile="all_profiles"
intentAction="com.google.android.finsky.PLAY_PROTECT"
title="@com.google.android.safetycenter.resources:string/google_play_protect_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_private_profile"
summary="@com.google.android.safetycenter.resources:string/google_play_protect_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_protect_search_terms"
notificationsAllowed="true"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
deduplicationGroup="AppSecurity"/>
<issue-only-safety-source
id="GoogleAppProtectionService"
packageName="com.google.android.odad"
profile="primary_profile_only"
loggingAllowed="false"
deduplicationGroup="AppSecurity"/>
</safety-sources-group>
<safety-sources-group
id="AndroidLockScreenSources"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_sources_summary">
<dynamic-safety-source
id="AndroidLockScreen"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_lock_screen_search_terms"
initialDisplayState="disabled"
notificationsAllowed="true"
maxSeverityLevel="300"/>
<dynamic-safety-source
id="AndroidBiometrics"
packageName="com.android.settings"
profile="all_profiles"
title="@com.google.android.safetycenter.resources:string/google_biometrics_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_biometrics_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_biometrics_title_for_private_profile"
summary="@com.google.android.safetycenter.resources:string/google_biometrics_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_biometrics_search_terms"
initialDisplayState="@com.google.android.safetycenter.resources:string/google_biometrics_initial_display_state"
maxSeverityLevel="0"/>
<dynamic-safety-source
id="GoogleAutoLock"
packageName="com.google.android.gms"
profile="primary_profile_only"
initialDisplayState="hidden"
maxSeverityLevel="0"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"/>
</safety-sources-group>
<safety-sources-group
id="GoogleAccountsSources"
title="@com.google.android.safetycenter.resources:string/google_accounts_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_accounts_sources_summary">
<dynamic-safety-source
id="GoogleSecurityCheckup"
packageName="com.google.android.gms"
profile="all_profiles"
intentAction="com.google.android.gms.accountsettings.action.SAFETY_CENTER_SECURITY_CHECKUP"
title="@com.google.android.safetycenter.resources:string/google_security_checkup_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_security_checkup_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_security_checkup_title_for_private_profile"
summary="@com.google.android.safetycenter.resources:string/google_security_checkup_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_checkup_search_terms"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GooglePasswordCheckup"
packageName="com.google.android.gms"
profile="all_profiles"
title="@com.google.android.safetycenter.resources:string/google_password_checkup_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_password_checkup_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_password_checkup_title_for_private_profile"
searchTerms="@com.google.android.safetycenter.resources:string/google_password_checkup_search_terms"
initialDisplayState="hidden"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
refreshOnPageOpenAllowed="false"/>
</safety-sources-group>
<safety-sources-group
id="GoogleDeviceFinderSources"
title="@com.google.android.safetycenter.resources:string/google_device_finder_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_device_finder_sources_summary">
<dynamic-safety-source
id="GoogleFindMyDevice"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="com.google.android.gms.settings.FIND_MY_DEVICE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_find_my_device_title"
summary="@com.google.android.safetycenter.resources:string/google_find_my_device_summary"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_find_my_device_search_terms"/>
<dynamic-safety-source
id="GoogleRogueTag"
packageName="com.google.android.gms"
profile="primary_profile_only"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
initialDisplayState="hidden"/>
</safety-sources-group>
<safety-sources-group
id="GoogleUpdateSources"
title="@com.google.android.safetycenter.resources:string/google_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_updates_summary">
<dynamic-safety-source
id="GoogleSecurityUpdates"
packageName="com.google.android.gms"
profile="primary_profile_only"
intentAction="@com.google.android.safetycenter.resources:string/google_security_updates_intent"
title="@com.google.android.safetycenter.resources:string/google_security_updates_title"
summary="@com.google.android.safetycenter.resources:string/google_security_updates_summary"
notificationsAllowed="true"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_security_updates_search_terms"/>
<dynamic-safety-source
id="GooglePlaySystemUpdate"
packageName="com.android.vending"
profile="primary_profile_only"
intentAction="android.settings.MODULE_UPDATE_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_play_system_update_title"
summary="@com.google.android.safetycenter.resources:string/google_play_system_update_summary"
notificationsAllowed="true"
deduplicationGroup="AccountRequired"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_system_update_search_terms"/>
<dynamic-safety-source
id="GoogleBackupAndRestore"
packageName="com.google.android.gms"
profile="primary_profile_only"
initialDisplayState="hidden"
title="@com.google.android.safetycenter.resources:string/google_backup_title"
packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"
searchTerms="@com.google.android.safetycenter.resources:string/google_backup_search_terms"/>
</safety-sources-group>
<safety-sources-group
id="AndroidCellularNetworkSecuritySources"
title="@com.google.android.safetycenter.resources:string/google_cellular_network_security_title"
summary="@com.google.android.safetycenter.resources:string/google_cellular_network_security_summary">
<dynamic-safety-source
id="AndroidCellularNetworkSecurity"
packageName="com.android.phone"
profile="primary_profile_only"
notificationsAllowed="true"
initialDisplayState="hidden"/>
</safety-sources-group>
<safety-sources-group
id="AndroidPrivacySources"
title="@com.google.android.safetycenter.resources:string/google_privacy_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_sources_summary">
<static-safety-source
id="AndroidPermissionManager"
profile="primary_profile_only"
intentAction="android.intent.action.MANAGE_PERMISSIONS"
title="@com.google.android.safetycenter.resources:string/google_permission_manager_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_manager_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_manager_search_terms"/>
<static-safety-source
id="GoogleAdsIdentity"
profile="all_profiles"
packageName="com.google.android.gms"
intentAction="com.google.android.gms.adsidentity.ACTION_ADS_IDENTITY_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_ads_identity_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_ads_identity_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_ads_identity_title_for_private_profile"
summary="@com.google.android.safetycenter.resources:string/google_ads_identity_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_ads_identity_search_terms"/>
<dynamic-safety-source
id="AndroidHealthConnect"
profile="primary_profile_only"
packageName="com.google.android.healthconnect.controller"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="false"
title="@com.google.android.safetycenter.resources:string/google_health_connect_title"
searchTerms="@com.google.android.safetycenter.resources:string/google_health_connect_search_terms"/>
<dynamic-safety-source
id="AndroidPrivacyAppDataSharingUpdates"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"
title="@com.google.android.safetycenter.resources:string/google_app_data_sharing_updates_title"
searchTerms="@com.google.android.safetycenter.resources:string/google_app_data_sharing_updates_search_terms"/>
<static-safety-source
id="AndroidPrivacyControls"
profile="primary_profile_only"
intentAction="android.settings.PRIVACY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_privacy_controls_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_privacy_controls_search_terms"/>
<static-safety-source
id="GoogleActivityControls"
profile="all_profiles"
packageName="com.google.android.gms"
intentAction="com.google.android.gms.accountsettings.action.ACTIVITY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_activity_controls_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_activity_controls_title_for_work"
titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_activity_controls_title_for_private_profile"
summary="@com.google.android.safetycenter.resources:string/google_activity_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_activity_controls_search_terms"/>
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidNotificationListener"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidBackgroundLocation"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidPermissionAutoRevoke"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
notificationsAllowed="true"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
<safety-sources-group
id="AndroidPrivacySourcesAdditional"
title="@com.google.android.safetycenter.resources:string/google_privacy_additional_title">
<static-safety-source
id="AndroidPermissionUsage"
profile="primary_profile_only"
intentAction="android.intent.action.REVIEW_PERMISSION_USAGE"
title="@com.google.android.safetycenter.resources:string/google_permission_usage_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_usage_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_usage_search_terms"/>
<dynamic-safety-source
id="AndroidPrivateSpace"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_private_space_title"
summary="@com.google.android.safetycenter.resources:string/google_private_space_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_private_space_search_terms"
initialDisplayState="hidden"
maxSeverityLevel="0"/>
</safety-sources-group>
<safety-sources-group
id="AndroidAdvancedSources"
title="@com.google.android.safetycenter.resources:string/google_advanced_title">
<dynamic-safety-source
id="AndroidWorkPolicyInfo"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_work_policy_title"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
<static-safety-source
id="AndroidMoreSettings"
profile="primary_profile_only"
intentAction="com.android.settings.MORE_SECURITY_PRIVACY_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_more_settings_title"
summary="@com.google.android.safetycenter.resources:string/google_more_settings_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_more_settings_search_terms"/>
</safety-sources-group>
</safety-sources-config>
</safety-center-config>
Dostosowywanie źródeł Centrum bezpieczeństwa
Typy źródeł Centrum bezpieczeństwa
Źródła mogą być dynamiczne, związane tylko z problemem lub statyczne, w zależności od typu danych, które przekazują do Centrum bezpieczeństwa.
Źródła dynamiczne
Oznacz źródło bezpieczeństwa jako dynamic-safety-source
, jeśli może ono przekazywać dane dynamiczne do Centrum bezpieczeństwa, zarówno w przypadku wpisu, jak i potencjalnych kart ostrzeżenia:
<dynamic-safety-source
id="AndroidLockScreen"
packageName="com.android.settings"
profile="primary_profile_only"
title="@com.google.android.safetycenter.resources:string/google_lock_screen_title"
summary="@com.google.android.safetycenter.resources:string/google_lock_screen_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_lock_screen_search_terms"
initialDisplayState="disabled"
maxSeverityLevel="300"
refreshOnPageOpenAllowed="true"/>
Źródła tylko z problemami
Oznacz źródło jako issue-only-safety-source
, jeśli nie ma powiązanego wpisu w ustawieniach, ale nadal wyświetlane są ostrzeżenia. Możesz podać tylko ostrzeżenia;
podanie wpisu ustawień spowoduje błąd:
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
Źródła statyczne
Oznacz źródło jako static-safety-source
, jeśli jest to wpis przekierowania bez danych dynamicznych:
<static-safety-source
id="AndroidAdvancedSecurity"
profile="primary_profile_only"
intentAction="com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS"
title="@com.google.android.safetycenter.resources:string/google_advanced_security_title"
summary="@com.google.android.safetycenter.resources:string/google_advanced_security_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_advanced_security_search_terms"/>
Konfiguracja źródła Centrum bezpieczeństwa
W zależności od typu źródła Centrum bezpieczeństwa i innych niezmiennych pola pliku konfiguracji są opcjonalne, wymagane lub zabronione i można je dostosować:
id
- Unikalny identyfikator źródła danych bezpieczeństwa. Musi być unikalny w całym pliku i składać się wyłącznie z liter (a–z, A–Z). Wielkość liter ma znaczenie.
- Typ ciągu znaków
- Wymagany w przypadku wszystkich typów źródeł danych o bezpieczeństwie
packageName
- Nazwa pakietu, który jest właścicielem tego źródła bezpieczeństwa, na przykład:
com.google.android.permissioncontroller
- Typ ciągu znaków
- Wymagane w przypadku źródeł bezpieczeństwa dynamicznych i stwarzających tylko problemy
- Zabronione w przypadku źródeł bezpieczeństwa statycznego w Androidzie 13. W Androidzie 14 można to opcjonalnie ustawić tak, aby cel
intentAction
źródła dotyczył jednoznacznie, a nie niejawnie (więcej informacji znajdziesz w dokumentacji rozwiązywania problemów).
- Nazwa pakietu, który jest właścicielem tego źródła bezpieczeństwa, na przykład:
initialDisplayState
- Sposób wyświetlania wpisu w interfejsie, gdy źródło bezpieczeństwa nie udostępnia żadnych danych
- Typ wyliczeniowy reprezentowany jako ciąg znaków, musi mieć jedną z tych wartości:
enabled
(wartość domyślna, wyświetlanie normalne)disabled
(wyświetla się w szarejowanej formie i nie można go kliknąć)hidden
(nie wyświetla się)
- Opcjonalny w przypadku dynamicznych źródeł bezpieczeństwa (wartość domyślna to
enabled
) - Niedozwolone w przypadku źródeł bezpieczeństwa zawierających tylko informacje o problemach i statycznych źródeł bezpieczeństwa
profile
- Określa, czy to źródło bezpieczeństwa wchodzi w interakcje z zarządzanym profilem użytkownika
- Typ wyliczenia reprezentowany jako ciąg znaków musi mieć jedną z tych wartości:
primary_profile_only
(działa tylko z rodzicem profilu)all_profiles
(może również wchodzić w interakcje z profilami zarządzanymi, a od Androida 15 – profil prywatny)
- W systemie
all_profiles
generowanych jest kilka wpisów w interfejsie (jedna dla profilu nadrzędnego i jednego dla każdego profilu zarządzanego). Źródło bezpieczeństwa może dostarczać różne dane dla każdego profilu. - Wymagane w przypadku wszystkich źródeł bezpieczeństwa
searchTerms
- Lista wyszukiwanych haseł, które powiązane są z poszczególnymi wpisami w Centrum bezpieczeństwa, gdy korzystasz z wyszukiwarki w aplikacji Ustawienia
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_search_terms
- Opcjonalne w przypadku dynamicznych i statycznych źródeł bezpieczeństwa (domyślnie nie są wyszukiwane hasła)
- Zabronione w przypadku źródeł bezpieczeństwa, które zawierają tylko informacje o problemach
title
- Domyślny tytuł elementu interfejsu użytkownika, używany, gdy źródło nie udostępnia żadnych danych dynamicznie
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title
- Wymagane w przypadku dynamicznych i statycznych źródeł bezpieczeństwa (chyba że
initialDisplayState="hidden"
nie masearchTerms
). - Zabronione w przypadku źródeł bezpieczeństwa, które zawierają tylko informacje o problemach
titleForWork
- Domyślny tytuł pozycji interfejsu użytkownika dla profilu zarządzanego, który jest używany, gdy dane nie są dostarczane dynamicznie przez źródło
- Identyfikator zasobu podany jako pełna nazwa zasobu, na przykład:
@package:string/my_title_for_work
- Wymagane w przypadku dynamicznych i statycznych źródeł bezpieczeństwa z atrybutem
profile="all_profiles"
(chyba żeinitialDisplayState="hidden"
z brakiemsearchTerms
) - Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko informacje o problemach lub
profile="primary_profile_only"
summary
- Domyślne podsumowanie wpisu w interfejsie (dłuższy opis wyświetlany pod tytułem), używane, gdy źródło nie dostarcza dynamicznie danych
- Identyfikator zasobu podany jako pełna nazwa zasobu, na przykład:
@package:string/my_summary
- Opcjonalny w przypadku statycznych źródeł bezpieczeństwa (domyślnie jest to brak podsumowania)
- Wymagany w przypadku dynamicznych źródeł zabezpieczeń (chyba że
initialDisplayState
tohidden
). - Niedozwolone w przypadku źródeł bezpieczeństwa zawierających tylko problem
intentAction
- Działanie, które ma zostać wykonane po kliknięciu elementu interfejsu
- Typ ciągu znaków, np.
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
, lub identyfikator zasobu reprezentowany jako pełna nazwa zasobu, np.@package:string/my_intent_action
- Jeśli to działanie intencji nie zostanie wykonane w przypadku określonego elementu
packageName
(jeśli występuje), wpis w interfejsie działa tak samo jak w przypadku poleceniainitialDisplayState="disabled"
- Wymagany w przypadku statycznych źródeł zabezpieczeń i
dynamic
źródeł zabezpieczeń, które mająinitialDisplayState="enabled"
- Zabronione w przypadku źródeł bezpieczeństwa, które zawierają tylko informacje o problemach
maxSeverityLevel
- Maksymalny poziom ważności, który może zapewnić to źródło Centrum bezpieczeństwa
- Liczba całkowita przedstawiona w formie ciągu znaków, np.
300
- Opcjonalne w przypadku dynamicznych i ograniczonych do problemów źródeł zabezpieczeń (domyślnie brak maksymalnej wartości)
- Zakazane w przypadku źródeł bezpieczeństwa statycznego
loggingAllowed
- Czy Centrum bezpieczeństwa może rejestrować interakcje lub dane związane z tym źródłem
- Wartość logiczna reprezentowana jako ciąg znaków, np.
false
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
true
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
refreshOnPageOpenAllowed
- Określa, czy po otwarciu ekranu Centrum bezpieczeństwa ma zostać wysłany sygnał do źródła bezpieczeństwa, aby odświeżyć dane
- Wartość logiczna reprezentowana jako ciąg znaków, np.
true
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
false
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
notificationsAllowed
(od Androida 14)- Czy źródło informacji o bezpieczeństwie może opcjonalnie wysłać powiadomienie podczas zgłaszania problemu
- Wartość logiczna reprezentowana jako ciąg znaków, np.
true
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
false
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
deduplicationGroup
(od Androida 14)- Potencjalny niepowtarzalny identyfikator, który może służyć do usuwania duplikatów problemów pochodzących z różnych źródeł. Źródła z tej samej grupy usuwania duplikatów mogą wysyłać problemy z opcjonalnym identyfikatorem usuwania duplikatów. Problemy z tym samym identyfikatorem deduplikacji wyświetlą się w interfejsie tylko raz, nawet jeśli wysyła je wiele źródeł.
- Typ ciągu znaków
- Opcjonalne w przypadku dynamicznych źródeł bezpieczeństwa i źródeł bezpieczeństwa tylko z problemami (domyślnie nie ma deduplikacji)
- Zabronione w przypadku statycznych źródeł bezpieczeństwa
packageCertificateHashes
(od Androida 14)- Lista wartości skrótu certyfikatu oddzielonych przecinkami dla danego
packageName
. Jeśli to ustawienie jest włączone, sprawdzenie certyfikatu zostanie wykonane dla danegopackageCertificateHashes
dla danegopackageName
podczas interakcji ze źródłem bezpieczeństwa ze względów bezpieczeństwa. - Typ ciągu znaków
- Opcjonalne w przypadku dynamicznych źródeł zabezpieczeń i źródeł z problemami (domyślnie nie ma sprawdzania certyfikatów)
- Zakazane w przypadku źródeł bezpieczeństwa statycznego
- Lista wartości skrótu certyfikatu oddzielonych przecinkami dla danego
titleForPrivateProfile
(od Androida 15)- Domyślny tytuł elementu interfejsu użytkownika dla profilu prywatnego, który jest używany, gdy dane nie są dostarczane dynamicznie przez źródło
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title_for_private_profile
- Wymagany w przypadku dynamicznych i statycznych źródeł danych o bezpieczeństwie, które mają określone wartości właściwości
profile="all_profiles"
(chyba żeinitialDisplayState="hidden"
ma wartośćsearchTerms
). - Zakazane w przypadku źródeł bezpieczeństwa zawierających tylko problem lub źródeł z atrybutem
profile="primary_profile_only"
Dostosowywanie grup źródeł Centrum bezpieczeństwa
Źródła z Centrum bezpieczeństwa muszą należeć do grupy źródeł Centrum bezpieczeństwa. Każda grupa źródłowa jest wyświetlana w interfejsie użytkownika w kolejności, w jakiej są wymienione w pliku. Każde źródło jest wyświetlane w grupie w kolejności, w jakiej znajdują się w pliku. Jeśli grupa zawiera tylko 1 źródło informacji o bezpieczeństwie, jest wyświetlana jako pojedynczy wpis, a nie grupa.
Konfiguracja grupy źródeł Centrum bezpieczeństwa
Aby dostosować grupy źródeł Centrum bezpieczeństwa, użyj tych zmiennych:
id
- Unikalny identyfikator grupy źródeł informacji o bezpieczeństwie; musi być niepowtarzalny w całym pliku.
- Typ ciągu znaków
- Wymagane
title
- Tytuł grupy w interfejsie
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title
- Wymagane, jeśli w grupie jest co najmniej 1 dynamiczne lub statyczne źródło bezpieczeństwa (tzn. grupa nie należy do grupy
type="hidden"
)
summary
- Krótki opis grupy w interfejsie wyświetlany pod tytułem. Wyświetlane w określonych warunkach, zwykle wtedy, gdy dane nie są dostępne. W przeciwnym razie podsumowanie jest obliczane na podstawie danych dostarczonych przez źródła w grupie.
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_summary
- Opcjonalne (domyślnie jest to brak podsumowania)
statelessIconType
- Typ ikony wyświetlanej dla grupy, gdy źródła bezpieczeństwa nie podają żadnego stanu, np. wpisy statyczne
- Typ enumeracji reprezentowany jako ciąg znaków, który musi być albo
none
, alboprivacy
(typ ikony prywatności) - Opcjonalny (wartość domyślna to
none
)
type
(od Androida 14)- Wyraźny typ określający sposób interakcji tej grupy z Centrum bezpieczeństwa
- Typ wyliczenia reprezentowany jako ciąg znaków musi mieć jedną z tych wartości:
stateful
(wyświetla i wpływa na ogólny stan Centrum Bezpieczeństwa)stateless
(wyświetla się i nie wpływa na ogólny stan Centrum bezpieczeństwa)hidden
(nie wyświetla się, wszystkie źródła muszą być tylko problemowe)
- Opcjonalne, domyślnie ustalane na podstawie źródeł bezpieczeństwa zawartych w grupie oraz
summary
istatelessIconType
. Jeśli parametrtype
jest określony, wymuszane są dodatkowe niezmienniki w celu zapewnienia zgodności ze źródłami napotkanymi w grupie (na przykład grupa nie może byćhidden
, jeśli zawiera wpisy widoczne dla użytkowników)
Typy grup źródeł Centrum bezpieczeństwa
Grupy źródłowe w Centrum bezpieczeństwa są klasyfikowane jako stanowe, bezstanowe lub ukryte na podstawie stanu określonych pól.
Grupa stanowa
Grupa, która ma zarówno tytuł, jak i podsumowanie, lub element stateLessIconType="privacy"
jest uznawany za stanowy, wpływa na ogólny stan Centrum bezpieczeństwa:
<safety-sources-group
id="GoogleAppSecuritySources"
title="@com.google.android.safetycenter.resources:string/google_app_security_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_app_security_sources_summary">
<dynamic-safety-source
id="GooglePlayProtect"
packageName="com.android.vending"
profile="all_profiles"
intentAction="com.google.android.finsky.PLAY_PROTECT"
title="@com.google.android.safetycenter.resources:string/google_play_protect_title"
titleForWork="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_work"
summary="@com.google.android.safetycenter.resources:string/google_play_protect_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_play_protect_search_terms"
refreshOnPageOpenAllowed="true"/>
<dynamic-safety-source
id="GoogleAppProtectionService"
packageName="com.google.android.odad"
profile="primary_profile_only"
initialDisplayState="hidden"
loggingAllowed="false"/>
</safety-sources-group>
W Androidzie 13 taka grupa będzie się wyświetlać w interfejsie jako zwijany wpis. W Androidzie 14 będzie ona widoczna jako wpis z własnym stanem, który przekierowuje na podstronę.
Grupa bezstanowa
Grupa, która ma tytuł, ale nie ma podsumowania, i stateLessIconType="none"
jest uważana za grupę bez stanu i nie wpływa na ogólny stan Centrum Bezpieczeństwa:
<safety-sources-group
id="AndroidPrivacySources"
title="@com.google.android.safetycenter.resources:string/google_privacy_sources_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_sources_summary"
statelessIconType="privacy">
<static-safety-source
id="AndroidPermissionUsage"
profile="primary_profile_only"
intentAction="android.intent.action.REVIEW_PERMISSION_USAGE"
title="@com.google.android.safetycenter.resources:string/google_permission_usage_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_usage_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_usage_search_terms"/>
<static-safety-source
id="AndroidPermissionManager"
profile="primary_profile_only"
intentAction="android.intent.action.MANAGE_PERMISSIONS"
title="@com.google.android.safetycenter.resources:string/google_permission_manager_title"
summary="@com.google.android.safetycenter.resources:string/google_permission_manager_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_permission_manager_search_terms"/>
<static-safety-source
id="AndroidPrivacyControls"
profile="primary_profile_only"
intentAction="android.settings.PRIVACY_CONTROLS"
title="@com.google.android.safetycenter.resources:string/google_privacy_controls_title"
summary="@com.google.android.safetycenter.resources:string/google_privacy_controls_summary"
searchTerms="@com.google.android.safetycenter.resources:string/google_privacy_controls_search_terms"/>
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidNotificationListener"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidBackgroundLocation"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
<issue-only-safety-source
id="AndroidPermissionAutoRevoke"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
Taka grupa będzie widoczna w interfejsie jako sztywna lista wpisów.
Ukryta grupa
Ukryta grupa zawiera tylko źródła bezpieczeństwa dotyczące tylko problemów i nie ma tytułu. Ukryte grupy nie są widoczne w interfejsie:
<safety-sources-group
id="HiddenGroup">
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
Dane dynamiczne dla wpisu statycznego
Dynamiczne źródło Centrum bezpieczeństwa możesz wyświetlić jako wpis statyczny, który umożliwia przekazywanie wpisów przekierowania w zależności od niektórych warunków oraz dostosowywanie jego zawartości w czasie działania. W zależności od wpisu w informacjach o zasadach obowiązujących w firmie zdefiniuj źródło dynamiczne w grupie bezstanowej.
Ten przykład pokazuje dynamiczne źródło bezpieczeństwa, które nie dostarcza sygnału bezpieczeństwa, ponieważ znajduje się w grupie bezstanowej:
<safety-sources-group
id="AndroidAdvancedSources"
title="@com.google.android.safetycenter.resources:string/google_advanced_title">
<dynamic-safety-source
id="AndroidWorkPolicyInfo"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
<!-- … -->
</safety-sources-group>
W tym przykładzie źródło może przesyłać tylko zielone karty ostrzegawcze i podać stan nieokreślony. Aby można było udostępniać inne dane, źródło musi znajdować się w grupie stanowej.
Dostosowywanie ciągów znaków i polów nakładek
W przypadku urządzeń GMS, które nie są skonfigurowane do otrzymywania aktualizacji Mainline, zamiast nakładania całego pliku konfiguracyjnego możesz nakładać 6 zasobów ciągu znaków, aby zaspokoić wszystkie potrzeby związane z dostosowywaniem. Zasoby napisów, które są nakładkami, są wymienione w tabeli.
Zasób ciągu tekstowego | Opis |
---|---|
google_lock_screen_sources_summary |
Nakładanie tej wartości służy do definiowania stałego podsumowania wyświetlanego w przypadku grupy AndroidLockScreenSources , gdy wszystkie źródła w tej grupie są w dobrym stanie (poziom informacji lub nieokreślony). Domyślnie Centrum bezpieczeństwa wyświetla tytuły wszystkich źródeł w grupie połączonej jako podsumowanie grupy. |
google_biometrics_title |
Nałóż tę wartość, aby zdefiniować statyczny tytuł źródła biometrycznego należącego do pakietu com.android.settings używanego, gdy źródło nie dostarcza danych dynamicznych. Nakładaj go, gdy nakładasz tytuł dynamicznie udostępniany przez źródło w pakiecie com.android.settings . Domyślnie jest on ignorowany, ponieważ początkowy stan wyświetlania źródła to hidden . |
google_biometrics_summary |
Nałóż tę wartość, aby zdefiniować statyczne podsumowanie dla źródła biometrycznego należącego do pakietu com.android.settings używanego, gdy źródło nie dostarcza danych dynamicznych. Domyślnie jest on ignorowany, ponieważ początkowy stan wyświetlania źródła to hidden . |
google_biometrics_search_terms |
Użyj tej wartości, aby zdefiniować listę wyszukiwanych słów dla źródła danych biometrycznych należącego do pakietu com.android.settings . |
google_biometrics_initial_display_state |
Nakładanie tej wartości, aby wyświetlić element interfejsu użytkownika dla źródła danych biometrycznych należącego do pakietu com.android.settings , gdy źródło nie udostępnia żadnych danych dynamicznych. Wartością domyślną jest hidden . |
google_security_updates_intent |
Nałóż tę wartość, aby zmienić intencję potrzebną do otwarcia aktywności, która umożliwia użytkownikowi sprawdzanie i instalowanie aktualizacji zabezpieczeń. To działanie intencji musi być powiązane z wyeksportowanym działaniem. Wartością domyślną jest android.settings.SYSTEM_UPDATE_SETTINGS . |
Żadne inne ciągi znaków w pakiecie com.google.android.safetycenter.resources
nie mogą być nakładane.
W przypadku urządzeń AOSP wszystkie zasoby w pakiecie com.android.safetycenter.resources
można nakładać bez ograniczeń na treść.
W przypadku urządzeń GMS, które nie są skonfigurowane do otrzymywania aktualizacji Mainline, utwórz pakiet com.google.android.safetycenter.resources
, zastępując lub nakładając com.android.safetycenter.resources
, definiując wszystkie ciągi znaków oczekiwane przez testy GTS.
Te ciągi znaków:
google_app_security_sources_title
google_app_security_sources_summary
google_play_protect_title
google_play_protect_title_for_work
google_play_protect_summary
google_play_protect_search_terms
google_lock_screen_sources_title
google_lock_screen_sources_summary
google_lock_screen_title
google_lock_screen_summary
google_lock_screen_search_terms
google_biometrics_title
google_biometrics_summary
google_biometrics_search_terms
google_biometrics_initial_display_state
google_accounts_sources_title
google_accounts_sources_summary
google_security_checkup_title
google_security_checkup_title_for_work
google_security_checkup_summary
google_security_checkup_search_terms
google_device_finder_sources_title
google_device_finder_sources_summary
google_find_my_device_title
google_find_my_device_summary
google_find_my_device_search_terms
google_updates_title
google_updates_summary
google_security_updates_title
google_security_updates_summary
google_security_updates_search_terms
google_security_updates_intent
google_play_system_update_title
google_play_system_update_summary
google_play_system_update_search_terms
google_privacy_sources_title
google_privacy_sources_summary
google_permission_usage_title
google_permission_usage_summary
google_permission_usage_search_terms
google_permission_manager_title
google_permission_manager_summary
google_permission_manager_search_terms
google_privacy_controls_title
google_privacy_controls_summary
google_privacy_controls_search_terms
google_advanced_title
google_advanced_security_title
google_advanced_security_summary
google_advanced_security_search_terms
google_advanced_privacy_title
google_advanced_privacy_summary
google_advanced_privacy_search_terms
Wymagania dotyczące dostosowywania
Wymagania dotyczące formatu pliku
Plik konfiguracji musi być plikiem XML i mieć format opisany w sekcji Aktualizowanie pliku konfiguracji. Plik musi znajdować się w folderze raw
. Musi spełniać niezmienniki opisane w sekcjach Dostosowywanie źródeł Centrum bezpieczeństwa i Dostosowywanie grup źródeł Centrum bezpieczeństwa. Jeśli plik konfiguracji nie jest prawidłowo sformatowany zgodnie z wymaganiami podanymi powyżej, funkcja jest całkowicie wyłączona. Analiza tego pliku jest również przeprowadzana przy użyciu testów CTS i GTS, które mogą zapewnić dodatkowy kontekst, na wypadek gdyby plik był nieprawidłowo sformatowany (oprócz logów urządzenia logcat).
Urządzenia w usługach Google
Na urządzeniach z GMS ten plik jest objęty pewnymi ograniczeniami. Jest to obsługiwane w testach GTS.
Urządzenia AOSP
Na urządzeniach AOSP plik konfiguracji musi być poprawnie sformatowany i musi przechodzić testy CTS dla Centrum bezpieczeństwa. Testy sprawdzają, czy plik jest poprawnie sformatowany. Urządzenia GMS również muszą przejść te testy.