Sesuaikan Pusat Keamanan

Mengaktifkan atau menonaktifkan Pusat Keamanan

Untuk mengaktifkan atau menonaktifkan Pusat Keamanan, gunakan panel config_enableSafetyCenter kolom boolean di frameworks/base/core/res/res/values/config.xml .

Di sebagian besar perangkat, Pusat Keamanan didukung secara default, misalnya, di ponsel dan tablet. Di beberapa faktor bentuk, Pusat Keamanan dinonaktifkan secara default, untuk misalnya, di Auto, TV, dan 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>

Untuk mendukung Pusat Keamanan, tetapkan config_enableSafetyCenter ke true. Jika Anda tidak ingin mendukung Pusat Keamanan, tetapkan nilai ini ke false untuk menonaktifkannya.

Jika Pusat Keamanan dinonaktifkan, segala upaya untuk mengalihkan ke Pusat Keamanan & Halaman privasi akan membuka aplikasi Setelan. Segala upaya untuk berinteraksi dengan API otomatis diabaikan atau menampilkan nilai default. Paket Cepat yang terkait Kartu setelan dan entri Setelan juga diekspos atau disembunyikan bergantung pada apakah Pusat Keamanan diaktifkan.

Flag DeviceConfig

Selain mengaktifkan Pusat Keamanan menggunakan config_enableSafetyCenter konfigurasi, DeviceConfig flag (safety_center_is_enabled) digunakan untuk mengaktifkan atau menonaktifkan Keselamatan dari jarak jauh Tengah.

Di Android 14 dan yang lebih baru, Anda tidak perlu melakukan tindakan lebih lanjut karena flag ini bernilai true secara default.

Di Android 13, Pusat Keamanan dinonaktifkan secara default sisi server dan diaktifkan dengan daftar yang diizinkan menggunakan tanda ini. Kirim perangkat Anda sidik jari dan menghubungi TAM Anda untuk ditambahkan ke daftar yang diizinkan. Perlu diketahui bahwa versi mainline M-2022-11 atau yang lebih tinggi harus ditambahkan ke daftar yang diizinkan. Untuk pengembangan dan pengujian lokal, tanda ini dapat diaktifkan atau dinonaktifkan secara lokal (hingga reboot) dengan perintah adb. Misalnya, untuk mengaktifkan tanda:

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

Dan untuk mengonfirmasi apakah Pusat Keamanan diaktifkan:

adb root
adb shell cmd safety_center enabled

Output akan menampilkan apakah Pusat Keamanan diaktifkan dengan benar di perangkat.

Memperbarui file konfigurasi

Gunakan file konfigurasi safety_center_config.xml untuk mengubah konten layar Pusat Keamanan. Anda dapat menempatkan file ini dengan asumsi Anda telah memenuhi Persyaratan Penyesuaian.

Membuat overlay file konfigurasi

Untuk menempatkan file safety_center_config.xml, lihat Mengubah nilai resource aplikasi saat runtime untuk mengetahui informasi tentang cara memodifikasi overlay resource runtime (RRO).

Di Android 14, pastikan untuk menempatkan res/raw-v34/safety_center_config.xml dan bukan file res/raw/safety_center_config.xml sebagai yang pertama lebih diprioritaskan (ini juga berlaku untuk file lain yang dicakup dalam v34, misalnya res/values-v34/strings.xml). Paket overlay harus memiliki SDK min yang lebih rendah dari 34, jika tidak, penentu v34 dapat dihapus selama pengoptimalan. Pastikan juga untuk menggunakan overlay statis, karena nilai ini dimuat di sekitar booting baik.

Untuk perangkat Proyek Open Source Android (AOSP), targetkan paket com.android.safetycenter.resources. Tidak ada konfigurasi overlay untuk target. Semua resource dapat ditempatkan tanpa batasan terhadap kontennya.

Untuk perangkat GMS yang dikonfigurasi untuk menerima update Mainline, targetkan paket com.google.android.safetycenter.resources. Menargetkan konfigurasi SafetyCenterConfig. Konfigurasi ini mengharuskan paket overlay berada dalam baik partisi product, system, atau vendor. OEM GMS harus menyalin Google menyediakan safety_center_config.xml file dan batasi modifikasi terhadap perubahan yang diizinkan oleh GTS pengujian. Definisi overlay akan tampak seperti berikut:

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

Untuk perangkat GMS yang tidak dikonfigurasi untuk menerima update Mainline, targetkan paket com.android.safetycenter.resources. Tidak ada konfigurasi overlay untuk ditargetkan. Paket overlay harus menggunakan nama paket com.google.android.safetycenter.resources.

OEM GMS harus menyalin file safety_center_config.xml yang disediakan Google dan membatasi modifikasi pada modifikasi yang diizinkan oleh pengujian GTS. OEM GMS juga harus mendefinisikan string yang digunakan dalam konfigurasi XML.

Struktur file

Pada tingkat tinggi, file safety_center_config.xml merupakan daftar keamanan sumber. Sumber keamanan ini diatur dalam grup untuk mengelola sinyal di layar Pusat Keamanan, misalnya, Keamanan Aplikasi atau Kunci Layar. Urutan dari daftar ini menentukan urutan tampilan:

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

File konfigurasi Google

File konfigurasi AOSP terletak di packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml

Di Android 13, file konfigurasi Google adalah:

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

Di Android 14, file konfigurasi Google adalah:

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

Sesuaikan sumber Pusat Keamanan

Jenis sumber Pusat Keamanan

Sumber bisa dinamis, hanya masalah, atau statis, berdasarkan jenis data yang ke Pusat Keamanan.

Sumber dinamis

Tandai sumber keamanan sebagai dynamic-safety-source jika dapat memberikan data dinamis ke Pusat Keamanan, baik untuk kartu peringatan masuk maupun kemungkinan:

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

Sumber masalah khusus

Tandai sumber sebagai issue-only-safety-source jika ada tidak ada setelan terkait entri tetapi tetap ada peringatan. Anda hanya dapat memberikan peringatan; menyediakan entri setelan akan menghasilkan error:

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

Sumber statis

Tandai sumber sebagai static-safety-source jika merupakan entri pengalihan tanpa data dinamis:

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

Konfigurasi sumber Pusat Keamanan

Bergantung pada jenis sumber Pusat Keamanan dan invarian lainnya, konfigurasi kolom file bersifat opsional, wajib, atau dilarang dan dapat disesuaikan:

  • id
    • ID unik untuk sumber keamanan, harus unik di seluruh bagian dan harus terdiri dari karakter alfabet saja (a-z, A-Z) dan peka huruf besar/kecil
    • Jenis string
    • Wajib untuk semua jenis sumber keamanan
  • packageName
    • Nama paket yang memiliki sumber keamanan ini, misalnya, com.google.android.permissioncontroller
    • Jenis string
    • Wajib untuk sumber keamanan dinamis dan khusus masalah
    • Dilarang untuk sumber keamanan statis di Android 13; di Android 14, secara opsional dapat ditetapkan untuk menargetkan intentAction sumber secara eksplisit dan bukan secara implisit (lihat resolusi maksud dokumentasi untuk mengetahui detail selengkapnya)
  • initialDisplayState
    • Cara entri UI ditampilkan saat tidak ada data yang disediakan oleh keamanan sumber
    • Jenis enum yang direpresentasikan sebagai string, harus berupa salah satu dari berikut ini:
      • enabled (default, ditampilkan normal)
      • disabled (tampilan berwarna abu-abu, tidak dapat diklik)
      • hidden (tidak ditampilkan)
    • Opsional untuk sumber keamanan dinamis (default-nya adalah enabled)
    • Dilarang untuk sumber keamanan statis dan khusus masalah
  • profile
    • Apakah sumber keamanan ini berinteraksi dengan profil terkelola pengguna
    • Jenis enum yang direpresentasikan sebagai string, harus berupa salah satu dari berikut ini:
      • primary_profile_only (hanya berinteraksi dengan induk profil)
      • all_profiles (juga dapat berinteraksi dengan profil terkelola)
    • Pada all_profiles, beberapa entri UI akan dibuat (satu untuk profil induk, dan satu untuk setiap profil terkelola); sumber keamanan dapat memberikan data yang berbeda untuk setiap profil
    • Wajib untuk semua sumber keamanan
  • searchTerms
    • Daftar istilah penelusuran yang dipetakan ke entri Pusat Keamanan saat digunakan telusuri di aplikasi Setelan
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_search_terms
    • Opsional untuk sumber keamanan dinamis dan statis (defaultnya adalah tidak ada penelusuran persyaratan)
    • Dilarang untuk sumber keamanan khusus masalah
  • title
    • Judul default entri UI, digunakan saat tidak ada data yang disediakan secara dinamis berdasarkan sumber ini
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_title
    • Wajib untuk sumber keamanan dinamis dan statis (kecuali initialDisplayState="hidden" tanpa searchTerms)
    • Dilarang untuk sumber keamanan khusus masalah
  • titleForWork
    • Judul default entri UI untuk profil terkelola yang digunakan saat data tidak disediakan secara dinamis oleh sumbernya
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_title_for_work
    • Wajib untuk sumber keamanan dinamis dan statis yang telah ditentukan profile="all_profiles" (kecuali initialDisplayState="hidden" tanpa searchTerms)
    • Dilarang untuk sumber keamanan khusus masalah atau sumber dengan profile="primary_profile_only"
  • summary
    • Ringkasan default entri UI (ini adalah deskripsi teks yang lebih panjang ditampilkan di bawah judul), digunakan ketika data tidak disediakan secara dinamis oleh sumber
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_summary
    • Opsional untuk sumber keamanan statis (defaultnya adalah tanpa ringkasan)
    • Wajib untuk sumber keamanan dinamis (kecuali initialDisplayState adalah hidden)
    • Dilarang untuk sumber keamanan khusus masalah
  • intentAction
    • Tindakan yang akan dipicu saat entri UI diklik
    • Jenis {i>string<i}, misalnya, com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS, atau ID resource yang direpresentasikan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_intent_action
    • Jika tindakan intent ini tidak diselesaikan untuk packageName yang diberikan (jika semua), entri UI berperilaku dengan cara yang sama seperti memiliki initialDisplayState="disabled"
    • Wajib untuk sumber keamanan statis dan sumber keamanan dynamic yang memiliki initialDisplayState="enabled"
    • Dilarang untuk sumber keamanan khusus masalah
  • maxSeverityLevel
    • Tingkat keparahan maksimum yang dapat diberikan oleh sumber Pusat Keamanan ini
    • Bilangan bulat direpresentasikan sebagai string, misalnya 300
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (defaultnya adalah tidak maksimum)
    • Dilarang untuk sumber keamanan statis
  • loggingAllowed
    • Apakah Pusat Keamanan dapat mencatat interaksi atau data yang terkait dengan ini sumber
    • Boolean direpresentasikan sebagai string, misalnya false
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (default-nya adalah true)
    • Dilarang untuk sumber keamanan statis
  • refreshOnPageOpenAllowed
    • Apakah sinyal harus dikirim ke sumber keamanan untuk memperbarui datanya saat layar Pusat Keamanan dibuka
    • Boolean direpresentasikan sebagai string, misalnya true
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (default-nya adalah false)
    • Dilarang untuk sumber keamanan statis
  • notificationsAllowed (Memulai Android 14)
    • Apakah sumber keamanan secara opsional bisa memberikan notifikasi ketika melaporkan masalah
    • Boolean direpresentasikan sebagai string, misalnya true
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (default-nya adalah false)
    • Dilarang untuk sumber keamanan statis
  • deduplicationGroup (Memulai Android 14)
    • ID unik potensial yang dapat digunakan untuk menghapus duplikat masalah yang berasal dari sumber yang berbeda. Sumber dalam penghapusan duplikat yang sama dapat mengirimkan masalah dengan ID penghapusan duplikat opsional. Masalah terkait ID penghapusan duplikat yang sama hanya akan ditampilkan sekali di UI, meskipun dari beberapa sumber.
    • Jenis string
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (defaultnya adalah tidak penghapusan duplikat)
    • Dilarang untuk sumber keamanan statis
  • packageCertificateHashes (Memulai Android 14)
    • Daftar {i>hash<i} sertifikat yang dipisahkan koma untuk {i>hash <i}yang ditentukan packageName. Jika hal ini disetel, sertifikat centang akan dilakukan terhadap packageCertificateHashes yang ditentukan untuk diberikan packageName saat berinteraksi dengan sumber keamanan, untuk keamanan.
    • Jenis string
    • Opsional untuk sumber keamanan dinamis dan khusus masalah (defaultnya adalah tidak pemeriksaan sertifikat)
    • Dilarang untuk sumber keamanan statis

Menyesuaikan grup sumber Pusat Keamanan

Sumber Pusat Keamanan harus berada dalam grup sumber Pusat Keamanan. Setiap grup sumber ditampilkan di UI dalam urutan Grup sumber yang tercantum dalam file. Setiap sumber ditampilkan dalam grup dengan urutan Sumber dicantumkan dalam file. Jika grup itu berisi satu sumber keamanan, itu ditampilkan sebagai entri tunggal bukan sebagai grup.

Konfigurasi grup sumber Pusat Keamanan

Gunakan variabel berikut untuk menyesuaikan grup sumber Pusat Keamanan:

  • id
    • ID unik untuk grup sumber keamanan; harus unik dalam seluruh file
    • Jenis string
    • Wajib
  • title
    • Judul grup di UI
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_title
    • Wajib jika ada setidaknya satu sumber keamanan dinamis atau statis dalam grup (misalnya, grup bukan dari type="hidden")
  • summary
    • Deskripsi singkat grup di UI, yang ditampilkan di bawah judul. Ditampilkan dalam kondisi tertentu, biasanya saat data tidak diberikan; jika tidak, ringkasan dihitung berdasarkan data yang disediakan oleh sumber dalam grup.
    • ID resource, yang ditampilkan sebagai nama resource yang sepenuhnya memenuhi syarat, misalnya, @package:string/my_summary
    • Opsional (defaultnya adalah tanpa ringkasan)
  • statelessIconType
    • Jenis ikon yang ditampilkan untuk grup jika tidak ada status yang disediakan oleh sumber keamanan, misalnya, entri statis
    • Jenis enum direpresentasikan sebagai string yang harus berupa none atau privacy (jenis ikon privasi)
    • Opsional (defaultnya adalah none)
  • type (Memulai Android 14)
    • Jenis eksplisit untuk menentukan cara grup ini berinteraksi dengan Pusat Keamanan
    • Jenis enum yang direpresentasikan sebagai string, harus berupa salah satu dari berikut ini:
      • stateful (menampilkan dan berkontribusi pada keseluruhan Pusat Keamanan )
      • stateless (menampilkan dan tidak berkontribusi terhadap Keselamatan secara keseluruhan Status tengah)
      • hidden (tidak ditampilkan, semua sumber harus menyebutkan masalah saja)
    • Opsional, disimpulkan secara default menggunakan sumber keamanan yang terdapat dalam grup serta summary dan statelessIconType. Jika type ditentukan bahwa beberapa invarian tambahan diterapkan untuk memastikan kecocokannya dengan sumber yang ditemui dalam grup (misalnya, grup tidak boleh hidden jika berisi entri yang terlihat oleh pengguna)

Jenis grup sumber Pusat Keamanan

Grup sumber Pusat Keamanan diklasifikasikan sebagai stateful, stateless, atau tersembunyi, berdasarkan status {i>field<i} tertentu.

Grup stateful

Grup yang memiliki judul dan ringkasan, atau stateLessIconType="privacy" adalah dianggap berkontribusi pada status Pusat Keamanan secara keseluruhan:

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

Di Android 13, grup tersebut akan ditampilkan sebagai dapat diciutkan ke dalam UI. Di Android 14, ini akan ditampilkan sebagai entri dengan statusnya sendiri yang mengalihkan ke subhalaman.

Grup stateless

Grup yang memiliki judul tetapi tidak memiliki ringkasan, dan stateLessIconType="none" adalah dianggap stateless dan tidak berkontribusi terhadap status Pusat Keamanan secara keseluruhan:

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

Grup tersebut akan ditampilkan sebagai daftar entri yang kaku di UI.

Grup tersembunyi

Grup tersembunyi hanya berisi sumber keamanan khusus masalah dan tidak memiliki judul. Grup tersembunyi tidak ditampilkan di UI:

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

Data dinamis untuk entri statis

Anda dapat menampilkan sumber Pusat Keamanan dinamis sebagai entri statis, yang memungkinkan mendorong entri pengalihan tergantung pada beberapa kondisi, dan memungkinkan penyesuaian kontennya pada saat runtime. Tentukan sumber dinamis dalam grup stateless, untuk misalnya, bergantung pada entri info kebijakan kerja Anda.

Contoh ini menunjukkan sumber keselamatan dinamis yang tidak memberikan sinyal keselamatan, karena berada dalam grup stateless:

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

Dalam contoh ini, sumber hanya dapat mengirim kartu peringatan hijau dan memberikan status yang belum ditetapkan. Agar dapat menyediakan data lain, sumber harus berada dalam grup stateful.

Menyesuaikan string dan kolom overlay

Untuk perangkat GMS yang tidak dikonfigurasi untuk menerima update Mainline, menempatkan seluruh file konfigurasi, Anda dapat menempatkan enam sumber daya {i>string<i} ke memenuhi semua kebutuhan penyesuaian. Resource string yang berupa overlay dicantumkan pada tabel.

Sumber daya string Deskripsi
google_lock_screen_sources_summary Tempatkan nilai ini untuk mendefinisikan ringkasan statis yang ditampilkan grup AndroidLockScreenSources saat semua sumber dalam grup dalam kondisi baik (informasi atau tingkat keparahannya tidak ditentukan tertentu). Secara default, Pusat Keamanan menampilkan judul semua sumber dalam grup yang disambungkan sebagai ringkasan untuk grup itu.
google_biometrics_title Tempatkan nilai ini di overlay untuk menentukan judul statis sumber biometrik dimiliki oleh paket com.android.settings yang digunakan saat tidak ada data dinamis disediakan oleh sumbernya. Tambahkan overlay jika juga menempatkan judul yang disediakan secara dinamis oleh sumber dalam com.android.settings. Ini diabaikan secara default karena status tampilan awal sumber adalah hidden.
google_biometrics_summary Tempatkan nilai ini untuk menentukan ringkasan statis untuk biometrik sumber yang dimiliki oleh paket com.android.settings yang digunakan jika tidak ada data dinamis yang disediakan oleh sumbernya. Ini diabaikan oleh karena status tampilan awal sumber adalah hidden.
google_biometrics_search_terms Tempatkan nilai ini guna menentukan daftar istilah penelusuran untuk biometrik sumber yang dimiliki oleh paket com.android.settings.
google_biometrics_initial_display_state Tempatkan nilai ini guna menampilkan entri UI untuk sumber biometrik yang dimiliki oleh paket com.android.settings saat tidak ada data dinamis yang disediakan oleh sumber. Nilai defaultnya adalah hidden.
google_security_updates_intent Tempatkan nilai ini untuk mengubah intent yang diperlukan untuk membuka aktivitas yang memungkinkan pengguna untuk memeriksa dan menginstal pembaruan keamanan. Ini tindakan intent harus dikaitkan dengan aktivitas yang diekspor. Tujuan nilai defaultnya adalah android.settings.SYSTEM_UPDATE_SETTINGS.

Tidak ada string lain dalam paket com.google.android.safetycenter.resources yang overlay.

Untuk perangkat AOSP, semua resource di com.android.safetycenter.resources paket dapat dihamparkan tanpa batasan pada kontennya.

Untuk perangkat GMS yang tidak dikonfigurasi untuk menerima update Mainline, buat Mengganti atau menempatkan paket com.google.android.safetycenter.resources com.android.safetycenter.resources yang menentukan semua string yang diharapkan oleh pengujian GTS.

String tersebut adalah:

  • 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

Persyaratan Penyesuaian

Persyaratan format file

File konfigurasi harus berupa file XML dan mengikuti format yang dijelaskan di Perbarui file konfigurasi. File harus berada di Folder raw. Setelan ini harus memenuhi invarian yang dijelaskan di Menyesuaikan Pusat Keamanan sumber dan Menyesuaikan sumber Pusat Keamanan grup. Jika file konfigurasi tidak dibentuk dengan baik sesuai dengan persyaratan di atas, fitur tersebut dinonaktifkan sepenuhnya. Penguraian file ini juga didukung oleh CTS dan GTS pengujian yang dapat memberikan konteks tambahan jika file tidak diformat dengan baik (pada teratas logcat log perangkat).

Perangkat layanan Google

Pada perangkat GMS, beberapa batasan diberlakukan pada file ini. Hal ini didukung oleh GTS pengujian.

Perangkat AOSP

Pada perangkat AOSP, file konfigurasi harus diformat dengan baik dan lulus pengujian CTS pengujian untuk Keamanan Tengah. Pengujian memverifikasi bahwa file disusun dengan baik. Perangkat GMS juga harus lulus pengujian ini.