مخطط حِزم البيانات الوصفية للتطبيقات

بدءًا من نظام التشغيل 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_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS
  • 3: PURPOSE_Developer_COMMUNICATIONS
  • 4: PURPOSE_FRAUD_PREVENTION_Security
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: 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
سلسلة توضّح الموقع الإلكتروني للتطبيق.