सुरक्षा केंद्र को अनुकूलित करें

सुरक्षा केंद्र सक्षम या अक्षम करें

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

अधिकांश उपकरणों पर, सुरक्षा केंद्र डिफ़ॉल्ट रूप से समर्थित होता है, उदाहरण के लिए, फ़ोन और टैबलेट पर। कुछ प्रपत्र कारकों पर, सुरक्षा केंद्र डिफ़ॉल्ट रूप से अक्षम होता है, उदाहरण के लिए, ऑटो, टीवी और वेयर पर।

<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 पर सेट करें। यदि आप सुरक्षा केंद्र का समर्थन नहीं करना चाहते हैं, तो इसे अक्षम करने के लिए इस मान को false पर सेट करें।

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

डिवाइस कॉन्फिग ध्वज

config_enableSafetyCenter कॉन्फ़िगरेशन का उपयोग करके सुरक्षा केंद्र को सक्षम करने के अलावा, सुरक्षा केंद्र को दूरस्थ रूप से सक्षम या अक्षम करने के लिए एक DeviceConfig ध्वज ( safety_center_is_enabled ) का उपयोग किया जाता है।

एंड्रॉइड 14 और इसके बाद के संस्करण में, कोई और कार्रवाई आवश्यक नहीं है क्योंकि यह ध्वज डिफ़ॉल्ट रूप से true है।

एंड्रॉइड 13 में, सुरक्षा केंद्र डिफ़ॉल्ट सर्वर-साइड द्वारा अक्षम है और इस ध्वज का उपयोग करके अनुमति सूची द्वारा सक्षम किया गया है। अपने डिवाइस के फ़िंगरप्रिंट सबमिट करें और अनुमति सूची में जोड़े जाने के लिए अपने 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_config.xml कॉन्फ़िगरेशन फ़ाइल का उपयोग करें। आप यह मानकर इस फ़ाइल को ओवरले कर सकते हैं कि आपने अनुकूलन आवश्यकताओं को पूरा कर लिया है।

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

safety_center_config.xml फ़ाइल को ओवरले करने के लिए, रनटाइम संसाधन ओवरले (आरआरओ) को संशोधित करने के बारे में जानकारी के लिए रनटाइम पर ऐप के संसाधनों का मान बदलें देखें।

एंड्रॉइड 14 में, सुनिश्चित करें कि res/raw-v34/safety_center_config.xml फ़ाइल को ओवरले किया जाए, न कि res/raw/safety_center_config.xml क्योंकि पूर्व को प्राथमिकता दी जाती है (यह अन्य फ़ाइलों पर भी लागू होता है जो v34 के दायरे में आती हैं, उदाहरण के लिए res/values-v34/strings.xml ). ओवरले पैकेज में न्यूनतम एसडीके 34 से कम होना चाहिए, अन्यथा अनुकूलन के दौरान v34 क्वालीफायर छीन लिया जा सकता है। यह भी सुनिश्चित करें कि एक स्थिर ओवरले का उपयोग किया जाए, क्योंकि यह मान बूट समय के आसपास लोड किया जाता है।

एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) उपकरणों के लिए, पैकेज com.android.safetycenter.resources लक्षित करें। लक्ष्य करने के लिए कोई ओवरले कॉन्फ़िगरेशन नहीं है. सामग्री पर कोई प्रतिबंध नहीं होने के कारण सभी संसाधन ओवरले करने योग्य हैं।

मेनलाइन अपडेट प्राप्त करने के लिए कॉन्फ़िगर किए गए जीएमएस उपकरणों के लिए, पैकेज 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>

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

GMS OEM को Google द्वारा प्रदान की गई safety_center_config.xml फ़ाइल की प्रतिलिपि बनानी चाहिए और GTS परीक्षणों द्वारा अनुमत संशोधनों को सीमित करना चाहिए। जीएमएस ओईएम को एक्सएमएल कॉन्फ़िगरेशन में प्रयुक्त स्ट्रिंग्स को भी परिभाषित करना होगा।

फ़ाइल संरचना

उच्च स्तर पर, 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>

सुरक्षा केंद्र स्रोतों को अनुकूलित करें

सुरक्षा केंद्र स्रोत प्रकार

सुरक्षा केंद्र को प्रदान किए जाने वाले डेटा के प्रकार के आधार पर स्रोत गतिशील, केवल-केवल या स्थिर हो सकते हैं।

गतिशील स्रोत

सुरक्षा स्रोत को 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"/>

सुरक्षा केंद्र स्रोत कॉन्फ़िगरेशन

सुरक्षा केंद्र स्रोत प्रकार और अन्य अपरिवर्तनीयों के आधार पर, कॉन्फ़िगरेशन फ़ाइल फ़ील्ड वैकल्पिक, आवश्यक या निषिद्ध हैं और इन्हें अनुकूलित किया जा सकता है:

  • id
    • सुरक्षा स्रोत के लिए विशिष्ट पहचानकर्ता, पूरी फ़ाइल में अद्वितीय होना चाहिए और केवल वर्णमाला वर्णों (एज़, एज़) से बना होना चाहिए और केस संवेदनशील होना चाहिए
    • स्ट्रिंग प्रकार
    • सभी सुरक्षा स्रोत प्रकारों के लिए आवश्यक
  • packageName
    • उस पैकेज का नाम जिसके पास यह सुरक्षा स्रोत है, उदाहरण के लिए, com.google.android.permissioncontroller
    • स्ट्रिंग प्रकार
    • गतिशील और केवल-इश्यू सुरक्षा स्रोतों के लिए आवश्यक
    • Android 13 में स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध; एंड्रॉइड 14 में इसे वैकल्पिक रूप से स्रोत के intentAction स्पष्ट रूप से लक्षित करने के बजाय स्पष्ट रूप से लक्षित करने के लिए सेट किया जा सकता है (अधिक विवरण के लिए इरादा समाधान दस्तावेज़ देखें)
  • initialDisplayState
    • जब सुरक्षा स्रोत द्वारा कोई डेटा उपलब्ध नहीं कराया जाता है तो यूआई प्रविष्टि कैसे प्रदर्शित होती है
    • Enum प्रकार को एक स्ट्रिंग के रूप में दर्शाया गया है, जो निम्न में से एक होना चाहिए:
      • enabled (डिफ़ॉल्ट, सामान्य रूप से प्रदर्शित होता है)
      • disabled (धूसर रंग में प्रदर्शित होता है, क्लिक नहीं किया जा सकता)
      • hidden (प्रदर्शित नहीं होता)
    • गतिशील सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट enabled है)
    • केवल-इश्यू और स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध
  • profile
    • क्या यह सुरक्षा स्रोत उपयोगकर्ता की प्रबंधित प्रोफ़ाइल के साथ इंटरैक्ट करता है
    • Enum प्रकार को एक स्ट्रिंग के रूप में दर्शाया गया है, जो निम्न में से एक होना चाहिए:
      • primary_profile_only (केवल प्रोफ़ाइल पैरेंट के साथ इंटरैक्ट करता है)
      • all_profiles (प्रबंधित प्रोफ़ाइल के साथ भी इंटरैक्ट कर सकते हैं)
    • all_profiles पर, कई UI प्रविष्टियाँ उत्पन्न होती हैं (प्रोफ़ाइल पैरेंट के लिए एक, और प्रत्येक प्रबंधित प्रोफ़ाइल के लिए एक); सुरक्षा स्रोत प्रत्येक प्रोफ़ाइल के लिए अलग-अलग डेटा प्रदान कर सकता है
    • सभी सुरक्षा स्रोतों के लिए आवश्यक
  • searchTerms
    • सेटिंग ऐप में खोज का उपयोग करते समय सुरक्षा केंद्र प्रविष्टि पर मैप होने वाले खोज शब्दों की सूची
    • संसाधन आईडी को पूरी तरह से योग्य संसाधन नाम के रूप में दर्शाया गया है, उदाहरण के लिए, @package:string/my_search_terms
    • गतिशील और स्थैतिक सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट कोई खोज शब्द नहीं है)
    • केवल-इश्यू सुरक्षा स्रोतों के लिए निषिद्ध
  • title
    • यूआई प्रविष्टि का डिफ़ॉल्ट शीर्षक, तब उपयोग किया जाता है जब स्रोत द्वारा गतिशील रूप से कोई डेटा प्रदान नहीं किया जाता है
    • संसाधन आईडी को पूर्णतः योग्य संसाधन नाम के रूप में दर्शाया गया है, उदाहरण के लिए, @package:string/my_title
    • गतिशील और स्थैतिक सुरक्षा स्रोतों के लिए आवश्यक (जब तक कि बिना searchTerms के initialDisplayState="hidden" न हो)
    • केवल-इश्यू सुरक्षा स्रोतों के लिए निषिद्ध
  • 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
    • क्या सुरक्षा केंद्र इस स्रोत से संबंधित इंटरैक्शन या डेटा लॉग कर सकता है
    • बूलियन को एक स्ट्रिंग के रूप में दर्शाया गया है, उदाहरण के लिए false
    • गतिशील और केवल समस्या सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट true है)
    • स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध
  • refreshOnPageOpenAllowed
    • क्या सुरक्षा केंद्र स्क्रीन खुलने पर उसके डेटा को ताज़ा करने के लिए सुरक्षा स्रोत को सिग्नल भेजा जाना चाहिए
    • बूलियन को एक स्ट्रिंग के रूप में दर्शाया गया है, उदाहरण के लिए, true
    • गतिशील और केवल समस्या सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट false है)
    • स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध
  • notificationsAllowed (एंड्रॉइड 14 प्रारंभ हो रहा है)
    • क्या सुरक्षा स्रोत किसी समस्या की रिपोर्ट करते समय वैकल्पिक रूप से एक अधिसूचना प्रदान कर सकता है
    • बूलियन को एक स्ट्रिंग के रूप में दर्शाया गया है, उदाहरण के लिए, true
    • गतिशील और केवल समस्या सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट false है)
    • स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध
  • deduplicationGroup (एंड्रॉइड 14 प्रारंभ करना)
    • एक संभावित विशिष्ट पहचानकर्ता जिसका उपयोग विभिन्न स्रोतों से आने वाले मुद्दों को हटाने के लिए किया जा सकता है। समान डुप्लीकेशन समूह के स्रोत वैकल्पिक डुप्लीकेशन आईडी के साथ समस्याएँ भेज सकते हैं। समान डिडुप्लीकेशन आईडी वाले मुद्दे यूआई में केवल एक बार दिखाए जाएंगे, भले ही कई स्रोत उन्हें भेज रहे हों।
    • स्ट्रिंग प्रकार
    • गतिशील और केवल समस्या सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट कोई डुप्लिकेशन नहीं है)
    • स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध
  • packageCertificateHashes (एंड्रॉइड 14 प्रारंभ करना)
    • दिए गए packageName के लिए प्रमाणपत्र हैश की अल्पविराम से अलग की गई सूची। यदि इसे सेट किया गया है, तो सुरक्षा उद्देश्यों के लिए, सुरक्षा स्रोत के साथ इंटरैक्ट करते समय दिए गए packageName के लिए दिए गए packageCertificateHashes के विरुद्ध एक प्रमाणपत्र जांच की जाएगी।
    • स्ट्रिंग प्रकार
    • गतिशील और केवल-इश्यू सुरक्षा स्रोतों के लिए वैकल्पिक (डिफ़ॉल्ट कोई प्रमाणपत्र जांच नहीं है)
    • स्थैतिक सुरक्षा स्रोतों के लिए निषिद्ध

सुरक्षा केंद्र स्रोत समूहों को अनुकूलित करें

सुरक्षा केंद्र स्रोतों को सुरक्षा केंद्र स्रोत समूह में शामिल किया जाना चाहिए। प्रत्येक स्रोत समूह को यूआई में उसी क्रम में प्रदर्शित किया जाता है जिस क्रम में स्रोत समूह फ़ाइल में सूचीबद्ध होते हैं। प्रत्येक स्रोत को समूह के भीतर उस क्रम में प्रदर्शित किया जाता है जिस क्रम में स्रोत फ़ाइल में सूचीबद्ध हैं। यदि समूह में एक एकल सुरक्षा स्रोत है, तो इसे समूह के बजाय एकल प्रविष्टि के रूप में प्रदर्शित किया जाता है।

सुरक्षा केंद्र स्रोत समूह कॉन्फ़िगरेशन

सुरक्षा केंद्र स्रोत समूहों को अनुकूलित करने के लिए निम्नलिखित चर का उपयोग करें:

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

सुरक्षा केंद्र स्रोत समूह प्रकार

सुरक्षा केंद्र स्रोत समूहों को कुछ क्षेत्रों की स्थिति के आधार पर स्टेटफुल, स्टेटलेस या छिपे हुए के रूप में वर्गीकृत किया जाता है।

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

एक समूह जिसमें शीर्षक और सारांश दोनों होते हैं, या 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>

एंड्रॉइड 13 में ऐसा ग्रुप यूआई में कोलैप्सिबल एंट्री के तौर पर दिखेगा। एंड्रॉइड 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-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>

इस उदाहरण में, स्रोत केवल हरे चेतावनी कार्डों को आगे बढ़ा सकता है और एक अनिर्दिष्ट स्थिति प्रदान कर सकता है। अन्य डेटा प्रदान करने में सक्षम होने के लिए, स्रोत एक स्टेटफुल समूह के भीतर होना चाहिए।

स्ट्रिंग्स और ओवरले फ़ील्ड्स को कस्टमाइज़ करें

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

स्ट्रिंग संसाधन विवरण
google_lock_screen_sources_summary एक स्थिर सारांश को परिभाषित करने के लिए इस मान को ओवरले करें जो AndroidLockScreenSources समूह के लिए प्रदर्शित होता है जब समूह के सभी स्रोत अच्छी स्थिति में होते हैं (जानकारी या अनिर्दिष्ट गंभीरता स्तर)। डिफ़ॉल्ट रूप से, सुरक्षा केंद्र समूह के सभी स्रोतों के शीर्षक को समूह के सारांश के रूप में प्रदर्शित करता है।
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 पैकेज में सभी संसाधन सामग्री पर बिना किसी प्रतिबंध के ओवरले करने योग्य हैं।

जीएमएस उपकरणों के लिए जो मेनलाइन अपडेट प्राप्त करने के लिए कॉन्फ़िगर नहीं किए गए हैं, जीटीएस परीक्षणों द्वारा अपेक्षित सभी स्ट्रिंग्स को परिभाषित करने वाले com.android.safetycenter.resources को प्रतिस्थापित या ओवरले करने वाला एक com.google.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

अनुकूलन आवश्यकताएँ

फ़ाइल प्रारूप आवश्यकताएँ

कॉन्फ़िगरेशन फ़ाइल एक XML फ़ाइल होनी चाहिए और कॉन्फ़िगरेशन फ़ाइल अपडेट करें में वर्णित प्रारूप का पालन करना चाहिए। फ़ाइल raw फ़ोल्डर में होनी चाहिए. इसे कस्टमाइज़ सेफ्टी सेंटर स्रोतों और कस्टमाइज़ सेफ्टी सेंटर सोर्स समूहों में वर्णित अपरिवर्तनीयताओं को पूरा करना होगा। यदि कॉन्फ़िगरेशन फ़ाइल उपरोक्त आवश्यकताओं के अनुरूप अच्छी तरह से नहीं बनाई गई है, तो सुविधा पूरी तरह से अक्षम हो गई है। इस फ़ाइल को पार्स करना सीटीएस और जीटीएस परीक्षणों द्वारा भी समर्थित है जो फ़ाइल के अच्छी तरह से नहीं बनने की स्थिति में अतिरिक्त संदर्भ प्रदान कर सकता है ( लॉगकैट डिवाइस लॉग के शीर्ष पर)।

Google सेवा उपकरण

जीएमएस उपकरणों पर, इस फ़ाइल पर कुछ प्रतिबंध लगाए गए हैं। यह जीटीएस परीक्षणों द्वारा समर्थित है।

एओएसपी डिवाइस

एओएसपी उपकरणों पर, कॉन्फ़िगरेशन फ़ाइल अच्छी तरह से बनाई जानी चाहिए और सुरक्षा केंद्र के लिए सीटीएस परीक्षण पास करना चाहिए। परीक्षण सत्यापित करते हैं कि फ़ाइल अच्छी तरह से बनी है। जीएमएस उपकरणों को भी इन परीक्षणों को पास करना होगा।