Personaliza el Centro de seguridad

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).
  • 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" sin searchTerms)
    • 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 que initialDisplayState="hidden" no tenga ninguna searchTerms)
    • 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 sea hidden)
    • 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 si initialDisplayState="disabled"
    • Se requiere para las fuentes de seguridad estáticas y las dynamic fuentes de seguridad que tienen initialDisplayState="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 el packageCertificateHashes especificado dado packageName 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

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 o privacy (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 y statelessIconType. Si el botón Se especifica type. Se aplican algunas variantes adicionales para garantizar que que coincida con las fuentes encontradas en el grupo (por ejemplo, el el grupo no puede ser hidden 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.