تخصيص "مركز الأمان"

تفعيل "مركز الأمان" أو إيقافه

لتفعيل "مركز الأمان" أو إيقافه، استخدِم الحقل المنطقي config_enableSafetyCenter القابل للتراكب فيملف frameworks/base/core/res/res/values/config.xml.

يتوفّر تطبيق "مركز الأمان" تلقائيًا على معظم الأجهزة، مثل الهواتف والأجهزة اللوحية. في بعض أشكال الأجهزة، يكون تطبيق "مركز الأمان" غير مفعّل تلقائيًا، مثلاً على 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. إذا كنت لا تريد إتاحة "مركز الأمان"، اضبط هذه القيمة على false لإيقافه.

عند إيقاف "مركز الأمان"، ستؤدي أي محاولة لإعادة التوجيه إلى صفحة "الأمان والخصوصية" إلى فتح تطبيق "الإعدادات" بدلاً من ذلك. يتم تجاهل أي محاولة للتفاعل مع واجهة برمجة التطبيقات أو عرض قيمة تلقائية. يتم أيضًا عرض مربّع "الإعدادات السريعة" المرتبط و"الإعدادات" أو إخفاؤهما بناءً على ما إذا كان "مركز الأمان" مفعَّلاً.

علامة DeviceConfig

بالإضافة إلى تفعيل "مركز السلامة" باستخدام config_enableSafetyCenter الإعدادات، يتم استخدام علامة DeviceConfig (safety_center_is_enabled) لتفعيل "مركز السلامة" أو إيقافه عن بُعد.

في الإصدار 14 من Android والإصدارات الأحدث، ليس عليك اتّخاذ أي إجراء آخر، لأنّ هذا الإعداد هو true تلقائيًا.

في الإصدار 13 من نظام التشغيل Android، يكون تطبيق "مركز الأمان" غير مفعَّل تلقائيًا من جهة الخادم ويتم تفعيله من خلال القائمة المسموح بها باستخدام هذا الإعداد. أرسِل بصمات إصبع الجهاز وتواصَل مع مدير حسابك لدى فريق إدارة العملاء (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 لتعديل محتوى screen. Safety Center يمكنك تراكب هذا الملف بافتراض أنّك استوفيت متطلبات التخصيص.

تراكب ملف الإعداد

لوضع ملف safety_center_config.xml فوق الملفات الأخرى، يُرجى الاطّلاع على مقالة تغيير قيمة موارد التطبيق أثناء التشغيل للحصول على معلومات عن تعديل عمليات تراكب الموارد أثناء التشغيل (RRO).

في Android 14، احرص على تراكب ملف res/raw-v34/safety_center_config.xml وليس ملف res/raw/safety_center_config.xml لأنّ الأول يُمنَح الأولوية (ينطبق ذلك أيضًا على الملفات الأخرى التي تستهدف v34، مثل res/values-v34/strings.xml). يجب أن يكون الحد الأدنى لحزمة التراكب أقل من 34، وإلا قد تتم إزالة العنصر المحدِّد v34 أثناء التحسين. احرص أيضًا على استخدام تراكب ثابت، لأنّه يتم تحميل هذه القيمة في وقت التمهيد تقريبًا.

بالنسبة إلى أجهزة "المشروع المفتوح المصدر لنظام Android" ‏ (AOSP)، استهدِف الحزمة com.android.safetycenter.resources. لا تتوفّر إعدادات تراكب لتحديد هدف. يمكن استخدام جميع الموارد بدون أي قيود على المحتوى.

بالنسبة إلى أجهزة GMS التي تم ضبطها لتلقّي تحديثات Mainline، استهدِف الحزمة com.google.android.safetycenter.resources. استهدِف الإعداد SafetyCenterConfig. تتطلّب هذه الإعدادات أن تكون حزمة النافذة المتراكبة في إما القسم product أو system أو vendor. على المصنّعين الأصليّين للأجهزة الذين يستخدمون حِزم GMS نسخsafety_center_config.xml الملف الذي تقدّمه Google وحصر التعديلات على ما تسمح به اختبارات 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 التي لم يتم ضبطها لتلقّي تحديثات Mainline، استهدِف الحزمة com.android.safetycenter.resources. لا تتوفّر إعدادات تراكب للاستهداف. يجب أن تستخدم حزمة التراكب اسم الحزمة com.google.android.safetycenter.resources.

على المصنّعين الأصليّين للأجهزة الذين يستخدمون حِزم GMS نسخ ملف safety_center_config.xml المقدَّم من Google و حصر التعديلات على ما تسمح به اختبارات GTS. على المصنّعين الأصليّين للأجهزة الذين يستخدمون حِزم GMS أيضًا تحديد السلاسل المستخدَمة في إعدادات XML.

بنية الملف

بشكل عام، ملف 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>

تخصيص مصادر "مركز السلامة"

أنواع مصادر "مركز الأمان"

يمكن أن تكون المصادر ديناميكية أو متعلّقة بالمشاكل فقط أو ثابتة، استنادًا إلى نوع البيانات التي توفّرها لـ "مركز السلامة".

المصادر الديناميكية

ضَع علامة 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
    • معرّف فريد لمصدر السلامة، يجب أن يكون فريدًا في الملف بأكمله ويجب أن يتألّف من أحرف أبجدية فقط (من 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 المحدّد (إذا كان هناكpackageName)، سيعمل إدخال واجهة المستخدم بالطريقة نفسها التي يعمل بهاinitialDisplayState="disabled".
    • مطلوب لمصادر الأمان الثابتة ومصادر أمان dynamic التي تتضمّن initialDisplayState="enabled"
    • محظور لمصادر الأمان التي تتعامل مع المشاكل فقط
  • maxSeverityLevel
    • الحد الأقصى لمستوى الخطورة الذي يمكن أن يوفّره مصدر "مركز السلامة" هذا
    • عدد صحيح معروض كسلسلة، على سبيل المثال، 300
    • اختياري لمصادر الأمان الديناميكية والمتعلقة بالمشاكل فقط (الإعداد التلقائي هو عدم تحديد الحد الأقصى)
    • محظور لمصادر السلامة الثابتة
  • loggingAllowed
    • ما إذا كان بإمكان "مركز السلامة" تسجيل التفاعلات أو البيانات المرتبطة بهذا المصدر
    • قيمة منطقية تم تمثيلها كسلسلة، على سبيل المثال false
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو true)
    • محظور لمصادر السلامة الثابتة
  • refreshOnPageOpenAllowed
    • ما إذا كان يجب إرسال إشارة إلى مصدر السلامة لإعادة تحميل بياناته عند فتح شاشة "مركز السلامة"
    • قيمة منطقية تم تمثيلها كسلسلة، على سبيل المثال، true
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو false)
    • محظور لمصادر السلامة الثابتة
  • notificationsAllowed (بدءًا من Android 14)
    • ما إذا كان بإمكان مصدر السلامة إرسال إشعار اختياري عند الإبلاغ عن مشكلة
    • قيمة منطقية تم تمثيلها كسلسلة، على سبيل المثال، true
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو false)
    • محظور لمصادر السلامة الثابتة
  • deduplicationGroup (بدءًا من Android 14)
    • معرّف فريد محتمل يمكن استخدامه لإزالة تكرار المشاكل التي تأتي من مصادر مختلفة. يمكن للمصادر ضمن مجموعة إزالة التكرار نفسها إرسال المشاكل باستخدام معرّف اختياري لإزالة التكرار. لن تظهر المشاكل التي تتضمّن رقم تعريف إزالة التكرار نفسه إلا مرة واحدة في واجهة المستخدم، حتى إذا كانت مصادر متعدّدة ترسلها.
    • نوع السلسلة
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو عدم إزالة التكرار)
    • محظور لمصادر السلامة الثابتة
  • packageCertificateHashes (بدءًا من Android 14)
    • قائمة مفصولة بفواصل لتجزئات الشهادات الخاصة بالملف الشخصي packageName المحدَّد في حال ضبط هذا الخيار، سيتم التحقّق من الشهادات باستخدام packageCertificateHashes المحدَّد لpackageName المحدَّد عند التفاعل مع مصدر السلامة، وذلك لأغراض تتعلّق بالحماية.
    • نوع السلسلة
    • اختياري لمصادر السلامة الديناميكية والمتعلقة بالمشاكل فقط (الإعداد التلقائي هو عدم التحقّق من الشهادات)
    • محظور لمصادر السلامة الثابتة
  • titleForPrivateProfile (بدءًا من Android 15)
    • العنوان التلقائي لإدخال واجهة المستخدم للملف الشخصي الخاص الذي يتم استخدامه عندما لا يقدّم المصدر البيانات بشكل ديناميكي
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال: @package:string/my_title_for_private_profile
    • مطلوب لمصادر الأمان الديناميكية والثابتة التي تم تحديد profile="all_profiles" لها (ما لم تكن initialDisplayState="hidden" بدون searchTerms)
    • محظور لمصادر السلامة التي تتضمّن مشاكل فقط أو المصادر التي تتضمّن profile="primary_profile_only"

تخصيص مجموعات مصادر "مركز السلامة"

يجب أن تكون مصادر "مركز الأمان" مضمّنة في مجموعة مصادر "مركز الأمان". يتم عرض كل مجموعة مصادر في واجهة المستخدِم بالترتيب الذي يتم فيه إدراج مجموعات المصادر في الملف. يتم عرض كل مصدر ضمن المجموعة بالترتيب الذي يتم فيه إدراج المصادر في الملف. إذا كانت المجموعة تحتوي على مصدر أمان واحد، يتم عرضها كإدخال واحد بدلاً من مجموعة.

إعداد مجموعة مصادر "مركز السلامة"

استخدِم المتغيّرات التالية لتخصيص مجموعات مصادر "مركز الأمان":

  • id
    • معرّف فريد لمجموعة مصادر الأمان، ويجب أن يكون فريدًا في الملف بأكمله
    • نوع السلسلة
    • مطلوب
  • title
    • عنوان المجموعة في واجهة المستخدم
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال: @package:string/my_title
    • مطلوب إذا كان هناك مصدر أمان ديناميكي أو ثابت واحد على الأقل ضمن المجموعة (أي أنّ المجموعة ليست من النوع type="hidden")
  • summary
    • وصف موجز للمجموعة في واجهة المستخدم، يظهر أسفل العنوان يتمّ عرضه في ظلّ شروط معيّنة، عادةً عندما لا يتمّ تقديم البيانات، وإلا، يتمّ احتساب الملخّص استنادًا إلى البيانات المقدّمة من المصادر ضمن المجموعة.
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال، @package:string/my_summary
    • اختياري (الإعداد التلقائي هو "بدون ملخص")
  • statelessIconType
    • نوع الرمز المعروض للمجموعة عندما لا تقدّم مصادر الأمان أي حالة، على سبيل المثال، الإدخالات الثابتة
    • نوع التعداد الممثَّل كسلسلة يجب أن تكون إما none أو privacy (نوع رمز الخصوصية)
    • اختياري (القيمة التلقائية هي none)
  • type (بدءًا من Android 14)
    • نوع صريح لتصنيف كيفية تفاعل هذه المجموعة مع "مركز الأمان"
    • نوع التعداد الذي يتم تمثيله كسلسلة، يجب أن يكون أحد الخيارات التالية:
      • 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>

في 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 التي لم يتم ضبطها لتلقّي تحديثات Mainline، بدلاً من تداخل ملف الضبط بالكامل، يمكنك تداخل ستة موارد سلاسل برمجية لتلبية جميع احتياجات التخصيص. يتم إدراج موارد السلاسل التي تكون مركّبة في الجدول.

مورد سلسلة نصية الوصف
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 بدون أي قيود على المحتوى.

بالنسبة إلى أجهزة GMS التي لم يتم ضبطها لتلقّي تحديثات Mainline، أنشئ حزمة com.google.android.safetycenter.resources تستبدل أو تتراكب مع com.android.safetycenter.resources لتحديد جميع السلاسل المتوقّعة من اختبارات GTS.

هذه السلاسل هي:

  • 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. ويجب أن تستوفي الشروط الثابتة الموضّحة في مقالتَي تخصيص ملفّات Safety Center المصدر وتخصيص ملفّات Safety Center المجموعات. إذا لم يكن ملف الضبط منسقًا بشكل جيد بما يتوافق مع المتطلبات أعلاه، يتم إيقاف الميزة بالكامل. يتم أيضًا تحليل هذا الملف من خلال اختبارات CTS وGTS التي يمكنها تقديم سياق إضافي في حال عدم صحة تنسيق الملف (بالإضافة إلى سجلات الجهاز في logcat).

أجهزة خدمات Google

على أجهزة GMS، يتم فرض بعض القيود على هذا الملف. تتيح اختبارات GTS إجراء ذلك.

أجهزة AOSP

على أجهزة AOSP، يجب أن يكون ملف الإعدادات منسقًا بشكل جيد وأن يجتاز اختبارات موافقة المطوّرين (CTS) لمركز Safety Center. تتحقّق الاختبارات من أنّ الملف منسَّق بشكل صحيح. ويجب أن تجتاز أجهزة GMS أيضًا هذه الاختبارات.