เปิดหรือปิดใช้ศูนย์ความปลอดภัย
หากต้องการเปิดหรือปิดใช้ศูนย์ความปลอดภัย ให้ใช้ช่องบูลีน 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 หรือแสดงผลค่าเริ่มต้น การ์ดการตั้งค่าด่วนที่เกี่ยวข้องและรายการการตั้งค่าจะแสดงหรือซ่อนด้วย โดยขึ้นอยู่กับว่ามีการเปิดใช้ศูนย์ความปลอดภัยหรือไม่
Flag DeviceConfig
นอกเหนือจากการเปิดใช้ศูนย์ความปลอดภัยโดยใช้การกำหนดค่า config_enableSafetyCenter
แล้ว ยังมีการใช้
DeviceConfig
Flag (safety_center_is_enabled
) เพื่อเปิดหรือปิดใช้ศูนย์ความปลอดภัยจากระยะไกลอีกด้วย
ใน Android 14 ขึ้นไป คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติมเนื่องจากแฟล็กนี้คือ true
โดยค่าเริ่มต้น
ใน Android 13 ศูนย์ความปลอดภัยจะปิดใช้โดยค่าเริ่มต้นฝั่งเซิร์ฟเวอร์และเปิดใช้โดยรายการที่อนุญาตโดยใช้ Flag นี้ ให้ส่งลายนิ้วมือของอุปกรณ์และติดต่อ TAM ของคุณเพื่อเพิ่มไปยังรายการที่อนุญาต โปรดทราบว่าคุณต้องเพิ่มเวอร์ชันหลัก M-2022-11
ขึ้นไปลงในรายการที่อนุญาต
สำหรับการพัฒนาและการทดสอบในเครื่อง คุณจะเปิดหรือปิดใช้ Flag ในเครื่องได้ (จนกว่าจะรีบูต) ด้วยคำสั่ง adb
ตัวอย่างเช่น หากต้องการเปิดใช้ Flag ให้ทำดังนี้
adb root
adb shell device_config set_sync_disabled_for_tests until_reboot
adb shell device_config put privacy safety_center_is_enabled true
หากต้องการยืนยันว่ามีการเปิดใช้ศูนย์ความปลอดภัยหรือไม่ ให้ทำดังนี้
adb root
adb shell cmd safety_center enabled
ผลลัพธ์จะแสดงว่าเปิดใช้ศูนย์ความปลอดภัยในอุปกรณ์อย่างถูกต้องหรือไม่
อัปเดตไฟล์การกำหนดค่า
ใช้ไฟล์การกำหนดค่า safety_center_config.xml
เพื่อแก้ไขเนื้อหาของหน้าจอศูนย์ความปลอดภัย คุณสามารถวางซ้อนไฟล์นี้ได้โดยสมมติว่าคุณมีคุณสมบัติตรงตามข้อกำหนดในการปรับแต่ง
วางซ้อนไฟล์การกําหนดค่า
หากต้องการวางซ้อนไฟล์ safety_center_config.xml
โปรดดูข้อมูลเกี่ยวกับการแก้ไขการวางซ้อนทรัพยากรรันไทม์ (RRO) ได้ที่เปลี่ยนค่าของทรัพยากรแอปที่รันไทม์
ใน Android 14 โปรดตรวจสอบว่าได้วางซ้อนไฟล์ res/raw-v34/safety_center_config.xml
ไม่ใช่ res/raw/safety_center_config.xml
เนื่องจากไฟล์ res/raw-v34/safety_center_config.xml
มีความสำคัญมากกว่า (ข้อกำหนดนี้มีผลกับไฟล์อื่นๆ ที่มีขอบเขตสำหรับ v34
ด้วย เช่น res/values-v34/strings.xml
) แพ็กเกจการวางซ้อนต้องมี SDK ขั้นต่ำต่ำกว่า 34
มิฉะนั้นระบบอาจตัดข้อกำหนด v34
ออกในระหว่างการเพิ่มประสิทธิภาพ
นอกจากนี้ โปรดใช้การวางซ้อนแบบคงที่ เนื่องจากระบบจะโหลดค่านี้ในช่วงที่บูต
สำหรับอุปกรณ์ Android Open Source Project (AOSP) ให้กำหนดเป้าหมายแพ็กเกจ
com.android.safetycenter.resources
ไม่มีการกำหนดค่าการวางซ้อนที่จะกําหนดเป้าหมาย ทรัพยากรทั้งหมดวางซ้อนกันได้โดยไม่มีข้อจำกัดด้านเนื้อหา
สําหรับอุปกรณ์ GMS ที่กำหนดค่าให้รับการอัปเดตเมนไลน์ ให้กําหนดเป้าหมายแพ็กเกจ com.google.android.safetycenter.resources
กำหนดเป้าหมายการกำหนดค่า SafetyCenterConfig
การกำหนดค่านี้กำหนดให้แพ็กเกจการวางซ้อนอยู่ในพาร์ติชัน product
, system
หรือ vendor
GMS OEM ควรคัดลอกไฟล์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 OEM ควรคัดลอกไฟล์ safety_center_config.xml
ที่ Google ให้ไว้และจำกัดการแก้ไขที่การทดสอบ GTS อนุญาต GMS OEM ต้องกำหนดสตริงที่ใช้ในการกำหนดค่า 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
- ลักษณะที่รายการ UI แสดงเมื่อแหล่งข้อมูลความปลอดภัยไม่ได้ให้ข้อมูล
- ประเภท enum ที่แสดงเป็นสตริงต้องเป็นอย่างใดอย่างหนึ่งต่อไปนี้
enabled
(ค่าเริ่มต้น แสดงปกติ)disabled
(แสดงเป็นสีเทา ไม่สามารถคลิกได้)hidden
(ไม่แสดง)
- ไม่บังคับสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิก (ค่าเริ่มต้นคือ
enabled
) - ไม่ได้รับอนุญาตสำหรับแหล่งข้อมูลด้านความปลอดภัยที่มีเฉพาะปัญหาเท่านั้นและแบบคงที่
profile
- แหล่งที่มาของความปลอดภัยนี้โต้ตอบกับโปรไฟล์ที่มีการจัดการของผู้ใช้หรือไม่
- ประเภท Enum ที่แสดงเป็นสตริงต้องเป็นอย่างใดอย่างหนึ่งต่อไปนี้
primary_profile_only
(โต้ตอบกับผู้ปกครองเท่านั้น)all_profiles
(ยังสามารถโต้ตอบกับโปรไฟล์ที่มีการจัดการและ เริ่มใช้โปรไฟล์ส่วนตัวใน Android 15 ได้ด้วย)
- ในวันที่
all_profiles
จะมีการสร้างรายการ UI หลายรายการ (รายการหนึ่งสำหรับระดับบนสุดของโปรไฟล์ และอีก 1 รายการสำหรับแต่ละโปรไฟล์ที่มีการจัดการ) แหล่งข้อมูลความปลอดภัยจะให้ข้อมูลที่แตกต่างกันสำหรับแต่ละโปรไฟล์ได้ - ต้องระบุสำหรับแหล่งที่มาของความปลอดภัยทั้งหมด
searchTerms
- รายการข้อความค้นหาที่จับคู่กับรายการศูนย์ความปลอดภัยเมื่อใช้การค้นหาในแอปการตั้งค่า
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_search_terms
- ไม่บังคับสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิกและแบบคงที่ (ค่าเริ่มต้นคือไม่มีข้อความค้นหา)
- ไม่อนุญาตสำหรับแหล่งที่มาของความปลอดภัยที่มีเฉพาะปัญหา
title
- ชื่อเริ่มต้นของรายการ UI ใช้เมื่อไม่ได้ระบุข้อมูลแบบไดนามิกโดยแหล่งที่มา
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_title
- ต้องระบุสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิกและคงที่ (เว้นแต่จะเป็น
initialDisplayState="hidden"
ที่ไม่มีsearchTerms
) - ไม่ได้รับอนุญาตสำหรับแหล่งข้อมูลด้านความปลอดภัยที่เป็นปัญหาเท่านั้น
titleForWork
- ชื่อเริ่มต้นของรายการ UI สำหรับโปรไฟล์ที่มีการจัดการที่ใช้เมื่อแหล่งที่มาไม่ได้ให้ข้อมูลแบบไดนามิก
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_title_for_work
- ต้องระบุสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิกและคงที่ที่ระบุ
profile="all_profiles"
(ยกเว้นinitialDisplayState="hidden"
ที่ไม่มีsearchTerms
) - ไม่ได้รับอนุญาตสำหรับแหล่งที่มาหรือแหล่งที่มาด้านความปลอดภัยที่เป็นปัญหาเท่านั้นที่มี
profile="primary_profile_only"
summary
- สรุปเริ่มต้นของรายการ UI (นี่คือคำอธิบายแบบข้อความที่ยาวขึ้นซึ่งแสดงใต้ชื่อ) ซึ่งจะใช้เมื่อแหล่งที่มาไม่ได้ให้ข้อมูลแบบไดนามิก
- รหัสทรัพยากรที่แสดงเป็นชื่อทรัพยากรแบบเต็ม เช่น
@package:string/my_summary
- ไม่บังคับสำหรับแหล่งที่มาของความปลอดภัยแบบคงที่ (ค่าเริ่มต้นคือไม่มีข้อมูลสรุป)
- ต้องระบุสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิก (เว้นแต่
initialDisplayState
จะhidden
) - ไม่ได้รับอนุญาตสำหรับแหล่งข้อมูลด้านความปลอดภัยที่เป็นปัญหาเท่านั้น
intentAction
- การทำงานที่จะทริกเกอร์เมื่อมีการคลิกรายการ UI
- ประเภทสตริง เช่น
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
หรือรหัสทรัพยากรที่แสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น@package:string/my_intent_action
- หากการดำเนินการตาม Intent นี้ไม่ได้รับการแก้ไขสำหรับ
packageName
ที่ระบุ (หากมี) รายการ UI จะทำงานในลักษณะเดียวกับที่มีinitialDisplayState="disabled"
- จำเป็นสำหรับแหล่งที่มาความปลอดภัยแบบคงที่และแหล่งที่มาความปลอดภัย
dynamic
ที่มีinitialDisplayState="enabled"
- ไม่อนุญาตสำหรับแหล่งที่มาของความปลอดภัยที่มีเฉพาะปัญหา
maxSeverityLevel
- ระดับความรุนแรงสูงสุดที่แหล่งที่มาของศูนย์ความปลอดภัยนี้ระบุได้
- จํานวนเต็มแสดงเป็นสตริง เช่น
300
- ไม่บังคับสำหรับแหล่งข้อมูลด้านความปลอดภัยแบบไดนามิกและเฉพาะปัญหาเท่านั้น (ค่าเริ่มต้นคือจำนวนสูงสุด)
- ไม่อนุญาตสำหรับแหล่งที่มาของความปลอดภัยแบบคงที่
loggingAllowed
- ศูนย์ความปลอดภัยจะบันทึกการโต้ตอบหรือข้อมูลที่เกี่ยวข้องกับแหล่งที่มานี้ได้หรือไม่
- บูลีนแสดงเป็นสตริง เช่น
false
- ไม่บังคับสำหรับแหล่งที่มาด้านความปลอดภัยแบบไดนามิกและเฉพาะปัญหาเท่านั้น (ค่าเริ่มต้นคือ
true
) - ห้ามใช้สำหรับแหล่งที่มาความปลอดภัยแบบคงที่
refreshOnPageOpenAllowed
- กำหนดว่าควรส่งสัญญาณไปยังแหล่งข้อมูลความปลอดภัยเพื่อรีเฟรชข้อมูลหรือไม่เมื่อเปิดหน้าจอศูนย์ความปลอดภัย
- บูลีนจะแสดงเป็นสตริง เช่น
true
- ไม่บังคับสำหรับแหล่งที่มาด้านความปลอดภัยแบบไดนามิกและเฉพาะปัญหาเท่านั้น (ค่าเริ่มต้นคือ
false
) - ห้ามใช้สำหรับแหล่งที่มาความปลอดภัยแบบคงที่
notificationsAllowed
(ตั้งแต่ Android 14 เป็นต้นไป)- แหล่งที่มาของความปลอดภัยสามารถเลือกที่จะส่งการแจ้งเตือนหรือไม่ เมื่อรายงานปัญหา
- บูลีนจะแสดงเป็นสตริง เช่น
true
- ไม่บังคับสำหรับแหล่งที่มาด้านความปลอดภัยแบบไดนามิกและเฉพาะปัญหาเท่านั้น (ค่าเริ่มต้นคือ
false
) - ห้ามใช้สำหรับแหล่งที่มาความปลอดภัยแบบคงที่
deduplicationGroup
(ตั้งแต่ Android 14)- ตัวระบุที่ไม่ซ้ำกันที่เป็นไปได้ซึ่งใช้เพื่อกรองปัญหาที่ซ้ำกันซึ่งมาจากแหล่งที่มาต่างๆ ออก แหล่งที่มาภายในกลุ่มการกรองข้อมูลที่ซ้ำกันออกเดียวกันอาจส่งปัญหาที่มีรหัสการกรองข้อมูลที่ซ้ำกันออกซึ่งไม่บังคับ ปัญหาที่มีรหัสการกรองข้อมูลที่ซ้ำกันออกเดียวกันจะแสดงใน UI เพียงครั้งเดียว แม้ว่าจะมีการส่งปัญหาจากหลายแหล่งก็ตาม
- ประเภทสตริง
- ไม่บังคับสำหรับแหล่งข้อมูลด้านความปลอดภัยแบบไดนามิกและเฉพาะปัญหาเท่านั้น (ค่าเริ่มต้นคือไม่มีการกรองข้อมูลที่ซ้ำกันออก)
- ไม่อนุญาตสำหรับแหล่งที่มาของความปลอดภัยแบบคงที่
packageCertificateHashes
(ตั้งแต่ Android 14)- รายการแฮชใบรับรองที่คั่นด้วยคอมมาสำหรับ
packageName
ที่ระบุ หากตั้งค่าไว้ ระบบจะตรวจสอบใบรับรองpackageCertificateHashes
ที่ให้ไว้สำหรับpackageName
ที่ให้ไว้เมื่อโต้ตอบกับแหล่งที่มาของความปลอดภัยเพื่อวัตถุประสงค์ด้านความปลอดภัย - ประเภทสตริง
- ไม่บังคับสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิกและแบบเฉพาะปัญหา (ค่าเริ่มต้นคือไม่ตรวจสอบใบรับรอง)
- ไม่อนุญาตสำหรับแหล่งที่มาของความปลอดภัยแบบคงที่
- รายการแฮชใบรับรองที่คั่นด้วยคอมมาสำหรับ
titleForPrivateProfile
(ตั้งแต่ Android 15 เป็นต้นไป)- ชื่อเริ่มต้นของรายการ UI สำหรับโปรไฟล์ส่วนตัวที่จะใช้เมื่อแหล่งที่มาไม่ได้ให้ข้อมูลแบบไดนามิก
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_title_for_private_profile
- ต้องระบุสำหรับแหล่งที่มาของความปลอดภัยแบบไดนามิกและคงที่ที่ระบุ
profile="all_profiles"
(ยกเว้นinitialDisplayState="hidden"
ที่ไม่มีsearchTerms
) - ไม่ได้รับอนุญาตสำหรับแหล่งข้อมูลด้านความปลอดภัยที่มีเฉพาะปัญหาเท่านั้น หรือแหล่งที่มาที่มี
profile="primary_profile_only"
ปรับแต่งกลุ่มแหล่งที่มาของศูนย์ความปลอดภัย
แหล่งที่มาของศูนย์ความปลอดภัยต้องอยู่ภายในกลุ่มแหล่งที่มาของศูนย์ความปลอดภัย กลุ่มแหล่งที่มาแต่ละกลุ่มจะแสดงใน UI ตามลำดับที่กลุ่มแหล่งที่มาแสดงในไฟล์ แหล่งที่มาแต่ละรายการจะแสดงภายในกลุ่มตามลําดับที่แหล่งที่มาแสดงในไฟล์ หากกลุ่มมีแหล่งที่มาด้านความปลอดภัยแหล่งเดียว ก็จะแสดงเป็นรายการเดียวแทนที่จะเป็นกลุ่ม
แหล่งที่มาของการกำหนดค่ากลุ่มในศูนย์ความปลอดภัย
ใช้ตัวแปรต่อไปนี้เพื่อปรับแต่งกลุ่มแหล่งที่มาของศูนย์ความปลอดภัย
id
- ตัวระบุที่ไม่ซ้ำกันสำหรับกลุ่มแหล่งที่มาความปลอดภัย ซึ่งต้องไม่ซ้ำกันในไฟล์ทั้งไฟล์
- ประเภทสตริง
- ต้องระบุ
title
- ชื่อกลุ่มใน UI
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_title
- ต้องระบุหากมีแหล่งที่มาของความปลอดภัยแบบไดนามิกหรือแบบคงที่อย่างน้อย 1 แหล่งภายในกลุ่ม (กล่าวคือ กลุ่มไม่ใช่
type="hidden"
)
summary
- คำอธิบายสั้นๆ ของกลุ่มใน UI แสดงอยู่ใต้ชื่อ แสดงภายใต้เงื่อนไขบางอย่าง โดยทั่วไปเมื่อไม่มีการให้ข้อมูล มิเช่นนั้น ข้อมูลสรุปจะคำนวณตามข้อมูลที่ให้ไว้โดยแหล่งที่มาภายในกลุ่ม
- รหัสทรัพยากรแสดงเป็นชื่อทรัพยากรที่สมบูรณ์ในตัวเอง เช่น
@package:string/my_summary
- ไม่บังคับ (ค่าเริ่มต้นคือไม่มีสรุป)
statelessIconType
- ประเภทไอคอนที่แสดงสำหรับกลุ่มเมื่อแหล่งที่มาของความปลอดภัยไม่ได้ระบุสถานะ เช่น รายการแบบคงที่
- ประเภท enum ที่แสดงเป็นสตริงที่ต้องเป็น
none
หรือprivacy
(ประเภทไอคอนความเป็นส่วนตัว) - ไม่บังคับ (ค่าเริ่มต้นคือ
none
)
type
(ตั้งแต่ Android 14)- ประเภทที่อาจไม่เหมาะสมเพื่อกำหนดวิธีที่กลุ่มนี้โต้ตอบกับศูนย์ความปลอดภัย
- ประเภท Enum ที่แสดงเป็นสตริงต้องเป็นอย่างใดอย่างหนึ่งต่อไปนี้
stateful
(แสดงและส่งผลต่อสถานะโดยรวมของศูนย์ความปลอดภัย)stateless
(แสดงและไม่ส่งผลต่อสถานะโดยรวมของ Safety Center)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 กลุ่มดังกล่าวจะแสดงเป็นรายการที่ยุบได้ใน UI ใน 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>
กลุ่มดังกล่าวจะแสดงเป็นรายการที่เข้มงวดใน UI
กลุ่มที่ซ่อนอยู่
กลุ่มที่ซ่อนจะมีเฉพาะแหล่งข้อมูลด้านความปลอดภัยที่เกี่ยวข้องกับปัญหาเท่านั้นและไม่มีชื่อ กลุ่มที่ซ่อนจะไม่ปรากฏใน UI ดังนี้
อย่างชัดเจนได้ด้วย<safety-sources-group
id="HiddenGroup">
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
ข้อมูลแบบไดนามิกสำหรับรายการแบบคงที่
คุณสามารถแสดงแหล่งที่มาของศูนย์ความปลอดภัยแบบไดนามิกเป็นรายการแบบคงที่ได้ ซึ่งจะอนุญาตให้พุชรายการเปลี่ยนเส้นทางโดยขึ้นอยู่กับเงื่อนไขบางอย่าง และอนุญาตให้ปรับแต่งเนื้อหาขณะรันไทม์ได้ กําหนดแหล่งที่มาแบบไดนามิกภายในกลุ่มที่ไม่มีสถานะ เช่น ขึ้นอยู่กับรายการข้อมูลนโยบายการทำงาน
ตัวอย่างนี้แสดงแหล่งที่มาความปลอดภัยแบบไดนามิกที่ไม่ได้ให้สัญญาณความปลอดภัย เนื่องจากอยู่ในกลุ่มแบบไม่เก็บสถานะ
<safety-sources-group
id="AndroidAdvancedSources"
title="@com.google.android.safetycenter.resources:string/google_advanced_title">
<dynamic-safety-source
id="AndroidWorkPolicyInfo"
packageName="com.google.android.permissioncontroller"
profile="primary_profile_only"
initialDisplayState="hidden"
refreshOnPageOpenAllowed="true"/>
<!-- … -->
</safety-sources-group>
ในตัวอย่างนี้ แหล่งที่มาสามารถพุชได้เฉพาะการ์ดคำเตือนสีเขียวและระบุสถานะที่ไม่ระบุ แหล่งที่มาต้องอยู่ภายในกลุ่มที่เก็บสถานะ เพื่อให้ระบุข้อมูลอื่นๆ ได้
ปรับแต่งสตริงและช่องวางซ้อน
สำหรับอุปกรณ์ GMS ที่ไม่ได้รับการกำหนดค่าให้รับการอัปเดตเมนไลน์ แทนที่จะวางซ้อนไฟล์การกำหนดค่าทั้งหมด คุณสามารถซ้อนทับทรัพยากรสตริง 6 รายการเพื่อตอบสนองความต้องการในการปรับแต่งทั้งหมด ทรัพยากรสตริงที่เป็นการวางซ้อนจะแสดงอยู่ในตาราง
ทรัพยากรสตริง | คำอธิบาย |
---|---|
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 |
วางซ้อนค่านี้เพื่อแสดงรายการ UI ของแหล่งที่มาข้อมูลไบโอเมตริกที่เป็นของแพ็กเกจ com.android.settings เมื่อแหล่งที่มาไม่ได้ระบุข้อมูลแบบไดนามิก ค่าเริ่มต้นคือ hidden |
google_security_updates_intent |
วางซ้อนค่านี้เพื่อเปลี่ยน Intent ที่จําเป็นในการเปิดกิจกรรมที่อนุญาตให้ผู้ใช้ตรวจสอบและติดตั้งการอัปเดตความปลอดภัย ต้องเชื่อมโยงการดำเนินการผ่าน Intent นี้กับกิจกรรมที่ส่งออก ค่าเริ่มต้นคือ android.settings.SYSTEM_UPDATE_SETTINGS |
สตริงอื่นๆ ในแพ็กเกจ com.google.android.safetycenter.resources
จะวางซ้อนไม่ได้
สำหรับอุปกรณ์ AOSP ทรัพยากรทั้งหมดในแพ็กเกจ com.android.safetycenter.resources
จะวางซ้อนได้โดยไม่มีข้อจำกัดในเนื้อหา
สำหรับอุปกรณ์ GMS ที่ไม่ได้กำหนดค่าให้รับการอัปเดตเมนไลน์ ให้สร้างแพ็กเกจ com.google.android.safetycenter.resources
แทนที่หรือซ้อนทับ com.android.safetycenter.resources
เพื่อกำหนดสตริงทั้งหมดที่การทดสอบ GTS คาดหวัง
สตริงเหล่านี้ได้แก่
google_app_security_sources_title
google_app_security_sources_summary
google_play_protect_title
google_play_protect_title_for_work
google_play_protect_summary
google_play_protect_search_terms
google_lock_screen_sources_title
google_lock_screen_sources_summary
google_lock_screen_title
google_lock_screen_summary
google_lock_screen_search_terms
google_biometrics_title
google_biometrics_summary
google_biometrics_search_terms
google_biometrics_initial_display_state
google_accounts_sources_title
google_accounts_sources_summary
google_security_checkup_title
google_security_checkup_title_for_work
google_security_checkup_summary
google_security_checkup_search_terms
google_device_finder_sources_title
google_device_finder_sources_summary
google_find_my_device_title
google_find_my_device_summary
google_find_my_device_search_terms
google_updates_title
google_updates_summary
google_security_updates_title
google_security_updates_summary
google_security_updates_search_terms
google_security_updates_intent
google_play_system_update_title
google_play_system_update_summary
google_play_system_update_search_terms
google_privacy_sources_title
google_privacy_sources_summary
google_permission_usage_title
google_permission_usage_summary
google_permission_usage_search_terms
google_permission_manager_title
google_permission_manager_summary
google_permission_manager_search_terms
google_privacy_controls_title
google_privacy_controls_summary
google_privacy_controls_search_terms
google_advanced_title
google_advanced_security_title
google_advanced_security_summary
google_advanced_security_search_terms
google_advanced_privacy_title
google_advanced_privacy_summary
google_advanced_privacy_search_terms
ข้อกำหนดการปรับแต่ง
ข้อกำหนดรูปแบบไฟล์
ไฟล์การกำหนดค่าต้องเป็นไฟล์ XML และเป็นไปตามรูปแบบที่อธิบายไว้ในอัปเดตไฟล์การกำหนดค่า ไฟล์ต้องอยู่ในโฟลเดอร์ raw
โดยต้องเป็นไปตามตัวแปรที่อธิบายไว้ในส่วนปรับแต่งแหล่งที่มาของศูนย์ความปลอดภัยและปรับแต่งกลุ่มแหล่งที่มาของศูนย์ความปลอดภัย หากไฟล์การกําหนดค่ามีรูปแบบไม่ถูกต้องตามข้อกําหนดข้างต้น ระบบจะปิดใช้ฟีเจอร์นี้โดยสมบูรณ์ การแยกวิเคราะห์ไฟล์นี้ยังได้รับการสนับสนุนจากการทดสอบ CTS และ GTS ที่สามารถให้บริบทเพิ่มเติมในกรณีที่ไฟล์มีรูปแบบไม่ถูกต้อง (นอกเหนือจากบันทึกlogcat ของอุปกรณ์)
อุปกรณ์ของบริการ Google
ในอุปกรณ์ GMS จะมีข้อจำกัดบางอย่างกับไฟล์นี้ ซึ่งรองรับโดย การทดสอบ GTS
อุปกรณ์ AOSP
ในอุปกรณ์ AOSP ไฟล์การกำหนดค่าต้องมีรูปแบบที่ถูกต้องและผ่านการทดสอบ CTS สำหรับศูนย์ความปลอดภัย การทดสอบจะยืนยันว่าไฟล์อยู่ในรูปแบบที่ถูกต้อง อุปกรณ์ GMS จะต้องผ่านการทดสอบเหล่านี้ด้วย