নিরাপত্তা কেন্দ্র কাস্টমাইজ করুন

নিরাপত্তা কেন্দ্র সক্রিয় বা অক্ষম করুন

নিরাপত্তা কেন্দ্র সক্ষম বা নিষ্ক্রিয় করতে, frameworks/base/core/res/res/values/config.xml ফাইলে ওভারলেয়েবল config_enableSafetyCenter বুলিয়ান ক্ষেত্রটি ব্যবহার করুন।

বেশিরভাগ ডিভাইসে, নিরাপত্তা কেন্দ্র ডিফল্টরূপে সমর্থিত, উদাহরণস্বরূপ, ফোন এবং ট্যাবলেটে। কিছু ফর্ম ফ্যাক্টরগুলিতে, সুরক্ষা কেন্দ্র ডিফল্টরূপে অক্ষম থাকে, উদাহরণস্বরূপ, অটো, টিভি এবং পরিধানে৷

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- ... -->
   <!-- Determines whether SafetyCenter feature is enabled. -->
    <bool name="config_enableSafetyCenter">true</bool>
    <!-- ... -->
</resources>

নিরাপত্তা কেন্দ্র সমর্থন করতে, config_enableSafetyCenter কে true সেট করুন। আপনি যদি নিরাপত্তা কেন্দ্র সমর্থন করতে না চান, তাহলে এটি নিষ্ক্রিয় করতে এই মানটিকে false সেট করুন৷

যখন নিরাপত্তা কেন্দ্র অক্ষম করা হয়, তখন নিরাপত্তা ও গোপনীয়তা পৃষ্ঠায় পুনঃনির্দেশিত করার যেকোনো প্রচেষ্টা পরিবর্তে সেটিংস অ্যাপটি খোলে। এপিআই-এর সাথে ইন্টারঅ্যাক্ট করার যেকোন প্রচেষ্টা নিঃশব্দে উপেক্ষা করা হয় বা একটি ডিফল্ট মান প্রদান করে। সংশ্লিষ্ট কুইক সেটিংস টাইল এবং সেটিংস এন্ট্রিও সেফটি সেন্টার সক্ষম কিনা তার উপর নির্ভর করে উন্মুক্ত বা লুকানো হয়।

DeviceConfig পতাকা

config_enableSafetyCenter কনফিগারেশন ব্যবহার করে নিরাপত্তা কেন্দ্র সক্ষম করার পাশাপাশি, একটি DeviceConfig পতাকা ( safety_center_is_enabled ) ব্যবহার করা হয় দূরবর্তীভাবে নিরাপত্তা কেন্দ্র সক্ষম বা নিষ্ক্রিয় করতে।

অ্যান্ড্রয়েড 14 এবং তার উপরে, আর কোনও পদক্ষেপের প্রয়োজন নেই কারণ এই পতাকাটি ডিফল্টরূপে true

Android 13-এ, নিরাপত্তা কেন্দ্র ডিফল্ট সার্ভার-সাইড দ্বারা অক্ষম এবং এই পতাকা ব্যবহার করে অনুমোদিত তালিকা দ্বারা সক্ষম করা হয়েছে। আপনার ডিভাইসের আঙ্গুলের ছাপ জমা দিন এবং অনুমতি তালিকায় যোগ করার জন্য আপনার TAM-এর সাথে যোগাযোগ করুন। মনে রাখবেন যে মেইনলাইন সংস্করণ M-2022-11 বা উচ্চতর অনুমোদিত তালিকায় যোগ করতে হবে। স্থানীয় উন্নয়ন এবং পরীক্ষার জন্য, একটি adb কমান্ডের সাহায্যে পতাকা স্থানীয়ভাবে (রিবুট না হওয়া পর্যন্ত) সক্রিয় বা নিষ্ক্রিয় করা যেতে পারে। উদাহরণস্বরূপ, পতাকা সক্ষম করতে:

adb root
adb shell device_config set_sync_disabled_for_tests until_reboot
adb shell device_config put privacy safety_center_is_enabled true

এবং নিরাপত্তা কেন্দ্র সক্ষম কিনা তা নিশ্চিত করতে:

adb root
adb shell cmd safety_center enabled

ডিভাইসে সেফটি সেন্টার সঠিকভাবে সক্ষম হয়েছে কিনা তা আউটপুট ফিরে আসবে।

কনফিগারেশন ফাইল আপডেট করুন

নিরাপত্তা কেন্দ্রের পর্দার বিষয়বস্তু পরিবর্তন করতে safety_center_config.xml কনফিগারেশন ফাইলটি ব্যবহার করুন। আপনি কাস্টমাইজেশন প্রয়োজনীয়তা পূরণ করেছেন ধরে নিয়ে এই ফাইলটি ওভারলে করতে পারেন৷

কনফিগারেশন ফাইল ওভারলে

safety_center_config.xml ফাইলটি ওভারলে করতে, রানটাইম রিসোর্স ওভারলে (RROs) পরিবর্তন করার বিষয়ে তথ্যের জন্য রানটাইমে একটি অ্যাপের সম্পদের মান পরিবর্তন দেখুন।

অ্যান্ড্রয়েড 14-এ, res/raw-v34/safety_center_config.xml ফাইলটি ওভারলে করা নিশ্চিত করুন এবং res/raw/safety_center_config.xml নয় কারণ পূর্বেরটি প্রাধান্য পায় (এটি অন্যান্য ফাইলের ক্ষেত্রেও প্রযোজ্য যেগুলি v34 এর জন্য স্কোপ করা হয়েছে যেমন res/values-v34/strings.xml )। ওভারলে প্যাকেজের একটি ন্যূনতম SDK 34 এর কম থাকতে হবে, অন্যথায় অপ্টিমাইজেশনের সময় v34 কোয়ালিফায়ারটি ছিনতাই হতে পারে। এছাড়াও একটি স্ট্যাটিক ওভারলে ব্যবহার করা নিশ্চিত করুন, কারণ এই মানটি বুট করার সময় লোড হয়।

অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) ডিভাইসের জন্য, com.android.safetycenter.resources প্যাকেজটি লক্ষ্য করুন। টার্গেট করার জন্য কোন ওভারলে কনফিগারেশন নেই। সমস্ত সংস্থান সামগ্রীতে কোনও সীমাবদ্ধতা ছাড়াই ওভারলেযোগ্য।

মেইনলাইন আপডেট পাওয়ার জন্য কনফিগার করা GMS ডিভাইসগুলির জন্য, প্যাকেজ com.google.android.safetycenter.resources লক্ষ্য করুন। SafetyCenterConfig কনফিগারেশন টার্গেট করুন। এই কনফিগারেশনের জন্য ওভারলে প্যাকেজটি product , system বা vendor পার্টিশনের মধ্যে থাকা প্রয়োজন। GMS OEM-এর উচিত Google-এর প্রদত্ত safety_center_config.xml ফাইলটি কপি করা এবং 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 ডিভাইসগুলির জন্য যেগুলি মেইনলাইন আপডেটগুলি পাওয়ার জন্য কনফিগার করা হয়নি, প্যাকেজটিকে লক্ষ্য করুন com.android.safetycenter.resources ৷ টার্গেট করার জন্য কোন ওভারলে কনফিগারেশন নেই। ওভারলে প্যাকেজটি অবশ্যই প্যাকেজের নাম com.google.android.safetycenter.resources ব্যবহার করবে।

GMS OEM-এর উচিত Google-এর প্রদত্ত safety_center_config.xml ফাইলটি কপি করা এবং 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>

গুগল কনফিগারেশন ফাইল

AOSP কনফিগারেশন ফাইলটি packages/modules/Permission/SafetyCenter/Resources/res/raw/safety_center_config.xml এ অবস্থিত।

অ্যান্ড্রয়েড 13 এ, গুগল কনফিগারেশন ফাইলটি হল:

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

অ্যান্ড্রয়েড 14-এ, গুগল কনফিগারেশন ফাইলটি হল:

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

নিরাপত্তা কেন্দ্র সূত্র কাস্টমাইজ করুন

নিরাপত্তা কেন্দ্রের উৎস প্রকার

উত্সগুলি গতিশীল, শুধুমাত্র-ইস্যু, বা স্ট্যাটিক হতে পারে, নিরাপত্তা কেন্দ্রে তারা যে ধরনের ডেটা প্রদান করে তার উপর ভিত্তি করে।

গতিশীল উত্স

নিরাপত্তা উৎসটিকে 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
    • নিরাপত্তা উৎসের জন্য অনন্য শনাক্তকারী, সম্পূর্ণ ফাইলে অনন্য হতে হবে এবং শুধুমাত্র বর্ণানুক্রমিক অক্ষর (az, AZ) দিয়ে গঠিত হতে হবে এবং কেস সংবেদনশীল
    • স্ট্রিং টাইপ
    • সমস্ত নিরাপত্তা উৎস ধরনের জন্য প্রয়োজন
  • packageName
    • এই নিরাপত্তা উৎসের মালিক প্যাকেজের নাম, উদাহরণস্বরূপ, com.google.android.permissioncontroller
    • স্ট্রিং টাইপ
    • গতিশীল এবং শুধুমাত্র সমস্যা-নিরাপত্তা উৎসের জন্য প্রয়োজনীয়
    • অ্যান্ড্রয়েড 13-এ স্ট্যাটিক নিরাপত্তা উত্সের জন্য নিষিদ্ধ; অ্যান্ড্রয়েড 14-এ এটি ঐচ্ছিকভাবে উৎসের intentAction উদ্দেশ্যমূলকভাবে লক্ষ্য করার জন্য সেট করা যেতে পারে (আরো বিশদ বিবরণের জন্য অভিপ্রায় রেজোলিউশন ডকুমেন্টেশন দেখুন)
  • initialDisplayState
    • নিরাপত্তা উৎস দ্বারা কোন তথ্য প্রদান করা না হলে কিভাবে UI এন্ট্রি প্রদর্শিত হয়
    • Enum টাইপ একটি স্ট্রিং হিসাবে উপস্থাপিত, নিম্নলিখিত একটি হতে হবে:
      • enabled (ডিফল্ট, সাধারণত প্রদর্শিত হয়)
      • disabled (প্রদর্শন ধূসর আউট, ক্লিক করা যাবে না)
      • hidden (প্রদর্শিত হয় না)
    • গতিশীল নিরাপত্তা উৎসের জন্য ঐচ্ছিক (ডিফল্ট enabled আছে)
    • শুধুমাত্র-ইস্যু এবং স্ট্যাটিক নিরাপত্তা উৎসের জন্য নিষিদ্ধ
  • profile
    • এই নিরাপত্তা উৎস ব্যবহারকারীর পরিচালিত প্রোফাইলের সাথে ইন্টারঅ্যাক্ট করে কিনা
    • Enum টাইপ একটি স্ট্রিং হিসাবে উপস্থাপিত, নিম্নলিখিত একটি হতে হবে:
      • primary_profile_only (শুধুমাত্র প্রোফাইল প্যারেন্টের সাথে ইন্টারঅ্যাক্ট করে)
      • all_profiles (পরিচালিত প্রোফাইল(গুলি) এর সাথেও ইন্টারঅ্যাক্ট করতে পারে)
    • all_profiles এ, বেশ কয়েকটি UI এন্ট্রি তৈরি হয় (প্রোফাইল অভিভাবকের জন্য একটি, এবং প্রতিটি পরিচালিত প্রোফাইলের জন্য একটি); নিরাপত্তা উত্স প্রতিটি প্রোফাইলের জন্য বিভিন্ন তথ্য প্রদান করতে পারে
    • সমস্ত নিরাপত্তা উত্স জন্য প্রয়োজনীয়
  • 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
    • প্রদত্ত 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 জন্য শংসাপত্র হ্যাশের একটি কমা দ্বারা পৃথক করা তালিকা। যদি এটি সেট করা থাকে, নিরাপত্তার উদ্দেশ্যে, নিরাপত্তা উৎসের সাথে ইন্টারঅ্যাক্ট করার সময় প্রদত্ত packageName জন্য প্রদত্ত packageCertificateHashes বিরুদ্ধে একটি শংসাপত্র পরীক্ষা করা হবে।
    • স্ট্রিং টাইপ
    • গতিশীল এবং শুধুমাত্র-ইস্যু সুরক্ষা উত্সগুলির জন্য ঐচ্ছিক (ডিফল্ট কোনও শংসাপত্র পরীক্ষা নয়)
    • স্ট্যাটিক নিরাপত্তা উত্স জন্য নিষিদ্ধ

সেফটি সেন্টার সোর্স গ্রুপ কাস্টমাইজ করুন

সেফটি সেন্টার সোর্স অবশ্যই সেফটি সেন্টার সোর্স গ্রুপের মধ্যে থাকতে হবে। প্রতিটি সোর্স গ্রুপ UI-তে প্রদর্শিত হয় যে ক্রমে সোর্স গ্রুপগুলি ফাইলে তালিকাভুক্ত করা হয়। প্রতিটি উৎস গোষ্ঠীর মধ্যে ক্রমানুসারে প্রদর্শিত হয় যেভাবে উৎসগুলি ফাইলে তালিকাভুক্ত হয়। যদি গোষ্ঠীটিতে একটি একক নিরাপত্তা উত্স থাকে, তবে এটি একটি গোষ্ঠীর পরিবর্তে একটি একক এন্ট্রি হিসাবে প্রদর্শিত হয়৷

নিরাপত্তা কেন্দ্র সূত্র গ্রুপ কনফিগারেশন

সেফটি সেন্টার সোর্স গ্রুপগুলি কাস্টমাইজ করতে নিম্নলিখিত ভেরিয়েবলগুলি ব্যবহার করুন:

  • id
    • নিরাপত্তা উত্স গোষ্ঠীর জন্য অনন্য শনাক্তকারী; সম্পূর্ণ ফাইলে অনন্য হতে হবে
    • স্ট্রিং টাইপ
    • প্রয়োজন
  • title
    • UI এ গ্রুপের শিরোনাম
    • রিসোর্স আইডি একটি সম্পূর্ণ যোগ্য রিসোর্স নাম হিসাবে উপস্থাপিত, উদাহরণস্বরূপ, @package:string/my_title
    • গ্রুপের মধ্যে অন্তত একটি গতিশীল বা স্ট্যাটিক নিরাপত্তার উৎস থাকলে প্রয়োজন (যেমন গ্রুপটি type="hidden" নয়)
  • summary
    • UI-তে গোষ্ঠীর সংক্ষিপ্ত বিবরণ, শিরোনামের নীচে প্রদর্শিত। নির্দিষ্ট অবস্থার অধীনে প্রদর্শিত হয়, সাধারণত যখন ডেটা প্রদান করা হয় না; অন্যথায়, সংক্ষিপ্তসারটি গোষ্ঠীর মধ্যে উৎস দ্বারা প্রদত্ত তথ্যের উপর ভিত্তি করে গণনা করা হয়।
    • রিসোর্স আইডি একটি সম্পূর্ণ যোগ্য সম্পদের নাম হিসাবে উপস্থাপিত হয়, উদাহরণস্বরূপ, @package:string/my_summary
    • ঐচ্ছিক (ডিফল্ট কোন সারাংশ নয়)
  • statelessIconType
    • গোষ্ঠীর জন্য আইকন টাইপ প্রদর্শিত হয় যখন নিরাপত্তা উত্স দ্বারা কোন অবস্থা প্রদান করা হয় না, উদাহরণস্বরূপ, স্ট্যাটিক এন্ট্রি
    • Enum টাইপ একটি স্ট্রিং হিসাবে উপস্থাপিত হয় যা অবশ্যই none বা privacy (গোপনীয়তা আইকনের প্রকার)
    • ঐচ্ছিক (ডিফল্ট none )
  • type (Android 14 শুরু হচ্ছে)
    • এই গোষ্ঠীটি নিরাপত্তা কেন্দ্রের সাথে কীভাবে ইন্টারঅ্যাক্ট করে তা যোগ্য করার জন্য একটি সুস্পষ্ট প্রকার
    • Enum টাইপ একটি স্ট্রিং হিসাবে উপস্থাপিত, নিম্নলিখিত একটি হতে হবে:
      • stateful (সামগ্রিক নিরাপত্তা কেন্দ্রের অবস্থা প্রদর্শন করে এবং অবদান রাখে)
      • stateless (প্রদর্শন করে এবং সামগ্রিক নিরাপত্তা কেন্দ্রের স্থিতিতে অবদান রাখে না)
      • hidden (প্রদর্শন করা হয় না, সমস্ত উত্স শুধুমাত্র সমস্যা হতে হবে)
    • ঐচ্ছিক, গোষ্ঠীতে থাকা নিরাপত্তা উত্সগুলি ব্যবহার করে ডিফল্টরূপে অনুমান করা হয় সেইসাথে summary এবং statelessIconType । যদি type নির্দিষ্ট করা হয় তবে কিছু অতিরিক্ত ইনভেরিয়েন্ট প্রয়োগ করা হয় তা নিশ্চিত করার জন্য যে এটি গ্রুপের সম্মুখীন হওয়া উত্সগুলির সাথে মেলে (উদাহরণস্বরূপ, গোষ্ঠীটি hidden যাবে না যদি এতে ব্যবহারকারী-দৃশ্যমান এন্ট্রি থাকে)

সেফটি সেন্টার সোর্স গ্রুপ প্রকার

সেফটি সেন্টার সোর্স গ্রুপগুলিকে নির্দিষ্ট ক্ষেত্রের অবস্থার উপর ভিত্তি করে রাষ্ট্রীয়, রাষ্ট্রহীন বা লুকানো হিসাবে শ্রেণীবদ্ধ করা হয়।

রাষ্ট্রীয় দল

একটি গোষ্ঠী যার একটি শিরোনাম এবং একটি সারাংশ উভয়ই রয়েছে, বা stateLessIconType="privacy" সামগ্রিক নিরাপত্তা কেন্দ্রের স্থিতিতে রাষ্ট্রীয় অবদান হিসাবে বিবেচিত হয়:

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

অ্যান্ড্রয়েড 13-এ, এই ধরনের একটি গ্রুপ UI-তে সংকোচনযোগ্য এন্ট্রি হিসাবে দেখাবে। অ্যান্ড্রয়েড 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 ডিভাইসগুলির জন্য যেগুলি মেইনলাইন আপডেটগুলি পাওয়ার জন্য কনফিগার করা হয়নি, পুরো কনফিগারেশন ফাইলটি ওভারলে করার পরিবর্তে, আপনি সমস্ত কাস্টমাইজেশন প্রয়োজন মেটাতে ছয়টি স্ট্রিং সংস্থান ওভারলে করতে পারেন৷ ওভারলে করা স্ট্রিং সংস্থানগুলি টেবিলে তালিকাভুক্ত করা হয়েছে।

স্ট্রিং রিসোর্স বর্ণনা
google_lock_screen_sources_summary একটি স্ট্যাটিক সারাংশ সংজ্ঞায়িত করতে এই মানটি ওভারলে করুন যা AndroidLockScreenSources গ্রুপের জন্য প্রদর্শিত হয় যখন গ্রুপের সমস্ত উত্স একটি ভাল অবস্থায় থাকে (তথ্য বা অনির্দিষ্ট তীব্রতা স্তর)। ডিফল্টরূপে, সেফটি সেন্টার গ্রুপের সারাংশ হিসাবে সংযুক্ত গ্রুপের সমস্ত উত্সের শিরোনাম প্রদর্শন করে।
google_biometrics_title com.android.settings প্যাকেজের মালিকানাধীন বায়োমেট্রিক উত্সের জন্য একটি স্ট্যাটিক শিরোনাম সংজ্ঞায়িত করতে এই মানটি ওভারলে করুন যখন উত্স দ্বারা কোনও গতিশীল ডেটা সরবরাহ করা হয় না৷ com.android.settings প্যাকেজে উৎস দ্বারা প্রদত্ত শিরোনামটি গতিশীলভাবে ওভারলে করার সময় এটিকে ওভারলে করুন৷ এটি ডিফল্টরূপে উপেক্ষা করা হয় কারণ উৎসের প্রাথমিক প্রদর্শনের অবস্থা hidden থাকে।
google_biometrics_summary com.android.settings প্যাকেজের মালিকানাধীন বায়োমেট্রিক উত্সের জন্য একটি স্ট্যাটিক সারাংশ সংজ্ঞায়িত করতে এই মানটি ওভারলে করুন যখন উত্স দ্বারা কোনও গতিশীল ডেটা সরবরাহ করা হয় না। এটি ডিফল্টরূপে উপেক্ষা করা হয় কারণ উৎসের প্রাথমিক প্রদর্শনের অবস্থা hidden থাকে।
google_biometrics_search_terms com.android.settings প্যাকেজের মালিকানাধীন বায়োমেট্রিক উত্সের জন্য অনুসন্ধান পদগুলির একটি তালিকা নির্ধারণ করতে এই মানটি ওভারলে করুন৷
google_biometrics_initial_display_state com.android.settings প্যাকেজের মালিকানাধীন বায়োমেট্রিক উত্সের জন্য একটি UI এন্ট্রি দেখানোর জন্য এই মানটি ওভারলে করুন যখন উত্স দ্বারা কোনও গতিশীল ডেটা সরবরাহ করা হয় না৷ ডিফল্ট মান hidden হয়।
google_security_updates_intent ব্যবহারকারীকে নিরাপত্তা আপডেট চেক এবং ইনস্টল করার অনুমতি দেয় এমন কার্যকলাপ খোলার জন্য প্রয়োজনীয় অভিপ্রায় পরিবর্তন করতে এই মানটি ওভারলে করুন। এই অভিপ্রায় কর্ম একটি রপ্তানি কার্যকলাপ সঙ্গে যুক্ত করা আবশ্যক. ডিফল্ট মান হল android.settings.SYSTEM_UPDATE_SETTINGS

com.google.android.safetycenter.resources প্যাকেজে অন্য কোনো স্ট্রিং ওভারলেয়েবল নয়।

AOSP ডিভাইসগুলির জন্য, com.android.safetycenter.resources প্যাকেজের সমস্ত সংস্থান বিষয়বস্তুর উপর কোন সীমাবদ্ধতা ছাড়াই ওভারলেযোগ্য।

GMS ডিভাইসগুলির জন্য যেগুলি মেইনলাইন আপডেটগুলি পাওয়ার জন্য কনফিগার করা হয়নি, একটি com.google.android.safetycenter.resources প্যাকেজ তৈরি করুন যা GTS পরীক্ষার দ্বারা প্রত্যাশিত সমস্ত স্ট্রিংগুলিকে সংজ্ঞায়িত করে com.android.safetycenter.resources প্রতিস্থাপন করে বা ওভারলে করে৷

এই স্ট্রিংগুলি হল:

  • 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 পরীক্ষা দ্বারাও সমর্থিত যা ফাইলটি ভালভাবে তৈরি না হলে অতিরিক্ত প্রসঙ্গ প্রদান করতে পারে ( লগক্যাট ডিভাইস লগের উপরে)।

Google পরিষেবা ডিভাইস

GMS ডিভাইসে, এই ফাইলটিতে কিছু সীমাবদ্ধতা আরোপ করা হয়। এটি GTS পরীক্ষা দ্বারা সমর্থিত।

AOSP ডিভাইস

AOSP ডিভাইসগুলিতে, কনফিগারেশন ফাইলটি অবশ্যই ভালভাবে তৈরি হতে হবে এবং নিরাপত্তা কেন্দ্রের জন্য CTS পরীক্ষায় উত্তীর্ণ হতে হবে। পরীক্ষাগুলি যাচাই করে যে ফাইলটি ভালভাবে গঠিত। GMS ডিভাইসগুলিকেও এই পরীক্ষায় উত্তীর্ণ হতে হবে।