Sicherheitscenter aktivieren oder deaktivieren
Um Safety Center zu aktivieren oder zu deaktivieren, verwenden Sie das überlagerbare boolesche Feld config_enableSafetyCenter
in der Datei frameworks/base/core/res/res/values/config.xml
.
Auf den meisten Geräten wird Safety Center standardmäßig unterstützt, beispielsweise auf Telefonen und Tablets. Bei einigen Formfaktoren ist Safety Center standardmäßig deaktiviert, beispielsweise bei 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 Safety Center zu unterstützen, setzen Sie config_enableSafetyCenter
auf true
. Wenn Sie Safety Center nicht unterstützen möchten, legen Sie diesen Wert auf false
fest, um es zu deaktivieren.
Wenn das Sicherheitscenter deaktiviert ist, wird bei jedem Versuch, zur Seite „Sicherheit und Datenschutz“ umzuleiten, stattdessen die App „Einstellungen“ geöffnet. Jeder Versuch, mit den APIs zu interagieren, wird stillschweigend ignoriert oder gibt einen Standardwert zurück. Die zugehörige Kachel „Schnelleinstellungen“ und der Eintrag „Einstellungen“ werden ebenfalls angezeigt oder ausgeblendet, je nachdem, ob Safety Center aktiviert ist.
DeviceConfig-Flag
Zusätzlich zur Aktivierung von Safety Center mithilfe der config_enableSafetyCenter
Konfiguration wird ein DeviceConfig
Flag ( safety_center_is_enabled
) verwendet, um Safety Center aus der Ferne zu aktivieren oder zu deaktivieren.
In Android 14 und höher sind keine weiteren Maßnahmen erforderlich, da dieses Flag standardmäßig auf true
gesetzt ist.
In Android 13 ist Safety Center standardmäßig serverseitig deaktiviert und über die Zulassungsliste mit diesem Flag aktiviert. Senden Sie die Fingerabdrücke Ihres Geräts und wenden Sie sich an Ihren TAM, um zur Zulassungsliste hinzugefügt zu werden. Beachten Sie, dass die Mainline-Version M-2022-11
oder höher zur Zulassungsliste hinzugefügt werden muss. Für lokale Entwicklung und Tests kann das Flag lokal (bis zu einem Neustart) mit einem adb
-Befehl aktiviert oder deaktiviert werden. So aktivieren Sie beispielsweise das 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
Und um zu bestätigen, ob Safety Center aktiviert ist:
adb root
adb shell cmd safety_center enabled
Die Ausgabe gibt zurück, ob Safety Center auf dem Gerät korrekt aktiviert ist.
Aktualisieren Sie die Konfigurationsdatei
Verwenden Sie die Konfigurationsdatei safety_center_config.xml
, um den Inhalt des Safety Center-Bildschirms zu ändern. Sie können diese Datei überlagern, sofern Sie die Anpassungsanforderungen erfüllt haben.
Überlagern Sie die Konfigurationsdatei
Informationen zum Ändern der Laufzeitressourcenüberlagerungen (RROs) zum Überlagern der Datei safety_center_config.xml
“ finden Sie unter „Ändern des Werts der Ressourcen einer App zur Laufzeit“ .
Stellen Sie in Android 14 sicher, dass Sie die Datei res/raw-v34/safety_center_config.xml
und nicht die res/raw/safety_center_config.xml
überlagern, da erstere Vorrang hat (dies gilt auch für andere Dateien, die für v34
gelten, z. B. res/values-v34/strings.xml
). Das Overlay-Paket muss einen SDK-Mindestwert von weniger als 34
haben, andernfalls wird der v34
Qualifier möglicherweise während der Optimierung entfernt. Stellen Sie außerdem sicher, dass Sie ein statisches Overlay verwenden, da dieser Wert beim Booten geladen wird.
Für Android Open Source Project (AOSP)-Geräte verwenden Sie das Paket com.android.safetycenter.resources
als Ziel. Es gibt keine Overlay-Konfiguration als Ziel. Alle Ressourcen sind ohne Einschränkung des Inhalts überlagerbar.
Für GMS-Geräte, die für den Empfang von Mainline-Updates konfiguriert sind, zielen Sie auf das Paket com.google.android.safetycenter.resources
ab. Zielen Sie auf die Konfiguration SafetyCenterConfig
. Diese Konfiguration erfordert, dass sich das Overlay-Paket entweder in der product
, system
oder vendor
befindet. GMS-OEMs sollten die von Google bereitgestellte Datei safety_center_config.xml
kopieren und die Änderungen auf diejenigen beschränken, die durch die GTS-Tests zulässig sind. Die 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>
Für GMS-Geräte, die nicht für den Empfang von Mainline-Updates konfiguriert sind, verwenden Sie das Paket com.android.safetycenter.resources
als Ziel. Es gibt keine Overlay-Konfiguration als Ziel. Das Overlay-Paket muss den Paketnamen com.google.android.safetycenter.resources
verwenden.
GMS-OEMs sollten die von Google bereitgestellte Datei safety_center_config.xml
kopieren und die Änderungen auf diejenigen beschränken, die durch die GTS-Tests zulässig sind. GMS-OEMs müssen auch die in der XML-Konfiguration verwendeten Zeichenfolgen definieren.
Dateistruktur
Auf hoher Ebene ist die Datei safety_center_config.xml
eine Liste von Sicherheitsquellen. Diese Sicherheitsquellen sind in Gruppen organisiert, um die Signale auf dem Safety Center-Bildschirm zu verwalten, zum Beispiel App-Sicherheit oder Bildschirmsperre. Die Reihenfolge dieser Liste definiert die Anzeigereihenfolge:
<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 in packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml
.
In Android 13 lautet die Google-Konfigurationsdatei:
<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 lautet die Google-Konfigurationsdatei:
<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>
Passen Sie Safety Center-Quellen an
Safety Center-Quellentypen
Abhängig von der Art der Daten, die sie dem Safety Center bereitstellen, können Quellen dynamisch, nur für Probleme oder statisch sein.
Dynamische Quellen
Markieren Sie die Sicherheitsquelle als dynamic-safety-source
, wenn sie dem Safety Center dynamische Daten sowohl für ihre Eintrittskarten als auch für potenzielle Warnkarten bereitstellen kann:
<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"/>
Nur-Problem-Quellen
Markieren Sie die Quelle als issue-only-safety-source
wenn kein zugehöriger Einstellungseintrag vorhanden ist, aber dennoch Warnungen angezeigt werden. Sie können nur Warnungen bereitstellen; Das Bereitstellen eines Einstellungseintrags 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 Umleitungseintrag ohne dynamische Daten handelt:
<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"/>
Konfiguration der Safety Center-Quelle
Abhängig vom Safety Center-Quellentyp und anderen Invarianten sind Konfigurationsdateifelder optional, erforderlich oder verboten und können angepasst werden:
-
id
- Eindeutiger Bezeichner für die Sicherheitsquelle, muss in der gesamten Datei eindeutig sein und darf nur aus alphabetischen Zeichen (az, AZ) bestehen und unterscheidet zwischen Groß- und Kleinschreibung
- String-Typ
- Erforderlich für alle Sicherheitsquellentypen
-
packageName
- Name des Pakets, das diese Sicherheitsquelle besitzt, zum Beispiel
com.google.android.permissioncontroller
- String-Typ
- Erforderlich für dynamische und Nur-Problem-Sicherheitsquellen
- Für statische Sicherheitsquellen in Android 13 verboten; In Android 14 kann dies optional so eingestellt werden, dass es explizit und nicht implizit auf die
intentAction
der Quelle abzielt (weitere Einzelheiten finden Sie in der Dokumentation zur Absichtsauflösung ).
- Name des Pakets, das diese Sicherheitsquelle besitzt, zum Beispiel
-
initialDisplayState
- Wie der UI-Eintrag angezeigt wird, wenn von der Sicherheitsquelle keine Daten bereitgestellt werden
- Der als String dargestellte Aufzählungstyp muss einer der folgenden sein:
-
enabled
(Standard, wird normal angezeigt) -
disabled
(wird ausgegraut angezeigt, kann nicht angeklickt werden) -
hidden
(wird nicht angezeigt)
-
- Optional für dynamische Sicherheitsquellen (Standard ist
enabled
) - Für Nur-Problem-Quellen und statische Sicherheitsquellen verboten
-
profile
- Ob diese Sicherheitsquelle mit dem verwalteten Profil des Benutzers interagiert
- Der als String dargestellte Aufzählungstyp muss einer der folgenden sein:
-
primary_profile_only
(interagiert nur mit dem übergeordneten Profil) -
all_profiles
(kann auch mit den verwalteten Profilen interagieren)
-
- Auf
all_profiles
werden mehrere UI-Einträge generiert (einer für das übergeordnete Profil und einer für jedes verwaltete Profil); Die Sicherheitsquelle kann für jedes Profil unterschiedliche Daten bereitstellen - Erforderlich für alle Sicherheitsquellen
-
searchTerms
- Liste der Suchbegriffe, die dem Safety Center-Eintrag zugeordnet werden, wenn die Suche in der Einstellungen-App verwendet wird
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_search_terms
- Optional für dynamische und statische Sicherheitsquellen (Standard sind keine Suchbegriffe)
- Für Nur-Problem-Sicherheitsquellen verboten
-
title
- Standardtitel des UI-Eintrags, der verwendet wird, wenn von der Quelle keine Daten dynamisch bereitgestellt werden
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_title
- Erforderlich für dynamische und statische Sicherheitsquellen (es sei denn,
initialDisplayState="hidden"
ohnesearchTerms
) - Für Nur-Problem-Sicherheitsquellen verboten
-
titleForWork
- Standardtitel des UI-Eintrags für das verwaltete Profil, das verwendet wird, wenn Daten nicht dynamisch von der Quelle bereitgestellt werden
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_title_for_work
- Erforderlich für dynamische und statische Sicherheitsquellen, die
profile="all_profiles"
angegeben haben (es sei denn,initialDisplayState="hidden"
ohnesearchTerms
) - Verboten für Nur-Problem-Sicherheitsquellen oder Quellen mit
profile="primary_profile_only"
-
summary
- Standardzusammenfassung des UI-Eintrags (dies ist eine längere Textbeschreibung, die unter dem Titel angezeigt wird), die verwendet wird, wenn Daten nicht dynamisch von der Quelle bereitgestellt werden
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_summary
- Optional für statische Sicherheitsquellen (Standard ist keine Zusammenfassung)
- Erforderlich für dynamische Sicherheitsquellen (es sei denn,
initialDisplayState
isthidden
) - Für Nur-Problem-Sicherheitsquellen verboten
-
intentAction
- Aktion, die ausgelöst wird, wenn auf den UI-Eintrag geklickt wird
- Zeichenfolgentyp, zum Beispiel
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
, oder Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel@package:string/my_intent_action
- Wenn diese Absichtsaktion für den angegebenen
packageName
(falls vorhanden) nicht aufgelöst wird, verhält sich der UI-Eintrag genauso wie beiinitialDisplayState="disabled"
- Erforderlich für statische Sicherheitsquellen und
dynamic
Sicherheitsquellen mitinitialDisplayState="enabled"
- Für Nur-Problem-Sicherheitsquellen verboten
-
maxSeverityLevel
- Maximaler Schweregrad, den diese Safety Center-Quelle bereitstellen kann
- Als Zeichenfolge dargestellte Ganzzahl, zum Beispiel
300
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard ist kein Maximum)
- Für statische Sicherheitsquellen verboten
-
loggingAllowed
- Ob Safety Center Interaktionen oder Daten im Zusammenhang mit dieser Quelle protokollieren kann
- Boolescher Wert, dargestellt als String, zum Beispiel
false
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard ist
true
) - Für statische Sicherheitsquellen verboten
-
refreshOnPageOpenAllowed
- Ob ein Signal an die Sicherheitsquelle gesendet werden soll, um deren Daten zu aktualisieren, wenn der Safety Center-Bildschirm geöffnet wird
- Boolescher Wert, dargestellt als String, zum Beispiel
true
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard ist
false
) - Für statische Sicherheitsquellen verboten
-
notificationsAllowed
(ab Android 14)- Ob die Sicherheitsquelle optional eine Benachrichtigung bereitstellen kann, wenn sie ein Problem meldet
- Boolescher Wert, dargestellt als String, zum Beispiel
true
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard ist
false
) - Für statische Sicherheitsquellen verboten
-
deduplicationGroup
(ab Android 14)- Eine potenzielle eindeutige Kennung, die zur Deduplizierung von Problemen aus verschiedenen Quellen verwendet werden kann. Quellen innerhalb derselben Deduplizierungsgruppe können Probleme mit einer optionalen Deduplizierungs-ID senden. Probleme mit derselben Deduplizierungs-ID werden nur einmal in der Benutzeroberfläche angezeigt, auch wenn sie von mehreren Quellen gesendet werden.
- String-Typ
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard ist keine Deduplizierung)
- Für statische Sicherheitsquellen verboten
-
packageCertificateHashes
(ab Android 14)- Eine durch Kommas getrennte Liste von Zertifikat-Hashes für den angegebenen
packageName
. Wenn dies festgelegt ist, wird aus Sicherheitsgründen bei der Interaktion mit der Sicherheitsquelle eine Zertifikatsprüfung anhand der angegebenenpackageCertificateHashes
für den angegebenenpackageName
durchgeführt. - String-Typ
- Optional für dynamische und Nur-Problem-Sicherheitsquellen (Standard sind keine Zertifikatsprüfungen)
- Für statische Sicherheitsquellen verboten
- Eine durch Kommas getrennte Liste von Zertifikat-Hashes für den angegebenen
Passen Sie Safety Center-Quellengruppen an
Safety Center-Quellen müssen in einer Safety Center-Quellengruppe enthalten sein. Jede Quellgruppe wird in der Benutzeroberfläche in der Reihenfolge angezeigt, in der die Quellgruppen in der Datei aufgeführt sind. Jede Quelle wird innerhalb der Gruppe in der Reihenfolge angezeigt, in der die Quellen in der Datei aufgeführt sind. Wenn die Gruppe eine einzelne Sicherheitsquelle enthält, wird sie als einzelner Eintrag und nicht als Gruppe angezeigt.
Konfiguration der Safety Center-Quellengruppe
Verwenden Sie die folgenden Variablen, um Safety Center-Quellgruppen anzupassen:
-
id
- Eindeutiger Bezeichner für die Sicherheitsquellengruppe; muss in der gesamten Datei eindeutig sein
- String-Typ
- Erforderlich
-
title
- Titel der Gruppe in der Benutzeroberfläche
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_title
- Erforderlich, wenn es mindestens eine dynamische oder statische Sicherheitsquelle innerhalb der Gruppe gibt (d. h. die Gruppe ist nicht vom
type="hidden"
).
-
summary
- Kurze Beschreibung der Gruppe in der Benutzeroberfläche, angezeigt unter dem Titel. Wird unter bestimmten Bedingungen angezeigt, typischerweise wenn keine Daten bereitgestellt werden; andernfalls wird die Zusammenfassung auf Grundlage der von den Quellen innerhalb der Gruppe bereitgestellten Daten berechnet.
- Ressourcen-ID, dargestellt als vollständig qualifizierter Ressourcenname, zum Beispiel
@package:string/my_summary
- Optional (Standard ist keine Zusammenfassung)
-
statelessIconType
- Symboltyp, der für die Gruppe angezeigt wird, wenn von den Sicherheitsquellen kein Status bereitgestellt wird, beispielsweise statische Einträge
- Aufzählungstyp, dargestellt als Zeichenfolge, der entweder
none
“ oderprivacy
(der Typ des Datenschutzsymbols) sein muss. - Optional (Standard ist
none
)
-
type
(ab Android 14)- Ein expliziter Typ, um zu qualifizieren, wie diese Gruppe mit Safety Center interagiert
- Der als String dargestellte Aufzählungstyp muss einer der folgenden sein:
-
stateful
(zeigt den Gesamtstatus des Safety Centers an und trägt dazu bei) -
stateless
(wird angezeigt und trägt nicht zum Gesamtstatus des Safety Centers bei) -
hidden
(wird nicht angezeigt, alle Quellen müssen Nur-Problem-Quellen sein)
-
- Optional, wird standardmäßig durch Verwendung der in der Gruppe enthaltenen Sicherheitsquellen sowie der
summary
undstatelessIconType
abgeleitet. Wenn dertype
angegeben wird, werden einige zusätzliche Invarianten erzwungen, um sicherzustellen, dass er mit den in der Gruppe gefundenen Quellen übereinstimmt (die Gruppe kann beispielsweise nichthidden
werden, wenn sie für den Benutzer sichtbare Einträge enthält).
Gruppentypen für Safety Center-Quellen
Safety Center-Quellgruppen werden basierend auf dem Status bestimmter Felder als zustandsbehaftet, zustandslos oder ausgeblendet klassifiziert.
Stateful-Gruppe
Eine Gruppe, die sowohl einen Titel als auch eine Zusammenfassung hat oder stateLessIconType="privacy"
als zustandsbehaftet gilt, trägt zum Gesamtstatus des Safety Centers 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 reduzierbarer Eintrag in der Benutzeroberfläche angezeigt. In Android 14 wird es als Eintrag mit eigenem Status angezeigt, der zur Unterseite weiterleitet.
Staatenlose Gruppe
Eine Gruppe, die einen Titel, aber keine Zusammenfassung und stateLessIconType="none"
hat, gilt als zustandslos und trägt nicht zum Gesamtstatus des Safety Centers 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 als starre Liste von Einträgen in der Benutzeroberfläche angezeigt.
Versteckte Gruppe
Eine ausgeblendete Gruppe enthält nur Sicherheitsquellen, die sich nur auf Probleme beziehen, 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 Safety Center-Quelle als statischen Eintrag anzeigen, was das Pushen von Umleitungseinträgen abhängig von bestimmten Bedingungen ermöglicht und die Anpassung des Inhalts zur Laufzeit ermöglicht. Definieren Sie die dynamische Quelle beispielsweise innerhalb einer zustandslosen Gruppe, abhängig von Ihrem Arbeitsrichtlinien-Infoeintrag.
Dieses Beispiel zeigt eine dynamische Sicherheitsquelle, die kein Sicherheitssignal liefert, da 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 übertragen und einen nicht spezifizierten Status bereitstellen. Um weitere Daten bereitstellen zu können, muss sich die Quelle innerhalb einer Stateful-Gruppe befinden.
Passen Sie Zeichenfolgen und Overlay-Felder an
Bei GMS-Geräten, die nicht für den Empfang von Mainline-Updates konfiguriert sind, können Sie anstelle der Überlagerung der gesamten Konfigurationsdatei sechs Zeichenfolgenressourcen überlagern, um alle Anpassungsanforderungen zu erfüllen. Die überlagerten Zeichenfolgenressourcen sind in der Tabelle aufgeführt.
String-Ressource | Beschreibung |
---|---|
google_lock_screen_sources_summary | Überlagern Sie diesen Wert, um eine statische Zusammenfassung zu definieren, die für die AndroidLockScreenSources Gruppe angezeigt wird, wenn sich alle Quellen in der Gruppe in einem guten Zustand befinden (Informationen oder nicht angegebener Schweregrad). Standardmäßig zeigt Safety Center den Titel aller Quellen in der Gruppe verkettet als Zusammenfassung für die Gruppe an. |
google_biometrics_title | Überlagern Sie diesen Wert, um einen statischen Titel für die biometrische Quelle zu definieren, die dem Paket com.android.settings gehört und verwendet wird, wenn von der Quelle keine dynamischen Daten bereitgestellt werden. Überlagern Sie dies, wenn Sie auch den von der Quelle dynamisch bereitgestellten Titel im Paket com.android.settings überlagern. Dies wird standardmäßig ignoriert, da der anfängliche Anzeigestatus für die Quelle hidden ist. |
google_biometrics_summary | Überlagern Sie diesen Wert, um eine statische Zusammenfassung für die biometrische Quelle zu definieren, die dem Paket com.android.settings gehört und verwendet wird, wenn von der Quelle keine dynamischen Daten bereitgestellt werden. Dies wird standardmäßig ignoriert, da der anfängliche Anzeigestatus für die Quelle hidden ist. |
google_biometrics_search_terms | Überlagern Sie diesen Wert, um eine Liste von Suchbegriffen für die biometrische Quelle zu definieren, die dem Paket com.android.settings gehört. |
google_biometrics_initial_display_state | Überlagern Sie diesen Wert, um einen UI-Eintrag für die biometrische Quelle anzuzeigen, die dem Paket com.android.settings gehört, wenn von der Quelle keine dynamischen Daten bereitgestellt werden. Der Standardwert ist hidden . |
google_security_updates_intent | Überlagern Sie diesen Wert, um die Absicht zu ändern, die zum Öffnen der Aktivität erforderlich ist, die es dem Benutzer ermöglicht, Sicherheitsupdates zu überprüfen und zu installieren. Diese Absichtsaktion muss mit einer exportierten Aktivität verknüpft sein. Der Standardwert ist android.settings.SYSTEM_UPDATE_SETTINGS . |
Keine anderen Zeichenfolgen im Paket com.google.android.safetycenter.resources
können überlagert werden.
Bei AOSP-Geräten sind alle Ressourcen im Paket com.android.safetycenter.resources
ohne Einschränkung des Inhalts überlagerbar.
Erstellen Sie für GMS-Geräte, die nicht für den Empfang von Mainline-Updates konfiguriert sind, ein com.google.android.safetycenter.resources
-Paket, das com.android.safetycenter.resources
ersetzt oder überlagert und alle von den GTS-Tests erwarteten Zeichenfolgen definiert.
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 dem unter Aktualisieren der Konfigurationsdatei beschriebenen Format entsprechen. Die Datei muss sich im raw
Ordner befinden. Es muss die in „Safety Center-Quellen anpassen“ und „Safety Center-Quellengruppen anpassen“ beschriebenen Invarianten erfüllen. Wenn die Konfigurationsdatei nicht den oben genannten Anforderungen entspricht, wird die Funktion vollständig deaktiviert. Das Parsen dieser Datei wird auch durch CTS- und GTS-Tests unterstützt, die zusätzlichen Kontext bereitstellen können, falls die Datei nicht korrekt formatiert ist (zusätzlich zu den Logcat- Geräteprotokollen).
Geräte mit Google-Diensten
Auf GMS-Geräten gelten für diese Datei einige Einschränkungen. Dies wird durch GTS-Tests unterstützt.
AOSP-Geräte
Auf AOSP-Geräten muss die Konfigurationsdatei wohlgeformt sein und die CTS-Tests für Safety Center bestehen. Die Tests überprüfen, ob die Datei wohlgeformt ist. Auch GMS-Geräte müssen diese Tests bestehen.