התאמה אישית של מרכז הבטיחות

הפעלה או השבתה של מרכז הבטיחות

כדי להפעיל או להשבית את מרכז הבטיחות, משתמשים בשדה הבוליאני 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 כדי להשבית אותו.

כשמרכז הבטיחות מושבת, כל ניסיון להפנות לדף 'אבטחה ופרטיות' יגרום לפתיחת אפליקציית ההגדרות במקום זאת. המערכת תתעלם מכל ניסיון לבצע אינטראקציה עם ממשקי ה-API או להחזיר ערך ברירת מחדל. גם המשבצת של ההגדרות המהירות והרשומה בהגדרות יהיו גלויות או מוסתרות, בהתאם להפעלה או להשבתה של מרכז הבטיחות.

הדגל 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

כדי לוודא ש-Safety Center מופעל:

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). חבילת שכבת-העל צריכה לכלול SDK מינימלי מ-34, אחרת יכול להיות שהמאפיין v34 יוסר במהלך האופטימיזציה. כמו כן, חשוב להשתמש בשכבת-על סטטית, כי הערך הזה נטען בסביבות זמן האתחול.

במכשירי Android Open Source Project (AOSP), מטרגטים את החבילה com.android.safetycenter.resources. אין הגדרת שכבת-על לטרגוט. כל המשאבים יכולים להיות בשכבת-על בלי הגבלה על התוכן.

במכשירי GMS שמוגדרים לקבל עדכוני Minline, מטרגטים את החבילה 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. יצרני ציוד מקורי (OEM) של 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
    • איך הרשומה בממשק המשתמש מוצגת כשלא סופק נתונים על ידי מקור הבטיחות
    • סוג הטיפוס בן המנייה (enum) שמיוצג כמחרוזת חייב להיות אחד מהבאים:
      • enabled (ברירת מחדל, מוצג כרגיל)
      • disabled (מוצג באפור, לא ניתן ללחוץ עליו)
      • hidden (לא מוצג)
    • אופציונלי למקורות בטיחות דינמיים (ברירת המחדל היא enabled)
    • אסור להשתמש בקוד הזה במקורות בטיחות סטטיים ומקורות בטיחות שמכילים רק בעיות
  • profile
    • אם מקור הבטיחות הזה יוצר אינטראקציה עם הפרופיל המנוהל של המשתמש
    • סוג הטיפוס בן המנייה (enum) שמיוצג כמחרוזת חייב להיות אחד מהבאים:
      • 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
    • אם פעולת ה-Intent הזו לא מובילה ל-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"

התאמה אישית של קבוצות מקורות ב-Safety Center

המקורות של מרכז הבטיחות צריכים להיות שייכים לקבוצת מקורות של מרכז הבטיחות. כל קבוצת מקורות מוצגת בממשק המשתמש לפי הסדר שבו קבוצות המקורות מפורטות בקובץ. כל מקור מוצג בתוך הקבוצה לפי הסדר שבו המקורות מופיעים בקובץ. אם הקבוצה מכילה מקור בטיחות אחד, היא תוצג כרשומה יחידה ולא כקבוצה.

הגדרה של קבוצת מקורות במרכז הבטיחות

משתמשים במשתנים הבאים כדי להתאים אישית את קבוצות המקור במרכז הבטיחות:

  • id
    • מזהה ייחודי של קבוצת מקורות המידע בנושא בטיחות. המזהה חייב להיות ייחודי בכל הקובץ.
    • טיפוס מחרוזת
    • חובה
  • title
    • שם הקבוצה בממשק המשתמש
    • מזהה המשאב מיוצג בתור שם משאב מלא, לדוגמה, @package:string/my_title
    • חובה אם יש לפחות מקור בטיחות דינמי או סטטי אחד בקבוצה (כלומר שהקבוצה לא משתייכת ל-type="hidden")
  • summary
    • תיאור קצר של הקבוצה בממשק המשתמש, שמוצג מתחת לשם. מוצג בתנאים ספציפיים, בדרך כלל כשלא צוינו נתונים. במקרים אחרים, הסיכום מחושב על סמך הנתונים שסופקו על ידי המקורות בקבוצה.
    • מזהה משאב מיוצג כשם משאב שמוגדר במלואו, לדוגמה, @package:string/my_summary
    • אופציונלי (ברירת המחדל היא לא סיכום)
  • statelessIconType
    • סוג הסמל שמוצג לקבוצה כשמקורות הבטיחות לא מספקים מצב, למשל רשומות סטטיות
    • סוג Enum שמוצג כמחרוזת, והוא חייב להיות none או privacy (סוג סמל הפרטיות)
    • אופציונלי (ברירת המחדל היא none)
  • type (החל מ-Android 14)
    • סוג מפורש שמציין את אופן האינטראקציה של הקבוצה הזו עם מרכז הבטיחות
    • סוג הטיפוס בן המנייה (enum) שמיוצג כמחרוזת חייב להיות אחד מהבאים:
      • stateful (מציג ותורם לסטטוס הכולל של מרכז הבטיחות)
      • stateless (מוצג ולא משפיע על הסטטוס הכולל של מרכז הבטיחות)
      • hidden (לא מוצג, כל המקורות חייבים להיות קשורים לבעיות בלבד)
    • אופציונלי, נגזר כברירת מחדל באמצעות מקורות הבטיחות שמכילים את הקבוצה, וגם את summary ו-statelessIconType. אם מציינים את type משתנים קבועים נוספים כדי לוודא שהוא תואם למקורות בקבוצה (לדוגמה, הקבוצה לא יכולה להיות hidden אם היא מכילה ערכים שגלויים למשתמשים).

סוגי הקבוצות של מקורות המידע במרכז הבטיחות

קבוצות המקור במרכז הבטיחות מסווגות בתור שמירת מצב, ללא שמירת מצב או מוסתרת, לפי המצב של שדות מסוימים.

קבוצה עם שמירת מצב

קבוצה שיש לה גם כותרת וגם סיכום, או ש-stateLessIconType="privacy" נחשבת לקבוצה עם מצב, תורמת לסטטוס הכולל של מרכז הבטיחות:

<safety-sources-group
    id="GoogleAppSecuritySources"
    title="@com.google.android.safetycenter.resources:string/google_app_security_sources_title"
    summary="@com.google.android.safetycenter.resources:string/google_app_security_sources_summary">
    <dynamic-safety-source
        id="GooglePlayProtect"
        packageName="com.android.vending"
        profile="all_profiles"
        intentAction="com.google.android.finsky.PLAY_PROTECT"
        title="@com.google.android.safetycenter.resources:string/google_play_protect_title"
        titleForWork="@com.google.android.safetycenter.resources:string/google_play_protect_title_for_work"
        summary="@com.google.android.safetycenter.resources:string/google_play_protect_summary"
        searchTerms="@com.google.android.safetycenter.resources:string/google_play_protect_search_terms"
        refreshOnPageOpenAllowed="true"/>
    <dynamic-safety-source
        id="GoogleAppProtectionService"
        packageName="com.google.android.odad"
        profile="primary_profile_only"
        initialDisplayState="hidden"
        loggingAllowed="false"/>
</safety-sources-group>

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

נתונים דינמיים לרשומה סטטית

אפשר להציג את המקור הדינמי של מרכז הבטיחות כרשומה סטטית, שמאפשרת לדחוף רשומות של הפניות אוטומטיות בהתאם לתנאים מסוימים, ולהתאים אישית את התוכן שלה בזמן הריצה. מגדירים את המקור הדינמי בקבוצה ללא מצב (stateless), למשל, בהתאם לרשומה של פרטי המדיניות של מקום העבודה.

בדוגמה הזו מוצג מקור בטיחות דינמי שלא מספק אות בטיחות, כי הוא נמצא בקבוצה ללא מצב:

<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 אפשר להוסיף שכבה על הערך הזה כדי לשנות את הכוונה שנדרשת כדי לפתוח את הפעילות שמאפשרת למשתמש לבדוק ולהתקין עדכוני אבטחה. הפעולה הזו של 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 או מוטמעת מעל 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 ל-Safety Center. הבדיקות מוודאות שהקובץ תקין. גם מכשירי GMS צריכים לעבור את הבדיקות האלה.