Güvenlik Merkezini Özelleştir

Güvenlik Merkezi'ni etkinleştirme veya devre dışı bırakma

Güvenlik Merkezi'ni etkinleştirmek veya devre dışı bırakmak için, frameworks/base/core/res/res/values/config.xml dosyasındaki yerleştirilebilir config_enableSafetyCenter boole alanını kullanın.

Çoğu cihazda, örneğin telefonlarda ve tabletlerde Güvenlik Merkezi varsayılan olarak desteklenir. Otomatik, TV ve Wear gibi bazı form faktörlerinde Güvenlik Merkezi varsayılan olarak devre dışıdır.

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- ... -->
   <!-- Determines whether SafetyCenter feature is enabled. -->
    <bool name="config_enableSafetyCenter">true</bool>
    <!-- ... -->
</resources>

Güvenlik Merkezi'ni desteklemek için config_enableSafetyCenter true olarak ayarlayın. Güvenlik Merkezi'ni desteklemek istemiyorsanız bu değeri devre dışı bırakmak için false olarak ayarlayın.

Güvenlik Merkezi devre dışı bırakıldığında, Güvenlik ve Gizlilik sayfasına yönlendirme girişiminde bulunulduğunda bunun yerine Ayarlar uygulaması açılır. API'lerle etkileşim kurma girişimleri sessizce göz ardı edilir veya varsayılan bir değer döndürülür. İlgili Hızlı Ayarlar kutucuğu ve Ayarlar girişi de Güvenlik Merkezi'nin etkinleştirilip etkinleştirilmemesine bağlı olarak gösterilir veya gizlenir.

DeviceConfig bayrağı

config_enableSafetyCenter yapılandırmasını kullanarak Güvenlik Merkezini etkinleştirmenin yanı sıra, Güvenlik Merkezini uzaktan etkinleştirmek veya devre dışı bırakmak için bir DeviceConfig bayrağı ( safety_center_is_enabled ) kullanılır.

Android 14 ve üzeri sürümlerde bu işaret varsayılan olarak true olduğundan başka bir işlem yapmanıza gerek yoktur.

Android 13'te Güvenlik Merkezi varsayılan olarak sunucu tarafında devre dışıdır ve bu işaret kullanılarak izin verilenler listesi tarafından etkinleştirilir. İzin verilenler listesine eklenmek için cihazınızın parmak izlerini gönderin ve TAM'inizle iletişime geçin. İzin verilenler listesine eklenmek için M-2022-11 veya daha yeni bir ana hat sürümünün gerekli olduğunu unutmayın. Yerel geliştirme ve test için bayrak, bir adb komutuyla yerel olarak (yeniden başlatılıncaya kadar) etkinleştirilebilir veya devre dışı bırakılabilir. Örneğin bayrağı etkinleştirmek için:

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

Güvenlik Merkezi'nin etkin olup olmadığını doğrulamak için:

adb root
adb shell cmd safety_center enabled

Çıkış, Güvenlik Merkezi'nin cihazda doğru şekilde etkinleştirilip etkinleştirilmediğini gösterecektir.

Yapılandırma dosyasını güncelleyin

Güvenlik Merkezi ekranının içeriğini değiştirmek için safety_center_config.xml yapılandırma dosyasını kullanın. Özelleştirme Gereksinimlerini karşıladığınızı varsayarak bu dosyayı yerleştirebilirsiniz.

Yapılandırma dosyasını kaplayın

safety_center_config.xml dosyasını kaplamak için Çalışma zamanı kaynak kaplamalarını (RRO'lar) değiştirme hakkında bilgi için bkz. Çalışma zamanında bir uygulamanın kaynaklarının değerini değiştirme .

Android 14'te, res/raw-v34/safety_center_config.xml dosyasını yerleştirdiğinizden emin olun, çünkü res/raw/safety_center_config.xml önceliklidir (bu aynı zamanda örneğin res/values-v34/strings.xml için v34 kapsamına alınmış diğer dosyalar için de geçerlidir). res/values-v34/strings.xml ). Yer paylaşımı paketinin minimum SDK'sı 34 düşük olmalıdır, aksi takdirde v34 niteleyicisi optimizasyon sırasında çıkarılabilir. Ayrıca, bu değer önyükleme süresi boyunca yüklendiğinden statik bir katman kullandığınızdan emin olun.

Android Açık Kaynak Projesi (AOSP) cihazları için com.android.safetycenter.resources paketini hedefleyin. Hedeflenecek yer paylaşımı yapılandırması yok. Tüm kaynaklar, içerikte herhangi bir kısıtlama olmaksızın yerleştirilebilir.

Ana Hat güncellemelerini alacak şekilde yapılandırılmış GMS cihazları için com.google.android.safetycenter.resources paketini hedefleyin. SafetyCenterConfig yapılandırmasını hedefleyin. Bu yapılandırma, kaplama paketinin product , system veya vendor bölümünde olmasını gerektirir. GMS OEM'leri, Google tarafından sağlanan safety_center_config.xml dosyasını kopyalamalı ve değişiklikleri GTS testlerinin izin verdiği değişikliklerle sınırlamalıdır. Kaplama tanımı şuna yakın olmalıdır:

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

Ana Hat güncellemelerini alacak şekilde yapılandırılmamış GMS cihazları için com.android.safetycenter.resources paketini hedefleyin. Hedeflenecek yer paylaşımı yapılandırması yok. Yer paylaşımı paketi com.google.android.safetycenter.resources paket adını kullanmalıdır.

GMS OEM'leri, Google'ın sağladığı safety_center_config.xml dosyasını kopyalamalı ve değişiklikleri GTS testlerinin izin verdiği şekilde sınırlamalıdır. GMS OEM'lerinin XML yapılandırmasında kullanılan dizeleri de tanımlaması gerekir.

Dosya yapısı

safety_center_config.xml dosyası yüksek düzeyde güvenlik kaynaklarının bir listesidir. Bu güvenlik kaynakları, Güvenlik Merkezi ekranındaki sinyalleri yönetmek için Uygulama Güvenliği veya Ekran Kilidi gibi gruplar halinde düzenlenmiştir. Bu listenin sırası görüntüleme sırasını tanımlar:

<safety-center-config> <!-- Wrapper for the Safety Center configuration -->
    <safety-sources-config>< !-- Wrapper for the safety sources groups -->
        <safety-sources-group> <!-- Contains information about a safety sources group -->
            <dynamic-safety-source /> <!-- Contains information about a safety source -->
            <!-- More safety sources in the group -->
        </safety-sources-group> <!-- More safety sources groups -->
    </safety-sources-config>
</safety-center-config>

Google yapılandırma dosyası

AOSP yapılandırma dosyası packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml konumunda bulunur.

Android 13'te Google yapılandırma dosyası şöyledir:

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

Android 14'te Google yapılandırma dosyası şöyledir:

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

Güvenlik Merkezi kaynaklarını özelleştirme

Güvenlik Merkezi kaynak türleri

Kaynaklar, Güvenlik Merkezi'ne sağladıkları veri türüne bağlı olarak dinamik, yalnızca soruna ilişkin veya statik olabilir.

Dinamik kaynaklar

Güvenlik Merkezi'ne hem girişi hem de potansiyel uyarı kartları için dinamik veri sağlayabiliyorsa, güvenlik kaynağını dynamic-safety-source olarak işaretleyin:

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

Yalnızca sorun kaynakları

İlgili ayar girişi yoksa ancak uyarılar hâlâ veriliyorsa, kaynağı issue-only-safety-source olarak işaretleyin. Yalnızca uyarı sağlayabilirsiniz; Bir ayar girişi sağlamak hatayla sonuçlanır:

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

Statik kaynaklar

Dinamik verileri olmayan bir yeniden yönlendirme girişi ise, kaynağı static-safety-source olarak işaretleyin:

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

Güvenlik Merkezi kaynak yapılandırması

Güvenlik Merkezi kaynak türüne ve diğer değişmezlere bağlı olarak yapılandırma dosyası alanları isteğe bağlıdır, gereklidir veya yasaklanmıştır ve özelleştirilebilir:

  • id
    • Güvenlik kaynağı için benzersiz tanımlayıcı, dosyanın tamamında benzersiz olmalı, yalnızca alfabetik karakterlerden (az, AZ) oluşmalı ve büyük/küçük harfe duyarlı olmalıdır
    • Dize türü
    • Tüm güvenlik kaynağı türleri için gereklidir
  • packageName
    • Bu güvenlik kaynağına sahip olan paketin adı; örneğin com.google.android.permissioncontroller
    • Dize türü
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için gereklidir
    • Android 13'te statik güvenlik kaynakları için yasaktır; Android 14'te bu isteğe bağlı olarak kaynağın intentAction örtülü olarak değil açıkça hedefleyecek şekilde ayarlanabilir (daha fazla ayrıntı için niyet çözümleme belgelerine bakın)
  • initialDisplayState
    • Güvenlik kaynağı tarafından hiçbir veri sağlanmadığında kullanıcı arayüzü girişi nasıl görüntülenir?
    • Dize olarak temsil edilen numaralandırma türü aşağıdakilerden biri olmalıdır:
      • enabled (varsayılan, normal şekilde görüntülenir)
      • disabled (gri renkte görüntülenir, tıklanamaz)
      • hidden (görüntülenmiyor)
    • Dinamik güvenlik kaynakları için isteğe bağlıdır (varsayılan enabled )
    • Yalnızca sorun ve statik güvenlik kaynakları için yasaktır
  • profile
    • Bu güvenlik kaynağının kullanıcının yönetilen profiliyle etkileşimde bulunup bulunmadığı
    • Dize olarak temsil edilen numaralandırma türü aşağıdakilerden biri olmalıdır:
      • primary_profile_only (yalnızca profilin üst öğesiyle etkileşime girer)
      • all_profiles (yönetilen profillerle de etkileşime girebilir)
    • all_profiles üzerinde birkaç kullanıcı arayüzü girişi oluşturulur (profilin üst öğesi için bir tane ve yönetilen profillerin her biri için bir tane); güvenlik kaynağı her profil için farklı veriler sağlayabilir
    • Tüm güvenlik kaynakları için gereklidir
  • searchTerms
    • Ayarlar uygulamasında aramayı kullanırken Güvenlik Merkezi girişiyle eşleşen arama terimlerinin listesi
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_search_terms
    • Dinamik ve statik güvenlik kaynakları için isteğe bağlıdır (varsayılan, arama terimlerinin olmamasıdır)
    • Yalnızca sorunla ilgili güvenlik kaynakları için yasaktır
  • title
    • Kaynak tarafından dinamik olarak veri sağlanmadığında kullanılan kullanıcı arayüzü girişinin varsayılan başlığı
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_title
    • Dinamik ve statik güvenlik kaynakları için gereklidir ( initialDisplayState="hidden" ve searchTerms olmadığı sürece)
    • Yalnızca sorunla ilgili güvenlik kaynakları için yasaktır
  • titleForWork
    • Veriler kaynak tarafından dinamik olarak sağlanmadığında kullanılan, yönetilen profil için kullanıcı arayüzü girişinin varsayılan başlığı
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_title_for_work
    • profile="all_profiles" belirtmiş dinamik ve statik güvenlik kaynakları için gereklidir ( searchTerms olmadan initialDisplayState="hidden" olmadığı sürece)
    • Yalnızca sorunla ilgili güvenlik kaynakları veya profile="primary_profile_only" içeren kaynaklar için yasaktır
  • summary
    • Veriler kaynak tarafından dinamik olarak sağlanmadığında kullanılan kullanıcı arayüzü girişinin varsayılan özeti (bu, başlığın altında görüntülenen daha uzun bir metin açıklamasıdır)
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_summary
    • Statik güvenlik kaynakları için isteğe bağlıdır (varsayılan, özet değildir)
    • Dinamik güvenlik kaynakları için gereklidir ( initialDisplayState hidden olmadığı sürece)
    • Yalnızca sorunla ilgili güvenlik kaynakları için yasaktır
  • intentAction
    • Kullanıcı arayüzü girişi tıklandığında tetiklenecek eylem
    • Dize türü (örneğin, com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS ) veya tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği (örneğin, @package:string/my_intent_action
    • Bu niyet eylemi verilen packageName (varsa) için çözümlenmezse, kullanıcı arayüzü girişi initialDisplayState="disabled" ile aynı şekilde davranır.
    • initialDisplayState="enabled" sahip statik güvenlik kaynakları ve dynamic güvenlik kaynakları için gereklidir
    • Yalnızca sorunla ilgili güvenlik kaynakları için yasaktır
  • maxSeverityLevel
    • Bu Güvenlik Merkezi kaynağının sağlayabileceği maksimum önem düzeyi
    • Bir dize olarak temsil edilen tamsayı, örneğin 300
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan maksimum değildir)
    • Statik güvenlik kaynakları için yasaktır
  • loggingAllowed
    • Güvenlik Merkezi'nin bu kaynakla ilgili etkileşimleri veya verileri günlüğe kaydedip kaydedemeyeceği
    • Boolean dize olarak temsil edilir; örneğin false
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan true )
    • Statik güvenlik kaynakları için yasaktır
  • refreshOnPageOpenAllowed
    • Güvenlik Merkezi ekranı açıldığında verilerini yenilemek için güvenlik kaynağına sinyal gönderilip gönderilmeyeceği
    • Boolean dize olarak temsil edilir; örneğin true
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan false )
    • Statik güvenlik kaynakları için yasaktır
  • notificationsAllowed (Android 14'ten itibaren)
    • Güvenlik kaynağının bir sorunu bildirirken isteğe bağlı olarak bildirim sağlayıp sağlayamayacağı
    • Boolean dize olarak temsil edilir; örneğin true
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan false )
    • Statik güvenlik kaynakları için yasaktır
  • deduplicationGroup (Android 14'ten itibaren)
    • Farklı kaynaklardan gelen sorunları tekilleştirmek için kullanılabilecek potansiyel benzersiz bir tanımlayıcı. Aynı tekilleştirme grubu içindeki kaynaklar, sorunları isteğe bağlı bir tekilleştirme kimliğiyle gönderebilir. Aynı veri tekilleştirme kimliğine sahip sorunlar, birden fazla kaynak gönderiyor olsa bile kullanıcı arayüzünde yalnızca bir kez gösterilecektir.
    • Dize türü
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan olarak tekilleştirme yoktur)
    • Statik güvenlik kaynakları için yasaktır
  • packageCertificateHashes (Android 14'ten itibaren)
    • Belirtilen packageName için virgülle ayrılmış sertifika karma listesi. Bu ayarlanırsa, güvenlik amacıyla güvenlik kaynağıyla etkileşim sırasında verilen packageName için verilen packageCertificateHashes karşı bir sertifika kontrolü gerçekleştirilecektir.
    • Dize türü
    • Dinamik ve yalnızca soruna yönelik güvenlik kaynakları için isteğe bağlıdır (varsayılan olarak sertifika kontrolü yapılmaz)
    • Statik güvenlik kaynakları için yasaktır

Güvenlik Merkezi kaynak gruplarını özelleştirme

Güvenlik Merkezi kaynakları bir Güvenlik Merkezi kaynakları grubu içinde bulunmalıdır. Her kaynak grubu, kullanıcı arayüzünde Kaynak gruplarının dosyada listelendiği sıraya göre görüntülenir. Her kaynak, grup içinde Kaynakların dosyada listelendiği sıraya göre görüntülenir. Grup tek bir güvenlik kaynağı içeriyorsa grup yerine tek bir giriş olarak görüntülenir.

Güvenlik Merkezi kaynakları grubu yapılandırması

Güvenlik Merkezi kaynak gruplarını özelleştirmek için aşağıdaki değişkenleri kullanın:

  • id
    • Güvenlik kaynakları grubu için benzersiz tanımlayıcı; dosyanın tamamında benzersiz olmalıdır
    • Dize türü
    • Gerekli
  • title
    • Kullanıcı arayüzündeki grubun adı
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_title
    • Grup içinde en az bir dinamik veya statik güvenlik kaynağı varsa gereklidir (yani grup type="hidden" türünde değilse)
  • summary
    • Başlığın altında görüntülenen kullanıcı arayüzündeki grubun kısa açıklaması. Belirli koşullar altında, genellikle veri sağlanmadığında görüntülenir; aksi takdirde özet, grup içindeki kaynakların sağladığı verilere göre hesaplanır.
    • Tam nitelikli bir kaynak adı olarak temsil edilen kaynak kimliği; örneğin, @package:string/my_summary
    • İsteğe bağlı (varsayılan özet değildir)
  • statelessIconType
    • Statik girişler gibi güvenlik kaynakları tarafından herhangi bir durum sağlanmadığında grup için görüntülenen simge türü
    • none veya privacy olması gereken bir dize olarak temsil edilen numaralandırma türü (gizlilik simgesi türü)
    • İsteğe bağlı (varsayılan none )
  • type (Android 14'ten itibaren)
    • Bu grubun Güvenlik Merkezi ile nasıl etkileşimde bulunduğunu belirleyen açık bir tür
    • Dize olarak temsil edilen numaralandırma türü aşağıdakilerden biri olmalıdır:
      • stateful (genel Güvenlik Merkezi durumunu görüntüler ve buna katkıda bulunur)
      • stateless (genel Güvenlik Merkezi durumunu görüntüler ve buna katkıda bulunmaz)
      • hidden (görüntülenmiyor, tüm kaynaklar yalnızca sayı olmalıdır)
    • İsteğe bağlı, varsayılan olarak grupta yer alan güvenlik kaynaklarının yanı sıra summary ve statelessIconType kullanılarak çıkarılır. type belirtilirse, grupta karşılaşılan kaynaklarla eşleştiğinden emin olmak için bazı ek değişmezler uygulanır (örneğin, kullanıcı tarafından görülebilen girişler içeriyorsa grup hidden )

Güvenlik Merkezi kaynakları grup türleri

Güvenlik Merkezi kaynak grupları, belirli alanların durumuna göre durum bilgisi olan, durum bilgisi olmayan veya gizli olarak sınıflandırılır.

Durum bilgisi olan grup

Hem başlığı hem de özeti olan veya stateLessIconType="privacy" olan bir grup, durum bilgisi olan olarak kabul edilir ve genel Güvenlik Merkezi durumuna katkıda bulunur:

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

Android 13'te böyle bir grup, kullanıcı arayüzünde daraltılabilir giriş olarak gösterilecektir. Android 14'te, alt sayfaya yönlendiren, kendi durumuna sahip bir giriş olarak gösterilecektir.

Vatansız grup

Başlığı olan ancak özeti olmayan ve stateLessIconType="none" olan bir grup, durum bilgisi olmayan olarak kabul edilir ve genel Güvenlik Merkezi durumuna katkıda bulunmaz:

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

Böyle bir grup, kullanıcı arayüzünde katı giriş listesi olarak gösterilecektir.

Gizli grup

Gizli bir grup yalnızca yalnızca sorunla ilgili güvenlik kaynaklarını içerir ve bir başlığı yoktur. Gizli gruplar kullanıcı arayüzünde gösterilmiyor:

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

Statik bir giriş için dinamik veriler

Dinamik Güvenlik Merkezi kaynağını, bazı koşullara bağlı olarak yeniden yönlendirme girişlerinin itilmesine ve içeriğinin çalışma zamanında özelleştirilmesine olanak tanıyan statik bir giriş olarak görüntüleyebilirsiniz. Örneğin iş politikası bilgi girişinize bağlı olarak durum bilgisi olmayan bir grup içindeki dinamik kaynağı tanımlayın.

Bu örnek, durum bilgisi olmayan bir grupta olduğundan güvenlik sinyali sağlamayan dinamik bir güvenlik kaynağını gösterir:

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

Bu örnekte kaynak yalnızca yeşil uyarı kartlarını yayınlayabilir ve belirtilmemiş bir durum sağlayabilir. Diğer verileri sağlayabilmek için kaynağın durum bilgisi olan bir grup içinde olması gerekir.

Dizeleri ve kaplama alanlarını özelleştirin

Ana Hat güncellemelerini alacak şekilde yapılandırılmamış GMS cihazları için, tüm yapılandırma dosyasını üst üste koymak yerine, tüm özelleştirme ihtiyaçlarını karşılamak üzere altı dize kaynağını üst üste yerleştirebilirsiniz. Yer paylaşımı olan dize kaynakları tabloda listelenir.

Dize kaynağı Tanım
google_lock_screen_sources_summary Gruptaki tüm kaynaklar iyi durumda olduğunda (bilgi veya belirtilmemiş önem düzeyi) AndroidLockScreenSources grubu için görüntülenecek statik bir özeti tanımlamak için bu değeri kaplayın. Varsayılan olarak Güvenlik Merkezi, gruptaki tüm kaynakların başlığını grubun özeti olarak birleştirilmiş olarak görüntüler.
google_biometrics_title Kaynak tarafından dinamik veri sağlanmadığında kullanılan com.android.settings paketinin sahip olduğu biyometrik kaynak için statik bir başlık tanımlamak üzere bu değeri kaplayın. com.android.settings paketindeki kaynak tarafından dinamik olarak sağlanan başlığı da kaplarken bunu kaplayın. Kaynağın başlangıç ​​görüntüleme durumu hidden olduğundan bu varsayılan olarak göz ardı edilir.
google_biometrics_summary Kaynak tarafından dinamik veri sağlanmadığında kullanılan com.android.settings paketinin sahip olduğu biyometrik kaynak için statik bir özet tanımlamak üzere bu değerin üzerine bindirin. Kaynağın başlangıç ​​görüntüleme durumu hidden olduğundan bu varsayılan olarak göz ardı edilir.
google_biometrics_search_terms com.android.settings paketinin sahip olduğu biyometrik kaynağa yönelik bir arama terimleri listesini tanımlamak için bu değerin üzerine bindirin.
google_biometrics_initial_display_state Kaynak tarafından hiçbir dinamik veri sağlanmadığında com.android.settings paketinin sahip olduğu biyometrik kaynağa yönelik bir kullanıcı arayüzü girişini göstermek için bu değeri kaplayın. Varsayılan değer hidden .
google_security_updates_intent Kullanıcının güvenlik güncellemelerini kontrol etmesine ve yüklemesine olanak tanıyan etkinliği açmak için gereken amacı değiştirmek üzere bu değeri yerleştirin. Bu niyet eyleminin dışa aktarılan bir etkinlikle ilişkilendirilmesi gerekir. Varsayılan değer android.settings.SYSTEM_UPDATE_SETTINGS .

com.google.android.safetycenter.resources paketindeki başka hiçbir dize üst üste bindirilemez.

AOSP cihazları için com.android.safetycenter.resources paketindeki tüm kaynaklar, içerikte herhangi bir kısıtlama olmaksızın yer paylaşımlıdır.

Ana Hat güncellemelerini alacak şekilde yapılandırılmamış GMS cihazları için, GTS testlerinin beklediği tüm dizeleri tanımlayan com.android.safetycenter.resources yerini alan veya üzerine binen bir com.google.android.safetycenter.resources paketi oluşturun.

Bu dizeler şunlardır:

  • 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

Özelleştirme Gereksinimleri

Dosya formatı gereksinimleri

Yapılandırma dosyası bir XML dosyası olmalı ve Yapılandırma dosyasını güncelleme bölümünde açıklanan formata uymalıdır. Dosya ham raw olmalıdır. Güvenlik Merkezi kaynaklarını Özelleştirme ve Güvenlik Merkezi kaynak gruplarını Özelleştirme'de açıklanan değişmezleri karşılaması gerekir. Yapılandırma dosyası yukarıdaki gereksinimlere uygun olarak iyi biçimlendirilmemişse özellik tamamen devre dışı bırakılır. Bu dosyanın ayrıştırılması, dosyanın iyi biçimlendirilmemesi durumunda ( logcat cihaz günlüklerinin üstünde) ek bağlam sağlayabilen CTS ve GTS testleri tarafından da desteklenir.

Google hizmetleri cihazları

GMS cihazlarında bu dosyaya bazı kısıtlamalar getirilmektedir. Bu, GTS testleriyle desteklenmektedir.

AOSP cihazları

AOSP cihazlarda konfigürasyon dosyasının iyi biçimlendirilmiş olması ve Güvenlik Merkezi için CTS testlerini geçmesi gerekir. Testler dosyanın iyi biçimlendirildiğini doğrular. GMS cihazlarının da bu testleri geçmesi gerekmektedir.