सुरक्षा केंद्र को पसंद के मुताबिक बनाना

सुरक्षा केंद्र को चालू या बंद करना

सुरक्षा केंद्र को चालू या बंद करने के लिए, frameworks/base/core/res/res/values/config.xml फ़ाइल में, ओवरले किए जा सकने वाले config_enableSafetyCenter बूलियन फ़ील्ड का इस्तेमाल करें.

ज़्यादातर डिवाइसों पर, Safety Center की सुविधा डिफ़ॉल्ट रूप से काम करती है. जैसे, फ़ोन और टैबलेट पर. कुछ डिवाइसों पर, Safety Center डिफ़ॉल्ट रूप से बंद होता है. जैसे, Auto, TV, और 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>

सुरक्षा केंद्र की सुविधा इस्तेमाल करने के लिए, config_enableSafetyCenter को true पर सेट करें. अगर आपको Safety Center की सुविधा नहीं देनी है, तो इसे बंद करने के लिए इस वैल्यू को false पर सेट करें.

Safety Center बंद होने पर, सुरक्षा और निजता पेज पर रीडायरेक्ट करने की कोशिश करने पर, Settings ऐप्लिकेशन खुलता है. एपीआई के साथ इंटरैक्ट करने की किसी भी कोशिश को अनदेखा कर दिया जाता है या डिफ़ॉल्ट वैल्यू दिखा दी जाती है. इससे जुड़ी क्विक सेटिंग टाइल और सेटिंग में मौजूद एंट्री भी दिखती या छिपती है. यह इस बात पर निर्भर करता है कि सुरक्षा केंद्र चालू है या नहीं.

DeviceConfig फ़्लैग

config_enableSafetyCenter कॉन्फ़िगरेशन का इस्तेमाल करके, Safety Center को चालू करने के अलावा, DeviceConfig फ़्लैग (safety_center_is_enabled) का इस्तेमाल करके, Safety Center को रिमोट तौर पर चालू या बंद किया जा सकता है.

Android 14 और इसके बाद के वर्शन में, आपको कुछ और करने की ज़रूरत नहीं है, क्योंकि यह फ़्लैग डिफ़ॉल्ट रूप से true पर सेट होता है.

Android 13 में, सर्वर-साइड पर Safety Center डिफ़ॉल्ट रूप से बंद होता है. साथ ही, इस फ़्लैग का इस्तेमाल करके, अनुमति वाली सूची से इसे चालू किया जा सकता है. अपने डिवाइस के फ़िंगरप्रिंट सबमिट करें और अनुमति वाली सूची में शामिल होने के लिए, अपने TAM से संपर्क करें. ध्यान दें कि अनुमति वाली सूची में, मुख्य वर्शन M-2022-11 या उसके बाद का वर्शन जोड़ना ज़रूरी है. स्थानीय डेवलपमेंट और टेस्टिंग के लिए, adb कमांड की मदद से, फ़्लैग को स्थानीय तौर पर चालू या बंद किया जा सकता है. हालांकि, यह सुविधा तब तक चालू या बंद रहती है, जब तक डिवाइस को रीबूट नहीं किया जाता. उदाहरण के लिए, फ़्लैग को चालू करने के लिए:

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

सुरक्षा केंद्र की सुविधा चालू है या नहीं, इसकी पुष्टि करने के लिए:

adb root
adb shell cmd safety_center enabled

इससे यह पता चलेगा कि डिवाइस पर Safety Center सही तरीके से चालू है या नहीं.

कॉन्फ़िगरेशन फ़ाइल अपडेट करना

सुरक्षा केंद्र की स्क्रीन के कॉन्टेंट में बदलाव करने के लिए, safety_center_config.xml कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करें. इस फ़ाइल को ओवरले किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि आपने पसंद के मुताबिक बनाने से जुड़ी ज़रूरी शर्तें पूरी की हों.

कॉन्फ़िगरेशन फ़ाइल को ओवरले करना

safety_center_config.xml फ़ाइल को ओवरले करने के लिए, रनटाइम रिसॉर्स ओवरले (आरआरओ) में बदलाव करने के बारे में जानने के लिए, रनटाइम के दौरान ऐप्लिकेशन के रिसॉर्स की वैल्यू बदलना लेख पढ़ें.

Android 14 में, res/raw-v34/safety_center_config.xml फ़ाइल को ओवरले करें, न कि res/raw/safety_center_config.xml को, क्योंकि पहले को प्राथमिकता दी जाती है.यह v34 के दायरे में आने वाली अन्य फ़ाइलों पर भी लागू होता है, जैसे कि res/values-v34/strings.xml. ओवरले पैकेज में, 34 से कम का कम से कम SDK टूल होना चाहिए. ऐसा न होने पर, ऑप्टिमाइज़ेशन के दौरान v34 क्वालिफ़ायर हटाया जा सकता है. साथ ही, स्टैटिक ओवरले का इस्तेमाल करना न भूलें, क्योंकि यह वैल्यू, डिवाइस के चालू होने के समय के आस-पास लोड होती है.

Android Open Source Project (AOSP) डिवाइसों के लिए, पैकेज को टारगेट करें com.android.safetycenter.resources. टारगेट करने के लिए कोई ओवरले कॉन्फ़िगरेशन नहीं है. सभी संसाधनों को ओवरले किया जा सकता है. इन पर कॉन्टेंट से जुड़ी कोई पाबंदी नहीं है.

मेनलाइन अपडेट पाने के लिए कॉन्फ़िगर किए गए GMS डिवाइसों के लिए, पैकेज com.google.android.safetycenter.resources को टारगेट करें. कॉन्फ़िगरेशन को टारगेट करें SafetyCenterConfig. इस कॉन्फ़िगरेशन के लिए ज़रूरी है कि ओवरले पैकेज, product, system या vendor में से किसी एक पार्टीशन में हो. GMS OEM को, Google की दी गई safety_center_config.xml फ़ाइल को कॉपी करना चाहिए. साथ ही, GTS जांच में जिन बदलावों की अनुमति है सिर्फ़ उनमें बदलाव करना चाहिए. ओवरले की परिभाषा कुछ इस तरह की होनी चाहिए:

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

GMS डिवाइसों के लिए, पैकेज com.android.safetycenter.resources को टारगेट करें. ये वे डिवाइस होते हैं जिन्हें मेनलाइन अपडेट पाने के लिए कॉन्फ़िगर नहीं किया गया है. टारगेट करने के लिए कोई ओवरले कॉन्फ़िगरेशन नहीं है. ओवरले पैकेज में पैकेज का नाम com.google.android.safetycenter.resources होना चाहिए.

GMS OEM को Google की दी गई safety_center_config.xml फ़ाइल को कॉपी करना चाहिए. साथ ही, GTS टेस्ट में जिन बदलावों की अनुमति है उन तक ही बदलाव सीमित रखने चाहिए. GMS OEM को एक्सएमएल कॉन्फ़िगरेशन में इस्तेमाल की गई स्ट्रिंग भी तय करनी होंगी.

फ़ाइल का स्ट्रक्चर

safety_center_config.xml फ़ाइल, सुरक्षा के स्रोतों की सूची होती है. सुरक्षा से जुड़े इन सोर्स को ग्रुप में व्यवस्थित किया जाता है, ताकि सुरक्षा केंद्र की स्क्रीन पर सिग्नल मैनेज किए जा सकें. उदाहरण के लिए, ऐप्लिकेशन की सुरक्षा या स्क्रीन लॉक. इस सूची के क्रम से, डिसप्ले का क्रम तय होता है:

<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 कॉन्फ़िगरेशन फ़ाइल

AOSP कॉन्फ़िगरेशन फ़ाइल, packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml में मौजूद होती है.

Android 13 में, Google कॉन्फ़िगरेशन फ़ाइल:

<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 में, Google कॉन्फ़िगरेशन फ़ाइल यह है:

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

Android 15 में, Google कॉन्फ़िगरेशन फ़ाइल यह है:

<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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_private_profile"
                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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_biometrics_title_for_private_profile"
                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"/>
            <dynamic-safety-source
                id="GoogleAutoLock"
                packageName="com.google.android.gms"
                profile="primary_profile_only"
                initialDisplayState="hidden"
                maxSeverityLevel="0"
                packageCertificateHashes="1975b2f17177bc89a5dff31f9e64a6cae281a53dc1d1d59b1d147fe1c82afa00,f0fd6c5b410f25cb25c3b53346c8972fae30f8ee7411df910480ad6b2d60db83,d22cc500299fb22873a01a010de1c82fbe4d061119b94814dd301dab50cb7678,7ce83c1b71f3d572fed04c8d40c5cb10ff75e6d87d9df6fbd53f0468c2905053"/>
        </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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_security_checkup_title_for_private_profile"
                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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_password_checkup_title_for_private_profile"
                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="AndroidCellularNetworkSecuritySources"
            title="@com.google.android.safetycenter.resources:string/google_cellular_network_security_title"
            summary="@com.google.android.safetycenter.resources:string/google_cellular_network_security_summary">
            <dynamic-safety-source
                id="AndroidCellularNetworkSecurity"
                packageName="com.android.phone"
                profile="primary_profile_only"
                notificationsAllowed="true"
                initialDisplayState="hidden"/>
        </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">
            <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="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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_ads_identity_title_for_private_profile"
                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"
                titleForPrivateProfile="@com.google.android.safetycenter.resources:string/google_activity_controls_title_for_private_profile"
                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="AndroidPrivacySourcesAdditional"
            title="@com.google.android.safetycenter.resources:string/google_privacy_additional_title">
            <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"/>
            <dynamic-safety-source
                id="AndroidPrivateSpace"
                packageName="com.android.settings"
                profile="primary_profile_only"
                title="@com.google.android.safetycenter.resources:string/google_private_space_title"
                summary="@com.google.android.safetycenter.resources:string/google_private_space_summary"
                searchTerms="@com.google.android.safetycenter.resources:string/google_private_space_search_terms"
                initialDisplayState="hidden"
                maxSeverityLevel="0"/>
        </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>

Safety Center के सोर्स को पसंद के मुताबिक बनाना

Safety Center के सोर्स के टाइप

सोर्स, Safety Center को दिए जाने वाले डेटा के आधार पर डाइनैमिक, सिर्फ़ समस्या वाले या स्टैटिक हो सकते हैं.

डाइनैमिक सोर्स

अगर सुरक्षा सोर्स, सुरक्षा केंद्र में एंट्री और संभावित चेतावनी कार्ड, दोनों के लिए डाइनैमिक डेटा उपलब्ध करा सकता है, तो उसे dynamic-safety-source के तौर पर मार्क करें:

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

सिर्फ़ समस्या वाले सोर्स

अगर सोर्स से जुड़ी कोई सेटिंग एंट्री नहीं है, लेकिन फिर भी चेतावनियां दी गई हैं, तो सोर्स को issue-only-safety-source के तौर पर मार्क करें. सिर्फ़ चेतावनियां दी जा सकती हैं. सेटिंग की जानकारी देने पर गड़बड़ी का मैसेज दिखता है:

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

स्टैटिक सोर्स

अगर सोर्स, रीडायरेक्ट करने वाली कोई ऐसी एंट्री है जिसमें कोई डाइनैमिक डेटा नहीं है, तो सोर्स को static-safety-source के तौर पर मार्क करें:

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

Safety Center का सोर्स कॉन्फ़िगरेशन

Security Center के सोर्स टाइप और अन्य इनवैरिएंट के आधार पर, कॉन्फ़िगरेशन फ़ाइल के फ़ील्ड वैकल्पिक, ज़रूरी या पाबंदी वाले हो सकते हैं. साथ ही, इन्हें पसंद के मुताबिक बनाया जा सकता है:

  • id
    • सुरक्षा सोर्स के लिए यूनीक आइडेंटिफ़ायर, पूरी फ़ाइल में यूनीक होना चाहिए. साथ ही, इसमें सिर्फ़ अंग्रेज़ी के वर्ण (a-z, A-Z) होने चाहिए. यह केस-सेंसिटिव होता है
    • स्ट्रिंग टाइप
    • सुरक्षा से जुड़े सभी तरह के सोर्स के लिए ज़रूरी है
  • packageName
    • इस सुरक्षा सोर्स का मालिकाना हक रखने वाले पैकेज का नाम, उदाहरण के लिए, com.google.android.permissioncontroller
    • स्ट्रिंग टाइप
    • डाइनैमिक और सिर्फ़ समस्या वाले सुरक्षा सोर्स के लिए ज़रूरी है
    • Android 13 में, सुरक्षा से जुड़े स्टैटिक सोर्स के लिए पाबंदी है. हालांकि, Android 14 में इसे सोर्स के intentAction को छिपाने के बजाय, साफ़ तौर पर टारगेट करने के लिए सेट किया जा सकता है. ज़्यादा जानकारी के लिए, इंटेंट रिज़ॉल्यूशन दस्तावेज़ देखें
  • initialDisplayState
    • सुरक्षा सोर्स से कोई डेटा न मिलने पर, यूज़र इंटरफ़ेस (यूआई) एंट्री कैसे दिखती है
    • स्ट्रिंग के तौर पर दिखाया गया एनम टाइप, इनमें से कोई एक होना चाहिए:
      • enabled (डिफ़ॉल्ट, सामान्य रूप से दिखता है)
      • disabled (धूसर रंग में दिखता है, उस पर क्लिक नहीं किया जा सकता)
      • hidden (नहीं दिखता)
    • सुरक्षा से जुड़े डाइनैमिक सोर्स के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से enabled)
    • सिर्फ़ समस्याओं और स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • profile
    • सुरक्षा से जुड़ा यह सोर्स, उपयोगकर्ता की मैनेज की जा रही प्रोफ़ाइल के साथ इंटरैक्ट करता है या नहीं
    • स्ट्रिंग के तौर पर दिखाया गया एनम टाइप, इनमें से कोई एक होना चाहिए:
      • primary_profile_only (सिर्फ़ प्रोफ़ाइल के माता-पिता के साथ इंटरैक्ट करता है)
      • all_profiles (मैनेज की जा रही प्रोफ़ाइलों के साथ इंटरैक्ट कर सकता है और Android 15 में निजी प्रोफ़ाइल का इस्तेमाल शुरू कर सकता है)
    • all_profiles पर, कई यूज़र इंटरफ़ेस (यूआई) एंट्री जनरेट होती हैं. इनमें से एक एंट्री, प्रोफ़ाइल के पैरंट के लिए होती है और एक हर मैनेज की जा रही प्रोफ़ाइल के लिए होती है. सुरक्षा सोर्स, हर प्रोफ़ाइल के लिए अलग-अलग डेटा दे सकता है
    • सुरक्षा से जुड़े सभी सोर्स के लिए ज़रूरी है
  • searchTerms
    • सेटिंग ऐप्लिकेशन में खोजने के दौरान, सुरक्षा केंद्र की एंट्री से मैप होने वाले खोज के लिए इस्तेमाल हुए शब्दों की सूची
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_search_terms
    • डाइनैमिक और स्टैटिक सुरक्षा सोर्स के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से कोई खोज क्वेरी नहीं है)
    • सिर्फ़ समस्याओं से जुड़े सुरक्षा सोर्स के लिए पाबंदी है
  • title
    • यूज़र इंटरफ़ेस (यूआई) एंट्री का डिफ़ॉल्ट टाइटल. इसका इस्तेमाल तब किया जाता है, जब सोर्स से डाइनैमिक तौर पर कोई डेटा नहीं दिया जाता
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_title
    • डाइनैमिक और स्टैटिक सुरक्षा सोर्स के लिए ज़रूरी है (जब तक कि initialDisplayState="hidden" में कोई searchTerms न हो)
    • सिर्फ़ समस्याओं से जुड़े सुरक्षा सोर्स के लिए पाबंदी है
  • titleForWork
    • मैनेज की जा रही प्रोफ़ाइल के यूज़र इंटरफ़ेस (यूआई) एंट्री का डिफ़ॉल्ट टाइटल. इसका इस्तेमाल तब किया जाता है, जब सोर्स से डेटा डाइनैमिक तौर पर उपलब्ध नहीं कराया जाता
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_title_for_work
    • डाइनैमिक और स्टैटिक सुरक्षा सोर्स के लिए ज़रूरी है, जिनमें profile="all_profiles" की जानकारी दी गई है (जब तक कि initialDisplayState="hidden" के साथ कोई searchTerms न हो)
    • सिर्फ़ सुरक्षा से जुड़ी समस्याओं के बारे में बताने वाले सोर्स या profile="primary_profile_only" वाले सोर्स के लिए पाबंदी है
  • summary
    • यूज़र इंटरफ़ेस (यूआई) एंट्री की डिफ़ॉल्ट खास जानकारी (यह टाइटल के नीचे दिखने वाला लंबा टेक्स्ट ब्यौरा होता है). इसका इस्तेमाल तब किया जाता है, जब सोर्स से डेटा डाइनैमिक तौर पर उपलब्ध नहीं कराया जाता
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_summary
    • सुरक्षा से जुड़े स्टैटिक सोर्स के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से कोई खास जानकारी नहीं दी जाती)
    • डाइनैमिक सुरक्षा सोर्स के लिए ज़रूरी है (जब तक कि initialDisplayState hidden न हो)
    • सिर्फ़ समस्याओं से जुड़े सुरक्षा सोर्स के लिए पाबंदी है
  • intentAction
    • यूज़र इंटरफ़ेस (यूआई) एंट्री पर क्लिक करने पर ट्रिगर होने वाली कार्रवाई
    • स्ट्रिंग टाइप, उदाहरण के लिए, com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS या रिसॉर्स आईडी, जिसे पूरी तरह क्वालिफ़ाइड रिसॉर्स नेम के तौर पर दिखाया गया है, उदाहरण के लिए, @package:string/my_intent_action
    • अगर यह इंटेंट ऐक्शन, दिए गए packageName (अगर कोई है) के लिए काम नहीं करता है, तो यूज़र इंटरफ़ेस (यूआई) एंट्री का व्यवहार वैसा ही होता है जैसे initialDisplayState="disabled"
    • यह स्टैटिक सुरक्षा सोर्स और dynamic सुरक्षा सोर्स के लिए ज़रूरी है जिनमें initialDisplayState="enabled" है
    • सिर्फ़ समस्याओं से जुड़े सुरक्षा सोर्स के लिए पाबंदी है
  • maxSeverityLevel
    • सुरक्षा केंद्र का यह सोर्स, खतरे की गंभीरता का ज़्यादा से ज़्यादा कौनसा लेवल दे सकता है
    • स्ट्रिंग के तौर पर दिखाया गया पूर्णांक, जैसे कि 300
    • डाइनैमिक और सिर्फ़ समस्या वाले सुरक्षा स्रोतों के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से कोई मैक्सिमम नहीं)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • loggingAllowed
    • Safety Center, इस सोर्स से जुड़े इंटरैक्शन या डेटा को लॉग कर सकता है या नहीं
    • बूलियन को स्ट्रिंग के तौर पर दिखाया गया है, जैसे कि false
    • डाइनैमिक और सिर्फ़ समस्याओं से जुड़े सुरक्षा स्रोतों के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से true)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • refreshOnPageOpenAllowed
    • सुरक्षा केंद्र की स्क्रीन खोलने पर, सुरक्षा सोर्स के डेटा को रीफ़्रेश करने के लिए, क्या उसे सिग्नल भेजा जाना चाहिए
    • बूलियन को स्ट्रिंग के तौर पर दिखाया गया है, जैसे कि true
    • डाइनैमिक और सिर्फ़ समस्याओं से जुड़े सुरक्षा स्रोतों के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से false)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • notificationsAllowed (Android 14 से शुरू)
    • क्या सुरक्षा सोर्स, किसी समस्या की शिकायत करते समय वैकल्पिक तौर पर सूचना दे सकता है
    • बूलियन को स्ट्रिंग के तौर पर दिखाया गया है, जैसे कि true
    • डाइनैमिक और सिर्फ़ समस्याओं से जुड़े सुरक्षा स्रोतों के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से false)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • deduplicationGroup (Android 14 से शुरू)
    • एक संभावित यूनीक आइडेंटिफ़ायर, जिसका इस्तेमाल अलग-अलग सोर्स से आने वाली समस्याओं की डुप्लीकेट कॉपी हटाने के लिए किया जा सकता है. डुप्लीकेट कॉपी हटाने वाले एक ही ग्रुप में मौजूद सोर्स, डुप्लीकेट कॉपी हटाने के लिए इस्तेमाल होने वाले आईडी के साथ समस्याएं भेज सकते हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. डुप्लीकेट कॉपी हटाने वाले एक ही आईडी से जुड़ी समस्याएं, यूज़र इंटरफ़ेस (यूआई) में सिर्फ़ एक बार दिखेंगी. भले ही, उन्हें कई सोर्स से भेजा जा रहा हो.
    • स्ट्रिंग टाइप
    • डाइनैमिक और सिर्फ़ समस्या वाले सुरक्षा सोर्स के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से डुप्लीकेट कॉपी हटाने की सुविधा बंद है)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • packageCertificateHashes (Android 14 से शुरू)
    • दिए गए packageName के लिए, सर्टिफ़िकेट हैश की कॉमा लगाकर अलग की गई सूची. अगर यह सेट है, तो सुरक्षा के मकसद से, सुरक्षा सोर्स के साथ इंटरैक्ट करते समय, दिए गए packageName के लिए दिए गए packageCertificateHashes के आधार पर सर्टिफ़िकेट की जांच की जाएगी.
    • स्ट्रिंग टाइप
    • डाइनैमिक और सिर्फ़ समस्या वाले सुरक्षा सोर्स के लिए ज़रूरी नहीं है (डिफ़ॉल्ट रूप से, सर्टिफ़िकेट की जांच नहीं की जाती)
    • स्टैटिक सुरक्षा सोर्स के लिए पाबंदी है
  • titleForPrivateProfile (Android 15 से)
    • निजी प्रोफ़ाइल के यूज़र इंटरफ़ेस (यूआई) एंट्री का डिफ़ॉल्ट टाइटल. इसका इस्तेमाल तब किया जाता है, जब सोर्स से डाइनैमिक तौर पर डेटा नहीं मिलता
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_title_for_private_profile
    • डाइनैमिक और स्टैटिक सुरक्षा सोर्स के लिए ज़रूरी है, जिनमें profile="all_profiles" की जानकारी दी गई है (जब तक कि initialDisplayState="hidden" के साथ कोई searchTerms न हो)
    • सिर्फ़ सुरक्षा से जुड़ी समस्याओं के लिए इस्तेमाल किए जाने वाले सोर्स या profile="primary_profile_only" वाले सोर्स के लिए पाबंदी है

Safety Center के सोर्स ग्रुप को पसंद के मुताबिक बनाना

सुरक्षा केंद्र के सोर्स, सुरक्षा केंद्र के सोर्स ग्रुप में होने चाहिए. हर सोर्स ग्रुप, यूज़र इंटरफ़ेस (यूआई) में उसी क्रम में दिखता है जिस क्रम में सोर्स ग्रुप, फ़ाइल में सूची में होते हैं. हर सोर्स को ग्रुप में उसी क्रम में दिखाया जाता है जिस क्रम में सोर्स, फ़ाइल में मौजूद होते हैं. अगर ग्रुप में सुरक्षा का एक ही सोर्स है, तो उसे ग्रुप के बजाय एक एंट्री के तौर पर दिखाया जाता है.

Safety Center के सोर्स ग्रुप का कॉन्फ़िगरेशन

Safety Center के सोर्स ग्रुप को पसंद के मुताबिक बनाने के लिए, इन वैरिएबल का इस्तेमाल करें:

  • id
    • सुरक्षा सोर्स ग्रुप के लिए यूनीक आइडेंटिफ़ायर; यह पूरी फ़ाइल में यूनीक होना चाहिए
    • स्ट्रिंग टाइप
    • ज़रूरी है
  • title
    • यूज़र इंटरफ़ेस (यूआई) में ग्रुप का टाइटल
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_title
    • अगर ग्रुप में कम से कम एक डाइनैमिक या स्टैटिक सुरक्षा सोर्स है, तो यह एट्रिब्यूट ज़रूरी है. इसका मतलब है कि ग्रुप type="hidden" नहीं है
  • summary
    • यूज़र इंटरफ़ेस (यूआई) में ग्रुप का छोटा सा ब्यौरा, जो टाइटल के नीचे दिखता है. यह खास परिस्थितियों में दिखती है. आम तौर पर, जब डेटा उपलब्ध नहीं होता है, तब यह दिखती है. इसके अलावा, ग्रुप में मौजूद सोर्स से मिले डेटा के आधार पर भी खास जानकारी का हिसाब लगाया जाता है.
    • रिसॉर्स आईडी, रिसॉर्स के पूरी तरह क्वालिफ़ाइड नाम के तौर पर दिखाया जाता है. उदाहरण के लिए, @package:string/my_summary
    • ज़रूरी नहीं है (डिफ़ॉल्ट रूप से कोई खास जानकारी नहीं दी जाती)
  • statelessIconType
    • जब सुरक्षा स्रोतों से कोई स्थिति नहीं दी जाती है, तब ग्रुप के लिए दिखाया जाने वाला आइकॉन टाइप. उदाहरण के लिए, स्टैटिक एंट्री
    • स्ट्रिंग के तौर पर दिखाया गया एनम टाइप, जो none या privacy (निजता आइकॉन टाइप) में से कोई एक होना चाहिए
    • ज़रूरी नहीं (डिफ़ॉल्ट रूप से none)
  • type (Android 14 से शुरू)
    • यह ग्रुप, सुरक्षा केंद्र के साथ कैसे इंटरैक्ट करता है, यह बताने के लिए साफ़ तौर पर बताया गया टाइप
    • स्ट्रिंग के तौर पर दिखाया गया एनम टाइप, इनमें से कोई एक होना चाहिए:
      • stateful (यह Safety Center की पूरी स्थिति दिखाता है और उसमें योगदान देता है)
      • stateless (यह दिखता है, लेकिन Safety Center के स्टेटस में इसकी कोई भूमिका नहीं होती)
      • hidden (नहीं दिखता, सभी सोर्स में सिर्फ़ समस्याएं होनी चाहिए)
    • ज़रूरी नहीं, ग्रुप में मौजूद सुरक्षा सोर्स के साथ-साथ summary और statelessIconType का इस्तेमाल करके, डिफ़ॉल्ट रूप से अनुमान लगाया जाता है. अगर type तय किया गया है, तो यह पक्का करने के लिए कुछ और इनवैरिएंट लागू किए जाते हैं कि यह ग्रुप में मिले सोर्स से मेल खाता है. उदाहरण के लिए, अगर ग्रुप में उपयोगकर्ता को दिखने वाली एंट्री शामिल हैं, तो वह hidden नहीं हो सकता

Safety Center के सोर्स ग्रुप के टाइप

Safety Center के सोर्स ग्रुप को कुछ फ़ील्ड की स्थिति के आधार पर, स्टेटफ़ुल, स्टेटलेस या छिपे हुए ग्रुप के तौर पर बांटा जाता है.

स्टेटफ़ुल ग्रुप

जिस ग्रुप का टाइटल और खास जानकारी, दोनों मौजूद हों या stateLessIconType="privacy" को स्टेटफ़ुल माना गया हो, वह सुरक्षा केंद्र के पूरे स्टेटस में योगदान देता है:

<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 में, ऐसा ग्रुप यूज़र इंटरफ़ेस (यूआई) में, छोटा किया जा सकने वाला आइटम के तौर पर दिखेगा. Android 14 में, यह अपने स्टेटस के साथ एक एंट्री के तौर पर दिखेगा. यह एंट्री, सबपेज पर रीडायरेक्ट करती है.

स्टेटलेस ग्रुप

ऐसा ग्रुप जिसका टाइटल है, लेकिन कोई खास जानकारी नहीं है. साथ ही, stateLessIconType="none" को स्टेटलेस माना जाता है और यह सुरक्षा केंद्र के स्टेटस पर कोई असर नहीं डालता:

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

स्टैटिक एंट्री के लिए डाइनैमिक डेटा

Safety Center के डाइनैमिक सोर्स को स्टैटिक एंट्री के तौर पर दिखाया जा सकता है. इससे कुछ शर्तों के आधार पर, रीडायरेक्ट करने वाली एंट्री को पुश करने की सुविधा मिलती है. साथ ही, रनटाइम के दौरान इसके कॉन्टेंट को पसंद के मुताबिक बनाने की सुविधा मिलती है. स्टेटलेस ग्रुप में डाइनैमिक सोर्स तय करें. उदाहरण के लिए, ऑफ़िस की नीति की जानकारी वाली एंट्री के आधार पर.

इस उदाहरण में, एक डाइनैमिक सुरक्षा सोर्स दिखाया गया है, जो सुरक्षा सिग्नल नहीं देता. ऐसा इसलिए है, क्योंकि यह स्टेटलेस ग्रुप में है:

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

इस उदाहरण में, सोर्स सिर्फ़ हरे रंग के चेतावनी कार्ड को पुश कर सकता है और कोई स्टेटस नहीं दे सकता. अन्य डेटा उपलब्ध कराने के लिए, सोर्स को किसी स्टेटफ़ुल ग्रुप में होना चाहिए.

स्ट्रिंग और ओवरले फ़ील्ड को पसंद के मुताबिक बनाना

जिन GMS डिवाइसों को मुख्य अपडेट पाने के लिए कॉन्फ़िगर नहीं किया गया है उनके लिए, पूरी कॉन्फ़िगरेशन फ़ाइल को ओवरले करने के बजाय, अपनी ज़रूरत के मुताबिक बनाने के लिए छह स्ट्रिंग रिसॉर्स ओवरले किए जा सकते हैं. ओवरले वाले स्ट्रिंग रिसॉर्स, टेबल में दिए गए हैं.

स्ट्रिंग रिसॉर्स ब्यौरा
google_lock_screen_sources_summary इस वैल्यू को ओवरले करके, AndroidLockScreenSources ग्रुप के लिए एक स्टैटिक खास जानकारी तय करें. यह जानकारी तब दिखती है, जब ग्रुप के सभी सोर्स की स्थिति अच्छी हो (जानकारी या गंभीरता का स्तर तय न किया गया हो). डिफ़ॉल्ट रूप से, Safety Center ग्रुप में मौजूद सभी सोर्स का टाइटल दिखाता है.
google_biometrics_title इस वैल्यू को ओवरले करके, com.android.settings पैकेज के मालिकाना हक वाले बायोमेट्रिक सोर्स के लिए स्टैटिक टाइटल तय करें. इसका इस्तेमाल तब किया जाता है, जब सोर्स से कोई डाइनैमिक डेटा उपलब्ध नहीं कराया जाता. com.android.settings पैकेज में, सोर्स से डाइनैमिक तौर पर मिले टाइटल को ओवरले करते समय भी, इसे ओवरले करें. इसे डिफ़ॉल्ट रूप से अनदेखा किया जाता है, क्योंकि सोर्स के लिए शुरुआती डिसप्ले की स्थिति hidden है.
google_biometrics_summary इस वैल्यू को ओवरले करके, com.android.settings पैकेज के मालिकाना हक वाले बायोमेट्रिक सोर्स के लिए स्टैटिक समरी तय करें. इसका इस्तेमाल तब किया जाता है, जब सोर्स से कोई डाइनैमिक डेटा उपलब्ध नहीं होता. इसे डिफ़ॉल्ट रूप से अनदेखा किया जाता है, क्योंकि सोर्स के लिए शुरुआती डिसप्ले की स्थिति hidden होती है.
google_biometrics_search_terms com.android.settings पैकेज के मालिकाना हक वाले बायोमेट्रिक सोर्स के लिए, खोज के लिए शब्दों की सूची तय करने के लिए, इस वैल्यू को ओवरले करें.
google_biometrics_initial_display_state जब सोर्स से कोई डाइनैमिक डेटा उपलब्ध न हो, तो com.android.settings पैकेज के मालिकाना हक वाले बायोमेट्रिक सोर्स के लिए यूज़र इंटरफ़ेस (यूआई) एंट्री दिखाने के लिए, इस वैल्यू को ओवरले करें. डिफ़ॉल्ट वैल्यू hidden है.
google_security_updates_intent इस वैल्यू को ओवरले करके, गतिविधि खोलने के लिए ज़रूरी इंटेंट बदलें. इससे उपयोगकर्ता, सुरक्षा से जुड़े अपडेट देख सकता है और उन्हें इंस्टॉल कर सकता है. यह इंटेंट ऐक्शन, एक्सपोर्ट की गई किसी गतिविधि से जुड़ा होना चाहिए. डिफ़ॉल्ट वैल्यू android.settings.SYSTEM_UPDATE_SETTINGS है.

com.google.android.safetycenter.resources पैकेज में मौजूद कोई भी दूसरी स्ट्रिंग, ओवरले नहीं की जा सकती.

AOSP डिवाइसों के लिए, com.android.safetycenter.resources पैकेज में मौजूद सभी संसाधनों को ओवरले किया जा सकता है. साथ ही, कॉन्टेंट पर कोई पाबंदी नहीं होती.

GMS डिवाइसों के लिए, मुख्य अपडेट पाने के लिए कॉन्फ़िगर नहीं किए गए, ऐसे डिवाइसों के लिए एक com.google.android.safetycenter.resources पैकेज बनाएं. इसमें, com.android.safetycenter.resources को बदलकर या ओवरले करके, उन सभी स्ट्रिंग को तय करें जो जीटीएस टेस्ट के लिए ज़रूरी हैं.

ये स्ट्रिंग हैं:

  • 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

कस्टमाइज़ेशन से जुड़ी ज़रूरी शर्तें

फ़ाइल फ़ॉर्मैट से जुड़ी ज़रूरी शर्तें

कॉन्फ़िगरेशन फ़ाइल, एक्सएमएल फ़ाइल होनी चाहिए. साथ ही, यह कॉन्फ़िगरेशन फ़ाइल अपडेट करें में बताए गए फ़ॉर्मैट के मुताबिक होनी चाहिए. फ़ाइल, raw फ़ोल्डर में होनी चाहिए. यह सुरक्षा केंद्र के सोर्स को पसंद के मुताबिक बनाने और सुरक्षा केंद्र के सोर्स ग्रुप को पसंद के मुताबिक बनाने में बताए गए इनवैरिएंट के मुताबिक होना चाहिए. अगर कॉन्फ़िगरेशन फ़ाइल, ऊपर बताई गई ज़रूरी शर्तों के मुताबिक नहीं है, तो यह सुविधा पूरी तरह बंद कर दी जाती है. इस फ़ाइल को पार्स करने के लिए, CTS और GTS के टेस्ट भी इस्तेमाल किए जाते हैं. इनसे, फ़ाइल के सही तरीके से न बनने पर ज़्यादा जानकारी मिल सकती है. यह जानकारी, logcat डिवाइस लॉग के ऊपर दिखती है.

Google की सेवाओं वाले डिवाइस

GMS डिवाइसों पर, इस फ़ाइल पर कुछ पाबंदियां लगाई गई हैं. यह GTS जांच के साथ काम करता है.

AOSP डिवाइस

AOSP डिवाइसों पर, कॉन्फ़िगरेशन फ़ाइल सही तरीके से बनी होनी चाहिए. साथ ही, वह Safety Center के लिए CTS जांच पास करनी चाहिए. इन टेस्ट से यह पुष्टि की जाती है कि फ़ाइल सही तरीके से बनाई गई है. GMS डिवाइसों को भी ये टेस्ट पास करने होंगे.