Dostosowywanie 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.

Centrum bezpieczeństwa jest domyślnie obsługiwane na większości urządzeń, np. na telefonach i tabletach. W niektórych formatach 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 Centrum bezpieczeństwa, ustaw tę wartość na false, aby je 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 ignorowana lub zwraca wartość domyślną. Powiązany kafelek Szybkich ustawień i element w Ustawieniach są też widoczne lub ukryte w zależności od tego, czy Centrum bezpieczeństwa jest włączone.

Flaga DeviceConfig

Oprócz włączania Centrum bezpieczeństwa za pomocą konfiguracji config_enableSafetyCenterDeviceConfigflaga (safety_center_is_enabled) służy do zdalnego włączania i wyłączania Centrum bezpieczeństwa.

W Androidzie 14 i nowszych nie musisz nic robić, ponieważ ten parametr jest domyślnie ustawiony na true.

W Androidzie 13 Centrum bezpieczeństwa jest domyślnie wyłączone po stronie serwera i włączone za pomocą listy dozwolonych za pomocą tego parametru. 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 wersja główna M-2022-11 lub nowsza. W przypadku lokalnego tworzenia i testowania flagę można włączyć lub wyłączyć lokalnie (do 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 nałożyć ten plik, jeśli spełniasz wymagania dotyczące personalizacji.

Przesłonięcie 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ń z Projektu Android Open Source (AOSP) kieruj się na pakiet com.android.safetycenter.resources. Nie ma konfiguracji nakładki do użycia. Wszystkie zasoby można nakładać na siebie bez ograniczeń dotyczących treści.

W przypadku urządzeń GMS skonfigurowanych do otrzymywania aktualizacji Mainline kieruj się 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, kieruj 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.

Producenci OEM GMS powinni skopiować plik safety_center_config.xml dostarczony przez Google i ograniczyć modyfikacje do tych dozwolonych przez testy GTS. Producenci OEM GMS muszą też zdefiniować ciągi znaków używane w konfiguracji XML.

Struktura pliku

Ogólnie rzecz biorąc, 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ść na tej liście 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>

W Androidzie 14 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"
                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, tylko dotyczące problemów lub statyczne, w zależności od typu danych, które udostępniają 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żeń:

<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 w ustawieniach 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 w Centrum bezpieczeństwa

W zależności od typu źródła w Centrum Bezpieczeństwa i innych niezmienników 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 dynamicznych i ograniczonych źródeł zabezpieczeń
    • Zakaz dotyczy statycznych źródeł danych o bezpieczeństwie w Androidzie 13. W Androidzie 14 można opcjonalnie ustawić kierowanie na intentAction źródła danych (patrz dokumentacja dotycząca rozwiązywania intencji).
  • initialDisplayState
    • Sposób wyświetlania pozycji w interfejsie, gdy źródło danych bezpieczeństwa nie udostępnia żadnych danych
    • Typ wyliczenia 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ę)
    • Opcjonalne w przypadku dynamicznych źródeł zabezpieczeń (domyślnie enabled)
    • Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko informacje o problemach i statycznych źródeł bezpieczeństwa
  • profile
    • Czy to źródło zabezpieczeń współdziała 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 też wchodzić w interakcje z profilami zarządzanymi, a od Androida 15 także z profilem prywatnym)
    • W przypadku all_profiles generowane są różne wpisy interfejsu (jeden dla profilu nadrzędnego i jeden dla każdego profilu zarządzanego); źródło bezpieczeństwa może zawierać różne dane dla każdego profilu.
    • Wymagany w przypadku wszystkich źródeł informacji o bezpieczeństwie
  • 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 podany jako pełna nazwa zasobu, na przykład: @package:string/my_search_terms
    • Opcjonalne w przypadku dynamicznych i statycznych źródeł bezpieczeństwa (domyślnie brak haseł wyszukiwania).
    • 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 podany jako pełna 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
    • 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" nie ma wartości 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 tekst opisowy wyświetlany pod tytułem), używane, gdy dane nie są dostarczane dynamicznie przez źródło
    • Identyfikator zasobu podany jako pełna nazwa zasobu, na przykład: @package:string/my_summary
    • Opcjonalne w przypadku statycznych źródeł bezpieczeństwa (domyślnie brak podsumowania)
    • Wymagany w przypadku dynamicznych źródeł zabezpieczeń (chyba że initialDisplayState to hidden).
    • Zabronione w przypadku źródeł bezpieczeństwa, które zawierają tylko informacje o problemach
  • intentAction
    • Działanie, które ma zostać wykonane po kliknięciu elementu interfejsu
    • Typ ciągu znaków, na przykład com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS, lub identyfikator zasobu reprezentowany jako pełna nazwa zasobu, na przykład @package:string/my_intent_action
    • Jeśli działanie związane z zamierzaniem nie jest dostępne w przypadku danego packageName (jeśli występuje), element interfejsu użytkownika działa tak samo jak w przypadku initialDisplayState="disabled"
    • Wymagane 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 powagi, który może podać ta usługa źródłowa w Centrum bezpieczeństwa
    • Liczba całkowita jako ciąg znaków, np. 300
    • Opcjonalne w przypadku dynamicznych i ograniczonych do problemów źródeł zabezpieczeń (domyślnie brak maksymalnej wartości)
    • Zabronione w przypadku statycznych źródeł bezpieczeństwa
  • 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
    • Opcjonalnie w przypadku dynamicznych źródeł bezpieczeństwa i źródeł bezpieczeństwa tylko w przypadku problemów (domyślnie true)
    • Zabronione w przypadku statycznych źródeł bezpieczeństwa
  • refreshOnPageOpenAllowed
    • czy sygnał powinien być wysyłany do źródła bezpieczeństwa w celu odświeżenia danych po otwarciu ekranu Centrum bezpieczeństwa.
    • Wartość logiczna reprezentowana jako ciąg znaków, np. true
    • Opcjonalnie w przypadku dynamicznych źródeł bezpieczeństwa i źródeł bezpieczeństwa tylko w przypadku problemów (domyślnie false)
    • Zabronione w przypadku statycznych źródeł bezpieczeństwa
  • 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
    • Opcjonalnie w przypadku dynamicznych źródeł bezpieczeństwa i źródeł bezpieczeństwa tylko w przypadku problemów (domyślnie false)
    • Zabronione w przypadku statycznych źródeł bezpieczeństwa
  • 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 w ramach tej samej grupy deduplikacji mogą wysyłać problemy z opcjonalnym identyfikatorem deduplikacji. Problemy z tym samym identyfikatorem deduplikacji będą wyświetlane tylko raz w interfejsie, nawet jeśli są wysyłane przez wiele źródeł.
    • Typ ciągu znaków
    • Opcjonalne w przypadku dynamicznych źródeł zabezpieczeń i źródeł zabezpieczeń dotyczących tylko problemów (domyślnie nie ma deduplikacji)
    • Zabronione w przypadku statycznych źródeł bezpieczeństwa
  • packageCertificateHashes (od Androida 14)
    • Lista wartości skrótu certyfikatu rozdzielona 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 źródeł bezpieczeństwa dynamicznego i źródeł bezpieczeństwa tylko w przypadku problemów (domyślnie nie ma sprawdzania certyfikatów)
    • Niedozwolone w przypadku statycznych źródeł bezpieczeństwa
  • 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 podany jako pełna 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" nie ma wartości searchTerms).
    • Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko informacje o problemach lub profile="primary_profile_only"

Dostosowywanie grup źródeł Centrum bezpieczeństwa

Źródła Centrum bezpieczeństwa muszą znajdować się w grupie źródeł Centrum bezpieczeństwa. Każda grupa źródeł jest wyświetlana w interfejsie w kolejności, w jakiej grupy źródeł są wymienione w pliku. Każde źródło wyświetla się w grupie w kolejności, w jakiej występuje 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 podany jako pełna nazwa zasobu, na przykład: @package:string/my_title
    • Wymagane, jeśli w grupie jest co najmniej 1 dynamiczne lub statyczne źródło zabezpieczeń (czyli grupa nie jest typu type="hidden").
  • summary
    • Krótki opis grupy w interfejsie użytkownika, wyświetlany pod tytułem. Wyświetlane w określonych warunkach, zwykle gdy nie są dostępne dane. W innych przypadkach podsumowanie jest obliczane na podstawie danych dostarczonych przez źródła w grupie.
    • Identyfikator zasobu podany jako pełna nazwa zasobu, na przykład: @package:string/my_summary
    • Opcjonalnie (domyślnie brak podsumowania)
  • statelessIconType
    • Typ ikony wyświetlanej dla grupy, gdy źródła danych bezpieczeństwa nie podają stanu, np. wpisy statyczne
    • Typ enumeracji reprezentowany jako ciąg znaków, który musi być albo none, albo privacy (typ ikony prywatności)
    • Opcjonalne (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ę, ale nie wpływa na ogólny stan Safety Center)
      • hidden (nie wyświetla się, wszystkie źródła muszą być tylko problemowe)
    • Opcjonalne, domyślnie wywnioskowane na podstawie źródeł bezpieczeństwa zawartych w grupie oraz summarystatelessIconType. Jeśli opcja type jest określona, niektóre dodatkowe niezmienne wartości są wymuszane, aby zapewnić zgodność ze źródłami w grupie (na przykład grupa nie może być hidden, jeśli zawiera widoczne dla użytkownika wpisy).

Typy źródeł w Centrum bezpieczeństwa

Grupy źródeł Centrum bezpieczeństwa są klasyfikowane jako zależne od stanu, niezależne od stanu lub ukryte na podstawie stanu niektórych pól.

Grupa stanowa

Grupa, która ma zarówno tytuł, jak i podsumowanie, czyli stateLessIconType="privacy", jest uważana za stanową i 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 widoczna w interfejsie jako element, który można zwinąć. W Androidzie 14 będzie ona widoczna jako wpis z własnym stanem, który przekierowuje na podstronę.

Grupa bez stanu

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 zabezpieczeń 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 w przypadku wpisu statycznego

Możesz wyświetlać dynamiczne źródło Centrum Bezpieczeństwa jako wpis statyczny, co umożliwia przesyłanie wpisów przekierowania w zależności od pewnych warunków i dostosowywanie ich treści w czasie wykonywania. 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 zabezpieczeń, które nie przekazuje 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 z ostrzeżeniem i przypisać stan nieokreślony. Aby można było podać inne dane, źródło musi znajdować się w grupie z stanem.

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 tekstowy 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ł wszystkich źródeł w grupie połączony jako podsumowanie grupy.
google_biometrics_title Za pomocą tej wartości możesz zdefiniować tytuł statyczny źródła danych biometrycznych należącego do pakietu com.android.settings, który jest używany, gdy źródło nie udostępnia żadnych 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 Nakładanie tej wartości pozwala zdefiniować statyczne podsumowanie źródła danych biometrycznych należącego do używanego pakietu com.android.settings, gdy źródło nie udostępnia żadnych 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 Nakładanie tej wartości pozwala zmienić intencję potrzebną do otwarcia aktywności, która umożliwia użytkownikowi sprawdzenie i zainstalowanie aktualizacji zabezpieczeń. To działanie intencyjne musi być powiązane z wyeksportowaną aktywnością. 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ć zastąpione.

W przypadku urządzeń AOSP wszystkie zasoby w pakiecie com.android.safetycenter.resourcesmożna nakładać bez ograniczeń dotyczących treści.

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 musi być zgodny z formatem opisanym w sekcji Aktualizowanie pliku konfiguracji. Plik musi znajdować się w folderze raw. Musi on spełniać warunki niezmienne opisane w artykule Dostosowywanie źródeł Centrum bezpieczeństwaDostosowywanie 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. Przetwarzanie tego pliku jest też obsługiwane przez testy CTS i GTS, które mogą dostarczyć dodatkowego kontekstu, jeśli plik jest źle sformatowany (oprócz logów urządzenia logcat).

Urządzenia z usługami Google

Na urządzeniach z GMS ten plik jest objęty pewnymi ograniczeniami. Jest to obsługiwane przez testy GTS.

Urządzenia AOSP

Na urządzeniach AOSP plik konfiguracji musi być poprawnie sformatowany i przejść testy CTS dotyczące SafetyCenter. Testy sprawdzają, czy plik jest poprawnie sformatowany. Urządzenia GMS muszą również przejść te testy.