بدءًا من نظام التشغيل Android 14، يمكن لأداة تثبيت حزمة Android نقل بيانات وصفية حول تطبيق معيّن، مثل ممارسات أمان البيانات، لاستخدامها في ميزات نظام Android الأساسي، مثل رسالة طلب إذن تحديد الموقع الجغرافي المعدَّلة.
هناك طريقتان لتقديم البيانات الوصفية هذه:
بالنسبة إلى التطبيق الذي يتم تحميله مسبقًا على صورة النظام، يمكن للشركات المصنّعة للأجهزة توفير بيانات وصفية حول التطبيق من خلال إضافة ملف XML إلى صورة النظام مع الحزمة القابلة للاحتفاظ بالبيانات الموضّحة أدناه.
بالنسبة إلى التطبيقات التي يتم تثبيتها أو تحديثها، لتحديد هذه البيانات الوصفية، على أدوات تثبيت التطبيقات تمرير عنصر
PersistableBundle
في طريقةsetAppMetadata()
.
تتكوّن الحزمة ذات المستوى الأعلى القابلة للتخطّي من أزواج المفتاح/القيم التالية. ويكون كل مفتاح اختياريًا، ما لم يتم تحديد خلاف ذلك.
version
(مطلوب)- رقم إصدار تنسيق البيانات الوصفية للتطبيق استخدم
2
كقيمة لهذا الإصدار الحالي وlong
كنوع. إذا تغيّرت المفاتيح أو أنواع المحتوى المتوقّعة لـAppMetadata
، سيغيّر Android رقم الإصدار. safety_labels
- كائن
PersistableBundle
يحدد safety-labels للتطبيق. system_app_safety_label
- عنصر
PersistableBundle
يحدّد system-app-safety-label للتطبيق. بالنسبة إلى التطبيقات التي تعمل كخدمة نظام، يتم استخدام الحزمةsystem_app_safety_label
بدلاً من حزمةsafety_labels
. transparency_info
- كائن
PersistableBundle
يحدد معلومات الشفافية الخاصة بالتطبيق.
تنسيق تصنيفات الأمان
تحتوي الحزمة safety_labels
على أزواج المفتاح/القيم التالية:
version
(مطلوب)- رقم إصدار تنسيق تصنيفات الأمان استخدم
1
كقيمة لهذا الإصدار الحالي وlong
كنوع. data_labels
- عنصر
PersistableBundle
الذي يحدد البيانات التي يجمعها التطبيق ويشاركها security_labels
- كائن
PersistableBundle
يحدد ممارسات التطبيق بحذف البيانات وتشفيرها third_party_verification
- عنصر
PersistableBundle
يحدِّد كيفية التحقّق من جهة خارجية لممارسات أمان البيانات في التطبيق.
البيانات التي يتم جمعها ومشاركتها
تحتوي الحزمة data_labels
على أزواج المفتاح/القيمة التالية:
data_collected
- عنصر
PersistableBundle
يحدد أنواع البيانات التي يجمعها التطبيق. data_shared
- عنصر
PersistableBundle
يحدد أنواع البيانات التي يشاركها التطبيق.
فئات البيانات
يستخدم كل من المفتاحَين data_collected
وdata_shared
تنسيق الحزمة data_category
الذي يحتوي على أزواج المفتاح/القيمة الموضّحة في القائمة التالية. ويتم ربط كل مفتاح بكائن PersistableBundle
يحدّد أنواع البيانات لفئة معيّنة.
personal
financial
location
email_text_message
photo_video
audio
storage
health_fitness
contacts
calendar
identifiers
app_performance
actions_in_app
search_and_browsing
أنواع البيانات
يتم ربط كل مفتاح في حزمة data_category
بحزمة مختلفة تستخدم التنسيق data_type
. وتعتمد المفاتيح التي تحدّدها بتنسيق data_type
على ما تختاره لـ data_category
.
يظهر أزواج data_type
من المفاتيح/القيم المحتمَلة في القوائم التالية. وتكون قيمة كل من هذه المفاتيح هي كائن PersistableBundle
يصف ممارسات استخدام البيانات الخاصة بالتطبيق لنوع البيانات المحدد. تستخدم بعض أنواع البيانات
مفتاحًا واحدًا فقط.
شخصية
name
email_address
physical_address
phone_number
race_ethnicity
political_or_religious_beliefs
sexual_orientation_or_gender_identity
personal_identifiers
other
المسائل المالية
card_bank_account
purchase_history
credit_score
other
الموقع الجغرافي
approx_location
precise_location
الرسائل الإلكترونية والرسائل النصية
emails
text_messages
other
الصور والفيديوهات
photos
videos
الصوت
sound_recordings
music_files
other
مساحة التخزين
files_docs
اللياقة البدنية
health
fitness
جهات الاتصال
contacts
التقويم
calendar
المعرِّفات
other
أداء التطبيق
crash_logs
performance_diagnostics
other
الإجراءات داخل التطبيق
user_interaction
in_app_search_history
installed_apps
user_generated_content
other
البحث والتصفّح
web_browsing_history
استخدام البيانات
تحتوي الحزمة data_usage
على أزواج المفتاح/القيمة التالية:
purposes
(مطلوب)-
مصفوفة من الأعداد الصحيحة تمثّل أسبابًا محدّدة لجمع البيانات أو مشاركتها وتستخدم طريقة
PersistableBundle
putIntArray
. يجب استخدام غرض واحد على الأقل من الأغراض المحدّدة أدناه لكل حزمة.1
: PURPOSE_APP_FUNCTIONALITY2
: PURPOSE_ANALYTICS3
: PURPOSE_Developer_COMMUNICATIONS4
: PURPOSE_FRAUD_PREVENTION_Security5
: PURPOSE_ADVERTISING6
: PURPOSE_PERSONALIZATION7
: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional
-
القيمة المنطقية تُحدِّد ما إذا كان يمكن للمستخدمين الموافقة على جمع البيانات أو إيقافه.
ملاحظة: اضبط هذه القيمة فقط لحِزم
data_category
التي تمثّل عملية جمع البيانات، ولا تضبطها لمشاركة البيانات. ephemeral
-
القيمة المنطقية يحدِّد ما إذا كان التطبيق يعالج البيانات من جهة الخادم في الذاكرة فقط، وليس على القرص، وأنّ التطبيق يحتفظ بالبيانات لمدة أطول من اللازم لمعالجة طلب معالجة البيانات المحدّد.
ملاحظة: اضبط هذه القيمة فقط لحِزم
data_category
التي تمثّل عملية جمع البيانات، ولا تضبطها لمشاركة البيانات.
ممارسات حذف البيانات وتشفيرها
تحتوي الحزمة security_labels
على أزواج المفتاح/القيمة التي تمثل ممارسات حذف البيانات وتشفيرها في التطبيق:
is_data_deletable
- قيمة منطقية. يحدد ما إذا كان التطبيق يسمح للمستخدم بأن يطلب من التطبيق حذف بياناته.
is_data_encrypted
- قيمة منطقية. يحدِّد ما إذا كانت جميع بيانات المستخدمين التي يجمعها التطبيق يتم تشفيرها أثناء النقل أم لا.
إثبات الملكية من خلال جهة خارجية
تتألف حزمة third_party_verification
من مفتاح واحد، وهو url
. يحدِّد عنوان URL هذا، الذي يتم تمثيله كقيمة سلسلة، الموقع الإلكتروني التابع للجهة الخارجية الذي يتم استخدامه للتحقّق من معلومات أمان البيانات الخاصة بالتطبيق.
تنسيق تصنيفات أمان خدمة النظام
بالنسبة إلى التطبيقات التي تعمل كخدمة نظام، يتم استخدام الحزمة system_app_safety_label
بدلاً من الحزمة safety_labels
وتحتوي على
أزواج المفتاح/القيم التالية:
url
(مطلوب)
- عنوان URL يشير إلى صفحة تحتوي على معلومات الأمان للتطبيق الذي يعمل كخدمة نظام.
- استخدِم
string
كنوع. - وفي حال عدم توفيرها، يجب استخدام عنوان URL لسياسة الخصوصية كبديل.
- ملاحظة: يستخدم "متجر Google Play"
privacy_policy
كعنصر احتياطي.
تنسيق معلومات الشفافية
تحتوي الحزمة transparency_info
على أزواج المفتاح/القيم التالية:
developer_info
- كائن
PersistableBundle
يحدد معلومات حول مطوّر التطبيق. app_info
- كائن
PersistableBundle
يحدد معلومات حول التطبيق.
معلومات المطوّر
تحتوي الحزمة developer_info
على أزواج المفتاح/القيمة التالية:
developer_#
- كائن
PersistableBundle
يحدد المطوّر. وتحتوي السمةdeveloper_info
علىdeveloper_#
واحد أو أكثر، حيث يكون#
عددًا صحيحًا. على سبيل المثالdeveloper_0
وdeveloper_1
وdeveloper_2
وما إلى ذلك.
مطوّر
تحتوي الحزمة developer_#
على أزواج المفتاح/القيمة التالية:
name
(مطلوب)- سلسلة توضح اسم المطوِّر
email
(مطلوب)- سلسلة توضح عنوان البريد الإلكتروني للمطوّر.
address
(مطلوب)- سلسلة توضح العنوان البريدي للمطوّر.
country_region
(مطلوب)- سلسلة توضّح بلد المطوِّر أو منطقته
website
- سلسلة توضّح الموقع الإلكتروني للمطوّر.
app_registry
- سلسلة توضّح المتجر أو السجلّ الخاص بالمطوّر
- إذا كان المطوّر مسجّلاً أيضًا في متجر أو قاعدة بيانات المسجّلين أخرى، يجب أن تكون القيمة عبارة عن اسم حزمة Android للمتجر أو عنوان URL للسجلّ.
- يُسمح بإدخالات متعددة لمتاجر متعددة.
- بالنسبة إلى Google Play، استخدِم
com.android.vending
. - إذا كان المطوّر هو إحدى حِزم تطوير البرامج (SDK) المدرَجة في أداة Google Play SDK Index، يجب حذف هذه السمة.
- إذا لم يكن المطوّر مسجّلاً في أي متجر تطبيقات أو قاعدة بيانات المسجّلين، احذف هذه السمة.
app_registry_id
- سلسلة توضح رقم تعريف مطوّر البرامج للسمة
app_registry
المذكورة. - إذا كان المطوّر مسجّلاً أيضًا في متجر أو قاعدة بيانات المسجّلين أخرى، يجب أن تكون القيمة عبارة عن هوية المتجر أو قاعدة بيانات المسجّلين.
- يُسمح بإدخالات متعددة لمتاجر متعددة.
- بالنسبة إلى المطوّرين المسجَّلين لدى Google Play، يجب أن تكون هذه القيمة عنوان URL لصفحة المطوِّر (على سبيل المثال، يكون https://play.google.com/store/apps/dev?id=5700313618786177705 هو عنوان URL الخاص بمطوّر Google LLC).
- إذا كان المطوّر هو أحد مطوّري حِزم SDK المُدرَجة في أداة Google Play SDK Index، استخدِم عنوان URL لحزمة تطوير البرامج (SDK) في Google Play SDK Index (مثلاً، https://play.google.com/sdks/details/com-google-android-gms-play-services-ads هو عنوان URL لأداة Google Play SDK Index لحزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة.
- إذا كان المطوّر مسجّلاً في متجر آخر أو قاعدة بيانات المسجّلين أخرى، يمكن تقديم عنوان URL لمتجر التطبيقات أو معرّف آخر.
- إذا لم يكن المطوّر مسجّلاً في أي متجر تطبيقات، يمكن حذف هذه السمة.
معلومات التطبيقات
تحتوي الحزمة app_info
على أزواج المفتاح/القيمة التالية:
title
(مطلوب)- سلسلة توضّح عنوان التطبيق.
description
(مطلوب)- سلسلة توضح الغرض من التطبيق في كائن ثنائي كبير من النص يمكن لشخص عادي قراءته باللغة الإنجليزية.
contains_ads
(مطلوب)- قيمة منطقية توضّح ما إذا كان التطبيق يعرض أي إعلانات
privacy_policy
(مطلوب)
- سلسلة تحتوي على سمة عنوان URL ترتبط بسياسة الخصوصية وتوضّح كيفية معالجة بيانات المستخدمين.
- مطلوبة للتطبيقات التي تنقل بيانات المستخدمين.
- إذا كان التطبيق لا يحتوي على هذا الرابط، فمن المفترض أن التطبيق لا يعالج بيانات المستخدمين.
category
(مطلوب)سلسلة تحتوي على إحدى فئات التطبيقات التالية التي تصف الغرض الأساسي من التطبيق على أفضل نحو:
- Android (لمكوّن AOSP فقط)*
- الفن والتصميم
- السيارات والمركبات
- منتجات التجميل
- الكتب والمراجع
- أنشطة تجارية
- كتب مصوّرة
- الاتصالات
- تعارف
- تعليم
- الترفيه
- الأحداث
- شؤون مالية
- مأكولات ومشروبات
- اسم اللعبة
- الصحة واللياقة البدنية
- خدمات المنازل
- أداة التثبيت (لمتجر التطبيقات أو أداة تثبيت أخرى فقط)*
- المكتبات والعروض التوضيحية
- أسلوب الحياة
- الخرائط والتنقُّل
- برنامج طبي
- الموسيقى والمقاطع الصوتية
- الأخبار والمجلات
- تربية أولاد
- التخصيص
- صورة فوتوغرافية
- الإنتاجية
- الأمان*
- التسوّق
- تواصل اجتماعي
- رياضة
- الأدوات
- السفر والدليل المحلي
- أداة التحديث (فقط لتطبيق التحديث التلقائي عبر شبكة غير سلكيّة على الجهاز)*
- مشغّلات الفيديو وأدوات تعديله
- الطقس
contact_info
- كائن
PersistableBundle
يتضمّن معلومات الاتصال الخاصة بالتطبيق (أدناه).
معلومات الاتصال
تحتوي الحزمة contact_info
على أزواج المفتاح/القيمة التالية:
email
(مطلوب)- سلسلة توضح عنوان البريد الإلكتروني للتطبيق.
website
- سلسلة توضّح الموقع الإلكتروني للتطبيق.