Dostosuj Centrum bezpieczeństwa

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).
  • 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 ma searchTerms).
    • 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 że initialDisplayState="hidden" z brakiem searchTerms)
    • 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 to hidden).
    • 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 polecenia initialDisplayState="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 danego packageCertificateHashes dla danego packageName 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
  • 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 że initialDisplayState="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, albo privacy (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 i statelessIconType. Jeśli parametr type 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.