Włączanie i wyłączanie Centrum bezpieczeństwa
Aby włączyć lub wyłączyć Centrum bezpieczeństwa, użyj nakładki
config_enableSafetyCenter
w polu wartości logicznej
frameworks/base/core/res/res/values/config.xml
.
.
Na większości urządzeń Centrum bezpieczeństwa jest domyślnie obsługiwane, na przykład na telefonach. i tabletach. Na niektórych urządzeniach Centrum bezpieczeństwa jest domyślnie wyłączone. na przykład na urządzeniach z Androidem, TV i 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>
Aby zapewnić obsługę Centrum bezpieczeństwa, ustaw config_enableSafetyCenter
na true
. Jeśli
nie chcesz obsługiwać Centrum bezpieczeństwa. Ustaw tę wartość na false
, aby je wyłączyć.
Gdy Centrum bezpieczeństwa jest wyłączone, każda próba przekierowania do Zamiast tego strona Prywatność otwiera aplikację Ustawienia. Każda próba interakcji z Interfejsy API są dyskretnie ignorowane lub zwracają wartość domyślną. Powiązana karta Szybkie Kafelek Ustawienia i wpis Ustawienia też są widoczne lub ukryte w zależności od tego, czy Centrum bezpieczeństwa jest włączone.
Flaga DeviceConfig
Oprócz włączenia Centrum bezpieczeństwa za pomocą interfejsu config_enableSafetyCenter
konfiguracji,
DeviceConfig
.
flaga (safety_center_is_enabled
) służy do zdalnego włączania lub wyłączania funkcji bezpieczeństwa
pomocy.
W Androidzie 14 i nowszych nie musisz nic robić.
ponieważ ta flaga to domyślnie true
.
Na Androidzie 13 Centrum bezpieczeństwa jest domyślnie wyłączone.
po stronie serwera i włączone za pomocą tej flagi na liście dozwolonych. Prześlij swoje urządzenie
odcisków cyfrowych i skontaktuj się z TAM, aby dodać je do listy dozwolonych. Pamiętaj, że
Do listy dozwolonych należy dodać aplikację mainline w wersji M-2022-11
lub nowszej.
Na potrzeby lokalnego programowania i testowania flagę można włączyć lub wyłączyć lokalnie
(aż do ponownego uruchomienia) za pomocą polecenia adb
. Aby na przykład włączyć 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
Aby sprawdzić, czy Centrum bezpieczeństwa jest włączone:
adb root
adb shell cmd safety_center enabled
W danych wyjściowych pojawi się informacja, czy Centrum bezpieczeństwa jest prawidłowo włączone na urządzeniu.
Aktualizowanie pliku konfiguracji
Użyj pliku konfiguracji safety_center_config.xml
, aby zmodyfikować zawartość
ekranu Centrum bezpieczeństwa. Możesz nakładać ten plik, jeśli spełniasz wymagania
Wymagania dotyczące dostosowywania
Nakładanie pliku konfiguracji
Aby nałożyć na plik safety_center_config.xml
, zapoznaj się z sekcją Zmienianie wartości atrybutu
zasoby aplikacji w czasie działania
, aby uzyskać informacje na temat modyfikowania nakładek zasobów środowiska wykonawczego.
W Androidzie 14 nałóż
res/raw-v34/safety_center_config.xml
, a nie
res/raw/safety_center_config.xml
, ponieważ ma pierwszeństwo (również
dotyczy innych plików ograniczonych do v34
, np.
res/values-v34/strings.xml
). Pakiet nakładki musi mieć pakiet SDK o starszej wartości
niż 34
, w przeciwnym razie kwalifikator v34
może zostać pominięty podczas optymalizacji.
Pamiętaj też o użyciu statycznej nakładki, ponieważ ta wartość jest ładowana podczas uruchamiania urządzenia
obecnie się znajdujesz.
W przypadku urządzeń Android Open Source Project (AOSP) ustaw kierowanie na pakiet
com.android.safetycenter.resources
Nie ma konfiguracji nakładki, która:
cel. Wszystkie zasoby można nałożyć bez ograniczeń na treść.
W przypadku urządzeń GMS skonfigurowanych do otrzymywania aktualizacji Mainline, ustaw kierowanie na
pakiet com.google.android.safetycenter.resources
. Kieruj na konfigurację
SafetyCenterConfig
Ta konfiguracja wymaga, aby pakiet nakładki był w
partycję product
, system
lub vendor
. OEM ds. produktów GMS powinni skopiować
Dostarczone przez Google: safety_center_config.xml
file i limit
modyfikacji dopuszczonych przez GTS
testów. Definicja nakładki
powinien być podobny do tego:
<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>
W przypadku urządzeń GMS, które nie są skonfigurowane do otrzymywania aktualizacji Mainline, ustaw kierowanie na
pakiet com.android.safetycenter.resources
. Brak konfiguracji nakładki
na które mają być kierowane reklamy. Pakiet nakładki musi używać nazwy pakietu
com.google.android.safetycenter.resources
OEM firmy GMS powinien skopiować plik safety_center_config.xml
udostępniony przez Google oraz
ograniczania zmian dozwolonych w ramach testów GTS. OEM, firmy GMS, musi też określić
ciągi tekstowe używane w konfiguracji XML.
Struktura pliku
Ogólnie plik safety_center_config.xml
to lista zabezpieczeń
źródeł. Te źródła bezpieczeństwa są zorganizowane w grupy i zarządzają sygnałami
ekran Centrum bezpieczeństwa, na przykład Bezpieczeństwo aplikacji lub Blokada ekranu. Kolejność
ta lista definiuje kolejność wyświetlania:
<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>
Plik konfiguracji Google
Plik konfiguracji AOSP znajduje się w
packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml
Na Androidzie 13 plik konfiguracji Google to:
<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>
Na Androidzie 14 plik konfiguracji Google to:
<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>
Dostosowywanie źródeł Centrum bezpieczeństwa
Typy źródeł Centrum bezpieczeństwa
Źródła mogą być dynamiczne, związane tylko z problemem lub statyczne, w zależności od typu danych i przekazywać je do Centrum bezpieczeństwa.
Źródła dynamiczne
Oznacz źródło bezpieczeństwa jako dynamic-safety-source
, jeśli może ono dostarczać dane dynamiczne
do Centrum bezpieczeństwa, zarówno ze względu na kartę wejściową, jak i ewentualne ostrzeżenia:
<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"/>
Źródła tylko problematyczne
Oznacz źródło jako issue-only-safety-source
, jeśli: brak powiązanych ustawień
ale nadal będą pojawiać się ostrzeżenia. Możesz wyświetlać tylko ostrzeżenia. dostarczanie
wpis ustawień powoduje wystąpienie błędu:
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
Źródła statyczne
Oznacz źródło jako static-safety-source
, jeśli jest to wpis przekierowania bez
dane dynamiczne:
<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"/>
Konfiguracja źródła Centrum bezpieczeństwa
W zależności od typu źródła Centrum bezpieczeństwa i innych niezmiennych konfiguracja są opcjonalne, wymagane lub zabronione i można je dostosować:
id
- Unikalny identyfikator źródła bezpieczeństwa, musi być niepowtarzalny w całości i może się składać tylko z liter alfabetu (a–z, A–Z) oraz jest rozróżniana wielkość liter
- Typ ciągu znaków
- Wymagane w przypadku wszystkich typów źródeł bezpieczeństwa
packageName
- Nazwa pakietu, do którego należy to źródło bezpieczeństwa, na przykład
com.google.android.permissioncontroller
- Typ ciągu znaków
- Wymagane w przypadku źródeł bezpieczeństwa dynamicznych i stwarzających tylko problemy
- Niedozwolone w przypadku źródeł bezpieczeństwa statycznego na Androidzie
13; na Androidzie 14
opcjonalnie można ustawić kierowanie na
intentAction
źródła wprost, a nie domyślnie (zob. zgodność z zamierzeniem dokumentacja ).
- Nazwa pakietu, do którego należy to źródło bezpieczeństwa, na przykład
initialDisplayState
- Jak wyświetla się wpis w interfejsie, gdy usługa bezpieczeństwa nie udostępnia żadnych danych źródło
- Typ wyliczeniowy reprezentowany jako ciąg znaków, musi mieć jedną z tych wartości:
enabled
(domyślny, wyświetla się normalnie)disabled
(wyświetla się wyszarzone, nie można ich kliknąć)hidden
(nie wyświetla się)
- Opcjonalny w przypadku dynamicznych źródeł bezpieczeństwa (wartość domyślna to
enabled
) - Zakazane w przypadku źródeł bezpieczeństwa statycznych i tylko problemów
profile
- Określa, czy to źródło bezpieczeństwa wchodzi w interakcje z zarządzanym profilem użytkownika
- Typ wyliczeniowy reprezentowany jako ciąg znaków, musi mieć jedną z tych wartości:
primary_profile_only
(działa tylko z elementem nadrzędnym profilu)all_profiles
(może też wchodzić w interakcje z profilami zarządzanymi)
all_profiles
wygenerowano kilka wpisów w interfejsie (jeden dla profilu nadrzędny i po jednym dla każdego profilu zarządzanego); źródło bezpieczeństwa może zapewnić różne dane dla każdego profilu,- Wymagane w przypadku wszystkich źródeł bezpieczeństwa
searchTerms
- Lista wyszukiwanych haseł mapowanych na wpis Centrum bezpieczeństwa w przypadku użycia Wyszukaj w aplikacji Ustawienia
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_search_terms
- Opcjonalne w przypadku dynamicznych i statycznych źródeł bezpieczeństwa (domyślnie jest wyłączone wyszukiwanie hasła)
- Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko problem
title
- Domyślny tytuł wpisu w interfejsie używany, gdy nie są dynamicznie dostarczane żadne dane według źródła
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title
- Wymagane w przypadku dynamicznych i statycznych źródeł bezpieczeństwa (chyba że
initialDisplayState="hidden"
bez:searchTerms
) - Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko problem
titleForWork
- Domyślny tytuł wpisu w interfejsie dla profilu zarządzanego, który jest używany, gdy nie jest dynamicznie dostarczany przez źródło
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title_for_work
- Wymagane w przypadku dynamicznych i statycznych źródeł bezpieczeństwa, które zawierają
profile="all_profiles"
(chyba żeinitialDisplayState="hidden"
bez niesearchTerms
). - Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko problem lub źródeł z
profile="primary_profile_only"
summary
- Domyślne podsumowanie wpisu w interfejsie (to jest dłuższy opis tekstowy) wyświetlane pod tytułem), używane, gdy dane nie są dostarczane dynamicznie przez źródło
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_summary
- Opcjonalny w przypadku statycznych źródeł bezpieczeństwa (domyślnie jest to brak podsumowania)
- Wymagane w przypadku dynamicznych źródeł bezpieczeństwa (chyba że atrybut
initialDisplayState
jesthidden
). - Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko problem
intentAction
- Działanie wywoływane po kliknięciu wpisu w interfejsie
- Typ ciągu znaków, np.
com.google.android.settings.security.SECURITY_ADVANCED_SETTINGS
lub identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład@package:string/my_intent_action
- Jeśli to działanie intencji nie powiedzie się w przypadku danego elementu typu
packageName
(jeśli dowolne), wpis w interfejsie działa w taki sam sposób,initialDisplayState="disabled"
- Wymagane w przypadku źródeł bezpieczeństwa statycznych i
dynamic
źródeł bezpieczeństwa, które zawierainitialDisplayState="enabled"
- Zabronione w przypadku źródeł bezpieczeństwa zawierających tylko problem
maxSeverityLevel
- Maksymalny poziom ważności, który może zapewnić to źródło Centrum bezpieczeństwa
- Liczba całkowita przedstawiona w formie ciągu znaków, np.
300
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (domyślnie jest maksimum)
- Zakazane w przypadku źródeł bezpieczeństwa statycznego
loggingAllowed
- czy Centrum bezpieczeństwa może rejestrować związane z tym interakcje lub dane. źródło
- Wartość logiczna reprezentowana jako ciąg znaków, np.
false
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
true
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
refreshOnPageOpenAllowed
- Określa, czy do źródła bezpieczeństwa ma zostać wysłany sygnał, aby odświeżyć dane po otwarciu ekranu Centrum bezpieczeństwa.
- Wartość logiczna reprezentowana jako ciąg znaków, np.
true
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
false
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
notificationsAllowed
(od Androida 14)- Określa, czy źródło zabezpieczeń może opcjonalnie dostarczyć powiadomienie, gdy zgłaszanie problemu
- Wartość logiczna reprezentowana jako ciąg znaków, np.
true
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (wartość domyślna to
false
) - Zakazane w przypadku źródeł bezpieczeństwa statycznego
deduplicationGroup
(od Androida 14)- Potencjalny unikalny identyfikator, którego można używać do usuwania duplikatów problemów pochodzących z różnych źródeł. Źródła w ramach tej samej deduplikacji grupa może wysyłać problemy z opcjonalnym identyfikatorem deduplikacji. Problemy z ten sam identyfikator deduplikacji będzie wyświetlany w interfejsie tylko raz, nawet jeśli które wysyła je wiele źródeł.
- Typ ciągu znaków
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (domyślnie jest deduplikacja)
- Zakazane w przypadku źródeł bezpieczeństwa statycznego
packageCertificateHashes
(od Androida 14)- Rozdzielona przecinkami lista haszy certyfikatów dla danego argumentu
packageName
Jeśli ta opcja jest ustawiona, certyfikat sprawdź zostanie wykonana względem danegopackageCertificateHashes
dla danego elementupackageName
podczas interakcji ze źródłem bezpieczeństwa, dla: związane z bezpieczeństwem. - Typ ciągu znaków
- Opcjonalne w przypadku dynamicznych i generujących tylko problemy źródeł bezpieczeństwa (domyślnie jest testy certyfikatów)
- Zakazane w przypadku źródeł bezpieczeństwa statycznego
- Rozdzielona przecinkami lista haszy certyfikatów dla danego argumentu
Dostosowywanie grup źródeł Centrum bezpieczeństwa
Źródła z Centrum bezpieczeństwa muszą należeć do grupy źródeł Centrum bezpieczeństwa. Każda grupa źródłowa jest wyświetlana w interfejsie w takiej kolejności, w jakiej podane w pliku. Każde źródło jest wyświetlane w grupie w takiej kolejności W pliku znajdziesz listę źródeł. Jeśli grupa zawiera 1 źródło bezpieczeństwa, jest wyświetlany jako pojedynczy wpis, a nie grupa.
Konfiguracja grupy źródeł Centrum bezpieczeństwa
Aby dostosować grupy źródłowe Centrum bezpieczeństwa, użyj tych zmiennych:
id
- Unikalny identyfikator grupy źródeł bezpieczeństwa; musi być unikalna w cały plik
- Typ ciągu znaków
- Wymagane
title
- Tytuł grupy w interfejsie
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_title
- Wymagane, jeśli w aplikacji znajduje się co najmniej jedno dynamiczne lub statyczne źródło bezpieczeństwa
grupa (tzn. nie należy do
type="hidden"
)
summary
- Krótki opis grupy w interfejsie wyświetlany pod tytułem. wyświetlane w określonych warunkach, zwykle wtedy, gdy dane nie są dostępne; w przeciwnym razie podsumowanie jest obliczane na podstawie danych dostarczonych przez źródeł w grupie.
- Identyfikator zasobu reprezentowany jako w pełni kwalifikowana nazwa zasobu, na przykład
@package:string/my_summary
- Opcjonalne (domyślnie jest to brak podsumowania)
statelessIconType
- Typ ikony wyświetlanej dla grupy, gdy zasada nie podaje stanu źródła bezpieczeństwa, na przykład wpisy statyczne,
- Typ typu wyliczeniowego reprezentowany jako ciąg znaków
none
lubprivacy
(typ ikony prywatności) - Opcjonalny (wartość domyślna to
none
)
type
(od Androida 14)- Jednoznaczny typ określający sposób interakcji tej grupy z Centrum bezpieczeństwa
- Typ wyliczeniowy reprezentowany jako ciąg znaków, musi mieć jedną z tych wartości:
stateful
(wyświetla ogólne Centrum bezpieczeństwa i przyczynia się do niego stan)stateless
(wyświetla się, ale nie wpływa na ogólne bezpieczeństwo) stan centrum)hidden
(nie wyświetla się, wszystkie źródła muszą być związane tylko z problemem)
- Opcjonalna, ustalona domyślnie na podstawie źródeł bezpieczeństwa zawartych w
a także
summary
istatelessIconType
. Jeśli Parametrtype
jest określony, ale wymuszane są dodatkowe niezmienniki, aby upewnić się, że pasuje ono do źródeł w grupie (na przykład grupa nie może byćhidden
, jeśli zawiera wpisy widoczne dla użytkowników)
Typy grup źródeł Centrum bezpieczeństwa
Grupy źródłowe w Centrum bezpieczeństwa są klasyfikowane jako stanowe, bezstanowe lub ukryte zależnie od stanu określonych pól.
Grupa stanowa
Grupa, która ma zarówno tytuł, jak i podsumowanie, lub element stateLessIconType="privacy"
to
uznawane za stanowe przyczynia się do ogólnego stanu Centrum bezpieczeństwa:
<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>
W Androidzie 13 taka grupa będzie się wyświetlać jako zwijana. w interfejsie użytkownika. W Androidzie 14 będzie ona widoczna jako wpis o własnym stanie, który przekierowuje do podstrony.
Grupa bezstanowa
Grupa, która ma tytuł, ale nie ma podsumowania, a stateLessIconType="none"
to
są uznawane za bezstanowe i nie wpływają na ogólny stan Centrum bezpieczeństwa:
<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>
Taka grupa wyświetli się w interfejsie jako sztywna lista wpisów.
Grupa ukryta
Ukryta grupa zawiera tylko źródła bezpieczeństwa związane tylko z problemami i nie ma nazwy. Ukryte grupy nie są widoczne w interfejsie:
<safety-sources-group
id="HiddenGroup">
<issue-only-safety-source
id="AndroidAccessibility"
packageName="com.google.android.permissioncontroller"
profile="all_profiles"
refreshOnPageOpenAllowed="true"/>
</safety-sources-group>
Dane dynamiczne dla wpisu statycznego
Źródło dynamicznego Centrum bezpieczeństwa można wyświetlić jako wpis statyczny, co pozwala na przesuwanie wpisów przekierowania w zależności od pewnych warunków oraz umożliwia dostosowanie jej treść w czasie działania. Zdefiniuj źródło dynamiczne w grupie bezstanowej dla w zależności od wpisu z informacjami o zasadach służbowych.
Ten przykład pokazuje dynamiczne źródło bezpieczeństwa, które nie dostarcza sygnału bezpieczeństwa. ponieważ jest w grupie bezstanowej:
<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>
W tym przykładzie źródło może przekazywać tylko zielone karty ostrzegawcze i dostarczać nieokreślony stan. Aby dostarczyć inne dane, źródło musi znajdować się w grupę stanową.
Dostosuj ciągi tekstowe i pola nakładki
W przypadku urządzeń GMS, które nie zostały skonfigurowane do otrzymywania aktualizacji Mainline, zamiast na cały plik konfiguracji, można dodać 6 zasobów łańcuchowych spełniają wszystkie wymagania w zakresie dostosowywania. Wyświetli się lista zasobów tekstowych, które są nakładane. w tabeli.
Zasób ciągu tekstowego | Opis |
---|---|
google_lock_screen_sources_summary |
Nałóż tę wartość, aby zdefiniować statyczne podsumowanie wyświetlane
grupę AndroidLockScreenSources , gdy wszystkie źródła w grupie
grupa jest w dobrym stanie (informacja lub nieokreślona ważność);
). Domyślnie Centrum bezpieczeństwa wyświetla tytuły wszystkich źródeł
w grupie połączonej jako podsumowanie dla grupy. |
google_biometrics_title |
Nałóż tę wartość, aby zdefiniować statyczny tytuł źródła biometrycznego.
należące do pakietu com.android.settings , używane, gdy nie ma
źródło jest dostarczane przez źródło. Nakładaj je, gdy także
nakładając się na tytuł dynamicznie udostępniany przez źródło w
com.android.settings pakiet. Ta zasada jest domyślnie ignorowana.
ponieważ początkowy stan wyświetlania dla źródła to
hidden |
google_biometrics_summary |
Nałóż tę wartość, aby zdefiniować statyczne podsumowanie danych biometrycznych.
źródło należące do użytego pakietu com.android.settings
. Jest to ignorowane przez
domyślnie, ponieważ początkowy stan wyświetlania dla źródła to
hidden |
google_biometrics_search_terms |
Nałóż tę wartość, aby zdefiniować listę wyszukiwanych haseł na potrzeby funkcji biometrycznej.
źródło należy do pakietu com.android.settings . |
google_biometrics_initial_display_state |
Nałóż tę wartość, aby wyświetlić wpis w interfejsie dotyczący należącego do źródła biometrycznego
przez pakiet com.android.settings , gdy nie ma danych dynamicznych
jest podana przez źródło. Wartość domyślna to
hidden |
google_security_updates_intent |
Nałóż tę wartość, aby zmienić intencję niezbędną do otwarcia aktywności
który umożliwia użytkownikowi sprawdzanie i instalowanie aktualizacji zabezpieczeń. Ten
działanie intencji musi być powiązane z wyeksportowaną aktywnością.
Wartość domyślna to
android.settings.SYSTEM_UPDATE_SETTINGS |
Żadne inne ciągi w pakiecie com.google.android.safetycenter.resources
nie są
które można nakładać.
W przypadku urządzeń AOSP wszystkie zasoby w regionie com.android.safetycenter.resources
można nakładać bez ograniczeń na treść.
W przypadku urządzeń GMS, które nie są skonfigurowane do otrzymywania aktualizacji Mainline, utwórz
com.google.android.safetycenter.resources
pakiet zastępujący lub nakładający się
com.android.safetycenter.resources
definiują wszystkie ciągi, które ma zawierać parametr
testów GTS.
Te ciągi to:
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
Wymagania dotyczące dostosowywania
Wymagania dotyczące formatu pliku
Plik konfiguracji musi być plikiem XML i mieć format opisany w
Zaktualizuj plik konfiguracji. Plik musi znajdować się w
Folder raw
. Musi spełniać niezmienniki opisane w Dostosowywanie Centrum bezpieczeństwa
oraz
Dostosowywanie źródeł Centrum bezpieczeństwa
grup. Jeśli
zgodnie z powyższymi wymaganiami,
jest całkowicie wyłączona. Analiza tego pliku korzysta też z CTS i GTS
testu, który może dostarczyć dodatkowy kontekst, jeśli plik jest zniekształcony (w
góra
logcat.
dzienników urządzenia).
Urządzenia w usługach Google
Na urządzenia GMS obowiązują pewne ograniczenia dotyczące tego pliku. Ta funkcja jest wspierana przez GTS .
Urządzenia AOSP
Na urządzeniach AOSP plik konfiguracji musi mieć prawidłowy format i przekazywać CTS testy pod kątem bezpieczeństwa. pomocy. Testy mają na celu sprawdzenie, czy plik jest poprawnie sformatowany. Urządzenia GMS muszą również zaliczą te testy.