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

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

لتفعيل "مركز الأمان" أو إيقافه، استخدِم الحقل المنطقي 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) لتفعيل "مركز السلامة" أو إيقافه عن بُعد.

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

في نظام التشغيل Android 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، اطّلِع على مقالة تغيير قيمة موارد التطبيق أثناء التشغيل للحصول على معلومات عن تعديل تراكبات موارد وقت التشغيل (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. ليست هناك تهيئة تراكب للاستهداف. يمكن استخدام جميع الموارد كعناصر أساسية بدون أي قيود على المحتوى.

بالنسبة إلى أجهزة "خدمات Google للأجهزة الجوّالة" التي تم ضبطها لتلقّي تحديثات Mainline، يمكنك استهداف الحزمة com.google.android.safetycenter.resources. استهدف الإعدادات SafetyCenterConfig. تتطلب هذه الإعدادات أن تكون حزمة التراكب متضمّنة في القسم product أو system أو vendor. على المصنّعين الأصليين للأجهزة في "خدمات Google للأجهزة الجوّالة" نسخ ملف 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. وعلى المصنّعين الأصليين للأجهزة في "خدمات Google للأجهزة الجوّالة" (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 (يمكنه أيضًا التفاعل مع الملفات الشخصية المُدارة والملف الشخصي الخاص في الإصدار 15 من نظام Android)
    • في all_profiles، يتم إنشاء عدة إدخالات لواجهة المستخدم (أحد الإدخالات الخاصة بالملف الرئيسي وآخر لكل ملف شخصي مُدار)، ويمكن لمصدر الأمان توفير بيانات مختلفة لكل ملف شخصي.
    • مطلوبة لجميع مصادر السلامة
  • searchTerms
    • قائمة بعبارات البحث المرتبطة بإدخال "مركز الأمان" عند استخدام البحث في تطبيق "الإعدادات"
    • يتم تمثيل رقم تعريف المورد على أنّه اسم مورد مؤهَّل بالكامل، مثل @package:string/my_search_terms.
    • اختيارية لمصادر الأمان الديناميكية والثابتة (الإعداد التلقائي هو "عدم استخدام عبارات بحث")
    • محظور لمصادر الأمان التي تتعامل مع المشاكل فقط
  • title
    • العنوان التلقائي لإدخال واجهة المستخدم، والذي يُستخدَم عندما لا يقدّم المصدر أي بيانات بشكل ديناميكي
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال: @package:string/my_title
    • مطلوب لمصادر الأمان الديناميكية والثابتة (ما لم يكن هناك initialDisplayState="hidden" بدون searchTerms)
    • محظور لمصادر الأمان التي تتعامل مع المشاكل فقط
  • titleForWork
    • العنوان التلقائي لإدخال واجهة المستخدم للملف الشخصي المُدار الذي يتم استخدامه عندما لا يوفر المصدر البيانات ديناميكيًا
    • يتم تمثيل رقم تعريف المورد على أنّه اسم مورد مؤهَّل بالكامل، مثل @package:string/my_title_for_work.
    • مطلوب لمصادر الأمان الديناميكية والثابتة التي حدّدت profile="all_profiles" (ما لم تكن initialDisplayState="hidden" بدون searchTerms)
    • لا يُسمَح باستخدام هذا التطبيق مع مصادر الأمان أو مصادرها المسؤولة عن حل المشاكل فقط مع profile="primary_profile_only"
  • summary
    • الملخص التلقائي لإدخال واجهة المستخدم (وهو وصف نصي أطول يتم عرضه أسفل العنوان)، ويستخدم عندما لا يتم توفير البيانات ديناميكيًا من خلال المصدر
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال: @package:string/my_summary
    • اختياري لمصادر السلامة الثابتة (الإعداد التلقائي هو عدم عرض ملخّص)
    • مطلوبة لمصادر الأمان الديناميكية (ما لم تكن قيمة initialDisplayState هي hidden)
    • محظور لمصادر الأمان التي تتعامل مع المشاكل فقط
  • intentAction
    • إجراء يتم تشغيله عند النقر على إدخال واجهة المستخدم
    • نوع السلسلة، على سبيل المثال، com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS، أو رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال، @package:string/my_intent_action
    • إذا لم يتم حلّ الإجراء المطلوب لـ packageName المحدَّد (إن وُجد)، سيتصرف إدخال واجهة المستخدم بالطريقة نفسها التي يعمل بها رمز initialDisplayState="disabled"
    • مطلوب لمصادر الأمان الثابتة ومصادر أمان dynamic التي تتضمّن initialDisplayState="enabled"
    • لا يُسمَح باستخدامه لمصادر الأمان المعنيّة بالمشاكل فقط
  • maxSeverityLevel
    • أقصى مستوى خطورة يمكن أن يوفره مصدر "مركز الأمان" هذا
    • يتم تمثيل عدد صحيح كسلسلة، مثلاً 300.
    • اختياري لمصادر الأمان الديناميكية والمخصصة لمشكلات فقط (الإعداد التلقائي ليس حدًا أقصى)
    • محظور لمصادر السلامة الثابتة
  • loggingAllowed
    • ما إذا كان بإمكان "مركز السلامة" تسجيل التفاعلات أو البيانات المرتبطة بهذا المصدر
    • يتم تمثيل قيمة منطقية كسلسلة، مثلاً false.
    • اختياري لمصادر الأمان الديناميكية والمخصصة لمعالجة المشاكل فقط (القيمة التلقائية هي true)
    • محتوى يُحظر استخدامه في مصادر الأمان الثابتة
  • refreshOnPageOpenAllowed
    • ما إذا كان يجب إرسال إشارة إلى مصدر السلامة لإعادة تحميل بياناته عند فتح شاشة "مركز السلامة"
    • قيمة منطقية تم تمثيلها كسلسلة، على سبيل المثال، true
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو false)
    • محتوى يُحظر استخدامه لمصادر الأمان الثابتة
  • notificationsAllowed (بدءًا من الإصدار 14 من نظام Android)
    • ما إذا كان يمكن لمصدر الأمان تقديم إشعار اختياريًا عند الإبلاغ عن مشكلة
    • قيمة منطقية تم تمثيلها كسلسلة، على سبيل المثال، true
    • اختياري لمصادر الأمان الديناميكية ومصادر المشاكل فقط (الإعداد التلقائي هو false)
    • محظور لمصادر السلامة الثابتة
  • deduplicationGroup (بدءًا من الإصدار 14 من نظام Android)
    • معرّف فريد محتمل يمكن استخدامه لإزالة تكرار المشاكل التي تأتي من مصادر مختلفة. يمكن للمصادر داخل مجموعة إزالة التكرار نفسها إرسال مشكلات بمعرف إزالة تكرار اختياري. جدير بالذكر أنّ المشاكل التي تتضمن معرّف إزالة التكرار نفسه لن تظهر سوى مرة واحدة في واجهة المستخدم، حتى إذا كانت هناك مصادر متعددة تُرسلها.
    • نوع السلسلة
    • اختياري لمصادر الأمان الديناميكية والمخصصة لمعالجة المشاكل فقط (الإعداد التلقائي هو عدم إزالة التكرار)
    • محتوى يُحظر استخدامه في مصادر الأمان الثابتة
  • packageCertificateHashes (بدءًا من Android 14)
    • قائمة مفصولة بفواصل لتجزئات الشهادات الخاصة بالملف الشخصي packageName المحدَّد في حال ضبط هذا الخيار، سيتم التحقّق من الشهادات باستخدام packageCertificateHashes المحدّد لpackageName المحدّد عند التفاعل مع مصدر السلامة لأغراض تتعلّق بالأمان.
    • نوع السلسلة
    • اختياري لمصادر السلامة الديناميكية والمتعلقة بالمشاكل فقط (الإعداد التلقائي هو عدم التحقّق من الشهادات)
    • محتوى يُحظر استخدامه لمصادر الأمان الثابتة
  • titleForPrivateProfile (بدءًا من الإصدار 15 من نظام Android)
    • العنوان التلقائي لإدخال واجهة المستخدم للملف الشخصي الخاص الذي يتم استخدامه عندما لا يوفر المصدر البيانات ديناميكيًا
    • رقم تعريف المورد الذي تم تمثيله كاسم مورد مؤهَّل بالكامل، على سبيل المثال، @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>

في هذا المثال، يمكن للمصدر إرسال بطاقات تحذير خضراء فقط وتقديم حالة غير محدّدة. للتمكّن من تقديم بيانات أخرى، يجب أن يكون المصدر ضمن مجموعة ذات حالة.

تخصيص سلاسل الحقول والحقول التي تظهر على سطح الخريطة

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

أجهزة خدمات Google

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

أجهزة AOSP

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