Cómo habilitar o inhabilitar el Centro de seguridad
Para habilitar o inhabilitar el Centro de seguridad, usa
Campo booleano config_enableSafetyCenter
en
frameworks/base/core/res/res/values/config.xml
.
En la mayoría de los dispositivos, el Centro de seguridad es compatible de forma predeterminada, por ejemplo, en los teléfonos. y tabletas. En algunos factores de forma, el Centro de seguridad está inhabilitado de forma predeterminada por por ejemplo, en Auto, TV y 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>
Para admitir el Centro de seguridad, establece config_enableSafetyCenter
en true
. Si
no quieres admitir el Centro de seguridad, establece este valor en false
para inhabilitarlo.
Cuando se inhabilita el Centro de seguridad, cualquier intento de redireccionar a la página de Seguridad y En su lugar, la página Privacidad abre la app de Configuración. Cualquier intento de interactuar con el Las APIs se ignoran en silencio o muestran un valor predeterminado. La ruta de acceso rápida asociada La tarjeta de configuración y la entrada de Configuración también están ocultas o expuestas dependiendo de si Se habilitó el Centro de seguridad.
marca de DeviceConfig
Además de habilitar el Centro de seguridad con config_enableSafetyCenter
de Terraform, una
DeviceConfig
la marca (safety_center_is_enabled
) se usa para habilitar o inhabilitar de forma remota
Centro.
En Android 14 y versiones posteriores, no es necesario realizar ninguna otra acción.
ya que esta marca es true
de forma predeterminada.
En Android 13, el Centro de seguridad está inhabilitado de forma predeterminada
del servidor y se habilita mediante la lista de entidades permitidas con esta marca. Envía tu dispositivo
sus huellas digitales y comuníquese con su TAM para que lo agregue a la lista de entidades permitidas. Ten en cuenta que
Se requiere que la versión principal M-2022-11
o una posterior se agreguen a la lista de entidades permitidas.
Para el desarrollo y las pruebas locales, la marca se puede habilitar o inhabilitar de forma local
(hasta un reinicio) con un comando adb
. Por ejemplo, para habilitar la marca, haz lo siguiente:
adb root
adb shell device_config set_sync_disabled_for_tests until_reboot
adb shell device_config put privacy safety_center_is_enabled true
Además, para confirmar si el Centro de seguridad está habilitado, haz lo siguiente:
adb root
adb shell cmd safety_center enabled
El resultado mostrará si el Centro de seguridad está habilitado correctamente en el dispositivo.
Actualiza el archivo de configuración
Usa el archivo de configuración safety_center_config.xml
para modificar el contenido de
la pantalla del Centro de seguridad. Puedes superponer este archivo suponiendo que cumples con los
Requisitos de personalización.
Superpón el archivo de configuración
Para superponer el archivo safety_center_config.xml
, consulta Cómo cambiar el valor de un elemento
recursos de tu app en el tiempo de ejecución
para obtener información sobre cómo modificar las superposiciones de recursos en tiempo de ejecución (RRO).
En Android 14, asegúrate de superponer el
res/raw-v34/safety_center_config.xml
y no el
res/raw/safety_center_config.xml
, ya que el primero tiene prioridad (esto también
se aplica a otros archivos cuyo alcance es v34
, p.ej.,
res/values-v34/strings.xml
). El paquete de superposición debe tener un SDK mínimo inferior
que 34
; de lo contrario, el calificador v34
podría quitarse durante la optimización.
Además, asegúrate de usar una superposición estática, ya que este valor se carga cerca del inicio.
tiempo.
Para dispositivos del Proyecto de código abierto de Android (AOSP), orienta el paquete
com.android.safetycenter.resources
No hay una configuración de superposición para
objetivo. Todos los recursos se pueden superponer sin restricciones en cuanto al contenido.
En el caso de los dispositivos con GMS que estén configurados para recibir actualizaciones de la línea principal, segmenta el anuncio para
paquete com.google.android.safetycenter.resources
. Cómo orientar la configuración
SafetyCenterConfig
Esta configuración requiere que el paquete de superposiciones se encuentre en
la partición product
, system
o vendor
. Los OEM de GMS deben copiar el
Google proporcionó safety_center_config.xml
file y límite
modificaciones a las permitidas por la GTS
pruebas. La definición de la superposición
debería ser similar a esto:
<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>
En el caso de los dispositivos con GMS que no estén configurados para recibir actualizaciones de la línea principal, segmenta el
paquete com.android.safetycenter.resources
. No hay configuración de superposición
a los que pueden orientarse. El paquete de superposición debe usar el nombre del paquete
com.google.android.safetycenter.resources
Los OEM de GMS deben copiar el archivo safety_center_config.xml
proporcionado por Google y
pero no deben limitar las modificaciones a las que permiten las pruebas GTS. Los OEM de GMS también deben definir
las cadenas usadas en la configuración XML.
Estructura de archivos
En un nivel alto, el archivo safety_center_config.xml
es una lista de
fuentes de datos. Estas fuentes de seguridad están organizadas en grupos para gestionar las señales en
la pantalla del Centro de seguridad, por ejemplo, Seguridad de la app o Bloqueo de pantalla. El orden de
esta lista define el orden de visualización:
<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>
Archivo de configuración de Google
El archivo de configuración del AOSP se encuentra
packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml
En Android 13, el archivo de configuración de Google es el siguiente:
<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>
En Android 14, el archivo de configuración de Google es el siguiente:
<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>
Personaliza las fuentes del Centro de seguridad
Tipos de fuentes del Centro de seguridad
Las fuentes pueden ser dinámicas, solo de problemas o estáticas, en función del tipo de datos que proporcionar al Centro de seguridad.
Fuentes dinámicas
Marca la fuente de seguridad como dynamic-safety-source
si puede proporcionar datos dinámicos
al Centro de seguridad, por su entrada y las posibles tarjetas de advertencia.
<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"/>
Fuentes solo de problemas
Marcar la fuente como issue-only-safety-source
si hay: no hay parámetros de configuración asociados
pero se siguen proporcionando advertencias. Solo puedes proporcionar advertencias. proporcionando
una entrada de configuración genera el siguiente error:
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
Fuentes estáticas
Marca la fuente como static-safety-source
si es una entrada de redireccionamiento sin
datos dinámicos:
<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"/>
Configuración de la fuente del Centro de seguridad
Según el tipo de fuente del Centro de seguridad y otras variantes, la configuración campos del archivo son opcionales, obligatorios o prohibidos, y se pueden personalizar:
id
- Identificador único de la fuente de seguridad, debe ser único en todo y debe constar de solo caracteres alfabéticos (a-z, A-Z) y distingue mayúsculas de minúsculas
- Tipo de cadena
- Obligatorio para todos los tipos de fuentes de seguridad
packageName
- El nombre del paquete al que pertenece esta fuente de seguridad, por ejemplo,
com.google.android.permissioncontroller
- Tipo de cadena
- Obligatorio para fuentes de seguridad dinámicas y solo de problemas
- Prohibido para fuentes de seguridad estáticas en Android
13; En Android 14, esto
De forma opcional, se puede configurar para que se oriente al
intentAction
del origen explícita en lugar de implícitamente (consulta la sección de resolución de intents documentación para obtener más información).
- El nombre del paquete al que pertenece esta fuente de seguridad, por ejemplo,
initialDisplayState
- Cómo se muestra la entrada de la IU cuando el equipo de seguridad no proporciona datos fuente
- El tipo enum representado como una cadena, debe ser uno de los siguientes:
enabled
(predeterminado; se muestra normalmente)disabled
(aparece en gris y no es posible hacer clic en ella)hidden
(no se muestra)
- Opcional para las fuentes de seguridad dinámicas (el valor predeterminado es
enabled
) - Prohibido para fuentes de seguridad estáticas y que solo incluyan problemas
profile
- Si esta fuente de seguridad interactúa con el perfil administrado del usuario
- El tipo enum representado como una cadena, debe ser uno de los siguientes:
primary_profile_only
(interactúa solo con el perfil superior)all_profiles
(también puede interactuar con los perfiles administrados)
- En
all_profiles
, se generan varias entradas de IU (una para el perfil superior y uno para cada perfil administrado) la fuente de seguridad puede brindar datos diferentes para cada perfil - Obligatorio para todas las fuentes de seguridad
searchTerms
- Lista de términos de búsqueda que se asignan a la entrada del Centro de seguridad cuando se usa busca en la app de Configuración
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_search_terms
- Opcional para las fuentes de seguridad dinámicas y estáticas (el valor predeterminado es sin búsquedas) condiciones)
- Prohibido para fuentes de seguridad que son solo para asuntos de seguridad
title
- Título predeterminado de la entrada de la IU, que se usa cuando no se proporcionan datos de forma dinámica. por la fuente
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_title
- Necesaria para las fuentes de seguridad dinámicas y estáticas (a menos que
initialDisplayState="hidden"
sinsearchTerms
) - Prohibido para fuentes de seguridad que son solo para asuntos de seguridad
titleForWork
- Título predeterminado de la entrada de la IU para el perfil administrado que se utiliza cuando la fuente no proporciona datos de forma dinámica
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_title_for_work
- Obligatorio para las fuentes de seguridad dinámicas y estáticas que se especificaron
profile="all_profiles"
(a menos queinitialDisplayState="hidden"
no tenga ningunasearchTerms
) - Prohibido para fuentes de seguridad de carácter únicamente o fuentes con
profile="primary_profile_only"
summary
- Resumen predeterminado de la entrada de la IU (esta es una descripción de texto más larga) que se muestra debajo del título), que se usa cuando los datos no son proporcionados de forma dinámica la fuente
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_summary
- Opcional para las fuentes de seguridad estáticas (el valor predeterminado es no resumen)
- Obligatorio para las fuentes de seguridad dinámicas (a menos que
initialDisplayState
seahidden
) - Prohibido para fuentes de seguridad que son solo para asuntos de seguridad
intentAction
- Acción que se activa cuando se hace clic en la entrada de la IU
- Por ejemplo, el tipo de cadena
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
o ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,@package:string/my_intent_action
- Si esta acción de intent no se resuelve con la
packageName
especificada (si cualquiera), la entrada de la IU se comporta de la misma manera que siinitialDisplayState="disabled"
- Se requiere para las fuentes de seguridad estáticas y las
dynamic
fuentes de seguridad que tieneninitialDisplayState="enabled"
- Prohibido para fuentes de seguridad que son solo para asuntos de seguridad
maxSeverityLevel
- Nivel de gravedad máximo que puede proporcionar esta fuente del Centro de seguridad
- Número entero representado como una string, por ejemplo,
300
- Opcional para las fuentes de seguridad dinámicas y solo de problemas (el valor predeterminado es no máximo)
- Prohibido para fuentes de seguridad estáticas
loggingAllowed
- Si el Centro de seguridad puede registrar interacciones o datos relacionados con esto fuente
- Booleano representado como una string, por ejemplo,
false
- Opcional para las fuentes de seguridad dinámicas y que solo brindan problemas (el valor predeterminado es
true
) - Prohibido para fuentes de seguridad estáticas
refreshOnPageOpenAllowed
- Si se debe enviar una señal a la fuente de seguridad para actualizar sus datos Cuando se abre la pantalla del Centro de seguridad
- Booleano representado como una string, por ejemplo,
true
- Opcional para las fuentes de seguridad dinámicas y que solo brindan problemas (el valor predeterminado es
false
) - Prohibido para fuentes de seguridad estáticas
notificationsAllowed
(A partir de Android 14)- Si la fuente de seguridad puede proporcionar una notificación de forma opcional cuando informar un problema
- Booleano representado como una string, por ejemplo,
true
- Opcional para las fuentes de seguridad dinámicas y que solo brindan problemas (el valor predeterminado es
false
) - Prohibido para fuentes de seguridad estáticas
deduplicationGroup
(A partir de Android 14)- Un posible identificador único que se puede usar para anular los problemas duplicados que provienen de diferentes fuentes. Fuentes dentro de la misma anulación de duplicación puede enviar problemas con un ID de anulación de duplicación opcional. Problemas con el el mismo ID de anulación de duplicación solo se mostrará una vez en la IU, aun si los envían varias fuentes.
- Tipo de cadena
- Opcional para las fuentes de seguridad dinámicas y solo de problemas (el valor predeterminado es no anulación de duplicación)
- Prohibido para fuentes de seguridad estáticas
packageCertificateHashes
(A partir de Android 14)- Una lista separada por comas de los hashes de los certificados correspondientes
packageName
Si está configurado, se crea un certificado verificación se realizará con elpackageCertificateHashes
especificado dadopackageName
cuando interactúa con la fuente de seguridad, por con fines de seguridad. - Tipo de cadena
- Opcional para las fuentes de seguridad dinámicas y solo de problemas (el valor predeterminado es no verificaciones de certificados)
- Prohibido para fuentes de seguridad estáticas
- Una lista separada por comas de los hashes de los certificados correspondientes
Personaliza los grupos de fuentes del Centro de seguridad
Las fuentes del Centro de seguridad deben incluirse dentro de un grupo de fuentes del Centro de seguridad. Cada grupo fuente se muestra en la IU en el orden en que se usan que se indican en el archivo. Cada fuente se muestra dentro del grupo en el orden Las fuentes se incluyen en el archivo. Si el grupo contiene una sola fuente de seguridad, se muestra como una entrada única en lugar de un grupo.
Configuración del grupo de fuentes del Centro de seguridad
Usa las siguientes variables para personalizar los grupos de fuentes del Centro de seguridad:
id
- Identificador único del grupo de fuentes de seguridad debe ser único en el archivo completo
- Tipo de cadena
- Obligatorio
title
- Título del grupo en la IU
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_title
- Obligatorio si hay al menos una fuente de seguridad dinámica o estática
el grupo (es decir, el grupo no es de
type="hidden"
)
summary
- Breve descripción del grupo en la IU, que se muestra debajo del título. Se muestran en condiciones específicas, por lo general, cuando no se proporcionan datos. De lo contrario, el resumen se calcula en función de los datos proporcionados por el fuentes dentro del grupo.
- ID de recurso representado como un nombre de recurso completamente calificado, por ejemplo,
@package:string/my_summary
- Opcional (la configuración predeterminada no es resumen)
statelessIconType
- Tipo de icono que se muestra para el grupo cuando el estado no proporciona un estado fuentes de seguridad, como entradas estáticas
- Un tipo de enumeración representado como una cadena que debe ser
none
oprivacy
(el tipo de ícono de privacidad) - Opcional (el valor predeterminado es
none
)
type
(A partir de Android 14)- Un tipo explícito para calificar cómo interactúa este grupo con el Centro de seguridad
- El tipo enum representado como una cadena, debe ser uno de los siguientes:
stateful
(muestra y contribuye al Centro de seguridad general estado)stateless
(muestra y no contribuye a los cambios de seguridad generales estado del centro)hidden
(no se muestra, todas las fuentes deben ser solo problemas)
- Opcional, se infiere de forma predeterminada mediante el uso de las fuentes de seguridad incluidas en
el grupo, así como
summary
ystatelessIconType
. Si el botón Se especificatype
. Se aplican algunas variantes adicionales para garantizar que que coincida con las fuentes encontradas en el grupo (por ejemplo, el el grupo no puede serhidden
si contiene entradas visibles para el usuario)
Tipos de grupos de fuentes del Centro de seguridad
Los grupos de origen del Centro de seguridad se clasifican como ocultos, con estado o sin estado. según el estado de ciertos campos.
Grupo con estado
Un grupo que tiene un título y un resumen, o stateLessIconType="privacy"
, es
se considera con estado contribuye al estado general del Centro de seguridad:
<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>
En Android 13, ese grupo se mostrará como contraíble en la IU. En Android 14, se mostrará como un con su propio estado que redirecciona a la subpágina.
Grupo sin estado
Un grupo que tiene un título, pero no un resumen, y stateLessIconType="none"
es
se considera sin estado y no contribuye al estado general del Centro de seguridad:
<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>
Ese grupo se mostrará como una lista rígida de entradas en la IU.
Grupo oculto
Un grupo oculto solo contiene fuentes de seguridad solo para problemas y no tiene un título. Los grupos ocultos no aparecen en la IU:
<safety-sources-group
id="HiddenGroup">
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
Datos dinámicos para una entrada estática
Puedes mostrar la fuente dinámica del Centro de seguridad como una entrada estática, lo que permite enviar entradas de redireccionamiento según ciertas condiciones y permitir personalizar su contenido en el tiempo de ejecución. Define la fuente dinámica dentro de un grupo sin estado para según el ingreso de información sobre la política de trabajo.
Este ejemplo muestra una fuente de seguridad dinámica que no proporciona una señal de seguridad. porque está en un grupo sin estado:
<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>
En este ejemplo, la fuente solo puede enviar tarjetas de advertencia verdes y proporcionar un estado sin especificar. Para poder proporcionar otros datos, la fuente debe estar dentro de un grupo con estado.
Cómo personalizar cadenas y campos de superposición
En el caso de los dispositivos con GMS que no están configurados para recibir actualizaciones de la línea principal, en lugar de por encima de todo el archivo de configuración, puedes superponer seis recursos de cadenas para satisfacer todas las necesidades de personalización. Se enumeran los recursos de cadenas que se superponen en la tabla.
Recurso de cadenas | Descripción |
---|---|
google_lock_screen_sources_summary |
Superpón este valor para definir el resumen estático que se muestra
el grupo AndroidLockScreenSources cuando todas las fuentes de
estén en un buen estado (información o gravedad no especificada)
de nivel superior). De forma predeterminada, el Centro de seguridad muestra el título de todas las fuentes
del grupo concatenados como resumen del grupo. |
google_biometrics_title |
Superpone este valor para definir un título estático para la fuente biométrica
del paquete com.android.settings que se usa cuando no hay
los datos dinámicos son proporcionados por la fuente. Superpón esto cuando también
superponer el título dinámicamente por la fuente en el
com.android.settings . Se ignora de forma predeterminada.
porque el estado de visualización inicial de la fuente es
hidden |
google_biometrics_summary |
Superpone este valor para definir un resumen estático de los datos biométricos
fuente que pertenece al paquete com.android.settings utilizado
cuando la fuente no proporciona datos dinámicos. Esto es ignorado por
predeterminada porque el estado de visualización inicial de la fuente es
hidden |
google_biometrics_search_terms |
Superpone este valor para definir una lista de términos de búsqueda para el dato biométrico
fuente perteneciente al paquete com.android.settings . |
google_biometrics_initial_display_state |
Superpone este valor para mostrar una entrada de IU para la fuente biométrica que pertenece
por el paquete com.android.settings cuando no hay datos dinámicos
que proporciona la fuente. El valor predeterminado es
hidden |
google_security_updates_intent |
Superpone este valor a fin de cambiar el intent necesario para abrir la actividad.
que permite al usuario comprobar e instalar actualizaciones de seguridad. Esta
acción de intent debe estar asociada con una actividad exportada. El
el valor predeterminado es
android.settings.SYSTEM_UPDATE_SETTINGS |
No se admite ninguna otra cadena del paquete com.google.android.safetycenter.resources
que se puede superponer.
Para dispositivos del AOSP, todos los recursos de com.android.safetycenter.resources
paquete se pueden superponer sin restricciones en cuanto al contenido.
En el caso de los dispositivos con GMS que no están configurados para recibir actualizaciones de línea principal, crea una
Reemplazo o superposición de paquetes com.google.android.safetycenter.resources
com.android.safetycenter.resources
que define todas las cadenas que espera la
Pruebas GTS.
Estas cadenas son las siguientes:
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
Requisitos de personalización
Requisitos de formato de archivo
El archivo de configuración debe ser un archivo en formato XML y seguir el formato descrito en
Actualiza el archivo de configuración. El archivo debe estar en
raw
carpeta. Debe cumplir con las variantes que se describen en Cómo personalizar el Centro de seguridad
fuentes y
Cómo personalizar las fuentes del Centro de seguridad
o grupos de usuarios. Si el botón
de configuración de red no está bien formado de acuerdo con los requisitos anteriores, el
la función se inhabilita por completo. El análisis de este archivo también está respaldado por el CTS y el GTS
que pueden proporcionar contexto adicional en caso de que el archivo no tenga el formato correcto (en
parte superior de la
Logcat
registros del dispositivo).
Dispositivos de los servicios de Google
En los dispositivos con GMS, se aplican algunas restricciones a este archivo. Esto es compatible con GTS pruebas.
Dispositivos del AOSP
En dispositivos del AOSP, el archivo de configuración debe tener el formato correcto y pasar el CTS pruebas de seguridad Centro. Las pruebas verifican que el archivo tenga el formato correcto. Los dispositivos con GMS también deben aprobar estas pruebas.