Sicherheitscenter anpassen

Sicherheitscenter aktivieren oder deaktivieren

Um das Sicherheitscenter zu aktivieren oder zu deaktivieren, Boolesches Feld config_enableSafetyCenter in der frameworks/base/core/res/res/values/config.xml -Datei.

Auf den meisten Geräten wird das Sicherheitscenter standardmäßig unterstützt, zum Beispiel auf Smartphones und Tablets. Bei einigen Formfaktoren ist das Sicherheitscenter standardmäßig deaktiviert, für Android Auto, TV und 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>

Um das Sicherheitscenter zu unterstützen, setze config_enableSafetyCenter auf true. Wenn Sie möchten das Sicherheitscenter nicht unterstützen. Setze diesen Wert auf false, um es zu deaktivieren.

Wenn das Sicherheitscenter deaktiviert ist, werden alle Versuche, den Nutzer zur Seite „Sicherheit und Auf der Seite „Datenschutz“ wird stattdessen die App „Einstellungen“ geöffnet. Jeder Versuch, mit dem APIs werden ignoriert oder es wird ein Standardwert zurückgegeben. In der zugehörigen Die Kachel „Einstellungen“ und der Eintrag „Einstellungen“ sind ebenfalls sichtbar oder ausgeblendet, je nachdem, Sicherheitscenter ist aktiviert.

DeviceConfig-Flag

Zusätzlich zum Aktivieren des Sicherheitscenters über die config_enableSafetyCenter Konfiguration, ein DeviceConfig Das Flag (safety_center_is_enabled) wird verwendet, um die Funktion „Sicherheit“ per Fernzugriff zu aktivieren oder zu deaktivieren Mitte.

Ab Android 14 sind keine weiteren Maßnahmen erforderlich. da dieses Flag standardmäßig auf true gesetzt ist.

Unter Android 13 ist das Sicherheitscenter standardmäßig deaktiviert. serverseitig und über die Zulassungsliste mit diesem Flag aktiviert. Gerät einreichen und wenden Sie sich an Ihren TAM, um auf die Zulassungsliste gesetzt zu werden. Beachten Sie, dass Du musst der Hauptversion M-2022-11 oder höher der Zulassungsliste hinzugefügt werden. Für die lokale Entwicklung und Tests kann das Flag lokal aktiviert oder deaktiviert werden. (bis zu einem Neustart) mit dem Befehl adb. So aktivieren Sie das Flag beispielsweise:

adb root
adb shell device_config set_sync_disabled_for_tests until_reboot
adb shell device_config put privacy safety_center_is_enabled true

So prüfen Sie, ob das Sicherheitscenter aktiviert ist:

adb root
adb shell cmd safety_center enabled

In der Ausgabe wird zurückgegeben, ob das Sicherheitscenter auf dem Gerät richtig aktiviert ist.

Konfigurationsdatei aktualisieren

Verwenden Sie die Konfigurationsdatei safety_center_config.xml, um den Inhalt von zum Sicherheitscenter. Sie können diese Datei überlagern, vorausgesetzt, Sie erfüllen Anpassungsanforderungen.

Konfigurationsdatei als Overlay

Informationen zum Einblenden der Datei safety_center_config.xml finden Sie unter Wert eines App-Ressourcen zur Laufzeit finden Sie Informationen zum Ändern von Laufzeitressourcen-Overlays (RROs).

Achte bei Android 14 darauf, dass du die res/raw-v34/safety_center_config.xml-Datei und nicht der hat res/raw/safety_center_config.xml Vorrang. gilt für andere Dateien mit dem Geltungsbereich v34, z.B. res/values-v34/strings.xml. Das Overlay-Paket muss eine niedrigere SDK-Mindestlaufzeit haben als 34. Andernfalls wird der Qualifizierer v34 bei der Optimierung möglicherweise entfernt. Verwenden Sie außerdem ein statisches Overlay, da dieser Wert vor dem Start geladen wird. .

Bei Android Open Source Project (AOSP)-Geräten wählen Sie das Paket als Ziel. com.android.safetycenter.resources Es gibt keine Overlay-Konfiguration, Ziel. Alle Ressourcen können ohne Inhaltsbeschränkung eingeblendet werden.

Richten Sie für GMD-Geräte, die für den Erhalt von Mainline-Updates konfiguriert sind, eine Ausrichtung auf den Paket com.google.android.safetycenter.resources. Konfiguration als Ziel festlegen SafetyCenterConfig Diese Konfiguration erfordert, dass sich das Overlay-Paket in entweder die Partition product, system oder vendor. GMS-OEMs sollten safety_center_config.xml wurde von Google bereitgestellt file und Limit Änderungen an den durch das GTS zugelassenen Tests. Overlay-Definition sollte ungefähr so aussehen:

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

Richten Sie für GMD-Geräte, die nicht für den Empfang von Mainline-Updates konfiguriert sind, eine Ausrichtung auf den Paket com.android.safetycenter.resources. Es ist keine Overlay-Konfiguration vorhanden. für die Ausrichtung zu verwenden. Für das Overlay-Paket muss der Paketname verwendet werden. com.google.android.safetycenter.resources

GMS-OEMs sollten die von Google bereitgestellte safety_center_config.xml-Datei kopieren und Änderungen an den durch die GTS-Tests erlaubten Änderungen zu beschränken. GMS-OEMs müssen außerdem die in der XML-Konfiguration verwendeten Zeichenfolgen.

Dateistruktur

Auf übergeordneter Ebene ist die Datei safety_center_config.xml eine Liste mit Sicherheitsfunktionen Quellen. Diese Sicherheitsquellen sind in Gruppen zusammengefasst, um die Signale auf Sicherheitscenter-Bildschirm, z. B. App-Sicherheit oder Displaysperre. Die Reihenfolge der Diese Liste legt die Anzeigereihenfolge fest:

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

Google-Konfigurationsdatei

Die AOSP-Konfigurationsdatei befindet sich packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml

In Android 13 sieht die Google-Konfigurationsdatei so aus:

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

In Android 14 sieht die Google-Konfigurationsdatei so aus:

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

Quellen des Sicherheitscenters anpassen

Quellentypen im Sicherheitscenter

Die Quellen können je nach Datentyp dynamisch, nur zu einem Problem oder statisch sein. an das Sicherheitscenter senden.

Dynamische Quellen

Die Sicherheitsquelle als dynamic-safety-source markieren, wenn sie dynamische Daten liefern kann zum Sicherheitscenter sowohl für die Zugangs- als auch für mögliche Warnkarten:

<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"/>

Quellen, die nur zu Problemen führen

Markieren Sie die Quelle als issue-only-safety-source, falls es Keine verknüpften Einstellungen aber Warnungen werden weiterhin angezeigt. Sie können nur Warnungen ausgeben: bereitstellen Ein Einstellungseintrag führt zu einem Fehler:

<issue-only-safety-source
    id="AndroidAccessibility"
    packageName="com.google.android.permissioncontroller"
    profile="all_profiles"
    refreshOnPageOpenAllowed="true"/>

Statische Quellen

Markieren Sie die Quelle als static-safety-source, wenn es sich um einen Weiterleitungseintrag ohne dynamische Daten:

<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"/>

Sicherheitscenter-Quellkonfiguration

Je nach Sicherheitscenter-Quelltyp und anderen Invarianten, Konfiguration Dateifelder sind optional, erforderlich oder unzulässig und können angepasst werden:

  • id
    • Eindeutige Kennung für die Sicherheitsquelle, muss in der gesamten Datei und darf nur alphabetische Zeichen (a-z, A-Z) und wird zwischen Groß- und Kleinschreibung unterschieden.
    • Stringtyp
    • Für alle Typen von Sicherheitsquellen erforderlich
  • packageName
    • Name des Pakets, zu dem diese Sicherheitsquelle gehört, z. B. com.google.android.permissioncontroller
    • Stringtyp
    • Erforderlich für dynamische Sicherheitsquellen und nur für Probleme vorgesehene Sicherheitsquellen
    • Für statische Sicherheitsquellen in Android unzulässig 13; in Android 14 Kann optional auf die intentAction der Quelle ausgerichtet werden explizit statt implizit (siehe Lösung für Intents). Dokumentation )
  • initialDisplayState
    • Wie der UI-Eintrag angezeigt wird, wenn vom Sicherheitsteam keine Daten bereitgestellt werden Quelle
    • Als String dargestellter Enum-Typ. Es muss sich um einen der folgenden Typen handeln: <ph type="x-smartling-placeholder">
        </ph>
      • enabled (Standardeinstellung, wird normal angezeigt)
      • disabled (grau dargestellt und nicht anklickbar)
      • hidden (wird nicht angezeigt)
    • Optional für dynamische Sicherheitsquellen (Standardeinstellung ist enabled)
    • Nicht zulässig bei reinen Problem- und statischen Sicherheitsquellen
  • profile
    • Gibt an, ob diese Sicherheitsquelle mit dem verwalteten Profil des Nutzers interagiert
    • Als String dargestellter Enum-Typ. Es muss sich um einen der folgenden Typen handeln: <ph type="x-smartling-placeholder">
        </ph>
      • primary_profile_only (interagiert nur mit dem übergeordneten Profil des Profils)
      • all_profiles (kann auch mit den verwalteten Profilen interagieren)
    • Unter all_profiles werden mehrere Einträge auf der Benutzeroberfläche generiert (einer für das Profil). übergeordnetes Element und eine für jedes verwaltete Profil. kann die Sicherheitsquelle unterschiedliche Daten für jedes Profil
    • Für alle Sicherheitsquellen erforderlich
  • searchTerms
    • Liste der Suchbegriffe, die dem Eintrag „Sicherheitscenter“ bei der Verwendung von in den Einstellungen suchen
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_search_terms
    • Optional für dynamische und statische Sicherheitsquellen (Standardeinstellung ist keine Suche). Nutzungsbedingungen)
    • Nicht zulässig für Sicherheitsquellen, die nur zu einem Problem gehören
  • title
    • Standardtitel des UI-Eintrags, der verwendet wird, wenn keine Daten dynamisch bereitgestellt werden nach der Quelle
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_title
    • Erforderlich für dynamische und statische Sicherheitsquellen (es sei denn, initialDisplayState="hidden" ohne searchTerms)
    • Nicht zulässig für Sicherheitsquellen, die nur zu einem Problem gehören
  • titleForWork
    • Standardtitel des UI-Eintrags für das verwaltete Profil, der verwendet wird, wenn Daten werden nicht dynamisch von der Quelle bereitgestellt.
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_title_for_work
    • Erforderlich für dynamische und statische Sicherheitsquellen, für die folgende Werte angegeben wurden: profile="all_profiles" (außer initialDisplayState="hidden" ohne searchTerms)
    • Nicht zulässig bei sicherheitsrelevanten Quellen oder Quellen mit profile="primary_profile_only"
  • summary
    • Standardzusammenfassung des UI-Eintrags (eine längere Textbeschreibung) unter dem Titel angezeigt werden), wird verwendet, wenn Daten nicht dynamisch vom die Quelle
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_summary
    • Optional für statische Sicherheitsquellen (Standard ist keine Zusammenfassung)
    • Erforderlich für dynamische Sicherheitsquellen (es sei denn, initialDisplayState ist hidden)
    • Nicht zulässig für Sicherheitsquellen, die nur zu einem Problem gehören
  • intentAction
    • Aktion, die ausgelöst wird, wenn auf den UI-Eintrag geklickt wird
    • Stringtyp, z. B. com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS oder Ressourcen-ID, die als voll qualifizierter Ressourcenname dargestellt wird. Beispiel: @package:string/my_intent_action
    • Wenn diese Intent-Aktion für das angegebene packageName nicht aufgelöst wird (wenn verhalten, verhält sich der UI-Eintrag genauso wie initialDisplayState="disabled"
    • Erforderlich für statische Sicherheitsquellen und dynamic Sicherheitsquellen, die haben initialDisplayState="enabled"
    • Nicht zulässig für Sicherheitsquellen, die nur zu einem Problem gehören
  • maxSeverityLevel
    • Maximaler Schweregrad, den diese Sicherheitscenter-Quelle angeben kann
    • Als String dargestellte Ganzzahl, z. B. 300
    • Optional für dynamische und nur für Probleme vorgesehene Sicherheitsquellen (Standardeinstellung ist „Keine“ Maximum)
    • Nicht zulässig bei statischen Sicherheitsquellen
  • loggingAllowed
    • Legt fest, ob das Sicherheitscenter Interaktionen oder damit verbundene Daten protokollieren kann Quelle
    • Boolescher Wert, dargestellt als String, z. B. false
    • Optional für dynamische und reine Sicherheitsquellen (Standardeinstellung ist true)
    • Nicht zulässig bei statischen Sicherheitsquellen
  • refreshOnPageOpenAllowed
    • Ob ein Signal an die Sicherheitsquelle gesendet werden soll, um deren Daten zu aktualisieren wenn der Bildschirm des Sicherheitscenters geöffnet wird.
    • Boolescher Wert, dargestellt als String, z. B. true
    • Optional für dynamische und reine Sicherheitsquellen (Standardeinstellung ist false)
    • Nicht zulässig bei statischen Sicherheitsquellen
  • notificationsAllowed (ab Android 14) <ph type="x-smartling-placeholder">
      </ph>
    • Ob die Sicherheitsquelle optional eine Benachrichtigung senden kann, wenn ein Problem melden
    • Boolescher Wert, dargestellt als String, z. B. true
    • Optional für dynamische und reine Sicherheitsquellen (Standardeinstellung ist false)
    • Nicht zulässig bei statischen Sicherheitsquellen
  • deduplicationGroup (ab Android 14) <ph type="x-smartling-placeholder">
      </ph>
    • Eine potenzielle eindeutige Kennung, mit der Probleme dedupliziert werden können die aus verschiedenen Quellen stammen. Quellen innerhalb derselben Deduplizierung Gruppe Probleme mit einer optionalen Deduplizierungs-ID senden kann. Probleme mit Deduplizierungs-ID wird in der Benutzeroberfläche nur einmal angezeigt, auch wenn von mehreren Quellen.
    • Stringtyp
    • Optional für dynamische und nur für Probleme vorgesehene Sicherheitsquellen (Standardeinstellung ist „Keine“ Deduplizierung)
    • Nicht zulässig bei statischen Sicherheitsquellen
  • packageCertificateHashes (ab Android 14) <ph type="x-smartling-placeholder">
      </ph>
    • Eine durch Kommas getrennte Liste von Zertifikats-Hashes für die angegebene packageName Ist dies festgelegt, wird ein Zertifikat Häkchen gegen die angegebene packageCertificateHashes für die bei der Interaktion mit der Sicherheitsquelle packageName erhalten, aus Sicherheitsgründen.
    • Stringtyp
    • Optional für dynamische und nur für Probleme vorgesehene Sicherheitsquellen (Standardeinstellung ist „Keine“ Zertifikatsprüfungen)
    • Nicht zulässig bei statischen Sicherheitsquellen

Quellengruppen im Sicherheitscenter anpassen

Quellen im Sicherheitscenter müssen in einer Quellengruppe im Sicherheitscenter enthalten sein. Jede Quellgruppe wird in der UI in der Reihenfolge angezeigt, in der sich die Quellgruppen befinden. die in der Datei aufgeführt sind. Jede Quelle wird innerhalb der Gruppe in der Reihenfolge angezeigt, Die Quellen sind in der Datei aufgeführt. Wenn die Gruppe nur eine Sicherheitsquelle enthält, wird er als einzelner Eintrag und nicht als Gruppe angezeigt.

Konfiguration der Quellengruppen im Sicherheitscenter

Mit den folgenden Variablen können Sie Quellengruppen im Sicherheitscenter anpassen:

  • id
    • Eindeutige Kennung für die Gruppe der Sicherheitsquellen. darf im Feld gesamte Datei
    • Stringtyp
    • Erforderlich
  • title
    • Titel der Gruppe in der Benutzeroberfläche
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_title
    • Erforderlich, wenn es mindestens eine dynamische oder statische Sicherheitsquelle in der Gruppe (d.h., die Gruppe gehört nicht zu type="hidden")
  • summary
    • Kurze Beschreibung der Gruppe in der Benutzeroberfläche, die unter dem Titel angezeigt wird. Wird unter bestimmten Bedingungen angezeigt, in der Regel, wenn keine Daten bereitgestellt werden Andernfalls wird die Zusammenfassung auf Grundlage der Daten berechnet, die innerhalb der Gruppe.
    • Ressourcen-ID, dargestellt als voll qualifizierter Ressourcenname, z. B.: @package:string/my_summary
    • Optional (Standardeinstellung ist keine Zusammenfassung)
  • statelessIconType
    • Symboltyp, der für die Gruppe angezeigt wird, wenn vom Sicherheitsquellen, z. B. statische Einträge
    • Enum-Typ, dargestellt als String, der entweder none oder privacy (Datenschutzsymbol)
    • Optional (Standardwert ist none)
  • type (ab Android 14) <ph type="x-smartling-placeholder">
      </ph>
    • Ein expliziter Typ, der beschreibt, wie diese Gruppe mit dem Sicherheitscenter interagiert
    • Als String dargestellter Enum-Typ. Es muss sich um einen der folgenden Typen handeln: <ph type="x-smartling-placeholder">
        </ph>
      • stateful (zeigt das allgemeine Sicherheitscenter an und trägt dazu bei Status)
      • stateless (wird angezeigt und trägt nicht zur allgemeinen Sicherheit bei Center-Status)
      • hidden (wird nicht angezeigt, es darf sich bei allen Quellen nur um Probleme handeln)
    • Optional, standardmäßig aus den Sicherheitsquellen abgeleitet, die in die Gruppe sowie die summary und statelessIconType. Wenn die Für type ist angegeben, dass einige zusätzliche Invarianten erzwungen werden, um sicherzustellen, dass er mit den in der Gruppe gefundenen Quellen übereinstimmt, z. B. Gruppe darf nicht hidden sein, wenn sie für den Nutzer sichtbare Einträge enthält)

Quellengruppentypen im Sicherheitscenter

Sicherheitscenter-Quellgruppen werden als zustandsorientiert, zustandslos oder ausgeblendet basierend auf dem Status bestimmter Felder.

Zustandsorientierte Gruppe

Eine Gruppe, die sowohl einen Titel als auch eine Zusammenfassung hat, oder stateLessIconType="privacy" ist als zustandsorientiert betrachtet wird, trägt zum Gesamtstatus des Sicherheitscenters bei:

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

In Android 13 wird eine solche Gruppe als minimierbar angezeigt. in der Benutzeroberfläche. In Android 14 wird sie als Eintrag mit einem eigenen Status, der zur Unterseite weiterleitet.

Zustandslose Gruppe

Eine Gruppe, die einen Titel, aber keine Zusammenfassung hat, und die Gruppe stateLessIconType="none" ist gelten als zustandslos und tragen nicht zum allgemeinen Status des Sicherheitscenters bei:

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

Eine solche Gruppe wird in der Benutzeroberfläche als starre Liste von Einträgen angezeigt.

Ausgeblendete Gruppe

Eine ausgeblendete Gruppe enthält nur Sicherheitsquellen, die nur für Probleme vorgesehen sind, und hat keinen Titel. Ausgeblendete Gruppen werden in der Benutzeroberfläche nicht angezeigt:

<safety-sources-group
    id="HiddenGroup">
    <issue-only-safety-source
        id="AndroidAccessibility"
        packageName="com.google.android.permissioncontroller"
        profile="all_profiles"
        refreshOnPageOpenAllowed="true"/>
</safety-sources-group>

Dynamische Daten für einen statischen Eintrag

Sie können die dynamische Sicherheitscenter-Quelle als statischen Eintrag anzeigen lassen, Weiterleitungseinträge in Abhängigkeit von bestimmten Bedingungen senden der Inhalt während der Laufzeit. Definieren Sie die dynamische Quelle innerhalb einer zustandslosen Gruppe, je nach Ihrer Arbeitsrichtlinie.

Dieses Beispiel zeigt eine dynamische Sicherheitsquelle, die kein Sicherheitssignal liefert. weil sie sich in einer zustandslosen Gruppe befindet:

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

In diesem Beispiel kann die Quelle nur grüne Warnkarten einblenden und nicht angegebener Status. Andere Daten können nur bereitgestellt werden, wenn sich die Quelle innerhalb von eine zustandsorientierte Gruppe.

Strings und Overlay-Felder anpassen

Für GMD-Geräte, die nicht für den Erhalt von Mainline-Updates konfiguriert sind, werden anstelle von Über die gesamte Konfigurationsdatei können Sie sechs Zeichenfolgenressourcen Anpassungsanforderungen erfüllen. Die Overlay-Ressourcen werden aufgelistet in der Tabelle.

Stringressource Beschreibung
google_lock_screen_sources_summary Blenden Sie diesen Wert ein, um eine statische Zusammenfassung zu definieren, die für Gruppe AndroidLockScreenSources, wenn alle Quellen in Die Gruppe ist in einem guten Zustand (Informationen oder nicht angegebener Schweregrad). Level). Standardmäßig wird im Sicherheitscenter der Titel aller Quellen angezeigt in der Gruppe, die als Zusammenfassung der Gruppe verkettet ist.
google_biometrics_title Diesen Wert überlagern, um einen statischen Titel für die biometrische Quelle zu definieren com.android.settings-Paket gehört, das verwendet wird, wenn keine werden von der Quelle bereitgestellt. Überlagern Sie dies, wenn auch der von der Quelle dynamisch bereitgestellte Titel in der com.android.settings-Paket. Dies wird standardmäßig ignoriert. da der anfängliche Anzeigestatus der Quelle hidden
google_biometrics_summary Diesen Wert überlagern, um eine statische Zusammenfassung für das biometrische Verfahren zu definieren Quelle des verwendeten Pakets com.android.settings wenn von der Quelle keine dynamischen Daten bereitgestellt werden. Dies wird ignoriert von da der anfängliche Anzeigestatus für die Quelle lautet hidden
google_biometrics_search_terms Diesen Wert überlagern, um eine Liste von Suchbegriffen für das biometrische Verfahren Quelle, die dem Paket com.android.settings gehört.
google_biometrics_initial_display_state Diesen Wert überlagern, um einen UI-Eintrag für die biometrische Quelle anzuzeigen vom Paket com.android.settings, wenn keine dynamischen Daten vorhanden sind die von der Quelle bereitgestellt werden. Der Standardwert ist hidden
google_security_updates_intent Blenden Sie diesen Wert ein, um den Intent zu ändern, der zum Öffnen der Aktivität erforderlich ist mit der Nutzer Sicherheitsupdates prüfen und installieren können. Dieses Intent-Aktion muss mit einer exportierten Aktivität verknüpft sein. Die Standardwert ist android.settings.SYSTEM_UPDATE_SETTINGS

Im com.google.android.safetycenter.resources-Paket sind keine anderen Strings überlappen können.

Für AOSP-Geräte: alle Ressourcen im com.android.safetycenter.resources -Paketen ohne Inhaltsbeschränkung überlappen können.

Für GMD-Geräte, die nicht für den Empfang von Mainline-Updates konfiguriert sind, eine com.google.android.safetycenter.resources-Paket wird ersetzt oder überlagert com.android.safetycenter.resources definiert alle Strings, die vom GTS-Tests

Diese Zeichenfolgen sind:

  • 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

Anpassungsanforderungen

Anforderungen an das Dateiformat

Die Konfigurationsdatei muss eine XML-Datei sein und das Format haben unter Aktualisieren Sie die Konfigurationsdatei. Die Datei muss sich im Ordner „raw“. Sie muss die Invarianten erfüllen, die unter Anpassen des Sicherheitscenters beschrieben werden Quellen und Quellen im Sicherheitscenter anpassen Gruppen. Wenn die Konfigurationsdatei nicht im Einklang mit den oben genannten Anforderungen formatiert ist, kann der vollständig deaktiviert. Das Parsen dieser Datei wird auch von CTS und GTS unterstützt Tests, die zusätzlichen Kontext liefern, falls die Datei nicht gut formatiert ist (auf oben auf der Logcat Geräteprotokolle).

Geräte für Google-Dienste

Auf GMD-Geräten gelten einige Einschränkungen für diese Datei. Dies wird unterstützt von GTS Tests.

AOSP-Geräte

Auf AOSP-Geräten muss die Konfigurationsdatei korrekt formatiert sein und die CTS-Datei Tests für Sicherheit Mitte. Mit den Tests wird überprüft, ob die Datei korrekt formatiert ist. GMD-Geräte müssen außerdem um diese Tests zu bestehen.