הפעלה או השבתה של מרכז הבטיחות
כדי להפעיל או להשבית את מרכז הבטיחות, משתמשים בשדה הבווליאני 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, מרכז הבטיחות מושבת כברירת מחדל בצד השרת ומופעל באמצעות רשימת ההיתרים באמצעות הדגל הזה. שולחים את טביעות האצבע של המכשיר ומקשרים עם מנהל החשבון הטכני כדי להיכלל ברשימת ההיתרים. הערה: צריך להוסיף לרשימת ההיתרים גרסה 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 שהוגדרו לקבלת עדכוני Mainline, מטרגטים את החבילה com.google.android.safetycenter.resources
. מטרגטים את ההגדרה SafetyCenterConfig
. כדי להשתמש בהגדרה הזו, חבילת שכבת-העל צריכה להיות במחיצה product
, system
או vendor
. יצרני ציוד מקורי (OEM) של 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
(אפשר גם לקיים אינטראקציה עם הפרופילים המנוהלים, ועם גרסת Android 15 גם עם הפרופיל הפרטי)
- ב-
all_profiles
נוצרות כמה רשומות בממשק המשתמש (אחת להורה של הפרופיל ואחת לכל פרופיל מנוהל). מקור הבטיחות יכול לספק נתונים שונים לכל פרופיל - חובה לכל מקורות המידע בנושאי בטיחות
searchTerms
- רשימה של מונחי חיפוש שממופים לרשומה של מרכז הבטיחות כשמשתמשים בחיפוש באפליקציית ההגדרות
- מזהה המשאב מיוצג בתור שם משאב מלא, לדוגמה,
@package:string/my_search_terms
- אופציונלי למקורות בטיחות דינמיים וסטטיים (ברירת המחדל היא ללא מונחי חיפוש)
- אסור להשתמש בהם במקורות אבטחה שמכילים בעיות בלבד
title
- כותרת ברירת המחדל של הרשומה בממשק המשתמש, שמשמשת כשהמקור לא מספק נתונים באופן דינמי
- מזהה המשאב מיוצג בתור שם משאב מלא, לדוגמה,
@package:string/my_title
- חובה למקורות בטיחות דינמיים וסטטיים (אלא אם
initialDisplayState="hidden"
ללאsearchTerms
) - אסור להשתמש בהם במקורות אבטחה שמכילים בעיות בלבד
titleForWork
- כותרת ברירת המחדל של הרשומה בממשק המשתמש של הפרופיל המנוהל, שמשמשת כשהמקור לא מספק נתונים באופן דינמי
- מזהה המשאב מיוצג בתור שם משאב מלא, לדוגמה,
@package:string/my_title_for_work
- נדרש למקורות בטיחות דינמיים וסטטיים שצוין בהם
profile="all_profiles"
(אלא אםinitialDisplayState="hidden"
ללאsearchTerms
) - אסור להשתמש בהם במקורות בטיחות שמפרסמים רק בעיות או במקורות עם
profile="primary_profile_only"
summary
- סיכום ברירת המחדל של הרשומה בממשק המשתמש (תיאור טקסט ארוך יותר שמוצג מתחת לשם), שמשמש כשהמקור לא מספק נתונים באופן דינמי
- מזהה המשאב מיוצג בתור שם משאב מלא, לדוגמה,
@package:string/my_summary
- אופציונלי למקורות בטיחות סטטיים (ברירת המחדל היא ללא סיכום)
- חובה למקורות דינמיים של תוכן בטוח (אלא אם הערך של
initialDisplayState
הואhidden
) - אסור להשתמש בהם במקורות אבטחה שמציגים בעיות בלבד
intentAction
- הפעולה שתופעל כשלוחצים על הערך בממשק המשתמש
- סוג מחרוזת, לדוגמה
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
, או מזהה משאב שמוצג בתור שם משאב מלא, לדוגמה@package:string/my_intent_action
- אם פעולת הכוונה הזו לא נפתרת עבור
packageName
(אם יש כזה), הרשומה בממשק המשתמש מתנהגת באותו אופן כמו אם ישinitialDisplayState="disabled"
- נדרש למקורות בטיחות סטטיים ולמקורות בטיחות מסוג
dynamic
שיש להםinitialDisplayState="enabled"
- אסור להשתמש בהם במקורות אבטחה שמכילים בעיות בלבד
maxSeverityLevel
- רמת החומרה המקסימלית שהמקור הזה של מרכז הבטיחות יכול לספק
- מספר שלם שמוצג כמחרוזת, לדוגמה,
300
- אופציונלי למקורות דינמיים ולמקורות אבטחה של בעיות בלבד (ברירת המחדל היא ללא מקסימום)
- אסור להשתמש בהם במקורות בטיחות סטטיים
loggingAllowed
- אם מרכז הבטיחות יכול לתעד אינטראקציות או נתונים שקשורים למקור הזה
- ערך בוליאני שמוצג כמחרוזת, לדוגמה
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
מצוין, נאכפים כמה תנאים Invariants נוספים כדי לוודא שהוא תואם למקורות שנמצאו בקבוצה (לדוגמה, הקבוצה לא יכולה להיות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 כשכל המקורות בקבוצה נמצאים במצב תקין (מידע או רמת חומרה לא צוינה). כברירת מחדל, ב-Safety Center מוצג כתקציר של הקבוצה הכותרת של כל המקורות בקבוצה, שמקושרת יחד. |
google_biometrics_title |
אפשר להוסיף שכבה על הערך הזה כדי להגדיר כותרת סטטית למקור הביומטרי שבבעלות החבילה com.android.settings , שתופעל כשהמקור לא מספק נתונים דינמיים. מוסיפים את שכבת-העל הזו כשמוסיפים גם את השם שמסופק באופן דינמי על ידי המקור בחבילה com.android.settings . המערכת מתעלמת מהערך הזה כברירת מחדל כי מצב התצוגה הראשוני של המקור הוא hidden . |
google_biometrics_summary |
אפשר להוסיף שכבה על הערך הזה כדי להגדיר סיכום סטטי של המקור הביומטרי שבבעלות החבילה com.android.settings , שמשומש כשהמקור לא מספק נתונים דינמיים. המערכת מתעלמת מהערך הזה כברירת מחדל כי מצב התצוגה הראשוני של המקור הוא hidden . |
google_biometrics_search_terms |
אפשר להוסיף שכבה על הערך הזה כדי להגדיר רשימת מונחי חיפוש למקור הביומטרי שבבעלות החבילה com.android.settings . |
google_biometrics_initial_display_state |
אפשר להוסיף שכבה על הערך הזה כדי להציג רשומה בממשק המשתמש של המקור הביומטרי שבבעלות החבילה com.android.settings , כשהמקור לא מספק נתונים דינמיים. ערך ברירת המחדל הוא
hidden . |
google_security_updates_intent |
אפשר להוסיף שכבה על הערך הזה כדי לשנות את הכוונה שנדרשת כדי לפתוח את הפעילות שמאפשרת למשתמש לבדוק ולהתקין עדכוני אבטחה. פעולת הכוונה הזו צריכה להיות משויכת לפעילות שיוצאו. ערך ברירת המחדל הוא android.settings.SYSTEM_UPDATE_SETTINGS . |
אי אפשר להוסיף שכבת-על למחרוזות אחרות בחבילה com.google.android.safetycenter.resources
.
במכשירי AOSP, אפשר להוסיף שכבה לכל המשאבים בחבילה com.android.safetycenter.resources
ללא הגבלה על התוכן.
במכשירי GMS שלא מוגדרים לקבלת עדכוני 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 חייבים לעבור את הבדיקות האלה.