تعريف التوافق مع Android 12

1. مقدّمة

يذكر هذا المستند المتطلبات التي يجب استيفاؤها من أجل استخدام الأجهزة للتوافق مع الإصدار 12 من نظام التشغيل Android

إن استخدام "يجب" أو "يجب ألا" أو "مطلوب" أو "SHALL" أو "SHALL NOT" أو "يجب" "SHOULD NOT" و"RECOMMENDED" و"MAY" و"OPTIONAL" وفقًا لمعيار مجموعة مهندسي شبكة الإنترنت (IETF) كما هو محدّد في RFC2119.

وكما هو الحال في هذا المستند، فإن "أداة تنفيذ الجهاز" أو "التنفيذ" هو شخص أو مؤسسة تطوّر حلاً للأجهزة أو البرامج يعمل بنظام التشغيل Android 12- "تنفيذ الجهاز" أو "التنفيذ" هل لحل الأجهزة/البرامج مطور جدًا.

ليتم اعتبار الجهاز متوافقًا مع Android 12، يجب أن تستوفي عمليات التنفيذ المتطلبات الواردة في معايير التوافق هذه التعريف، بما في ذلك أيّ مستندات مدرَجة كمرجع

تم وصف الأماكن التي يظهر فيها هذا التعريف أو اختبارات البرامج القسم 10 صامت أو غامض أو غير مكتمل، فإن الشخص الذي ينفذه هو المسؤول عن ضمان التوافق مع عمليات التنفيذ الحالية.

ولهذا السبب، يحتوي مشروع مفتوح المصدر لنظام Android هو المرجع والتنفيذ المفضّل لنظام Android. الجهاز موصى به بشدة لجعل عمليات التنفيذ تستند إلى "أكبر قدر ممكن" في مرحلة "البداية" رمز المصدر المتاح من مشروع مفتوح المصدر لنظام Android وفي حين أن بعض المكونات يمكن افتراضيًا بعمليات تنفيذ بديلة، يُنصح بشدة بعدم اتبع هذه الممارسة، حيث سيصبح اجتياز اختبارات البرامج قريبًا أكثر صعوبة. تقع على عاتق القائم بالتنفيذ مسئولية ضمان إكمال ويشمل التوافق السلوكي مع تنفيذ نظام Android العادي، بما في ذلك أو خارج حزمة اختبار التوافق. أخيرًا، لاحظ أن هناك مكونات معينة يحظر هذا المستند صراحةً الاستبدال والتعديلات.

يتم اشتقاق العديد من الموارد المرتبطة بهذا المستند بشكل مباشر أو بشكلٍ غير مباشر من حزمة تطوير البرامج (SDK) لنظام التشغيل Android وستكون مطابقة من الناحية الوظيفية الواردة في مستندات حزمة SDK هذه في أي حالات ينطبق فيها هذا "التوافق" لا يتوافق التعريف أو "حزمة اختبار التوافق" مع حزمة تطوير البرامج (SDK) فإن وثائق حزمة SDK تعتبر موثوقة. أي أسئلة فنية التفاصيل المقدمة في الموارد المرتبطة في هذا المستند التي يتم اعتبارها عند التضمين كجزء من تعريف التوافق هذا.

1.1 بنية المستند

1.1.1. المتطلبات حسب نوع الجهاز

تحتوي القسم 2 على جميع المتطلبات التي تنطبق على لنوع جهاز معين. يعتبر كل قسم فرعي من القسم 2 مخصص لنوع جهاز معين.

جميع المتطلبات الأخرى التي تنطبق بشكل عام على أي جهاز Android والتنفيذ، يتم سردها في الأقسام بعد القسم 2. تتم الإشارة إلى هذه المتطلبات باسم "المتطلبات الأساسية" في هذا المستند.

1.1.2. معرّف المتطلب

يتم تعيين معرّف الطلب لمتطلبات "يجب".

  • يتم تعيين المعرّف لمتطلبات "يجب" فقط.
  • يتم وضع علامة [SR] على المتطلبات المقترحة بشدة ولكن لم يتم تخصيص المعرّف.
  • يتكون رقم التعريف من : رقم تعريف نوع الجهاز - رقم تعريف الحالة - رقم تعريف الطلب. (مثل C-0-1).

يتمّ تحديد كل رقم تعريف على النحو التالي:

  • رقم تعريف نوع الجهاز (يمكنك الاطّلاع على مزيد من المعلومات في 2. أنواع الأجهزة)
    • ج: الأساسية (المتطلبات التي يتم تطبيقها على جميع عمليات تنفيذ أجهزة Android)
    • H: جهاز Android محمول
    • T: جهاز تلفزيون Android
    • A: تنفيذ نظام التشغيل Android Automotive
    • W: استخدام ساعة Android Watch
    • علامة التبويب: استخدام جهاز Android لوحي
  • معرّف الشرط
    • وعندما يكون هذا الشرط غير مشروط، يتم ضبط هذا المعرّف على القيمة 0.
    • عندما يكون المطلب مشروطًا، يتم تعيين 1 للأول. الحالة ويزيد العدد بمقدار 1 داخل نفس القسم من نفس نوع الجهاز.
  • معرّف المتطلب
    • يبدأ هذا المعرّف من 1 ويزداد بمقدار 1 داخل القسم نفسه لنفس الحالة.

1.1.3. معرّف الطلب في القسم 2

تتكون معرفات المتطلبات في القسم 2 من جزأين. الأول مع رقم تعريف القسم كما هو موضح أعلاه. ويحدد الجزء الثاني وشكل الجهاز ومتطلبات شكل الجهاز.

معرّف القسم متبوعًا بمعرّف الطلب الموضّح أعلاه.

  • يتكون رقم التعريف في القسم 2 مما يلي : رقم تعريف القسم / رقم تعريف نوع الجهاز: رقم تعريف الشرط: رقم تعريف الطلب (مثل 7.4.3/A-0-1)

2. أنواع الأجهزة

يوفر المشروع المفتوح المصدر لنظام Android حزمة برامج يمكن استخدامها لمجموعة متنوعة من أنواع الأجهزة وأشكال الأجهزة لتعزيز الأمان على الأجهزة، حزمة البرامج، بما في ذلك أي نظام تشغيل بديل أو نواة بديلة من المتوقع أن يتم تنفيذها في بيئة آمنة كما هو موضح الواردة في الفقرة 9 وأي مكان آخر ضمن مستند CDD هذا. تتوفّر بضعة أنواع من الأجهزة. لديها منظومة متكاملة لتوزيع التطبيقات راسخة بشكل أفضل نسبيًا.

يصف هذا القسم أنواع الأجهزة هذه، بالإضافة إلى المتطلبات والتوصيات السارية على كل نوع جهاز.

جميع عمليات تنفيذ أجهزة Android التي لا تنطبق على أي من الإجراءات الموضَّحة أن تستوفي أنواع الأجهزة جميع المتطلبات الواردة في الأقسام الأخرى من هذا تعريف التوافق

2.1 إعدادات الأجهزة

للتعرّف على الاختلافات الرئيسية في ضبط الأجهزة حسب الجهاز نوع الجهاز، فراجع المتطلبات المتعلقة بالجهاز والتي تلي في هذا القسم.

2.2. متطلبات حمل الجهاز باليد

يشير جهاز Android محمول إلى عملية تنفيذ لجهاز Android يتم استخدامها عادةً من خلال حملها في اليد، مثل مشغّل mp3 أو هاتف أو لوحي.

تُصنف عمليات تنفيذ أجهزة Android على أنها أجهزة محمولة باليد إذا استوفت جميع المعايير التالية:

  • يجب أن يتوفّر لديك مصدر طاقة يتيح التنقّل، مثل البطارية.
  • أن يكون حجم الشاشة القطري 3.3 بوصة (أو 2.5 بوصة) البوصة لعمليات تنفيذ الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة التطبيقات أو مستوى أقدم) إلى 8 بوصات.

إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ الأجهزة المحمولة باليد.

ملاحظة: يتم وضع علامة * على المتطلبات التي لا تنطبق على أجهزة Android اللوحية.

2.2.1. الأجهزة

عمليات تنفيذ الأجهزة المحمولة:

  • [7.1.1.1/H-0-1] يجب أن يحتوي على واحد على الأقل شاشة متوافقة مع Android وتفي بجميع المتطلبات الموضّحة في هذه جلسة المراجعة.
  • [7.1.1.3/H-SR-1] يُوصى بشدة بـ قدرة المستخدمين على تغيير حجم العرض (كثافة الشاشة).

  • [7.1.1.1/H-0-2] يجب أن يتوافق مع تركيب وحدة معالجة الرسومات مساحات تخزين مؤقت للرسومات بحجم لا يقل عن أعلى دقة من أي وحدة تخزين مدمجة العرض.

إذا كانت عمليات تنفيذ الأجهزة المحمولة تتيح تدوير شاشة البرامج، سيتم إجراء ما يلي:

  • [7.1.1.1/H-1-1]* يجب أن تجعل الشاشة المنطقية المتاحة للتطبيقات التابعة للجهات الخارجية بمسافة لا تقل عن بوصتين على الحواف القصيرة و2.7 بوصة في الحواف الطويلة. قد تُستثنى الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة تطبيقات Android أو الإصدارات الأقدم من لهذا المطلب.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد لا تتيح تدوير شاشة البرنامج، وهي:

  • [7.1.1.1/H-2-1]* يجب أن تجعل الشاشة المنطقية المتوفرة لتطبيقات الجهات الخارجية على الأقل 2.7 بوصة على الحواف القصيرة. قد تُستثنى الأجهزة التي تم شحنها إلى المستوى 29 من واجهة برمجة تطبيقات Android أو الإصدارات الأقدم من لهذا المطلب.

في حال كانت عمليات تنفيذ الأجهزة المحمولة باليد تشترط دعم النطاق العالي الديناميكية العرض من خلال Configuration.isScreenHdr() فإنهم:

  • [7.1.4.5/H-1-1] يجب أن تعلن عن دعم EGL_EXT_gl_colorspace_bt2020_pq، EGL_EXT_surface_SMPTE2086_metadata، EGL_EXT_surface_CTA861_3_metadata وVK_EXT_swapchain_colorspace و VK_EXT_hdr_metadata إضافات.

عمليات تنفيذ الأجهزة المحمولة:

  • [7.1.4.6/H-0-1] يجب أن يبلغ عن ما إذا كان الجهاز إمكانية تحليل وحدة معالجة الرسومات من خلال إحدى خصائص النظام graphics.gpu.profiler.support

في حال إعلان عمليات تنفيذ الأجهزة المحمولة عن توفُّر الدعم من خلال موقع نظام graphics.gpu.profiler.support، إن:

  • [7.1.4.6/H-1-1] يجب أن يتم الإبلاغ عنه باعتباره إخراجًا تتبُّع النماذج الأوّلية التي تتوافق مع مخطط عدّادات وحدة معالجة الرسومات ووحدة معالجة الرسومات أوقات العرض المحدّدة في مستندات Perfetto.
  • [7.1.4.6/H-1-2] يجب أن تُبلِغ عن قيم مطابقة. لعدّادات وحدة معالجة الرسومات في الجهاز بعد نموذج تتبع عدّاد وحدة معالجة الرسومات (gpu).
  • [7.1.4.6/H-1-3] يجب أن تُبلِغ عن قيم مطابقة. لمراحل عرض وحدة معالجة الرسومات في الجهاز بعد عرض نموذج أوّلي لحزمة تتبُّع المرحلة.
  • [7.1.4.6/H-1-4] يجب أن يتم الإبلاغ عن معدّل تكرار وحدة معالجة الرسومات. نقطة التتبع كما هو محدّد بالتنسيق: power/gpu_frequency.

عمليات تنفيذ الأجهزة المحمولة:

  • [7.1.5/H-0-1] يجب أن يتضمن دعمًا لنظام التشغيل القديم. وضع توافق التطبيقات كما هو مطبّق من قبل برنامج Android المفتوح رمز المصدر. أي أن عمليات تنفيذ الجهاز يجب ألا تغير المشغلات أو التي يتم عندها تفعيل وضع التوافق، ويجب ألا تؤدي إلى تغيير سلوك وضع التوافق نفسه.
  • [7.2.1/H-0-1] يجب أن يتضمن الدعم للجهات الخارجية. محرر أسلوب الإدخال (IME)
  • [7.2.3/H-0-3] يجب توفير وظيفة المنزل على جميع الشاشات المتوافقة مع Android والتي توفر الشاشة الرئيسية.
  • [7.2.3/H-0-4] يجب توفير وظيفة الرجوع على جميع شاشات العرض المتوافقة مع Android وميزة "Recents" (الأحدث) على واحد على الأقل من الشاشات المتوافقة مع Android.
  • [7.2.3/H-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار حدث دالة الرجوع (KEYCODE_BACK) إلى التطبيق الذي يعمل في المقدّمة. يجب ألا يستخدم النظام هذه الأحداث. ويمكن تشغيلها من خارج جهاز Android (مثل الأجهزة الخارجية) لوحة المفاتيح المتصلة بجهاز Android).
  • [7.2.4/H-0-1] يجب أن يسمح بإدخال الشاشة التي تعمل باللمس.
  • [7.2.4/H-SR-1] يُنصَح باستخدامها بشدة لإطلاق هو التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذ VoiceInteractionService أو نشاط يتعامل مع ACTION_ASSIST عند الضغط مع الاستمرار على KEYCODE_MEDIA_PLAY_PAUSE أو KEYCODE_HEADSETHOOK إذا كان النشاط الذي تعمل في المقدّمة لا يتعامل مع أحداث الضغط المطوّل هذه
  • [7.3.1/H-SR-1] يُوصى بشدة بأن تتضمن 3 محور ومقياس التسارع.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مقياس تسارع ثلاثي المحاور:

  • [7.3.1/H-1-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدل تكرار يصل إلى ما لا يقل عن 100 هرتز.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مستقبِل GPS/GNSS وتُبلغ القدرة على التطبيقات من خلال ميزة android.hardware.location.gps ، فإنها:

  • [7.3.3/H-2-1] يجب الإبلاغ عن قياسات GNSS حالما حتى إذا لم يتم الإبلاغ عن موقع تم حسابه من خلال GPS/GNSS بعد.
  • [7.3.3/H-2-2] يجب أن يبلغ عن نطاقات GNSS البديلة والنطاق الزائف. في الهواء الطلق بعد تحديد الموقع، في حين أن ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن جيروسكوبًا ثلاثي المحاور، سيتم:

  • [7.3.4/H-3-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث بمعدل تكرار يصل إلى ما لا يقل عن 100 هرتز.
  • [7.3.4/H-3-2] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.

تطبيقات الأجهزة المحمولة التي يمكن أن تُجري مكالمة صوتية وتوضّح أي قيمة بخلاف PHONE_TYPE_NONE في getPhoneType:

  • يجب أن يتضمّن [7.3.8/H] أداة استشعار التقارب.

عمليات تنفيذ الأجهزة المحمولة:

  • [7.3.11/H-SR-1] يُنصح بها لإتاحة استخدام أداة استشعار الوضع مع 6 أجهزة ودرجات الحرية.
  • [7.4.3/H] يجب أن يتوفر التوافق مع Bluetooth و Bluetooth LE.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن جهاز كاميرا منطقيًا يسرد والإمكانات باستخدام CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA، وهي:

  • [7.5.4/H-1-1] يجب أن يحتوي على مجال رؤية عادي (FOV) تلقائيًا ويجب أن تتراوح بين 50 و95 درجة.

عمليات تنفيذ الأجهزة المحمولة:

  • [7.6.1/H-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").
  • [7.6.1/H-0-2] يجب أن يعرض "صحيح" مع ActivityManager.isLowRamDevice() عندما تكون مساحة الذاكرة أقل من 1 غيغابايت المتاحة للنواة ومساحة المستخدم.

في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى توافق واجهة التطبيق الثنائية (ABI) مع 32 بت فقط:

  • [7.6.1/H-1-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 416 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت لإطارات الصور درجات دقة تصل إلى qHD (مثل FWVGA).

  • [7.6.1/H-2-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 592 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت للإطارات الدقة تصل إلى HD+ (مثل HD أو WSVGA).

  • [7.6.1/H-3-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 896 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم المخزن المؤقت للإطارات ودرجات دقة تصل إلى FHD (مثل WSXGA+ ).

  • [7.6.1/H-4-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1344 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطار تصل إلى QUD (مثل QWXGA)

في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى توافقها مع أيّ واجهة ABI 64 بت (مع أو بدون أيّ واجهة تطبيق ثنائية (ABI) 32 بت):

  • [7.6.1/H-5-1] الذاكرة المتاحة للنواة ومساحة المستخدم أن تكون 816 ميغابايت على الأقل إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطارات إلى qHD (مثل FWVGA).

  • [7.6.1/H-6-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 944 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة المخزن المؤقت للإطارات تصل إلى HD+ (مثل HD أو WSVGA).

  • [7.6.1/H-7-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 1280 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة مخزن مؤقت للإطارات تصل إلى FHD (مثل WSXGA+ ).

  • [7.6.1/H-8-1] الذاكرة المتاحة للنواة ويجب أن تكون مساحة المستخدم على الأقل 1824 ميغابايت إذا كانت الشاشة التلقائية تستخدم درجات دقة مخزن مؤقت للإطارات تصل إلى QUD (مثل QWXGA).

لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى مساحة الذاكرة التي تم توفيرها بالإضافة إلى أي ذاكرة مخصصة للأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي لا تندرج تحت بنية النواة على عمليات تنفيذ الأجهزة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مساحة ذاكرة أقل من 1 غيغابايت أو تساويها متاحة للنواة kernel ومساحة المستخدم، فإنها:

  • [7.6.1/H-9-1] يجب أن يفصح عن علامة الميزة. android.hardware.ram.low
  • يجب أن يحتوي [7.6.1/H-9-2] على 1.1 غيغابايت على الأقل من التخزين غير المتطاير للتطبيق بيانات خاصة (أي قسم " /data").

في حال كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمّن ذاكرة متوفّرة بسعة تزيد عن 1 غيغابايت إلى النواة kernel ومساحة المستخدم، فإنهما:

  • [7.6.1/H-10-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة التخزين غير المتطايرة متاحة البيانات الخاصة للتطبيق (أي قسم " /data").
  • يجب أن تشير إلى علامة الميزة android.hardware.ram.normal.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تزيد عن 2 غيغابايت أو تساويها وذاكرة أقل من 4 غيغابايت للنواة ومساحة المستخدم:

  • [7.6.1/H-SR-1] يُوصى بها بشدة لدعم مساحة المستخدم 32 بت فقط (كل من التطبيقات ورمز النظام)

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن ذاكرة أقل من 2 غيغابايت النواة kernel ومساحة المستخدم، فإنهما:

  • [7.6.1/H-1-1] يجب أن يتوافق مع واجهة ABI واحدة فقط (إما 64 بت فقط أو 32 بت) فقط).

عمليات تنفيذ الأجهزة المحمولة:

  • [7.6.2/H-0-1] يجب ألا يتم تقديم طلب. مساحة التخزين المشتركة أصغر من 1 غيبي بايت.
  • [7.7.1/H] يجب أن يحتوي على منفذ USB متوافق مع وضع الأجهزة الملحقة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا USB متوافقًا مع الأجهزة الملحقة فإنهم:

  • [7.7.1/H-1-1] يجب أن ينفذ ملحق Android المفتوح (AOA) واجهة برمجة التطبيقات.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا USB يتوافق مع وضع المضيف، وهي:

  • [7.7.2/H-1-1] يجب أن يتم تطبيق فئة صوت USB كما هو موثّق في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android

عمليات تنفيذ الأجهزة المحمولة:

  • [7.8.1/H-0-1] يجب أن يتضمن ميكروفون.
  • [7.8.2/H-0-1] يجب أن يتضمن إخراجًا صوتيًا وأن يقدِّم بيانًا android.hardware.audio.output

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد قادرة على تحقيق جميع الإنجازات متطلبات التوافق مع وضع الواقع الافتراضي (VR) وتضمين دعم له، فإنها:

  • يجب أن يفصح [7.9.1/H-1-1] عن علامة ميزة android.hardware.vr.high_performance
  • [7.9.1/H-1-2] يجب أن يتضمن تطبيقًا جارٍ تنفيذ android.service.vr.VrListenerService التي يمكن تفعيلها من خلال الواقع الافتراضي التطبيقات عبر android.app.Activity#setVrModeEnabled.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن منفذًا أو أكثر من منافذ USB-C في المضيف ووضع التنفيذ (فئة صوت USB)، بالإضافة إلى متطلبات الفقرة 7.7.2، فهي:

  • [7.8.2.2/H-1-1] يجب أن يوفر تعيين البرامج التالية من رموز HID:
الوظيفة عمليات التعيين السياق السُلوك
A صفحة استخدام HID: 0x0C
استخدام HID: 0x0CD
مفتاح النواة: KEY_PLAYPAUSE
مفتاح Android: KEYCODE_MEDIA_PLAY_PAUSE
تشغيل الوسائط الإدخال: ضغطة قصيرة
الإخراج: تشغيل أو إيقاف مؤقت
الإدخال: اضغط مع الاستمرار
الإخراج: تشغيل الطلب الصوتي
عمليات الإرسال: android.speech.action.VOICE_SEARCH_HANDS_FREE إذا كان الجهاز مقفل أو الشاشة مغلقة. يرسل android.speech.RecognizerIntent.ACTION_WEB_SEARCH بخلاف ذلك
مكالمة واردة الإدخال: ضغطة قصيرة
المخرج: قبول المكالمة
الإدخال: اضغط مع الاستمرار
الإخراج: رفض المكالمة
مكالمة جارية الإدخال: ضغطة قصيرة
الناتج: إنهاء المكالمة
الإدخال: اضغط مع الاستمرار
الإخراج: كتم صوت الميكروفون أو إعادته
B صفحة استخدام HID: 0x0C
استخدام HID: 0x0E9
مفتاح النواة: KEY_VOLUMEUP
مفتاح Android: VOLUME_UP
تشغيل الوسائط، مكالمة جارية الإدخال: ضغطة قصيرة أو طويلة
الإخراج: يؤدي إلى رفع مستوى صوت النظام أو سماعة الرأس.
C صفحة استخدام HID: 0x0C
استخدام HID: 0x0EA
مفتاح النواة: KEY_VOLUMEDOWN
مفتاح Android: VOLUME_DOWN
تشغيل الوسائط، مكالمة جارية الإدخال: ضغطة قصيرة أو طويلة
الإخراج: يُخفض مستوى صوت النظام أو سماعة الرأس
D صفحة استخدام HID: 0x0C
استخدام HID: 0x0CF
مفتاح النواة: KEY_VOICECOMMAND
مفتاح Android: KEYCODE_VOICE_ASSIST
الكل. يمكن أن تظهر في أي حالة. الإدخال: ضغطة قصيرة أو طويلة
الإخراج: تشغيل الطلب الصوتي
  • [7.8.2.2/H-1-2] يجب أن يؤدي إلى ACTION_HEADSET_PLUG عند إدخال قابس، ولكن فقط بعد أن تحتوي واجهات USB الصوتية ونقاط النهاية على بشكل صحيح من أجل تحديد نوع الطرف الكهربائي المتصل.

عندما يتم رصد أنواع طرفية صوت USB 0x0302، يتم إجراء ما يلي:

  • [7.8.2.2/H-2-1] يجب بث Intent ACTION_HEADSET_PLUG مع "الميكروفون" مجموعة إضافية على 0.

عندما يتم رصد أنواع طرفية صوت USB 0x0402، يتم إجراء ما يلي:

  • [7.8.2.2/H-3-1] يجب بث Intent ACTION_HEADSET_PLUG مع "الميكروفون" مجموعة إضافية على 1.

عند استدعاء واجهة برمجة التطبيقات AudioManager.getDevices() أثناء إنشاء جهاز USB الملحق قاموا بربطهم:

  • [7.8.2.2/H-4-1] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSink() إذا كان حقل نوع محطة صوت USB هو 0x0302.

  • [7.8.2.2/H-4-2] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSink() إذا كنت طرفا توصيل صوت USB حقل النوع هو 0x0402.

  • [7.8.2.2/H-4-3] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_HEADSET ودور isSource() في حال توصيل طرف توصيل صوت USB حقل النوع هو 0x0402.

  • [7.8.2.2/H-4-4] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSink() إذا كان حقل نوع محطة صوت USB هو 0x603.

  • [7.8.2.2/H-4-5] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSource() في حال موصّل صوت USB وهو 0x604.

  • [7.8.2.2/H-4-6] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSink() إذا كان نوع طرف توصيل صوت USB يبلغ 0x400.

  • [7.8.2.2/H-4-7] يجب أن يتم إدراج جهاز من النوع AudioDeviceInfo.TYPE_USB_DEVICE ودور isSource() في حال موصّل صوت USB حقل النوع هو 0x400.

  • [7.8.2.2/H-SR-1] يتم التوصية بها بشدة عند الاتصال بـ جهاز صوتي ملحق بمنفذ USB-C، لإجراء تعداد لأدوات وصف USB، يجب تحديد أنواع الوحدات الطرفية وبث Intent ACTION_HEADSET_PLUG بأقل من 1000 مللي ثانية.

في حال كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.audio.output android.hardware.microphone، وهي:

  • [5.6(#56_audio-latency)/H-1-1] يجب أن يتضمن متوسط رحلة ذهاب وعودة متواصلة وقت الاستجابة 800 ملي ثانية أو أقل على 5 قياسات، مع متوسط الانحراف المطلق أقل من 100 ملي ثانية، عبر مسار واحد متوافق على الأقل.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن مشغّلاً حسّيًا واحدًا على الأقل:

المشغِّل الخطي (LRA) هو نظام نوابض أحادي الكتلة وله التردد الرنانة السائد حيث تتحول الكتلة في اتجاه والحركة المطلوبة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن رنانًا خطيًا واحدًا على الأقل فإن:

  • يجب تحريك [7.10/H]* للمشغّل باللمس في المحور "س" في الاتجاه الرأسي.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تحتوي على مشغل حسّي، وهو المحور السيني المشغِّل الرنان الخطي (LRA):

  • [7.10/H]* يجب أن يكون له التردد رنان للمحور س أقل من 200 هرتز.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتبع عمليات تخطيط الثوابت اللمسية، فإنها:

2.2.2. وسائط متعددة

يجب أن تتوافق تطبيقات الأجهزة المحمولة باليد مع ترميز الصوت فك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:

  • [5.1/H-0-1] AMR-NB
  • [5.1/H-0-2] AMR-WB
  • [5.1/H-0-3] ملف MPEG-4 AAC الشخصي (AAC LC)
  • [5.1/H-0-4] ملف تعريف MPEG-4 HE AAC (AAC+ )
  • [5.1/H-0-5] AAC ELD (معيار AAC منخفض ومحسّن)

يجب أن تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

  • [5.2/H-0-1] H.264 AVC
  • [5.2/H-0-2] VP8

يجب أن تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

  • [5.3/H-0-1] H.264 AVC
  • [5.3/H-0-2] H.265 HEVC
  • [5.3/H-0-3] MPEG-4 SP
  • [5.3/H-0-4] VP8
  • [5.3/H-0-5] VP9

2.2.3. البرامج

عمليات تنفيذ الأجهزة المحمولة:

  • [3.2.3.1/H-0-1] يجب أن يحتوي على الذي يعالج ACTION_GET_CONTENT ACTION_OPEN_DOCUMENT, ACTION_OPEN_DOCUMENT_TREE, وACTION_CREATE_DOCUMENT على النحو الموضَّح في مستندات حزمة تطوير البرامج (SDK) وأن تمنح المستخدم القدرة على توفير الدعم للوصول إلى بيانات موفّر المستندات باستخدام واجهة برمجة التطبيقات DocumentsProvider.
  • [3.2.3.1/H-0-2]* يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، جميع أنماط فلاتر الأهداف العامة المحددة في التطبيق التالي الأهداف المُدرَجة هنا
  • [3.2.3.1/H-SR-1] قوية للغاية يُنصح به بالتحميل المُسبق لتطبيق بريد إلكتروني يمكنه التعامل مع ACTION_SENDTO أو ACTION_SEND أو ACTION_SEND_MULTIPLE ينوي إرسال رسالة بريد إلكتروني.
  • [3.4.1/H-0-1] يجب أن تقدم صورة كاملة تنفيذ واجهة برمجة تطبيقات android.webkit.Webview.
  • [3.4.2/H-0-1] يجب أن يتضمن متصفحًا مستقلاً لتصفح الويب للمستخدم العام.
  • [3.8.1/H-SR-1] يُوصى به بشدة تنفيذ مشغّل تطبيقات تلقائي يتيح تثبيت الاختصارات داخل التطبيق وWidgets.
  • [3.8.1/H-SR-2] يُوصى بها بشدة تنفيذ مشغّل افتراضي يتيح الوصول بسرعة إلى اختصارات توفّرها تطبيقات تابعة لجهات خارجية من خلال ShortcutManager واجهة برمجة التطبيقات.
  • [3.8.1/H-SR-3] يُوصى به بشدة لتضمين تطبيق مشغّل تلقائي يعرض شارات لرموز التطبيقات.
  • [3.8.2/H-SR-1] يُوصى بها بشدة لإتاحة أدوات التطبيقات التابعة لجهات خارجية
  • [3.8.3/H-0-1] يجب أن يسمح باستخدام خدمات الجهات الخارجية التطبيقات لإعلام المستخدمين بالأحداث المهمة من خلال Notification NotificationManager فئات واجهة برمجة التطبيقات.
  • [3.8.3/H-0-2] يجب أن يتوافق مع الإشعارات.
  • [3.8.3/H-0-3] يجب توفير التنبيهات الإشعارات.
  • [3.8.3/H-0-4] يجب أن يتضمن مركز الإشعارات، مما يوفر للمستخدم القدرة على التحكم بشكل مباشر (على سبيل المثال، الرد، أو التأجيل، أو الرفض، أو الحظر) من خلال خصائص المستخدم مثل أزرار الإجراءات أو لوحة التحكم كما هو مُنفذ في AOSP.
  • [3.8.3/H-0-5] يجب عرض الخيارات مقدمة من خلال RemoteInput.Builder setChoices() في مركز الإشعارات.
  • [3.8.3/H-SR-1] يُوصى به بشدة لعرض الخيار الأول المقدَّم من خلال RemoteInput.Builder setChoices() في مركز الإشعارات بدون أي تفاعل إضافي من المستخدم
  • [3.8.3/H-SR-2] يُوصى بها بشدة لعرض كل الخيارات المقدّمة من خلال RemoteInput.Builder setChoices() في مركز الإشعارات عندما يوسّع المستخدم جميع الإشعارات في مركز الإشعارات
  • [3.8.3.1/H-SR-1] يُوصى به بشدة لعرض الإجراءات التي Notification.Action.Builder.setContextual يتم ضبطه على أنّه true بما يتوافق مع الردود التي يعرضها Notification.Remoteinput.Builder.setChoices
  • [3.8.4/H-SR-1] يُوصى به بشدة إنشاء مساعد على الجهاز للتعامل مع إجراء المساعدة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة تتيح تنفيذ إجراء داعم، سيحدث ما يلي:

  • [3.8.4/H-SR-2] يُوصى بها بشدة اضغط مع الاستمرار على مفتاح HOME كتفاعل مخصص لتشغيل التطبيق المساعد على النحو الموضَّح في الفقرة 7.2.3. يجب إطلاقه التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذ VoiceInteractionService ، أو نشاط يتعامل مع هدف ACTION_ASSIST.

في حال كانت عمليات تنفيذ الأجهزة المحمولة متوافقة مع conversation notifications وتجميعهم في قسم منفصل من غير المحادثات التنبيهية والصامتة الإشعارات، فإنها:

  • [3.8.4/H-1-1]* يجب عرض إشعارات المحادثات قبل إشعارات غير المحادثات مع باستثناء الإشعارات المستمرة للخدمة التي تعمل في المقدّمة الأهمية:مرتفعة الإشعارات.

إذا كانت عمليات تنفيذ أجهزة Android المحمولة تتوافق مع شاشة القفل، سيتم إجراء ما يلي:

  • [3.8.10/H-1-1] يجب عرض القفل وإشعارات الشاشة، بما في ذلك نموذج إشعارات الوسائط.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتيح شاشة قفل آمنة:

  • [3.9/H-1-1] يجب أن ينفذ النطاق الكامل من إدارة الجهاز المحددة في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن دعمًا ControlsProviderService وControl واجهات برمجة التطبيقات والسماح لتطبيقات الجهات الخارجية بنشر عناصر التحكم في الأجهزة، وعندئذٍ:

  • يجب أن يُعلِن [3.8.16/H-1-1] عن الميزة الإبلاغ عن android.software.controls وضبطه على true
  • [3.8.16/H-1-2] يجب أن يوفر مستخدمًا القدرة على إضافة ملفات تعريف الارتباط الخاصة بالمستخدم وتعديلها وتحديدها وتشغيلها أدوات التحكم في الأجهزة المفضلة من خلال عناصر التحكم المسجلة بواسطة الجهات الخارجية التطبيقات من خلال ControlsProviderService وControl واجهات برمجة التطبيقات.
  • [3.8.16/H-1-3] يجب أن توفر الوصول إلى وأصبح بإمكان هذا المستخدم التعامل معه ضمن ثلاثة تفاعلات من مشغّل التطبيقات التلقائي.
  • [3.8.16/H-1-4] يجب أن يتم عرضه بدقة يوفر هذا المستخدم اسم ورمز كل تطبيق تابع لجهة خارجية توفّر عناصر التحكّم من خلال ControlsProviderService واجهة برمجة التطبيقات بالإضافة إلى أي حقول محدّدة توفّرها Control واجهات برمجة التطبيقات.

وبالعكس، إذا لم تنفذ عمليات تنفيذ الأجهزة المحمولة هذه عناصر التحكم، وهي:

عمليات تنفيذ الأجهزة المحمولة:

  • [3.10/H-0-1] يجب أن يتيح إمكانية وصول الجهات الخارجية
  • [3.10/H-SR-1] يُنصح بشدة بإضافتها مسبقًا-1 خدمات إمكانية الوصول على الجهاز التي يمكن مقارنة وظائفها بوظائف أو تجاوزها الوصول عبر مفتاح تحكُّم وTalkBack (للغات التي تتوفر بها التطبيقات المثبتة مسبقًا محرك تحويل النص إلى كلام) خدمات تسهيل الاستخدام على النحو الوارد في ميزة TalkBack المفتوحة. المصدر للمشروع.
  • [3.11/H-0-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.
  • [3.11/H-SR-1] يُوصى بشدة بتضمين محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز
  • [3.13/H-SR-1] يُوصى بشدة بتضمين مكوِّن واجهة مستخدم الإعدادات السريعة

إذا أعلنت عمليات تنفيذ أجهزة Android المحمولة عن FEATURE_BLUETOOTH أو فريق الدعم في "FEATURE_WIFI"، وهي:

  • [3.16/H-1-1] يجب أن يتوافق مع إقران الجهاز المصاحب. الجديدة.

إذا تم توفير وظيفة التنقّل كإجراء على الشاشة ومستند إلى الإيماءات:

  • [7.2.3/H] منطقة التعرّف على الإيماءات الخاصة بالشاشة الرئيسية يجب ألا يزيد ارتفاع الدالة عن 32 وحدة بكسل مستقلة الكثافة من أسفل الشاشة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد توفر وظيفة تنقُّل كإيماءة من أي مكان على الحافة اليسرى واليمنى للشاشة:

  • [7.2.3/H-0-1] منطقة الإيماءات في وظيفة التنقل يجب أن يقل عرضها عن 40 وحدة بكسل مستقلة الكثافة على كل جانب. ينبغي أن تكون منطقة الإيماءة يبلغ العرض التلقائي 24 بكسل مستقل الكثافة.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تدعم شاشة قفل آمنة من الذاكرة المتوفرة للنواة ومساحة المستخدم تبلغ 2 جيجا بايت، وهي:

  • [3.9/H-1-2] يجب أن يعلن عن إتاحة الملفات الشخصية المُدارة من خلال علامة ميزة واحدة (android.software.managed_users)

إذا أعلنت عمليات تنفيذ أجهزة Android المحمولة عن توافقها مع الكاميرا عبر android.hardware.camera.any:

2.2.4. الأداء والقوة

  • [8.1/H-0-1] وقت استجابة الإطار بشكل منتظم: يجب ألا يحدث وقت استجابة غير متسق أو تأخير عرض الإطارات أكثر. غالبًا ما يزيد عن 5 إطارات في الثانية، ومن المفترض أن يقل عن لقطة واحدة في الثانية.
  • [8.1/H-0-2] وقت استجابة واجهة المستخدم: يجب أن تضمن عمليات تنفيذ الأجهزة انطباع المستخدم بزمن انتقال سريع من خلال تمرير قائمة تضم 10 آلاف إدخال من الإدخالات على النحو المحدّد في "مجموعة أدوات اختبار التوافق مع Android" (CTS) في أقل من 36 ثانية.
  • [8.1/H-0-3] تبديل المهام: فعندما إطلاق تطبيقات متعددة، مما يؤدي إلى إعادة تشغيل تطبيق بعد تشغيله أقل من ثانية واحدة.

عمليات تنفيذ الأجهزة المحمولة:

  • [8.2/H-0-1] يجب أن يضمن استخدام تسلسل كتابة بيانات لا تقل عن 5 ميغا بايت/ثانية.
  • [8.2/H-0-2] يجب أن تضمن الكتابة العشوائية بسرعة لا تقل عن 0.5 ميغابايت/ثانية.
  • [8.2/H-0-3] يجب أن يضمن قراءة تسلسلية بسرعة لا تقل عن 15 ميغا بايت/ثانية.
  • [8.2/H-0-4] يجب أن تضمن قراءة عشوائية بسرعة لا تقل عن 3.5 ميغابايت/ثانية.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:

  • [8.3/H-1-1] يجب أن يوفر المستخدم القدرة على تمكين وتعطيل ميزة توفير شحن البطارية.
  • [8.3/H-1-2] يجب أن يوفر المستخدم إمكانية عرض المحتوى جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة

عمليات تنفيذ الأجهزة المحمولة:

  • [8.4/H-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
  • [8.4/H-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
  • [8.4/H-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android من خلال تنفيذ وحدة النواة uid_cputime.
  • [8.4/H-0-4] يجب استخدام هذا الطاقة متاح عبر adb shell dumpsys batterystats أمر Shell إلى مطور التطبيق.
  • [8.4/H] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن شاشة أو إخراج فيديو، سيتم إجراء ما يلي:

2.2.5. نموذج الأمان

عمليات تنفيذ الأجهزة المحمولة:

  • [9.1/H-0-1] يجب السماح لتطبيقات الجهات الخارجية بالوصول إلى إحصاءات الاستخدام عبر إذن android.permission.PACKAGE_USAGE_STATS توفير آلية يمكن للمستخدم الوصول إليها لمنح أو إبطال إمكانية الوصول إلى هذه التطبيقات في ردّ على android.settings.ACTION_USAGE_ACCESS_SETTINGS والنية.

عمليات تنفيذ الأجهزة المحمولة:

  • [9.11/H-0-2] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
  • يجب أن يتضمّن [9.11/H-0-3] تطبيقات لترميز RSA وAES. خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
  • [9.11/H-0-4] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
  • [9.11/H-0-5] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
  • [9/H-0-1] يجب أن يشير إلى "android.hardware.security.model.النقاط" الجديدة.

يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح. مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية، ما لم يتم الإعلان عن ميزة android.hardware.fingerprint التي تتطلّب ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.

عندما تتوافق عمليات تنفيذ الأجهزة المحمولة باليد مع شاشة قفل آمنة:

  • [9.11/H-1-1] يجب أن يسمح للمستخدم باختيار الأقصر مهلة السكون، وهي وقت انتقال من فتح القفل إلى القفل المقفل إلى 15 ثانية أو أقل.
  • [9.11/H-1-2] يجب أن يوفر المستخدم إمكانية الإخفاء وإيقاف جميع أشكال المصادقة باستثناء مصادقة أساسية موضحة في 9.11.1 شاشة القفل الآمنة: يفي AOSP بـ المطلوب كوضع إلغاء التأمين.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن عدة مستخدمين لا تعلن عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/H-2-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.

إذا كانت عمليات تنفيذ الأجهزة المحمولة باليد تتضمن عدة مستخدمين الإعلان عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/H-3-1] يجب ألا يكون الدعم خاضعًا لقيود ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.

يتيح Android، من خلال واجهة برمجة تطبيقات VoiceInteractionService، آلية رصد الكلمة المفتاح الآمنة قيد التشغيل دائمًا بدون إشارة إلى الوصول إلى الميكروفون

في حال كانت عمليات تنفيذ الأجهزة المحمولة تتوافق مع System API HotwordDetectionService أو آلية أخرى لاكتشاف الكلمة المفتاح بدون مؤشر الوصول إلى الميكروفون، فإنّها:

  • [9.8/H-1-1] يجب التأكد من أن خدمة اكتشاف الكلمة المفتاح لا يمكنها إلا الإرسال البيانات إلى النظام أو ContentCaptureService
  • [9.8/H-1-2] يجب التأكد من أن خدمة اكتشاف الكلمة المفتاح لا يمكنها إلا الإرسال البيانات الصوتية للميكروفون أو البيانات المستمدة منها إلى خادم النظام من خلال HotwordDetectionService API، أو إلى ContentCaptureService من خلال واجهة برمجة تطبيقات ContentCaptureManager.
  • [9.8/H-1-3] يجب ألا يتم توفير صوت ميكروفون تزيد مدته عن 30 ثانية في طلب فردي يتم تشغيله بواسطة الأجهزة إلى خدمة كشف الكلمات المفتاح.
  • [9.8/H-1-4] يجب ألا يتم توفير صوت الميكروفون الذي تم تخزينه مؤقتًا لمدة تزيد عن 8 ثوانٍ لمدة طلب فردي إلى خدمة اكتشاف الكلمة المفتاح.
  • [9.8/H-1-5] يجب ألا يتم توفير صوت الميكروفون الذي تم تخزينه مؤقتًا وتزيد مدّته عن 30 ثانية في الجهاز. خدمة التفاعل الصوتي أو كيان مشابه.
  • [9.8/H-1-6] يجب ألا يسمح بنقل أكثر من 100 بايت من البيانات. لخدمة الكشف عن الكلمة المفتاح في كل نتيجة ناجحة للكلمة المفتاح.
  • [9.8/H-1-7] يجب ألا يسمح بنقل أكثر من 5 وحدات بت من البيانات. لخدمة الكشف عن الكلمة المفتاح في كل نتيجة من نتائج الكلمات المفتاح السلبية.
  • [9.8/H-1-8] يجب السماح بنقل البيانات خارج الكلمة المفتاح فقط. خدمة كشف عند طلب التحقق من الكلمة المفتاح من خادم النظام.
  • [9.8/H-1-9] يجب ألا يسمح لتطبيق قابل للتثبيت من قبل المستخدم بتوفير خدمة اكتشاف الكلمات المفتاح.
  • [9.8/H-1-10] يجب ألا تظهر في البيانات الكمية حول استخدام الميكروفون في واجهة المستخدم. خدمة اكتشاف الكلمات المفتاح.
  • [9.8/H-1-11] يجب تسجيل عدد وحدات البايت المضمنة في كل عملية إرسال من خدمة الكشف عن الكلمات المفتاح للسماح بفحص الأمان الباحثين.
  • [9.8/H-1-12] يجب أن يتوفر وضع تصحيح أخطاء يسجّل المحتوى الأولي لكل الإرسال من خدمة اكتشاف الكلمة المفتاح للسماح بقابلية فحص والباحثين الأمنيين.
  • [9.8/H-1-13] يجب إعادة تشغيل عملية استضافة خدمة رصد الكلمة المفتاح مرة واحدة على الأقل كل ساعة أو كل 30 حدثًا من أحداث تشغيل الأجهزة، أيهما تأتي في المقام الأول.
  • [9.8/H-1-14] يجب عرض مؤشر الميكروفون، كما هو موضح في القسم 9.8.2: عند إرسال نتيجة كلمة تفعيل الإجراء بنجاح إلى الصوت خدمة التفاعل أو كيان مشابه.
  • [9.8/H-SR-1] يُوصى بها بشدة لإشعار المستخدمين قبل إعداد كمزود لخدمة اكتشاف الكلمات المفتاح.
  • [9.8/H-SR-2] يُوصى بها بشدة لمنع نقل البيانات غير المهيكلة خارج خدمة كشف الكلمات المفتاح.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن تطبيقًا يستخدم System API HotwordDetectionService، أو آلية مشابهة لاكتشاف الكلمة المفتاح بدون مؤشر استخدام الميكروفون، التطبيق:

  • [9.8/H-2-1] يجب أن يتم تقديم إشعار صريح للمستخدم بخصوص كل عبارة من عبارات البحث المخصص
  • [9.8/H-2-2] يجب ألا يحتفظ بالبيانات الصوتية الأولية أو البيانات المستمدة منها، من خلال خدمة الكشف عن الكلمات المفتاح.
  • [9.8/H-2-3] يجب ألا يتم الإرسال من خدمة رصد الكلمات المفتاح، الصوت أو البيانات التي يمكن استخدامها لإعادة إنشاء الصوت (كليًا أو جزئيًا)، أو المحتوى الصوتي غير ذي الصلة بالكلمة المفتاح، باستثناء ContentCaptureService

إذا كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.microphone، سيكون:

  • [9.8.2/H-4-1] يجب أن يتم عرض مؤشر الميكروفون عندما وصول أحد التطبيقات إلى البيانات الصوتية من الميكروفون، ولكن ليس عند لا يمكن الوصول إلى الميكروفون إلا من خلال HotwordDetectionService وSOURCE_HOTWORD ContentCaptureService أو التطبيقات التي تمتلك الأدوار الموضحة في الفقرة 9.1 مع معرّف CDD [C-4-X]. .
  • [9.8.2/H-4-2] يجب أن يعرض قائمة حديثة ونشطة التطبيقات التي تستخدم الميكروفون وفقًا لما يظهر من PermissionManager.getIndicatorAppOpUsageData()، إلى جانب أي إحالة الرسائل المرتبطة بها.
  • [9.8.2/H-4-3] يجب ألا يخفي مؤشر الميكروفون في تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم
  • [9.8.2/H-4-4] يجب أن يعرض قائمة حديثة ونشطة التطبيقات التي تستخدم الميكروفون كما أرجعها PermissionManager.getIndicatorAppOpUsageData()، إلى جانب أي رسائل تحديد مصدر مرتبطة بها.

إذا كانت عمليات تنفيذ الأجهزة المحمولة تشير إلى android.hardware.camera.any، سيكون:

  • [9.8.2/H-5-1] يجب أن يتم عرض مؤشر الكاميرا عند وصول التطبيق إلى بيانات الكاميرا المباشرة، ولكن ليس عند تشغيل الكاميرا تم الوصول إليها من خلال التطبيقات التي تمتلك الأدوار التي تم ذكرها في الفقرة 9.1 تتضمّن معرّف CDD [C-4-X].
  • [9.8.2/H-5-2] يجب عرض التطبيقات الحديثة والنشطة التي تستخدم الكاميرا على النحو الذي تم إرجاعه من PermissionManager.getIndicatorAppOpUsageData()، إلى جانب أي رسائل تحديد مصدر مرتبطة بها.
  • [9.8.2/H-5-3] يجب ألا يتم إخفاء مؤشر الكاميرا تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم

2.2.6. التوافق بين أدوات المطوّرين وخياراتهم

عمليات التنفيذ على الأجهزة المحمولة (* لا ينطبق على الأجهزة اللوحية):

  • [6.1/H-0-1]* يجب أن يتوافق مع أمر الغلاف cmd testharness

عمليات التنفيذ على الأجهزة المحمولة (* لا ينطبق على الأجهزة اللوحية):

  • Perfetto
    • [6.1/H-0-2]* يجب أن يكشف عن /system/bin/perfetto ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية
    • [6.1/H-0-3]* يجب أن يقبل البرنامج الثنائي Perfetto إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/H-0-4]* يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/H-0-5]* يجب أن يتم توفيره من خلال العرض ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.
    • [6.1/H-0-6]* يجب أن يكون البرنامج الخفي الذي يتم تتبُّعه يتم تفعيلها تلقائيًا (خاصّية النظام persist.traced.enable).

2.2.7. صف أداء الوسائط المحمولة

يُرجى الاطّلاع على القسم 7.11 للتعرّف على تعريف الوسائط. فئة الأداء.

2.2.7.1. الوسائط

إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.R android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، وبعد ذلك:

  • يجب أن يستوفي التطبيق متطلبات الوسائط المدرَجة في إصدار android 11 CDD. القسم 2.2.7.1

في حال عرض عمليات تنفيذ الجهاز المحمول باليد android.os.Build.VERSION_CODES.S لـ android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، فسيتم إجراء ما يلي:

  • [5.1/H-1-1] يجب الإعلان عن الحد الأقصى لعدد برامج فك ترميز الفيديو على الجهاز. التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر CodecCapabilities.getMaxSupportedInstances() وVideoCapabilities.getSupportedPerformancePoints() طريقة.
  • [5.1/H-1-2] يجب أن يدعم 6 حالات لجلسات برنامج فك ترميز الفيديو على الجهاز (AVC أو HEVC أو VP9* أو أحدث) في أي مجموعة برامج ترميز يتم تشغيلها بالتزامن مع دقة 720p بسرعة 30 لقطة في الثانية. *يجب ذكر مثالَين فقط في حال يتوفّر برنامج ترميز VP9.
  • [5.1/H-1-3] يجب الإعلان عن الحد الأقصى المسموح به لعدد برامج ترميز الفيديو على الأجهزة. التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر CodecCapabilities.getMaxSupportedInstances() وVideoCapabilities.getSupportedPerformancePoints() طريقة.
  • [5.1/H-1-4] يجب أن يتوفر 6 نسخ من برنامج ترميز الفيديو على الجهاز جلسات (AVC أو HEVC أو VP9* أو أحدث) في أيّ مجموعة برامج ترميز يتم تشغيلها بالتزامن مع دقة 720p بسرعة 30 لقطة في الثانية. *يجب ذكر مثالَين فقط. في حال توفّر برنامج ترميز VP9.
  • [5.1/H-1-5] يجب الإعلان عن الحد الأقصى المسموح به لعدد أجهزة تشفير الفيديو برامج فك الترميز التي يمكن تشغيلها بالتزامن في أي مجموعة من برامج الترميز عبر CodecCapabilities.getMaxSupportedInstances() وVideoCapabilities.getSupportedPerformancePoints() طريقة.
  • [5.1/H-1-6] يجب أن يدعم 6 حالات من الأجهزة وفك ترميز الفيديو على الجهاز جلسات برامج ترميز الفيديو (AVC أو HEVC أو VP9* أو الإصدارات الأحدث) في أيّ برنامج ترميز التي تعمل بالتزامن بدقة 720p بسرعة 30 لقطة في الثانية. *يجب استخدام مثيلَين فقط في حال توفّر برنامج ترميز VP9.
  • [5.1/H-1-7] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 50 ملي ثانية أو أقل جلسة ترميز فيديو بدقة 1080p أو أصغر لجميع برامج ترميز الفيديو على الأجهزة (بخلاف برنامج ترميز Dolby Vision) عند التحميل. يتم تحديد "التحميل هنا" جلسة تحويل ترميز متزامنة بين 1080p و720p للفيديو فقط باستخدام فيديو على الجهاز وبرامج الترميز بالإضافة إلى تهيئة تسجيل الصوت والفيديو بدقة 1080p.
  • [5.1/H-1-8] يجب أن يصل وقت استجابة إعداد برنامج الترميز إلى 40 ملي ثانية أو أقل جلسة ترميز صوت بسرعة 128 كيلوبت في الثانية أو بمعدل نقل بيانات أقل لجميع برامج ترميز الصوت عند قيد التحميل. يتم تحديد التحميل هنا على أنّه فيديو متزامن بين 1080p و720p فقط. لتحويل الترميز باستخدام برامج ترميز الفيديو للأجهزة ودقة 1080p تهيئة تسجيل الصوت والفيديو.
  • [5.3/H-1-1] يجب ألا يتم إسقاط أكثر من إطارين خلال 10 ثوانٍ. (أي أقل من 0.333% من انخفاض عدد اللقطات في الثانية) لجلسة فيديو بدقة 1080p بمعدّل 60 لقطة في الثانية قيد التحميل. يتم تحديد التحميل على فيديو متزامن بين 1080p و720p فقط. لتحويل الترميز باستخدام برامج ترميز الفيديو للأجهزة، بالإضافة إلى تشغيل الصوت بتنسيق AAC بسرعة 128 كيلوبت في الثانية
  • [5.3/H-1-2] يجب ألا يتم إسقاط أكثر من إطارين خلال 10 ثوانٍ أثناء تشغيل الفيديو تغيير درجة الدقة في جلسة فيديو بمعدل 60 لقطة في الثانية تحت التحميل. يتم تحديد التحميل على أنه جلسة تحويل ترميز متزامنة بين 1080p و720p للفيديو فقط باستخدام الأجهزة وبرامج ترميز الفيديو، بالإضافة إلى تشغيل الصوت بتنسيق AAC بسرعة 128 كيلوبت في الثانية.
  • [5.6/H-1-1] يجب أن يكون وقت استجابة النقر للنغمة أقل من 100 مللي ثانية باستخدام اختبار OboeTester انقر لتدرج اللون أو اختبار CTS Verifier انقر لدرجة اللون.

2.2.7.2. الكاميرا

إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.R android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، وبعد ذلك:

  • يجب أن يستوفي الجهاز متطلبات الكاميرا المدرَجة في إصدار android 11 CDD. القسم 2.2.7.2

في حال عرض عمليات تنفيذ الجهاز المحمول باليد android.os.Build.VERSION_CODES.S لـ android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، فسيتم إجراء ما يلي:

  • [7.5/H-1-1] يجب أن تتوفر به كاميرا خلفية أساسية بدقة 12 ميغابكسل على الأقل تدعم التقاط الفيديو بسرعة 4k بسرعة 30 لقطة في الثانية. الأساسية الكاميرا الخلفية هي الكاميرا الخلفية التي تتضمّن معرّفًا أدنى للكاميرا.
  • [7.5/H-1-2] يجب أن يتضمن كاميرا أمامية رئيسية ذات دقة 5 ميغابكسل على الأقل ويدعم التقاط الفيديو بدقة 1080p بسرعة 30 لقطة في الثانية. الأساسية الكاميرا الأمامية هي الكاميرا الأمامية التي لديها معرّف أدنى للكاميرا.
  • [7.5/H-1-3] يجب أن يتوافق مع السمة android.info.supportedHardwareLevel باعتباره FULL أو أفضل للتمرين الأساسي الخلفي وLIMITED أو أفضل للسباق الأمامي والكاميرا.
  • [7.5/H-1-4] يجب توفير الدعم CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME لكلتاهما الأساسيتين الكاميرات.
  • [7.5/H-1-5] يجب أن يكون وقت استجابة الالتقاط بتنسيق JPEG في الكاميرا2 < 1000 ملي ثانية لمدة دقة 1080p وفقًا لما تم قياسه من خلال اختبار أداء كاميرا CTS بموجب تكنولوجيا المعلومات ظروف الإضاءة (3000 كيلوبايت) لكلتا الكاميرتين الأساسيتين.
  • [7.5/H-1-6] يجب أن يكون هناك وقت استجابة لبدء تشغيل الكاميرا 2 (فتح الكاميرا للمعاينة الأولى) إطار) < 600 ملي ثانية وفقًا لقياس أداء كاميرا CTS ضمن تكنولوجيا المعلومات ظروف الإضاءة (3000 كيلوبايت) لكلتا الكاميرتين الأساسيتين.
  • [7.5/H-1-8] يجب أن يكون متوافقًا مع CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW وandroid.graphics.ImageFormat.RAW_SENSOR للكاميرا الخلفية الأساسية.

2.2.7.3. الأجهزة

في حال عرض عمليات تنفيذ الجهاز المحمول باليد android.os.Build.VERSION_CODES.R لـ android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، فسيتم إجراء ما يلي:

  • يجب أن يستوفي الجهاز متطلبات الأجهزة المذكورة في الإصدار android 11 CDD. القسم 2.2.7.3

إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.S android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، وبعد ذلك:

  • [7.1.1.1/H-2-1] يجب أن تكون دقة الشاشة 1080p على الأقل.
  • [7.1.1.3/H-2-1] يجب أن تبلغ كثافة الشاشة 400 نقطة لكل بوصة على الأقلّ.
  • يجب أن تتوفّر ذاكرة فعلية في الهاتف [7.6.1/H-2-1] بحجم 6 غيغابايت على الأقل.

2.2.7.4. الأداء

إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.R android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، وبعد ذلك:

  • يجب أن يستوفي متطلبات الأداء الواردة في android 11 CDD القسم 2.2.7.4

إذا كانت عمليات تنفيذ الأجهزة المحمولة تعرض الخطأ android.os.Build.VERSION_CODES.S android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، وبعد ذلك:

  • [8.2/H-2-1] يجب أن يضمن أداء كتابة تسلسلي لا يقل عن 125 ميغابايت/ثانية.
  • [8.2/H-2-2] يجب أن يضمن أداء كتابة عشوائي لا يقل عن 10 ميغابايت/ثانية.
  • [8.2/H-2-3] يجب أن يضمن أداء قراءة تسلسلي لا يقل عن 250 ميغابايت/ثانية.
  • [8.2/H-2-4] يجب أن يضمن أداء قراءة عشوائي لا يقل عن 40 ميغابايت/ثانية.

2.3. متطلبات التلفزيون

يشير جهاز تلفزيون Android إلى عملية تنفيذ لجهاز Android هي واجهة ترفيه لاستخدام الوسائط الرقمية والأفلام والألعاب والتطبيقات و/أو بث تلفزيوني مباشر للمستخدمين الذين يجلسون على بُعد عشرة أقدام ("استرخاء" أو "10 أقدام" واجهة المستخدم").

تُصنَّف عمليات تنفيذ أجهزة Android كأجهزة تلفزيون في حال استيفاء جميع المعايير التالية:

  • توفير آلية للتحكم عن بُعد في واجهة المستخدم المعروضة على الشاشة التي قد تكون على بعد عشرة أقدام من المستخدم.
  • أن تحتوي على شاشة مضمّنة يزيد طول قطرها عن 24 بوصة أو تتضمن منفذًا لإخراج الفيديو مثل VGA أو HDMI أو DisplayPort أو منفذ لاسلكي للعرض.

إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ أجهزة التلفزيون.

2.3.1. الأجهزة

عمليات تنفيذ أجهزة التلفزيون:

  • [7.2.2/T-0-1] يجب أن يتوافق مع D-pad.
  • [7.2.3/T-0-1] يجب توفير زر المنزل والرجوع الأخرى.
  • [7.2.3/T-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار حدث دالة الرجوع (KEYCODE_BACK) إلى التطبيق الذي يعمل في المقدّمة.
  • [7.2.6.1/T-0-1] يجب أن يتضمن الدعم للألعاب وجعلها تُعلن عن علامة الميزة android.hardware.gamepad.
  • [7.2.7/T] يجب أن يتوفر من خلاله وحدة تحكم عن بُعد يمكن للمستخدمين الوصول إلى التنقل الذي لا يعمل باللمس إدخالات مفاتيح التنقُّل الأساسية

إذا كانت عمليات تنفيذ أجهزة التلفزيون تتضمّن جيروسكوبًا ثلاثي المحاور، سيتم تطبيق ما يلي:

  • [7.3.4/T-1-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث حتى تردّد لا يقل عن 100 هرتز.
  • [7.3.4/T-1-2] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.

عمليات تنفيذ أجهزة التلفزيون:

  • [7.4.3/T-0-1] يجب أن يتوافق مع Bluetooth Bluetooth LE.
  • [7.6.1/T-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").

إذا كانت تطبيقات جهاز التلفزيون تشتمل على منفذ USB يتوافق مع وضع المضيف، وهي:

  • [7.5.3/T-1-1] يجب أن يتضمن الدعم لكاميرا خارجية يتصل من خلال منفذ USB هذا ولكن ليس بالضرورة أن يتم توصيله دائمًا.

إذا كانت عمليات تنفيذ أجهزة التلفزيون 32 بت:

  • [7.6.1/T-1-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 896 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • xhdpi أو أعلى على الشاشات الكبيرة
    • tvdpi أو أعلى على الشاشات الكبيرة جدًا

إذا كانت عمليات تنفيذ أجهزة التلفزيون هي 64 بت:

  • [7.6.1/T-2-1] الذاكرة المتاحة للنواة يجب أن يبلغ حجم مساحة المستخدم 1280 ميغابايت على الأقل إذا كانت أي من الكثافات التالية مُستعمَل:

    • 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • xhdpi أو أعلى على الشاشات الكبيرة
    • tvdpi أو أعلى على الشاشات الكبيرة جدًا

لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى يتم توفير مساحة الذاكرة بالإضافة إلى أي ذاكرة المخصصة لمكونات الأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي ليست تحت سيطرة النواة على عمليات تنفيذ الأجهزة.

عمليات تنفيذ أجهزة التلفزيون:

  • يجب أن يتضمّن [7.8.1/T] ميكروفون.
  • يجب أن يتضمّن [7.8.2/T-0-1] إخراجًا صوتيًا وأن يقدِّم بيانًا android.hardware.audio.output

2.3.2 وسائط متعددة

يجب أن تتوافق تطبيقات أجهزة التلفزيون مع ترميز الصوت التالي وفك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:

  • [5.1/T-0-1] ملف MPEG-4 AAC الشخصي (AAC LC)
  • [5.1/T-0-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
  • [5.1/T-0-3] AAC ELD (معيار AAC منخفض ومحسّن)

يجب أن تتوافق تطبيقات أجهزة التلفزيون مع ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

  • [5.2/T-0-1] H.264
  • [5.2/T-0-2] VP8

عمليات تنفيذ أجهزة التلفزيون:

  • [5.2.2/T-SR-1] يُنصح بشدة بدعمها ترميز H.264 للفيديوهات بدقة 720p و1080p بسرعة 30 لقطة في الثانية

يجب أن تتيح عمليات تنفيذ أجهزة التلفزيون فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

يجب أن تدعم عمليات تنفيذ أجهزة التلفزيون فك ترميز MPEG-2، كما هو مفصل في الفقرة 5.3.1، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:

  • [5.3.1/T-1-1] دقة عالية 1080p بسرعة 29.97 لقطة في الثانية باستخدام الملف الشخصي الرئيسي رفيع المستوى.
  • [5.3.1/T-1-2] دقة عالية 1080i بسرعة 59.94 لقطة في الثانية باستخدام الملف الشخصي الرئيسي رفيع المستوى. يجب أن تزيل تداخل فيديو MPEG-2 المتداخل وإتاحتها لتطبيقات الجهات الخارجية.

يجب أن تتيح عمليات تنفيذ أجهزة التلفزيون فك ترميز H.264، على النحو المفصّل في الفقرة 5.3.4، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:

  • [5.3.4/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي للمرجع
  • [5.3.4/T-1-2] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي الرئيسي
  • [5.3.4/T-1-3] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع مستوى الملف الشخصي العالي المستوى 4.2

يجب دعم عمليات تنفيذ أجهزة التلفزيون باستخدام برامج فك ترميز أجهزة H.265 فك ترميز H.265، على النحو المفصّل في الفقرة 5.3.5، عند استخدام المعدّلات العادية لعرض الإطارات في الفيديو والحلول بما في ذلك:

  • [5.3.5/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع المستوى 4.1 من الملف الشخصي الرئيسي

في حال تنفيذ أجهزة التلفزيون مع دعم برامج فك ترميز أجهزة H.265 فك ترميز H.265 والملف الشخصي لفك ترميز المحتوى بدقة فائقة:

  • [5.3.5/T-2-1] يجب أن يتوافق مع الملف الشخصي لفك ترميز المحتوى بدقة فائقة بمعدل 60 لقطة في الثانية مع الملف الشخصي من المستوى 5 من المستوى الرئيسي Main10

يجب أن تدعم عمليات تنفيذ أجهزة التلفزيون فك ترميز VP8، على النحو المفصّل في الفقرة 5.3.6، مع معدلات عرض الإطارات ودرجات الدقة القياسية للفيديو حتى بما في ذلك:

  • [5.3.6/T-1-1] ملف شخصي لفك ترميز المحتوى بدقة عالية وبدقة 1080p بمعدّل 60 لقطة في الثانية

يجب أن تتوافق عمليات تنفيذ أجهزة التلفزيون باستخدام برامج فك ترميز أجهزة VP9 مع VP9. فك التشفير، كما هو مفصل في القسم 5.3.7، بمعدلات عرض إطارات فيديو قياسية حلول تشمل ما يلي:

  • [5.3.7/T-1-1] دقة عالية 1080p بسرعة 60 لقطة في الثانية مع الملف الشخصي 0 (عمق لون 8 بت)

إذا كانت عمليات تنفيذ جهاز التلفزيون باستخدام برامج فك ترميز أجهزة VP9 متوافقة مع VP9 فك الترميز وملف فك ترميز المحتوى بدقة فائقة:

  • [5.3.7/T-2-1] يجب أن يتوافق مع الملف الشخصي لفك ترميز المحتوى بدقة فائقة على 60 لقطة في الثانية مع الملف الشخصي 0 (عمق ألوان 8 بت).
  • [5.3.7/T-2-1] يُنصح بشدة بدعمها ملف تعريف فك ترميز المحتوى بدقة فائقة بسرعة 60 لقطة في الثانية باستخدام الملف الشخصي 2 (بعمق 10 بت)

عمليات تنفيذ أجهزة التلفزيون:

  • [5.5/T-0-1] يجب أن يتضمن الدعم للإصدار الرئيسي من النظام مستوى الصوت وتخفيف مستوى إخراج الصوت الرقمي على المخرجات المتوافقة باستثناء مخرجات مرور الصوت المضغوط (التي لا يتم فيها فك ترميز الصوت على الجهاز).

إذا لم تكن تطبيقات أجهزة التلفزيون مزوّدة بشاشة مدمَجة، ولكن بدلاً من ذلك، يتم توفير جهاز عرض خارجي متصل عبر HDMI، حيث:

  • [5.8/T-0-1] يجب ضبط وضع إخراج HDMI على اختَر درجة الدقة القصوى التي يمكن استخدامها مع 50 هرتز أو 60 هرتز. معدل التحديث.
  • [5.8/T-SR-1] يُوصى بشدة بتوفيرها للمستخدم أداة اختيار معدّل تحديث HDMI القابلة للضبط
  • [5.8] يجب ضبط معدّل تحديث وضع إخراج HDMI إلى 50 هرتز أو 60 هرتز، اعتمادًا على معدل تحديث الفيديو للمنطقة الجهاز الذي تم بيعه فيه.

إذا لم تكن تطبيقات أجهزة التلفزيون مزوّدة بشاشة مدمَجة، ولكن بدلاً من ذلك، يتم توفير جهاز عرض خارجي متصل عبر HDMI، حيث:

  • [5.8/T-1-1] يجب أن يتوافق مع الإصدار 2.2 من HDCP.

إذا كانت عمليات تنفيذ أجهزة التلفزيون لا تتيح فك ترميز المحتوى بدقة فائقة بدلاً من ذلك، يتوافقون مع شاشة خارجية متصلة عبر HDMI، فإنها:

  • [5.8/T-2-1] يجب أن يتوافق مع HDCP 1.4

2.3.3. البرامج

عمليات تنفيذ أجهزة التلفزيون:

  • [3/T-0-1] يجب أن يفصح عن الميزات. android.software.leanback وandroid.hardware.type.television.
  • [3.2.3.1/T-0-1] يجب أن يتم تحميل ملف واحد أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا
  • [3.4.1/T-0-1] يجب أن تقدم صورة تنفيذ واجهة برمجة تطبيقات android.webkit.Webview.

إذا كانت عمليات تنفيذ أجهزة Android TV تتوافق مع شاشة القفل، سيتم إجراء ما يلي:

  • [3.8.10/T-1-1] يجب عرض القفل وإشعارات الشاشة، بما في ذلك نموذج إشعارات الوسائط.

عمليات تنفيذ أجهزة التلفزيون:

  • [3.8.14/T-SR-1] يُوصى بها بشدة لإتاحة وضع النوافذ المتعددة في وضع "نافذة ضمن النافذة" (PIP).
  • [3.10/T-0-1] يجب أن يتيح إمكانية وصول الجهات الخارجية
  • [3.10/T-SR-1] يُوصى بها بشدة التحميل المسبق لخدمات تسهيل الاستخدام على الجهاز التي يمكن مقارنتها مع خدمات تسهيل الاستخدام أو تجاوزها وظيفة "الوصول عبر مفتاح تحكّم" وTalkBack (للغات التي تتوفّر في خدمات إمكانية الوصول المثبتة مسبقًا على محرك تحويل النص إلى كلام) على النحو الوارد في مشروع Talkback مفتوح المصدر.

في حال الإبلاغ عن الميزة في عمليات تنفيذ أجهزة التلفزيون android.hardware.audio.output، إن:

  • [3.11/T-SR-1] يُوصى بشدة بتضمين محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز
  • [3.11/T-1-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.

عمليات تنفيذ أجهزة التلفزيون:

  • [3.12/T-0-1] يجب أن يتوافق مع "إطار عمل إدخال التلفزيون".

2.3.4 الأداء والقوة

  • [8.1/T-0-1] وقت استجابة الإطار بشكل منتظم: يجب ألا يحدث وقت استجابة غير متسق أو تأخير عرض الإطارات أكثر. غالبًا ما يزيد عن 5 إطارات في الثانية، ومن المفترض أن يقل عن لقطة واحدة في الثانية.
  • [8.2/T-0-1] يجب أن يضمن استخدام تسلسل كتابة أداء لا يقل عن 5 ميغابايت/ثانية.
  • [8.2/T-0-2] يجب أن تضمن الكتابة العشوائية بسرعة لا تقل عن 0.5 ميغابايت/ثانية.
  • [8.2/T-0-3] يجب أن يضمن استخدام تسلسل قراءة أداء لا يقل عن 15 ميغابايت/ثانية.
  • [8.2/T-0-4] يجب أن تضمن قراءة عشوائية بسرعة لا تقل عن 3.5 ميغابايت/ثانية.

إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:

  • [8.3/T-1-1] يجب أن يوفر المستخدم القدرة على تمكين وتعطيل ميزة توفير شحن البطارية.

إذا كانت أجهزة التلفزيون لا تتضمّن بطارية، يعني هذا ما يلي:

إذا كانت أجهزة التلفزيون تشتمل على بطارية:

  • [8.3/T-1-3] يجب أن يوفر المستخدم إمكانية عرض الإعلانات جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة

عمليات تنفيذ أجهزة التلفزيون:

  • [8.4/T-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
  • [8.4/T-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
  • [8.4/T-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android من خلال تنفيذ وحدة النواة uid_cputime.
  • [8.4/T] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
  • [8.4/T-0-4] يجب استخدام هذا الطاقة متاح عبر adb shell dumpsys batterystats أمر Shell إلى مطور التطبيق.

2.3.5. نموذج الأمان

عمليات تنفيذ أجهزة التلفزيون:

  • [9.11/T-0-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
  • [9.11/T-0-2] يجب أن يتم تنفيذ الترميزَين RSA وAES. خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
  • [9.11/T-0-3] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
  • [9.11/T-0-4] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
  • يجب أن يشير [9/T-0-1] إلى "android.hardware.security.model. النقاط". الجديدة.

يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح. مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية، ما لم يتم الإعلان عن ميزة android.hardware.fingerprint التي تتطلّب ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.

إذا كانت تطبيقات أجهزة التلفزيون تتيح استخدام شاشة قفل آمنة:

  • [9.11/T-1-1] يجب أن يسمح للمستخدم باختيار وضع السكون المهلة للانتقال من حالة القفل إلى الحالة المُقفَلة، مع الحد الأدنى المسموح به للمهلة يصل إلى 15 ثانية أو أقل.

إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن عدة مستخدمين لا تعلن عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/T-2-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.

إذا كانت عمليات تنفيذ جهاز التلفزيون تتضمن عدة مستخدمين الإعلان عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/T-3-1] يجب ألا يكون الدعم محظورًا ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.

إذا كانت عمليات تنفيذ أجهزة التلفزيون تشير إلى android.hardware.microphone، ينطبق ما يلي:

  • [9.8.2/T-4-1] يجب أن يتم عرض مؤشر الميكروفون عندما وصول أحد التطبيقات إلى البيانات الصوتية من الميكروفون، ولكن ليس عند لا يتم الدخول إلى الميكروفون إلا عن طريق HotwordDetectionService، SOURCE_HOTWORD، ContentCaptureService، أو التطبيقات التي تمتلك الأدوار المنصوص عليها في الفقرة 9.1 أذونات بمعرّف CDD C-3-X]
  • [9.8.2/T-4-2] يجب ألا يخفي مؤشر الميكروفون في تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم

إذا كانت عمليات تنفيذ أجهزة التلفزيون تشير إلى android.hardware.camera.any، ينطبق ما يلي:

  • [9.8.2/T-5-1] يجب أن يتم عرض مؤشر الكاميرا عند وصول التطبيق إلى بيانات الكاميرا المباشرة، ولكن ليس عندما يتم تشغيل الكاميرا الوصول إليها من خلال التطبيقات التي تمتلك الأدوار المنصوص عليها في الفقرة 9.1 الأذونات التي تحمل معرّف CDD [C-3-X]
  • [9.8.2/T-5-2] يجب ألا يخفي مؤشر الكاميرا تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم

2.3.6. التوافق بين أدوات المطوّرين وخياراتهم

عمليات تنفيذ أجهزة التلفزيون:

  • Perfetto
    • [6.1/T-0-1] يجب أن يكشف عن /system/bin/perfetto ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية
    • [6.1/T-0-2] يجب أن يقبل برنامج Perfetto الثنائي إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/T-0-3] يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/T-0-4] يجب أن يتم تقديمه من خلال الأداء ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.

2.4. متطلبات المشاهدة

يشير جهاز Android Watch إلى عملية تنفيذ لجهاز Android تهدف إلى يتم ارتداؤه على الجسم، ربما في المعصم.

تُصنَّف عمليات تنفيذ أجهزة Android على أنّها ساعة ذكية في حال استيفائها جميع المعايير التالية:

  • أن تحتوي على شاشة بطول قطري يتراوح بين 1.1 و2.5 بوصة.
  • توفُّر آلية لارتداء الجهاز على الجسم

إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. ساعات تنفيذ الأجهزة

2.4.1. الأجهزة

طريقة تنفيذ أجهزة الساعة:

  • يجب أن يشتمل [7.1.1.1/W-0-1] على شاشة بها الحجم القطري الفعلي في نطاق يتراوح بين 1.1 و2.5 بوصة.

  • [7.2.3/W-0-1] يجب أن تتوفر وظيفة المنزل للمستخدم، ودالة الرجوع ما عدا الحالات التي تكون فيها في UI_MODE_TYPE_WATCH.

  • [7.2.4/W-0-1] يجب أن يسمح بإدخال الشاشة التي تعمل باللمس.

  • [7.3.1/W-SR-1] يُوصى بشدة بأن تتضمن 3 محاور ومقياس التسارع.

إذا كانت عمليات تنفيذ جهاز الساعة تشتمل على جهاز استقبال GPS/GNSS والإبلاغ القدرة على التطبيقات من خلال ميزة android.hardware.location.gps ، فإنها:

  • [7.3.3/W-1-1] يجب الإبلاغ عن قياسات GNSS حالما حتى إذا لم يتم الإبلاغ عن موقع تم حسابه من خلال GPS/GNSS بعد.
  • [7.3.3/W-1-2] يجب أن يبلغ عن نطاقات GNSS البديلة والنطاق الزائف. في الهواء الطلق بعد تحديد الموقع، في حين أن ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.

إذا كانت عمليات تنفيذ جهاز الساعة الذكية تتضمن جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:

  • [7.3.4/W-2-1] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 1000 درجة في الثانية.

طريقة تنفيذ أجهزة الساعة:

  • [7.4.3/W-0-1] يجب أن يتوافق مع البلوتوث.

  • يجب أن يحتوي [7.6.1/W-0-1] على 1 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة للبيانات الخاصة للتطبيق (تُعرف أيضًا باسم قسم " /data").

  • يجب أن يحتوي [7.6.1/W-0-2] على ذاكرة بسعة 416 ميغابايت على الأقل. المتاحة للنواة ومساحة المستخدم.

  • [7.8.1/W-0-1] يجب أن يشتمل على ميكروفون.

  • [7.8.2/W] قد يتم إخراج صوت.

2.4.2 وسائط متعددة

ما مِن متطلّبات إضافية.

2.4.3. البرامج

طريقة تنفيذ أجهزة الساعة:

  • [3/W-0-1] يجب أن يفصح عن الميزة. android.hardware.type.watch
  • [3/W-0-2] يجب أن يتوافق مع uiMode = UI_mode_TYPE_watch.
  • [3.2.3.1/W-0-1] يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، جميع أنماط فلاتر الأهداف العامة المحددة في التطبيق التالي الأهداف المُدرَجة هنا

طريقة تنفيذ أجهزة الساعة:

تطبيقات الساعة الذكية التي تتضمّن توضيحًا لـ android.hardware.audio.output علامة الميزة:

  • [3.10/W-1-1] يجب توفير إمكانية الوصول التابعة لجهات خارجية
  • [3.10/W-SR-1] يُوصى بشدة بتحميلها مسبقًا خدمات إمكانية الوصول على الجهاز التي يمكن مقارنة وظائفها بوظائف أو تجاوزها الوصول عبر مفتاح تحكُّم وTalkBack (للغات التي تتوفر بها التطبيقات المثبتة مسبقًا محرك تحويل النص إلى كلام) خدمات إمكانية الوصول على النحو الوارد في مشروع Talkback مفتوح المصدر.

إذا كانت عمليات تنفيذ جهاز الساعة تعرض الميزة android.hardware.audio.output، وهي:

  • [3.11/W-SR-1] يُوصى بشدة بتضمينها محرّك تحويل النص إلى كلام متوافق مع اللغات المتاحة على الجهاز

  • [3.11/W-0-1] يجب أن يتيح تثبيت ومحركات تحويل النص إلى كلام (TTS) التابعة لجهات خارجية.

2.4.4. الأداء والقوة

إذا كانت عمليات تنفيذ جهاز الساعة الذكية تتضمّن ميزات لتحسين طاقة الجهاز التي يتم تضمينها في AOSP أو توسيع الميزات المضمنة في AOSP، فإنهم:

  • [8.3/W-SR-1] يُوصى بشدة بتوفيرها احتمالية عرض جميع التطبيقات المستثناة من وضع الاستعداد للتطبيقات أوضاع توفير الطاقة أثناء القيلولة.
  • [8.3/W-SR-2] يُوصى بشدة بتوفيرها تكاليف المستخدم لتمكين ميزة توفير شحن البطارية وتعطيلها.

طريقة تنفيذ أجهزة الساعة:

  • [8.4/W-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
  • [8.4/W-0-2] يجب الإبلاغ عن كل الطاقة. قيم الاستهلاك بالملي أمبير في الساعة (mAh).
  • [8.4/W-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android من خلال تنفيذ وحدة النواة uid_cputime.
  • [8.4/W-0-4] يجب استخدام هذا الطاقة متاح عبر adb shell dumpsys batterystats أمر Shell إلى مطور التطبيق.
  • [8.4/W] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.

2.4.5. نموذج الأمان

طريقة تنفيذ أجهزة الساعة:

  • [9/W-0-1] يجب أن يعلن عن android.hardware.security.model.compatible الجديدة.

إذا كانت عمليات تنفيذ جهاز الساعة تتضمن العديد من المستخدمين لا تعلن عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/W-1-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.

إذا كانت عمليات تنفيذ جهاز الساعة تتضمن العديد من المستخدمين الإعلان عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/W-2-1] يجب ألا يتم فرض قيود على ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.

2.5. متطلبات السيارات

يشير مصطلح استخدام Android Automotive إلى الوحدة الرئيسية للمركبة التي تعمل. Android كنظام تشغيل لجزء من النظام أو لكله و/أو بوظيفة نظام الترفيه والمعلومات.

تُصنَّف عمليات تنفيذ أجهزة Android على أنّها سيارات في حال أشارت إلى الميزة android.hardware.type.automotive أو استيفاء كل ما يلي المعايير.

  • أن تكون مضمَّنة كجزء من مركبة سيارة أو قابلة للتوصيل بها
  • استخدام شاشة في صف مقعد السائق باعتبارها شاشة العرض الأساسية

إنّ المتطلبات الإضافية الواردة في باقي هذا القسم خاصة بنظام Android. عمليات تنفيذ الأجهزة في السيارات.

2.5.1. الأجهزة

عمليات تنفيذ أجهزة السيارات:

  • [7.1.1.1/A-0-1] يجب أن يشتمل على شاشة لا تقل عن 6 البوصة في الحجم القطري الفعلي.
  • [7.1.1.1/A-0-2] يجب أن يتضمن تنسيق حجم الشاشة بما لا يقل عن 750 بكسل مستقل الكثافة × 480 بكسل مستقل الكثافة

  • [7.2.3/A-0-1] يجب أن يوفر وظيفة المنزل، ويمكن أن توفير دالّتَي الرجوع والأحدث.

  • [7.2.3/A-0-2] يجب أن يرسل كل من الضغط العادي والضغط مع الاستمرار حدث دالة الرجوع (KEYCODE_BACK) إلى التطبيق الذي يعمل في المقدّمة.

  • [7.3/A-0-1] يجب تنفيذه والإبلاغ GEAR_SELECTION، NIGHT_MODE, PERF_VEHICLE_SPEED وPARKING_BRAKE_ON.

  • [7.3/A-0-2] قيمة NIGHT_MODE أن تكون العلامة متوافقة مع الوضع الليلي/النهاري في لوحة البيانات ويجب أن تستند إلى إدخال أداة استشعار الضوء المحيط قد يكون مستشعر الإضاءة المحيطة الأساسي هو نفسه. باسم Photometer.

  • [7.3/A-0-3] يجب توفير حقل معلومات إضافي لجهاز الاستشعار TYPE_SENSOR_PLACEMENT كجزء من نظام SensorAdditionalInfo لكل جهاز استشعار متوفر.

  • [7.3/A-0-1] قد يكون الأمر غير مكتمل الموقع عن طريق دمج GPS/GNSS مع أدوات استشعار إضافية. إذا كان الموقع الجغرافي بالمقابل، يُنصح بشدة بتنفيذه والإبلاغ عنه أداة الاستشعار المقابلة الأنواع و/أو أرقام تعريف خصائص المركبات استخدام البيانات المختلفة.

  • [7.3/A-0-2] الموقع الجغرافي تم الطلب عبر LocationManager#requestLocationUpdates() يجب ألا تتطابق مع الخريطة.

إذا كانت عمليات تنفيذ أجهزة Automotive متوافقة مع OpenGL ES 3.1، سيتم إجراء ما يلي:

  • [7.1.4.1/A-0-1] يجب أن يفصح عن OpenGL ES 3.1 أو إصدار أحدث.
  • [7.1.4.1/A-0-2] يجب أن يتوافق مع Vulkan 1.1.
  • [7.1.4.1/A-0-3] يجب أن يشتمل على أداة تحميل Vulkan وتصدير جميع الرموز.

إذا كانت عمليات تنفيذ أجهزة السيارات تتضمّن مقياس تسارع ثلاثي المحاور:

إذا كانت عمليات تنفيذ أجهزة Automotive تشمل جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:

  • [7.3.4/A-2-1] يجب أن يكون قادرًا على الإبلاغ عن الأحداث حتى تردّد لا يقل عن 100 هرتز.
  • [7.3.4/A-2-3] يجب أن تكون قادرة على قياس تغييرات الاتجاه ما يصل إلى 250 درجة في الثانية.
  • [7.3.4/A-SR-1] يُنصح بشدة بضبط نطاق قياس الجيروسكوب ليكون +/-250 بكسل في الثانية لزيادة الدقة إلى أقصى حد ممكن

إذا كانت عمليات تنفيذ أجهزة السيارات تتضمن جهاز استقبال GPS/GNSS، ولكن لا اتصال البيانات المستندة إلى الشبكة الخلوية، فإنها:

  • [7.3.3/A-3-1] يجب أن يتم تحديد الموقع الجغرافي في أول مرة تشغيل جهاز استقبال GPS/GNSS أو بعد 4 أيام أو أكثر خلال 60 ثانية.
  • [7.3.3/A-3-2] يجب أن يفي بمعايير تحديد الوقت اللازم للإصلاح الأول كما هو كما هو موضح في 7.3.3/C-1-2 و7.3.3/C-1-6 لجميع طلبات الموقع الجغرافي الأخرى (أي الطلبات التي ليست المرة الأولى على الإطلاق أو بعد 4 أيام أو أكثر). المطلب 7.3.3/C-1-2 هو عادة ما يتم الاجتماع في المركبات التي لا يوجد بها اتصال بيانات مستند إلى الشبكة الخلوية، باستخدام تنبؤات مدار GNSS المحسوبة على المتلقي، أو باستخدام آخر موقع معروف للمركبة إلى جانب إمكانية الحساب في 60 ثانية على الأقل مع دقة موضع مرضية 7.3.3/C-1-3 أو الاثنين معًا.

عمليات تنفيذ أجهزة السيارات:

  • [7.4.3/A-0-1] يجب أن يتوافق مع Bluetooth ويجب تتيح هذه الميزة استخدام Bluetooth LE.
  • [7.4.3/A-0-2] عمليات تنفيذ Android Automotive يجب أن يتوافق مع ملفات البلوتوث التالية:
    • إجراء المكالمات الهاتفية من خلال ملف تعريف بدون لمس الجهاز (HFP)
    • تشغيل الوسائط باستخدام ملف تعريف توزيع الصوت (A2DP)
    • التحكّم في تشغيل الوسائط من خلال ملف تعريف التحكّم عن بُعد (AVRCP).
    • مشاركة جهات الاتصال باستخدام الملف الشخصي للدخول إلى دفتر الهاتف (PBAP)
  • [7.4.3/A-SR-1] يُنصح بشدة بدعمها الملف الشخصي للوصول إلى الرسائل (MAP).

  • [7.4.5/A] يجب أن تتوفّر إمكانية الاتصال بشبكة الجوّال اتصال البيانات المستند إلى الشبكة.

  • [7.4.5/A] قد يتم استخدام System API. ثابت NetworkCapabilities#NET_CAPABILITY_OEM_PAID لـ الشبكات التي يجب أن تكون متاحة لتطبيقات النظام.

كاميرا الرؤية الخارجية هي كاميرا تصور مشاهد من خارج الجهاز التنفيذ، مثل كاميرا السيارة.

عمليات تنفيذ أجهزة السيارات:

  • يجب أن تشمل كاميرا واحدة أو أكثر للعرض الخارجي.

إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن كاميرا مشاهدة خارجية، مثلاً كاميرا، فإنهم:

  • [7.5/A-1-1] يجب ألا تتوفر كاميرات للمشاهدة من الخارج عبر واجهات برمجة تطبيقات كاميرا Android، ما لم تكن متوافقة من خلال المتطلبات الأساسية للكاميرا
  • [7.5/A-SR-1] يُنصح بشدة بعدم تدويرها أو تعكس معاينة الكاميرا أفقيًا.
  • [7.5.5/A-SR-1] يُوصى بشدتها بأن يتم توجيهها بحيث ويتوافق البعد الطويل للكاميرا مع الأفق.
  • [7.5/A-SR-2] يُنصح بشدة بأن يكون لها حل بحد أدنى 1.3 ميغابكسل.
  • يجب أن يحتوي الجهاز إما على جهاز ذي تركيز ثابت أو EDOF (عمق مجال ممتد).
  • يجب أن يكون متوافقًا مع إطار عمل مزامنة Android.
  • قد يكون لديك إما التركيز التلقائي للأجهزة أو التركيز التلقائي للبرامج برنامج تشغيل الكاميرا.

عمليات تنفيذ أجهزة السيارات:

  • [7.6.1/A-0-1] يجب أن يحتوي على 4 غيغابايت على الأقل من مساحة تخزين غير متطايرة متاحة لبيانات التطبيق الخاصة (يُعرف أيضًا باسم قسم " /data").

  • [7.6.1/A] يجب تنسيق قسم البيانات لتقديم أداء محسّن وعمر أطول على وحدة تخزين الفلاش، على سبيل المثال باستخدام نظام الملفات f2fs.

إذا كانت عمليات تنفيذ أجهزة Automotive توفِّر مساحة تخزين خارجية مشتركة عبر من وحدة التخزين الداخلية غير القابلة للإزالة:

  • [7.6.1/A-SR-1] يُنصح بشدة بتقليلها نفقات الإدخال/الإخراج على العمليات التي يتم إجراؤها على وحدة التخزين الخارجية، على سبيل المثال عن طريق باستخدام SDCardFS.

في حال كانت عمليات تنفيذ أجهزة Automotive بنظام 32 بت:

  • [7.6.1/A-1-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 512 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 280 نقطة لكل بوصة أو أقل على الشاشات الصغيرة أو العادية
    • ldpi أو أقل على الشاشات الكبيرة جدًا
    • mdpi أو أقل على الشاشات الكبيرة
  • [7.6.1/A-1-2] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 608 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • xhdpi أو أعلى على الشاشات الصغيرة/العادية
    • hdpi أو أعلى على الشاشات الكبيرة
    • mdpi أو أعلى على الشاشات الكبيرة جدًا
  • [7.6.1/A-1-3] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 896 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • xhdpi أو أعلى على الشاشات الكبيرة
    • tvdpi أو أعلى على الشاشات الكبيرة جدًا
  • [7.6.1/A-1-4] الذاكرة المتاحة للنواة يجب أن يبلغ حجم مساحة المستخدم 1344 ميغابايت على الأقل إذا كانت أي من الكثافات التالية مُستعمَل:

    • 560 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • 400 نقطة لكل بوصة أو أكثر على الشاشات الكبيرة
    • xhdpi أو أعلى على الشاشات الكبيرة جدًا

إذا كانت عمليات تنفيذ أجهزة Automotive بنظام 64 بت:

  • [7.6.1/A-2-1] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 816 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 280 نقطة لكل بوصة أو أقل على الشاشات الصغيرة أو العادية
    • ldpi أو أقل على الشاشات الكبيرة جدًا
    • mdpi أو أقل على الشاشات الكبيرة
  • [7.6.1/A-2-2] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 944 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • xhdpi أو أعلى على الشاشات الصغيرة/العادية
    • hdpi أو أعلى على الشاشات الكبيرة
    • mdpi أو أعلى على الشاشات الكبيرة جدًا
  • [7.6.1/A-2-3] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1280 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 400 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • xhdpi أو أعلى على الشاشات الكبيرة
    • tvdpi أو أعلى على الشاشات الكبيرة جدًا
  • [7.6.1/A-2-4] الذاكرة المتاحة للنواة يجب أن تبلغ مساحة المستخدم 1824 ميغابايت على الأقل في حال استخدام أي من الكثافات التالية:

    • 560 نقطة لكل بوصة أو أعلى على الشاشات الصغيرة أو العادية
    • 400 نقطة لكل بوصة أو أكثر على الشاشات الكبيرة
    • xhdpi أو أعلى على الشاشات الكبيرة جدًا

لاحظ أن "الذاكرة المتاحة للنواة ومساحة المستخدم" أعلاه إلى مساحة الذاكرة التي تم توفيرها بالإضافة إلى أي ذاكرة مخصصة للأجهزة مثل الراديو والفيديو وما إلى ذلك، والتي لا تندرج تحت بنية النواة على عمليات تنفيذ الأجهزة.

عمليات تنفيذ أجهزة السيارات:

  • [7.7.1/A] يجب أن يحتوي على منفذ USB يتوافق مع وضع الأجهزة الملحقة.

عمليات تنفيذ أجهزة السيارات:

  • [7.8.1/A-0-1] يجب أن يتضمن ميكروفون.

عمليات تنفيذ أجهزة السيارات:

  • يجب أن يتضمّن [7.8.2/A-0-1] إخراجًا صوتيًا وأن يقدِّم بيانًا android.hardware.audio.output

2.5.2 وسائط متعددة

يجب أن تدعم عمليات تنفيذ الأجهزة في السيارات الترميز الصوتي التالي وفك ترميز التنسيقات وإتاحتها للتطبيقات التابعة لجهات خارجية:

  • [5.1/A-0-1] ملف MPEG-4 AAC الشخصي (AAC LC)
  • [5.1/A-0-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
  • [5.1/A-0-3] AAC ELD (معيار AAC منخفض ومحسّن)

يجب أن تدعم عمليات تنفيذ أجهزة السيارات ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

  • [5.2/A-0-1] H.264 AVC
  • [5.2/A-0-2] VP8

يجب أن تتوافق عمليات تنفيذ أجهزة السيارات مع فك ترميز الفيديو التالي وإتاحتها للتطبيقات التابعة للجهات الخارجية:

  • [5.3/A-0-1] H.264 AVC
  • [5.3/A-0-2] MPEG-4 SP
  • [5.3/A-0-3] VP8
  • [5.3/A-0-4] VP9

ننصح بشدة بعمليات تنفيذ أجهزة السيارات لدعم فك ترميز الفيديو التالي:

  • [5.3/A-SR-1] H.265 HEVC

2.5.3. البرامج

عمليات تنفيذ أجهزة السيارات:

  • [3/A-0-1] يجب أن يفصح عن الميزة android.hardware.type.automotive

  • [3/A-0-2] يجب أن يتوافق مع uiMode = UI_MODE_TYPE_CAR.

  • [3/A-0-3] يجب أن يتوافق مع جميع واجهات برمجة التطبيقات العامة في android.car.* مساحة الاسم.

إذا كانت عمليات تنفيذ أجهزة Automotive توفِّر واجهة برمجة تطبيقات خاصة بها android.car.CarPropertyManager مع android.car.VehiclePropertyIds, وهي:

  • [3/A-1-1] يجب ألا يتم إرفاق امتيازات خاصة بالنظام استخدام هذه الخصائص، أو منع تطبيقات الجهات الخارجية من استخدام هذه الخصائص.
  • [3/A-1-2] يجب ألا ينسخ موقع مركبة في حزمة تطوير البرامج (SDK)

عمليات تنفيذ أجهزة السيارات:

  • [3.2.1/A-0-1] يجب أن تتوافق مع جميع ثوابت الأذونات كما هو موثّق في الصفحة المرجعية لأذونات السيارات.

  • [3.2.3.1/A-0-1] يجب أن يتم تحميل ملف واحد أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا

  • [3.4.1/A-0-1] يجب أن يقدم تنفيذ واجهة برمجة تطبيقات android.webkit.Webview.

  • [3.8.3/A-0-1] يجب أن تعرض التي تستخدم Notification.CarExtender واجهة برمجة التطبيقات عندما تطلب تطبيقات تابعة لجهات خارجية

  • [3.8.4/A-SR-1] يُوصى بها بشدة إنشاء مساعد على الجهاز للتعامل مع إجراء المساعدة.

إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن زر "الضغط للتحدث"، سيتم ما يلي:

  • [3.8.4/A-1-1] يجب أن يستخدم الضغط لفترة قصيرة على زر الضغط للتحدث كتفاعل مخصص لتشغيل هو التطبيق المساعد الذي يختاره المستخدم، أو بعبارة أخرى التطبيق الذي ينفّذ VoiceInteractionService

عمليات تنفيذ أجهزة السيارات:

  • [3.8.3.1/A-0-1] يجب أن تكون صحيحة عرض الموارد على النحو الموضّح في Notifications on Automotive OS مستندات حزمة SDK.
  • [3.8.3.1/A-0-2] يجب أن تعرض تشغيل وكتم الصوت لإجراءات الإشعارات بدلاً من الإجراءات المقدمة من خلال Notification.Builder.addAction()
  • [3.8.3.1/A] يجب أن يقيّد استخدام مهام الإدارة الغنية بصريًا مثل عناصر التحكم في القناة لكل إشعار. قد تستخدم خصائص واجهة المستخدم لكل تطبيق لتقليل عناصر التحكم.

إذا كانت عمليات تنفيذ أجهزة Automotive تتيح خصائص HAL للمستخدم، سيتم إجراء ما يلي:

عمليات تنفيذ أجهزة السيارات:

  • [3.14/A-0-1] يجب أن يتضمن إطار عمل لواجهة مستخدم من أجل الدعم تطبيقات تابعة لجهات خارجية تستخدم واجهات برمجة تطبيقات الوسائط كما هو موضّح في القسم 3.14:
  • [3.14/A-0-2] يجب أن يسمح للمستخدم بالتفاعل بأمان مع تطبيقات الوسائط أثناء القيادة
  • [3.14/A-0-3] يجب أن يتوافق مع CAR_INTENT_ACTION_MEDIA_TEMPLATE إجراء Intent ضمني مع CAR_EXTRA_MEDIA_PACKAGE المزيد.
  • [3.14/A-0-4] يجب أن توفر إمكانية الانتقال إلى في تطبيق الوسائط التفضيل نشاطك، ولكن يجب تفعيلها فقط عندما لا تكون "قيود تجربة المستخدم في السيارة" سارية.
  • [3.14/A-0-5] يجب أن تعرض رسائل خطأ التي تم تعيينها بواسطة تطبيقات الوسائط، ويجب أن تدعم الإضافات الاختيارية ERROR_RESOLUTION_ACTION_LABEL وERROR_RESOLUTION_ACTION_INTENT.
  • [3.14/A-0-6] يجب أن يدعم تكاليف البحث داخل التطبيق في التطبيقات التي تتيح البحث.
  • [3.14/A-0-7] يجب أن يلتزم CONTENT_STYLE_BROWSABLE_HINT وCONTENT_STYLE_PLAYABLE_HINT التعريفات عند عرض MediaBrowser التسلسل الهرمي.

إذا كانت عمليات تنفيذ أجهزة Automotive تتضمّن تطبيق مشغّل تطبيقات تلقائيًا، سيتم ما يلي:

عمليات تنفيذ أجهزة السيارات:

  • [3.8/أ] قد تحظر التطبيق يطلب الدخول إلى وضع ملء الشاشة كما هو موضح في immersive documentation.
  • [3.8/A] قد يتم الإبقاء على شريط الحالة ظهور شريط التنقل في جميع الأوقات
  • [3.8/أ] قد تحظر التطبيق طلبات تغيير الألوان خلف عناصر واجهة مستخدم النظام، للتأكد تكون هذه العناصر مرئية بوضوح في جميع الأوقات.

2.5.4. الأداء والقوة

عمليات تنفيذ أجهزة السيارات:

  • [8.2/A-0-1] يجب أن يبلغ عدد وحدات بايت مكتوبة ومكتوبة على وحدة تخزين غير متطايرة لكل معرف UID لكل عملية، ومن ثم الإحصاءات متاحة للمطوّرين من خلال System API android.car.storagemonitoring.CarStorageMonitoringManager مؤتمر Android المفتوح يلبّي مشروع المصدر المتطلبات من خلال وحدة نواة uid_sys_stats.
  • [8.3/A-1-3] يجب أن يتوافق مع وضع المرآب.
  • [8.3/A] يجب أن يكون في "وضع المرآب" على الأقل 15 دقيقة بعد كل قيادة إلا:
    • تم استنزاف البطارية.
    • لم تتم جدولة مهام غير نشِطة.
    • يخرج السائق من "وضع المرآب".
  • [8.4/A-0-1] يجب أن يوفر ملف الطاقة لكل مكوّن ويحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
  • [8.4/A-0-2] يجب الإبلاغ عن كل الطاقة قيم الاستهلاك بالملي أمبير في الساعة (mAh).
  • [8.4/A-0-3] يجب الإبلاغ عن طاقة وحدة المعالجة المركزية الاستهلاك حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android من خلال تنفيذ وحدة النواة uid_cputime.
  • [8.4/A] يجب أن تُنسَب إلى مكون الجهاز نفسه إذا لم تتمكن من تحديد استخدام الطاقة لمكوّن الجهاز إلى أحد التطبيقات.
  • [8.4/A-0-4] يجب أن يتم استخدام الطاقة هذه متاح عبر adb shell dumpsys batterystats أمر Shell إلى مطور التطبيق.

2.5.5. نموذج الأمان

إذا كانت عمليات تنفيذ أجهزة Automotive على أجهزة تتيح تعدد المستخدمين، ينطبق عليهم ما يلي:

عمليات تنفيذ أجهزة السيارات:

  • [9.11/A-0-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح من خلال بيئة تنفيذ معزولة.
  • [9.11/A-0-2] يجب أن يتضمن تطبيق RSA أو AES خوارزميات التشفير ECDSA وHMAC، وعائلة MD5 وSHA1 وSHA-2 لتوافق وظائف التجزئة مع توافق نظام تخزين مفاتيح Android بشكل صحيح الخوارزميات في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية. البرامج المفتوحة المصدر لنظام Android يلبي المشروع (AOSP) هذا الشرط من خلال استخدام تنفيذ Trusty، حلّ مستند إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية تنفيذ عزل صحيح مستند إلى برنامج Hypervisor (مراقب الأجهزة الظاهرية) هو بديل الخيارات.
  • [9.11/A-0-3] يجب تنفيذ شاشة القفل في بيئة التنفيذ المعزولة وفقط عندما ناجحة، اسمح باستخدام المفاتيح المرتبطة بالمصادقة. شاشة القفل يجب تخزين بيانات الاعتماد بطريقة تسمح فقط بالتنفيذ المعزول لإجراء مصادقة شاشة القفل. أحدث إصدارات Android يوفر المشروع المفتوح المصدر طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
  • [9.11/A-0-4] يجب أن يتوافق مع مصادقة المفتاح حيث مفتاح توقيع المصادقة محمي بواسطة أجهزة آمنة ويتم التوقيع في أجهزة آمنة. يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة لمنع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تلبية هذا المطلب في مشاركة مفتاح المصادقة نفسه ما لم يتم توفير 100,000 وحدة على الأقل من رمز تخزين تعريفي معيّن إنتاجه. إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، يجب قد يُستخدم المفتاح لكل 100000 وحدة.
  • [9/A-0-1] يجب أن يشير إلى "android.hardware.security.model.النقاط" الجديدة.

يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح. مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية، ما لم يتم الإعلان عن ميزة android.hardware.fingerprint التي تتطلّب ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.

عمليات تنفيذ أجهزة السيارات:

  • [9.14/A-0-1] يجب أن يتم حفظ الرسائل من الأنظمة الفرعية للمركبات التي تعمل بإطار عمل Android، مثل إضافة الرسائل المسموح بها إلى القائمة المسموح بها ومصادر الرسائل المختلفة.
  • [9.14/A-0-2] يجب أن يراقب هجمات الحرمان من الخدمة من إطار عمل Android أو التطبيقات التابعة لجهات خارجية. هذا النمط توفر حماية من البرامج الضارة التي تغمر شبكة المركبات بحركة المرور، مما قد يؤدي إلى خلل في الأنظمة الفرعية للمركبة.

2.5.6. التوافق بين أدوات المطوّرين وخياراتهم

عمليات تنفيذ أجهزة السيارات:

  • Perfetto
    • [6.1/A-0-1] يجب أن يكشف عن /system/bin/perfetto ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض الترويجية
    • [6.1/A-0-2] يجب أن يقبل برنامج Perfetto الثنائي إدخال تهيئة Protobuf تتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/A-0-3] يجب كتابة البرنامج الثنائي للأداء على النحو التالي: إخراج تتبع أولي يتوافق مع المخطط المحدد في مستندات المزايا
    • [6.1/A-0-4] يجب أن يتم تقديمه من خلال الأداء ثنائيًا، على الأقل مصادر البيانات الموضحة في مستندات Perfetto.

2.6. متطلبات الجهاز اللوحي

يشير جهاز Android لوحي إلى عملية تنفيذ على جهاز Android تستوفي عادةً جميع المعايير التالية:

  • يُستخدم عن طريق الإمساك باليدين.
  • ليس به إعداد صدفة أو قابل للتحويل.
  • عمليات تنفيذ لوحة المفاتيح الخارجية المستخدمة مع الجهاز يتم ربطها من خلال وسيلة الاتصال العادي (مثل USB، البلوتوث).
  • أن يتوفّر له مصدر طاقة يوفّر إمكانية التنقّل، مثل البطارية
  • أن يكون حجم عرض الشاشة أكبر من 7 بوصة وأصغر من 18 بوصة قطريًا.

إنّ عمليات تنفيذ الأجهزة اللوحية لها متطلبات مشابهة لمتطلبات الأجهزة المحمولة. وعمليات التنفيذ. يتم توضيح الاستثناءات بعلامة * في هذا القسم وتدوينها كمرجع في هذا القسم

2.6.1. الأجهزة

الجيروسكوب

إذا كانت عمليات تنفيذ جهاز الجهاز اللوحي تتضمن جيروسكوبًا ثلاثي المحاور، فسيتم إجراء ما يلي:

  • [7.3.4/Tab-1-1] يجب أن تكون قادرة على قياس الاتجاه التغيرات إلى 1000 درجة في الثانية.

الحد الأدنى من الذاكرة وسعة التخزين (القسم 7.6.1)

يشير هذا المصطلح إلى كثافة الشاشة المعروضة للشاشات الصغيرة أو العادية في الجهاز المحمول. متطلبات المنتجات لا تنطبق على الأجهزة اللوحية.

وضع جهاز USB الملحق (القسم 7.7.1)

إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن منفذًا USB متوافقًا مع الأجهزة الملحقة فإنهم:

  • [7.7.1/Tab] قد يتم تنفيذ واجهة برمجة تطبيقات ملحق Android المفتوح (AOA).

وضع الواقع الافتراضي (القسم 7.9.1)

الأداء العالي للواقع الافتراضي (القسم 7.9.2)

متطلبات الواقع الافتراضي لا تنطبق على الأجهزة اللوحية.

2.6.2 نموذج الأمان

المفاتيح وبيانات الاعتماد (القسم 9.11)

راجِع القسم [9.11].

إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن عدة مستخدمين لا تعلن عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/T-1-1] يجب أن يتوافق مع الملفات الشخصية المحظورة، وهي ميزة تسمح لمالكي الأجهزة بإدارة حسابات المستخدمين الإضافيين والإمكانيات الجديدة على الجهاز. من خلال الملفات الشخصية المقيّدة، يمكن لمالكي الأجهزة إعداد بيئات منفصلة بسرعة لكي يعمل فيها مستخدمون إضافيون، مع القدرة على إدارة القيود الأكثر دقة في التطبيقات التي المتوفرة في تلك البيئات.

إذا كانت عمليات تنفيذ الجهاز اللوحي تتضمن عدة مستخدمين الإعلان عن علامة الميزة android.hardware.telephony، فإنها:

  • [9.5/T-2-1] يجب ألا يكون الدعم محظورًا ولكن يجب أن تتوافق مع تنفيذ عناصر التحكم في بروتوكول AOSP. لتفعيل /إيقاف المستخدمين الآخرين من الوصول إلى المكالمات الصوتية والرسائل القصيرة SMS.

2.6.2 البرامج

  • [3.2.3.1/Tab-0-1] يجب تحميل واحد مسبقًا أو المزيد من التطبيقات أو مكونات الخدمة التي تتضمن معالج intent، لجميع أنماط فلاتر الأهداف العامة المحدّدة في أهداف التطبيق التالية مدرجة هنا

3- البرامج

3.1. التوافق مع واجهة برمجة التطبيقات المُدارة

بيئة تنفيذ رمز بايت Dalvik المُدار هي الأداة الأساسية تطبيقات Android. واجهة برمجة تطبيقات Android (API) هي واجهة مجموعة من واجهات نظام Android الأساسية المعروضة للتطبيقات التي يتم تشغيلها في بيئة وقت تشغيل مُدارة.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يوفر عمليات تنفيذ كاملة، بما في ذلك جميع لأي واجهة برمجة تطبيقات موثقة تم الكشف عنها من خلال حزمة تطوير البرامج (SDK) لنظام التشغيل Android أو أي واجهة برمجة تطبيقات مزينة بعلامة " @SystemApi" في إصدار Android الرئيسي رمز المصدر.

  • [C-0-2] يجب أن يدعم/يحافظ على جميع الفئات والطرق والعناصر المرتبطة مميّزًا بتعليق توضيحي TestApi (@TestApi).

  • [C-0-3] يجب ألا يتم حذف أي واجهات برمجة تطبيقات مُدارة أو تغيير واجهات أو توقيعات واجهات برمجة التطبيقات، أن تحيد عن السلوك الموثق أو تتضمن عدم العمليات، إلا إذا على وجه التحديد، بموجب تعريف التوافق هذا.

  • [C-0-4] يجب أن تحافظ على وجود واجهات برمجة التطبيقات وسلوكها بطريقة معقولة، حتى عندما تستخدم بعض ميزات الأجهزة التي تشتمل على حذف واجهات برمجة التطبيقات. راجِع القسم 7. للمتطلبات المحددة لهذا السيناريو.

  • [C-0-5] يجب عدم السماح للتطبيقات التابعة لجهات خارجية باستخدام واجهات غير متوفرة في حزمة SDK، كطرق وحقول في حزم لغة جافا في مسار فئة التمهيد في AOSP، والتي لا تشكل جزءًا من مسار SDK. يشمل ذلك واجهات برمجة التطبيقات المزيّنة بالتعليق التوضيحي @hide وليس مع @SystemAPI، كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) وأعضاء الفصل الدراسي والخاص والحزمة الخاصة.

  • [C-0-6] يجب أن يتم شحنه مع كل واجهة غير متوفرة في حزمة SDK في النطاق المحظور نفسه كما تم تقديمها من خلال العلامات المؤقتة وقائمة الحظر في prebuilts/runtime/appcompat/hiddenapi-flags.csv المسار المناسب لفرع مستوى واجهة برمجة التطبيقات (AOSP) المناسب.

  • يجب أن يتوافق [C-0-7] مع الضبط المُوقَّع. آلية تحديث ديناميكي لإزالة الواجهات غير المتوفرة في حزمة SDK من قائمة محظورة من خلال تضمين الإعدادات الموقَّعة في أي حزمة APK، باستخدام المفاتيح العامة الحالية موجودة في AOSP.

    ومع ذلك:

    • في حال عدم توفّر واجهة برمجة تطبيقات مخفية أو تنفيذها بشكل مختلف على الجهاز التنفيذ، يمكنك نقل واجهة برمجة التطبيقات المخفية إلى قائمة الحظر أو حذفها من كل القوائم المحظورة.
    • إذا لم تكن هناك واجهة برمجة تطبيقات مخفية في AOSP، يمكنك إضافة واجهة واجهة برمجة التطبيقات لأيٍّ من القوائم المحظورة.

3.1.1. إضافات Android

يتيح Android توسيع مساحة واجهة برمجة التطبيقات المُدارة لمستوى معيّن من واجهة برمجة التطبيقات من خلال تحديث إصدار الإضافة لمستوى واجهة برمجة التطبيقات هذا. تشير رسالة الأشكال البيانية تعرض واجهة برمجة التطبيقات android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) الإضافية من نظام التشغيل apiLevel المقدَّم، إذا كانت هناك إضافات لذلك مستوى واجهة برمجة التطبيقات.

آليات تنفيذ أجهزة Android:

  • [C-0-1] يجب تحميل تنفيذ AOSP مسبقًا لكل من المكتبة المشتركة ExtShared والخدمات ExtServices بإصدارات أكبر من أو تساوي الحد الأدنى للإصدارات المسموح بها لكل مستوى لواجهة برمجة التطبيقات. على سبيل المثال، Android 7.0 عمليات تنفيذ الأجهزة التي تعمل بالمستوى 24 لواجهة برمجة التطبيقات يجب أن تتضمن على الأقل الإصدار 1.

  • [C-0-2] يجب فقط عرض رقم إصدار الإضافة الصالح الذي تم محددة من قبل AOSP.

  • [C-0-3] يجب أن يتوافق مع جميع واجهات برمجة التطبيقات المحددة في إصدارات الإضافات تم إرجاعه من قِبل android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) بالطريقة نفسها التي يتم بها دعم واجهات برمجة التطبيقات المُدارة الأخرى، وذلك باتباع المتطلبات الواردة في القسم 3.1.

3.1.2. مكتبة Android

بسبب إيقاف برنامج Apache HTTP، عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يتم وضع مكتبة org.apache.http.legacy في Bootclasspath.
  • [C-0-2] يجب إضافة مكتبة org.apache.http.legacy إلى التطبيق. classpath فقط عندما يستوفي التطبيق أحد الشروط التالية:
    • استهداف المستوى 28 أو أقل لواجهة برمجة التطبيقات
    • يعلن في ملف البيان الخاص به أنه بحاجة إلى المكتبة من خلال تعيين السمة android:name من <uses-library> إلى org.apache.http.legacy.

إنّ عملية تنفيذ بروتوكول AOSP تستوفي هذه المتطلّبات.

3.2. التوافق مع Soft API

بالإضافة إلى واجهات برمجة التطبيقات المُدارة من القسم 3.1، يتضمّن Android أيضًا واجهة برمجة تطبيقات "soft" مهمة فقط في وقت التشغيل، على شكل أشياء مثل الأهداف والأذونات والجوانب المماثلة لتطبيقات Android التي لا يمكن فرضها في وقت تجميع التطبيق.

3.2.1. الأذونات

  • [C-0-1] يجب أن تتوافق أدوات تنفيذ الأجهزة مع جميع الأذونات وتنفيذها الثوابت كما هو موثّق في الصفحة المرجعية للأذونات. تجدر الإشارة إلى أن القسم 9 يسرد المتطلبات المتعلقة بنموذج أمان Android.

3.2.2. مَعلمات الإصدار

تتضمن واجهات برمجة تطبيقات Android عددًا من الثوابت في فئة android.os.Build المخصّصة لوصف الجهاز الحالي

  • [C-0-1] لتوفير قيم متسقة وهادفة عبر الجهاز عمليات التنفيذ، يتضمّن الجدول التالي قيودًا إضافية على أشكال الإعلانات من هذه القيم التي يجب أن تتوافق بها عمليات تنفيذ الأجهزة.
المَعلمة التفاصيل
الإصدار.إصدار يشير هذا المصطلح إلى إصدار نظام Android قيد التنفيذ حاليًا ويمكن لشخص عادي قراءته. . يجب أن يحتوي هذا الحقل على إحدى قيم السلسلة المحددة في سلاسل الإصدارات المسموح بها لنظام التشغيل Android 12
VERSION.SDK يشير إلى إصدار نظام Android قيد التنفيذ حاليًا بتنسيق. ويمكن الوصول إليه من خلال رمز تطبيق تابع لجهة خارجية. بالنسبة إلى نظام التشغيل Android 12، يجب أن يحتوي هذا الحقل على القيمة العددية 12_INT.
VERSION.SDK_INT يشير إلى إصدار نظام Android قيد التنفيذ حاليًا بتنسيق. ويمكن الوصول إليه من خلال رمز تطبيق تابع لجهة خارجية. بالنسبة إلى نظام التشغيل Android 12، يجب أن يحتوي هذا الحقل على القيمة العددية 12_INT.
نسخة مكمّلة يشير هذا المصطلح إلى قيمة يختارها مقدِّم الجهاز الذي يخصِّص الإصدار المحدَّد. لنظام Android قيد التنفيذ حاليًا، بتنسيق يمكن لشخص عادي قراءته هذا النمط ويجب عدم إعادة استخدامه للإصدارات المختلفة المتوفرة للمستخدمين. حاسمة فإن الاستخدام النموذجي لهذا الحقل هو الإشارة إلى رقم الإصدار أو تم استخدام معرّف تغيير التحكّم في المصدر لإنشاء الإصدار. القيمة من هذا الحقل يجب أن يكون قابلاً للطباعة بتنسيق ASCII 7 بت القابل للطباعة وأن يطابق التعبير العادي "^[^ :\/~]+$".
ألعاب ألواح يشير هذا المصطلح إلى قيمة يختارها منفذ تنفيذ الجهاز لتحديد العنصر الأجهزة الداخلية التي يستخدمها الجهاز، بتنسيق يمكن لشخص عادي قراءته احتمال استخدام هذا الحقل للإشارة إلى المراجعة المحددة لتوليد الطاقة للوحة الجهاز. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII 7 بت تتطابق مع التعبير العادي "^[a-zA-Z0-9_-]+$".
العلامة التجارية قيمة تعكس اسم العلامة التجارية المرتبطة بالجهاز كما هو معروف المستخدمين النهائيين. يجب أن يكون بتنسيق يمكن لشخص عادي قراءته، كما ينبغي أن يمثل الشركة المصنعة للجهاز أو العلامة التجارية للشركة التي يتم استخدام الجهاز للتسويق. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت ومتطابقة التعبير العادي "^[a-zA-Z0-9_-]+$".
مواد العرض المتوافقة اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق.
مدعومة_32_BIT_ABIS اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق.
SUPPORTED_64_BIT_ABIS اسم مجموعة التعليمات الثانية (نوع وحدة المعالجة المركزية + اصطلاح واجهة التطبيق الثنائية (ABI)) الرمز الأصلي. راجع القسم 3.3. مدمج مع المحتوى التوافق مع واجهة برمجة التطبيقات:
وحدة المعالجة المركزية (CPU_ABI) اسم مجموعة التعليمات (نوع وحدة المعالجة المركزية (CPU) + اصطلاح ABI) الأصلية الرمز. راجع القسم 3.3. واجهة برمجة التطبيقات الأصلية التوافق.
وحدة معالجة مركزية (CPU_ABI2) اسم مجموعة التعليمات الثانية (نوع وحدة المعالجة المركزية + اصطلاح واجهة التطبيق الثنائية (ABI)) الرمز الأصلي. راجع القسم 3.3. مدمج مع المحتوى التوافق مع واجهة برمجة التطبيقات:
الجهاز قيمة يختارها أداة تنفيذ الجهاز تحتوي على اسم التطوير أو الاسم الرمزي الذي يحدد تكوين ميزات الأجهزة التصميم الصناعي للجهاز. يجب أن تكون قيمة هذا الحقل قابلة للترميز بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9_-]+$". يجب ألا يتغير اسم الجهاز هذا أثناء مدى عمر المنتج.
طباعة الأصابع سلسلة تعرّف هذا الإصدار بشكل فريد. من المفترض أن يكون معقولاً يمكن لشخص عادي قراءتها يجب أن يتّبع هذا النموذج:

$(BRAND)/$(PRODUCT)/
$(DEVICE):$(VERSION.VERSION)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)

مثلاً:

acme/myproduct/
mydevice:12/LMYXX/3359:userdebug/test-keys

يجب ألا يتضمن الملف المرجعي مسافات بيضاء. قيمة يجب أن يكون هذا الحقل قابلاً لترميز ASCII بنظام 7 بت.

الأجهزة اسم الجهاز (من سطر أوامر kernel أو /proc). أُنشأها جون هنتر، الذي كان متخصصًا يجب أن تكون اللغة مقروءة بشكل معقول. يجب أن تكون قيمة هذا الحقل يمكن ترميزه بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9_-]+$".
المضيف يشير ذلك المصطلح إلى سلسلة تعرِّف بشكلٍ فريد المضيف الذي تم إنشاء الإصدار عليه، تنسيق يمكن لشخص عادي قراءته. ليست هناك أي متطلبات للتنسيق المحدد هذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة ("").
رقم التعريف يشير هذا المصطلح إلى معرّف يختاره أداة تنفيذ الجهاز للإشارة إلى معرّف معيّن. إصداره بتنسيق يمكن لشخص عادي قراءته يمكن أن يكون هذا الحقل مماثلاً android.os.Build.VERSION.INCREMENTAL، ولكن يجب أن تكون قيمة كافية مفيدة للمستخدمين النهائيين للتمييز بين إصدارات البرامج. القيمة من هذا الحقل يجب أن يكون قابلاً لترميز ASCII بنظام 7 بت وأن يطابق الإدخال العادي التعبير "^[a-zA-Z0-9._-]+$".
شركة مصنّعة الاسم التجاري للمصنّع الأصلي للجهاز (OEM) المنتج. ليست هناك أي متطلبات بشأن التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة (""). هذا الحقل يجب ألا تتغير خلال عمر المنتج.
شركة SOC_MANUFACTURER الاسم التجاري للشركة المصنعة للنظام الأساسي في الشريحة (SOC) المستخدمة في المنتج. الأجهزة التي تستخدم الشركة المصنّعة نفسها لمعيار SOC يجب أن يستخدم نفس القيمة الثابتة. يُرجى طلب ذلك من الشركة المصنّعة SOC الثابت الصحيح للاستخدام. يجب أن تكون قيمة هذا الحقل قابلة للترميز مثل ASCII 7 بت، يجب أن يطابق التعبير العادي "^([0-9A-Za-z ]+)"، يجب ألا تبدأ أو تنتهي بمسافة بيضاء، ويجب ألا تكون مساوية لـ "غير معروف". يجب ألا يتغيّر هذا الحقل أثناء مدى عمر المنتج.
SOC_MODEL اسم طراز النظام الأساسي على الشريحة (SOC) المستخدمة في المنتج. يجب أن تستخدم الأجهزة التي لها نموذج SOC نفسه قيمة ثابتة واحدة. يُرجى طلب الرقم الثابت الصحيح لاستخدامه. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع التعبير العادي “^([0-9A-Za-z ._/+-]+)$”، يجب ألا يبدأ أو تنتهي بمسافة بيضاء، ويجب ألا تكون مساوية لـ "غير معروف". هذا الحقل يجب ألا تتغير خلال عمر المنتج.
النموذج يشير هذا المصطلح إلى قيمة يختارها أداة تنفيذ الجهاز وتحتوي على اسم. الجهاز كما هو معروف للمستخدم النهائي. يجب أن يكون هذا هو الاسم ذاته الذي يتم تسويق الجهاز وبيعه للمستخدمين النهائيين. ليست هناك أي متطلبات التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا يكون فارغًا أو سلسلة فارغة (""). يجب ألا يتغيّر هذا الحقل أثناء مدى عمر المنتج.
المنتج قيمة يختارها أداة تنفيذ الجهاز تحتوي على اسم التطوير أو اسم الرمز البرمجي للمنتج المحدّد (SKU) الذي يجب أن يكون فريدًا داخل العلامة التجارية نفسها. يجب أن تكون سهلة القراءة للمستخدم، ولكنّها ليست بالضرورة مخصَّصة للعرض من قبل المستخدمين النهائيين. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII 7 بت تتطابق مع التعبير العادي "^[a-zA-Z0-9_-]+$". هذا المنتج الاسم أثناء فترة بقاء المنتج.
ODM_SKU قيمة اختيارية يختارها أداة تنفيذ الجهاز وتحتوي على يُستخدَم رمز التخزين التعريفي (SKU) لتتبُّع تهيئات معيّنة الجهاز، على سبيل المثال، أي أجهزة ملحقة مرفقة بالجهاز عند بيعها. يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع التعبير العادي ^([0-9A-Za-z.,_-]+)$.
الرقم التسلسلي يجب عرض "UNKNOWN"
العلامات يشير هذا المصطلح إلى قائمة بعلامات مفصولة بفواصل يختارها أداة تنفيذ الجهاز. تميز التصميم بشكل أكبر. يجب أن تكون العلامات قابلة لترميز ASCII 7 بت وتطابق التعبير العادي "^[a-zA-Z0-9._-]+" ويجب تمتلك إحدى القيم المقابلة لنظام Android الأساسي الثلاثة إعدادات التوقيع: مفاتيح الإصدار ومفاتيح المطوّرين ومفاتيح الاختبار.
الوقت قيمة تمثّل الطابع الزمني لوقت حدوث الإصدار.
النوع يشير هذا المصطلح إلى قيمة يختارها أداة تنفيذ الجهاز لتحديد بيئة التشغيل. تهيئة الإصدار. يجب أن يحتوي هذا الحقل على إحدى القيم يتوافق مع عمليات الإعداد الثلاثة النموذجية لوقت تشغيل Android: أو userdebug أو en.
المستخدم اسم أو رقم تعريف مستخدم للمستخدم (أو للمستخدم التلقائي) الذي أنشأ ليست هناك أي متطلبات بشأن التنسيق المحدد لهذا الحقل، باستثناء أنه يجب ألا تكون فارغة أو السلسلة الفارغة ("").
تصحيح_الأمان قيمة تشير إلى مستوى رمز تصحيح الأمان لإصدار معيّن. يجب أن يعني ذلك أنّ الإصدار ليس معرّضًا بأي شكل من الأشكال لأي من المشاكل الموضّحة عبر نشرة الأمن العام من Android المخصصة. يجب أن يكون في بالتنسيق [YYYY-MM-DD]، مع مطابقة سلسلة محددة موثقة في نشرة الأمن العام من Android أو في تقرير أمان Android، على سبيل المثال "2015-11-01".
نظام التشغيل BASE_OS قيمة تمثِّل المعلمة FINGERPrint للإصدار ذي مماثلة بخلاف ذلك لهذا الإصدار باستثناء التصحيحات المتوفرة في نشرة الأمن العام من Android يجب أن يقدم تقريرًا عن القيمة الصحيحة وإذا مثل هذا الإصدار غير موجود، أبلِغ عن سلسلة فارغة ("").
BOOTLOADER يشير هذا المصطلح إلى قيمة يختارها منفذ تنفيذ الجهاز لتحديد العنصر إصدار برنامج الإقلاع الداخلي المستخدَم في الجهاز، بتنسيق يمكن للمستخدمين قراءته يجب أن تكون قيمة هذا الحقل قابلة لترميز ASCII بنظام 7 بت وأن تتطابق مع التعبير العادي "^[a-zA-Z0-9._-]+$".
getRadioVersion() يجب أن يكون (أو يعرض) قيمة يختارها أداة تنفيذ الجهاز تحديد إصدار الراديو/المودم الداخلي المحدد المستخدم في الجهاز، بتنسيق يمكن لشخص عادي قراءته إذا لم يكن هناك أي جهاز داخلي راديو/مودم، يجب أن يعرض "خالٍ". يجب أن تكون قيمة هذا الحقل يمكن ترميزه بتنسيق ASCII 7 بت ومطابقة التعبير العادي "^[a-zA-Z0-9._-,]+$".
getSerial() يجب أن يكون رقمًا تسلسليًا للأجهزة (يجب أن يكون أو إرجاعه) والذي يجب أن يكون متاحًا. وفريدة عبر الأجهزة من نفس MODEL وMANUFACTURER. قيمة يجب أن يكون هذا الحقل قابلاً لترميز ASCII بنظام 7 بت وأن يطابق التعبير العادي "^[a-zA-Z0-9._-,]+$".

3.2.3. التوافق مع الأهداف

3.2.3.1. الأهداف الشائعة للتطبيق

تسمح أغراض Android لمكونات التطبيق بطلب الوظائف من ومكونات Android الأخرى. يتضمن مشروع Android الرئيسي قائمة التطبيقات التي تنفذ العديد من أنماط الأهداف لتنفيذ إجراءات شائعة.

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُوصى بها بشدة بتحميل تطبيق واحد أو أكثر مسبقًا أو مكوّنات الخدمة مع معالج الأهداف، لكل فلتر الأهداف العامة التي تم تحديدها من خلال أهداف تقديم الطلبات التالية المُدرَجة هنا وتوفير التنفيذ، أي تلبية توقعات المطوّرين لهذه لأغراض التطبيق كما هو موضح في حزمة SDK.

يُرجى الرجوع إلى القسم 2 لمعرفة الأهداف الإلزامية لتقديم الطلبات. لكل نوع جهاز.

3.2.3.2. دقة الأهداف
  • [C-0-1] بما أنّ Android نظام أساسي قابل للتوسع، يجب أن يتم السماح بكل نمط من أنماط الأهداف المُشار إليها في القسم 3.2.3.1 ، باستثناء الإعدادات، أن تلغيها تطبيقات الجهات الخارجية. تشير رسالة الأشكال البيانية تسمح عملية التنفيذ المفتوحة المصدر والخاصة بتطبيقات Android الرئيسية بإجراء ذلك تلقائيًا.

  • [C-0-2] يجب ألا يرفق منفذو تنفيذ الأجهزة امتيازات خاصة بالنظام التطبيقات" استخدام أنماط الأهداف هذه، أو منع تطبيقات الجهات الخارجية من الربط إلى هذه الأنماط وتفترض التحكم فيها. هذا الحظر على وجه التحديد، على سبيل المثال لا الحصر، تعطيل مستخدم "المُختار" تسمح للمستخدم بالاختيار من بين تطبيقات متعددة لا تسمح تتعامل مع نفس نمط النية.

  • [C-0-3] يجب أن توفر عمليات تنفيذ الأجهزة واجهة مستخدم للمستخدمين تعديل النشاط التلقائي للأغراض.

  • ومع ذلك، قد توفّر عمليات تنفيذ الأجهزة أنشطة تلقائية لأغراض أنماط معرف الموارد المنتظم (URI) (مثل http://play.google.com) عندما يوفر النشاط الافتراضي أكثر تحديدًا لمعرف الموارد المنتظم (URI) للبيانات. على سبيل المثال، نمط فلتر الأهداف يكون تحديد عنوان URI للبيانات "http://www.android.com" أكثر تحديدًا من نمط النية الأساسي للمتصفِّح في "http:// ".

يشمل Android أيضًا آلية تتيح للتطبيقات التابعة للجهات الخارجية الإفصاح عن سلوك ربط التطبيقات التلقائي والموثوق به لأنواع معينة من أهداف معرف الموارد المنتظم (URI) على الويب. عند تنفيذ هذه التصريحات الموثوقة محددون في أنماط فلاتر الأهداف للتطبيق، وعمليات تنفيذ الأجهزة:

  • [C-0-4] يجب أن يحاول التحقق من صحة أي فلاتر أهداف عن طريق تنفيذ خطوات التحقّق المحدّدة في مواصفات روابط مواد العرض الرقمية كما نفّذه "مدير الحزم" في قسم البرامج المفتوحة المصدر لنظام Android المشروع.
  • [C-0-5] يجب أن تحاول التحقق من صحة فلاتر الأهداف أثناء تثبيت للتطبيق وتعيين جميع فلاتر الأهداف لمعرف الموارد المنتظم (URI) التي تم التحقق من صحتها بنجاح المعالِجات التلقائية للتطبيقات لمعرّفات الموارد المنتظمة (URI) الخاصة بها.
  • يمكنك تعيين فلاتر أهداف عنوان URI محددة كمعالجات تطبيقات افتراضية لمعرّفات الموارد المنتظمة الخاصة بها، إذا تم التحقق منها بنجاح ولكن تفشل فلاتر معرف الموارد المنتظم (URI) المرشح الأخرى التحقق. في حال إجراء ذلك من خلال تطبيق على الجهاز، يجب أن يوفّر إلغاءات الأنماط المناسبة للمستخدم حسب معرّف الموارد المنتظم (URI) في قائمة الإعدادات.
  • يجب أن توفِّر للمستخدم عناصر تحكُّم في "روابط التطبيق" لكل تطبيق في "الإعدادات" على النحو التالي: التالي:
    • [C-0-6] يجب أن يكون المستخدم قادرًا على تجاوز التطبيق التلقائي بشكل كلي هو أن يكون التطبيق مفتوحًا دائمًا، أو اسأل دائمًا، أو لا يفتح أبدًا، والذي يجب أن ينطبق على جميع فلاتر الأهداف لمعرف الموارد المنتظم (URI) المرشحة بالتساوي.
    • [C-0-7] يجب أن يتمكن المستخدم من الاطّلاع على قائمة بالغرض من معرّف الموارد المنتظم (URI) المرشح والفلاتر.
    • قد يوفر تنفيذ الجهاز للمستخدم القدرة على تجاوز فلاتر الأهداف المحدَّدة لمعرّفات الموارد المنتظمة (URI) المرشّحة التي تم إطلاقها بنجاح على أساس كل حسب النية بالشراء.
    • [C-0-8] يجب أن يوفر تنفيذ الجهاز للمستخدمين القدرة على عرض وإلغاء فلاتر الأهداف المحدَّدة لمعرّفات الموارد المنتظمة (URI) المرشحة إذا كان الجهاز تطبيق يتيح لبعض فلاتر الأهداف لمعرّفات الموارد المنتظمة (URI) المرشحة النجاح التحقق بينما قد يفشل البعض الآخر.
3.2.3.3. مساحات أسماء الأهداف
  • [C-0-1] يجب ألا تتضمن عمليات تنفيذ الأجهزة أي مكون Android تنفيذ أي أنماط جديدة لأهداف أو أهداف بث باستخدام ACTION أو CATEGORY أو سلسلة مفتاح أخرى في مساحة الاسم android.* أو com.android.* .
  • [C-0-2] يجب ألا تتضمن أدوات تنفيذ الأجهزة أي مكوّنات من ميزات Android الالتزام بأي أنماط جديدة لنوايا أو أهداف البث باستخدام ACTION أو CATEGORY أو سلسلة مفاتيح أخرى في مساحة حزمة تنتمي إلى مؤسسة أخرى.
  • [C-0-3] يجب ألا يغيّر منفّذو الأجهزة أي غرض أو يوسّع نطاقه الأنماط المدرجة في القسم 3.2.3.1.
  • قد تتضمن عمليات تنفيذ الأجهزة أنماطًا مقصودة تستخدم مساحات الاسم بوضوح ومرتبطة بوضوح بمؤسستهم الخاصة. هذا الحظر هو مماثلة لتلك المحددة لفئات لغات Java في القسم 3.6.
3.2.3.4. نوايا البث

تعتمد تطبيقات الجهات الخارجية على النظام الأساسي لبث أغراض معينة إلى وإبلاغهم بالتغييرات التي تطرأ على بيئة الأجهزة أو البرامج.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب بث أهداف البث العلنية المُدرَجة هنا استجابةً لأحداث النظام المناسبة كما هو موضّح في مستندات حزمة تطوير البرامج (SDK). تجدر الإشارة إلى أنّ هذا الشرط لا يتعارض مع الفقرة 3.5 حيث في حزمة SDK، تم أيضًا توضيح القيود المفروضة على تطبيقات الخلفية التوثيق. كذلك، تكون بعض نوايا البث مشروطة على الأجهزة الدعم، إذا كان الجهاز يدعم الأجهزة اللازمة، فيجب عليه بث وتوفير السلوك مضمّنًا مع مستندات حزمة تطوير البرامج (SDK)
3.2.3.5. عناصر Intent للتطبيق المشروطة

يتضمّن Android إعدادات توفّر للمستخدمين طريقة سهلة لاختيار التطبيقات الافتراضية، مثل الشاشة الرئيسية أو الرسائل القصيرة SMS.

يجب توفير إعدادات مشابهة لعمليات تنفيذ الأجهزة، حيثما كان ذلك منطقيًا وأن تكون متوافقة مع نمط فلتر الأهداف وطرق واجهة برمجة التطبيقات الموضحة في مستندات حزمة تطوير البرامج (SDK) على النحو الموضَّح أدناه

في حال أبلغت عمليات تنفيذ الأجهزة عن android.software.home_screen، سينطبق التالي على:

  • [C-1-1] يجب أن يلتزم بـ android.settings.HOME_SETTINGS تنوي عرض قائمة إعدادات التطبيق التلقائية للشاشة الرئيسية.

في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.telephony، سينطبق التالي على:

في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.nfc.hce، سينطبق التالي على:

  • [C-3-1] يجب أن يلتزم بـ android.settings.NFC_PAYMENT_SETTINGS نية عرض قائمة إعدادات تطبيق تلقائية للدفع بدون تلامس الأجهزة.
  • [C-3-2] يجب أن يلتزم بـ android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT عرض نشاط يفتح مربّع حوار لطلب تغيير خدمة المحاكاة التلقائية للبطاقة لفئة معيَّنة كما هو موضَّح في حزمة تطوير البرامج (SDK).

في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.nfc، سينطبق التالي على:

في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.bluetooth، سينطبق التالي على:

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "عدم الإزعاج"، سيتم:

  • [C-6-1] يجب أن ينفذ نشاطًا من شأنه الاستجابة للقصد ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS، بالنسبة إلى عمليات التنفيذ باستخدام UI_mode_TYPE_NORMAL، يجب أن يكون نشاطًا يمكن للمستخدم منح التطبيق إذن الوصول إلى إعدادات سياسة DND أو رفضه.

إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدمين باستخدام طرق إدخال تابعة لجهات خارجية على على الجهاز، فإنها:

  • [C-7-1] يجب أن يوفر آلية يمكن للمستخدم الوصول إليها لإضافة المحتوى وإعداده أساليب إدخال من جهات خارجية استجابةً android.settings.INPUT_METHOD_SETTINGS والنية.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع خدمات إمكانية الوصول التابعة لجهات خارجية، سيتم إجراء ما يلي:

  • [C-8-1] يجب أن يلتزم بـ android.settings.ACCESSIBILITY_SETTINGS توفير آلية يمكن للمستخدمين الوصول إليها لتفعيل وإيقاف خدمات تسهيل الاستخدام التابعة لجهات خارجية إلى جانب ميزات تسهيل الاستخدام المحمَّلة مُسبَقًا

إذا كانت تنفيذات الجهاز تتضمن دعمًا لـ Wi-Fi Easy Connect وكشف الوظائف للتطبيقات التابعة للجهات الخارجية، فإنها:

إذا كانت عمليات تنفيذ الأجهزة توفر وضع "توفير البيانات"، سيتم ما يلي:

  • [C-10-1] يجب أن توفر واجهة مستخدم في الإعدادات، تتعامل مع Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS نية، بالسماح للمستخدمين بإضافة تطبيقات إلى التطبيقات أو إزالتها منها قائمة السماح.

في حال لم توفِّر عمليات تنفيذ الأجهزة وضع "توفير البيانات"، سيحدث ما يلي:

إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع الكاميرا عبر android.hardware.camera.any:

في حال أبلغت عمليات تنفيذ الأجهزة عن android.software.device_admin، سينطبق التالي على:

في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.software.autofill عن الميزات، فإنها:

  • [C-14-1] يجب أن ينفذ AutofillService بالكامل وAutofillManager واجهات برمجة التطبيقات وتلبية android.settings.REQUEST_SET_AutoFILL_SERVICE عرض قائمة إعدادات تطبيق افتراضية لتفعيل ميزة الملء التلقائي وإيقافها تغيير خدمة الملء التلقائي التلقائية للمستخدم.

إذا كانت عمليات تنفيذ الأجهزة تتضمن تطبيقًا مثبَّتًا مسبقًا أو كنت تريد السماح تطبيقات الجهات الخارجية للوصول إلى إحصاءات الاستخدام، فإنها:

  • [C-SR-2] يُوصى بها بشدة لتوفير آلية يمكن للمستخدم الوصول إليها لمنح أو إبطال الدخول إلى إحصاءات الاستخدام استجابةً android.settings.ACTION_USAGE_ACCESS_SETTINGS الغرض من التطبيقات التي تعلن عن android.permission.PACKAGE_USAGE_STATS إذن.

ما إذا كانت عمليات تنفيذ الأجهزة تهدف إلى عدم السماح بأي تطبيقات، بما في ذلك التطبيقات المثبَّتة مسبقًا من الوصول إلى إحصاءات الاستخدام، فإنها:

  • [C-15-1] يجب أن يبقى لديه نشاط يعالج android.settings.ACTION_USAGE_ACCESS_SETTINGS نمط الغرض، ولكن يجب تنفيذه في حالة بيئة، أي أن يكون له مكافئ كما هو الحال عندما يتم رفض وصول المستخدم.

إذا كانت عمليات تنفيذ الأجهزة تعرض روابط للأنشطة المحددة من خلال AutofillService_passwordsActivity في "الإعدادات" أو الروابط المؤدية إلى كلمات مرور المستخدمين من خلال آلية مشابهة، فإنها:

  • [C-16-1] يجب أن تعرض هذه الروابط لجميع خدمات الملء التلقائي المثبَّتة.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع VoiceInteractionService وتوفّر المزيد من الميزات يتم تثبيت أكثر من تطبيق واحد باستخدام واجهة برمجة التطبيقات هذه في كل مرة:

إذا أبلغت عمليات تنفيذ الأجهزة عن الميزة android.hardware.audio.output، وهي:

  • [C-SR-3] يُوصى بها بشدة للالتزام بـ android.intent.action.TTS_SERVICE، android.speech.tts.engine.INSTALL_TTS_DATA تتضمّن أغراض android.speech.tts.engine.GET_SAMPLE_TEXT أي نشاط لتوفير لتحقيق هذه الأهداف على النحو الموضّح في حزمة تطوير البرامج (SDK) هنا.

يتيح نظام التشغيل Android استخدام شاشات الاستراحة التفاعلية، والتي يُشار إليها سابقًا باسم مثل أحلام. تسمح شاشات التوقف للمستخدمين بالتفاعل مع التطبيقات عندما يكون الجهاز المتصل بمصدر طاقة غير نشِط أو مثبَّت على قاعدة الإرساء في سطح المكتب عمليات تنفيذ الأجهزة:

  • يجب أن تتضمن دعم شاشات الاستراحة وتوفر خيار إعدادات للمستخدمين بتهيئة شاشات التوقف استجابة هدف واحد (android.settings.DREAM_SETTINGS).

3.2.4. الأنشطة على الشاشات الثانوية/المتعددة

إذا كانت عمليات تنفيذ الجهاز تسمح بإطلاق أنشطة Android عادية على أكثر من شاشة واحدة، فإنها:

  • [C-1-1] يجب ضبط android.software.activities_on_secondary_displays علامة الميزة.
  • [C-1-2] يجب أن يضمن التوافق مع واجهة برمجة التطبيقات مشابهًا لنشاط يتم تشغيله على الشاشة الأساسية.
  • [C-1-3] يجب أن ينقل النشاط الجديد إلى نفس شاشة النشاط الذي أطلقته، عند إطلاق النشاط الجديد دون تحديد هدف العرض من خلال ActivityOptions.setLaunchDisplayId() واجهة برمجة التطبيقات.
  • [C-1-4] يجب تدمير جميع الأنشطة، عندما تحتوي شاشة Display.FLAG_PRIVATE تمت إزالة العلامة.
  • [C-1-5] يجب إخفاء المحتوى بأمان على جميع الشاشات عندما يكون الجهاز مقفلاً باستخدام شاشة قفل آمنة، إلا إذا وافق التطبيق على عرضه في الجزء العلوي من القفل الشاشة باستخدام Activity#setShowWhenLocked() واجهة برمجة التطبيقات.
  • يجب أن يحتوي على android.content.res.Configuration الذي يتوافق مع هذه الشاشة ليتم عرضها، قم بتشغيل بشكل صحيح، والحفاظ على التوافق إذا تم تشغيل نشاط على الشاشة الثانوية.

في حال كانت عمليات تنفيذ الأجهزة تسمح بإطلاق أنشطة Android العادية على الأجهزة الثانوية الشاشة والشاشة الثانوية تتضمّن android.view.Display.FLAG_PRIVATE :

  • [C-3-1] فقط مالك الشاشة والنظام والأنشطة على تلك الشاشة أن تتمكن من بدء تشغيلها. يمكن للجميع الإطلاق إلى شاشة تتضمّن android.view.Display.FLAG_PUBLIC .

3.3. التوافق مع واجهة برمجة التطبيقات الأصلية

يُعد التوافق مع الرموز الأصلية أمرًا صعبًا. لهذا السبب، المنفّذون على الأجهزة هم:

  • [C-SR-1] يُوصى بشدة باستخدام عمليات تنفيذ المكتبات الواردة أدناه من المشروع المفتوح المصدر لنظام Android

3.3.1. واجهات التطبيق الثنائية

يمكن استدعاء رمز بايت Dalvik المُدار إلى الرمز الأصلي المتوفّر في التطبيق. .apk كملف ELF .so الذي تم تجميعه لأجهزة الجهاز المناسبة الهندسة المعمارية. يعتمد الترميز الأصلي بدرجة كبيرة على المعالج الأساسي تكنولوجيا ما، يعرّف Android عددًا من واجهات التطبيق الثنائية (ABI) في Android NDK.

عمليات تنفيذ الأجهزة:

  • يجب أن يكون [C-0-1] متوافقًا مع واجهة برمجة تطبيقات Android NDK محددة أو أكثر.
  • [C-0-2] يجب أن يتوافق مع التعليمات البرمجية التي يتم تشغيلها في البيئة المُدارة من أجل إلى رمز أصلي، باستخدام واجهة Java الأصلية (JNI) الدلالة.
  • [C-0-3] يجب أن يكون متوافقًا مع المصدر (أي متوافق مع الرأس) توافقًا ثنائيًا (لواجهة ABI) مع كل مكتبة مطلوبة في القائمة أدناه.
  • [C-0-5] يجب الإبلاغ بدقة عن واجهة التطبيق الثنائية الأصلية (ABI) المتوافق مع الجهاز عبر android.os.Build.SUPPORTED_ABIS android.os.Build.SUPPORTED_32_BIT_ABIS و android.os.Build.SUPPORTED_64_BIT_ABIS مَعلمات، مع الفصل بين كلّ منها بفاصلة قائمة من واجهات التطبيق الثنائية (ABI) المرتبة من الأكثر إلى الأقل تفضيلاً.
  • [C-0-6] يجب أن يقدم، من خلال المعلمات أعلاه، مجموعة فرعية مما يلي قائمة بواجهات ABI ويجب ألا تبلّغ عن أي واجهات تطبيقات ثنائية (ABI) غير مدرَجة في القائمة.

  • [C-0-7] يجب أن ينشئ جميع المكتبات التالية، مع توفير واجهات برمجة التطبيقات الأصلية، متاحة للتطبيقات التي تتضمّن رموزًا برمجية أصلية:

    • libaaudio.so (التوافق مع الصوت الأصلي)
    • libamedi.so (دعم MIDI الأصلي، إذا كانت الميزة android.software.midi كما هو موضح في الفقرة 5.9)
    • libandroid.so (دعم النشاط على Android)
    • libc (مكتبة C)
    • libcamera2ndk.so
    • libdl (رابط ديناميكي)
    • libEGL.so (إدارة مساحة عرض OpenGL الأصلية)
    • libGLESv1_CM.so (OpenGL ES 1.x)
    • libGLESv2.so (OpenGL ES 2.0)
    • libGLESv3.so (OpenGL ES 3.x)
    • libicui18n.so
    • libicuuc.so
    • libjnigraphics.so
    • liblog (تسجيل الدخول إلى Android)
    • libmediandk.so (دعم واجهات برمجة التطبيقات للوسائط الأصلية)
    • libm (مكتبة الرياضيات)
    • libneralnetworks.so (واجهة برمجة التطبيقات للشبكات العصبية)
    • libOpenMAXAL.so (دعم OpenMAX AL 1.0.1)
    • libOpenSLES.so (دعم الصوت OpenSL ES 1.0.1)
    • libRS.so
    • libstdc++ (الحد الأدنى من التوافق مع C++)
    • libvulkan.so (Vulkan)
    • libz (ضغط Zlib)
    • واجهة JNI
  • [C-0-8] يجب ألا تتم إضافة الدوال العامة للمكتبات الأصلية أو إزالتها. الواردة أعلاه.

  • [C-0-9] يجب أن تدرج مكتبات إضافية غير تابعة لـ AOSP تعرض مباشرة إلى تطبيقات تابعة لجهات خارجية في /vendor/etc/public.libraries.txt.

  • [C-0-10] يجب ألا تعرض أي مكتبات أصلية أخرى تم تنفيذها المتوفرة في AOSP كمكتبات نظام، إلى تطبيقات الجهات الخارجية التي تستهدف واجهة برمجة التطبيقات من المستوى 24 أو أعلى نظرًا لأنها محجوزة.

  • [C-0-11] يجب تصدير كل OpenGL ES 3.1 وAndroid Extension Pack رموز الدوال، كما هو موضح في NDK، من خلال مكتبة libGLESv3.so. لاحظ أنه بينما يجب أن تكون جميع الرموز موجودة، يصف القسم 7.1.4.1 بمزيد من التفصيل والمتطلبات المتعلقة بوقت التنفيذ الكامل لكل المتوقعة من الدوال المقابلة.

  • [C-0-12] يجب تصدير رموز الدوال لدالة Vulkan 1.0 الأساسية بالإضافة إلى VK_KHR_surface وVK_KHR_android_surface VK_KHR_swapchain وVK_KHR_maintenance1 و إضافتان (VK_KHR_get_physical_device_properties2) من خلال مكتبة libvulkan.so لاحظ أنه على الرغم من ضرورة وجود جميع الرموز، تصف البند 7.1.4.2 بمزيد من التفصيل متطلبات الموعد النهائي المتوقع تنفيذ كل دالة مقابلة.

  • يجب إنشاؤها باستخدام رمز المصدر وملفات العنوان المتوفرة في مشروع مفتوح المصدر لنظام Android

وتجدر الإشارة إلى أن الإصدارات المستقبلية من Android قد تتيح دعم المزيد من واجهات التطبيق الثنائية (ABI).

3.3.2 التوافق مع الرموز البرمجية المستندة إلى معالجات ARM 32 بت

في حال أبلغت عمليات تنفيذ الأجهزة عن توافق واجهة التطبيق الثنائية (ABI) مع armeabi، سيتم إجراء ما يلي:

  • [C-3-1] يجب أيضًا أن يتوافق مع armeabi-v7a والإبلاغ عن دعمه، باعتباره لا يمكن استخدام armeabi إلا للتوافق مع التطبيقات القديمة.

في حال أشارت عمليات تنفيذ الأجهزة إلى توافُق واجهة التطبيق الثنائية (armeabi-v7a) للتطبيقات مع التطبيقات باستخدام واجهة التطبيق الثنائية (ABI) هذه، فإنهم:

  • [C-2-1] يجب أن يحتوي على الأسطر التالية في /proc/cpuinfo، ويجب ألا تغيير القيم على الجهاز نفسه، حتى عندما تقرأها واجهات التطبيق الثنائية (ABI) الأخرى

    • Features:، متبوعة بقائمة تضم أي ميزات اختيارية لوحدة المعالجة المركزية (CPU) ARMv7 يتوافق مع الجهاز.
    • CPU architecture:، متبوعًا بعدد صحيح يصف الجهاز أعلى بنية ARM متوافقة (مثل "8" لأجهزة ARMv8).
  • [C-2-2] يجب دائمًا الاحتفاظ بالعمليات التالية متاحة، حتى في هي الحالة التي يتم فيها تنفيذ واجهة التطبيق الثنائية (ABI) على بنية ARMv8، سواء من خلال دعم وحدة المعالجة المركزية (CPU) الأصلية أو من خلال محاكاة البرامج:

    • تعليمات محو بيانات المستخدم وميزة SWPB
    • عمليات حاجز CP15ISB وCP15DSB وCP15DMB.
  • [C-2-3] يجب أن يشمل التوافق مع شريحة SIM المتقدّمة (المعروف أيضًا باسم NEON).

3.4. التوافق مع الويب

3.4.1. التوافق مع WebView

إذا كانت عمليات تنفيذ الأجهزة توفر تنفيذًا كاملاً android.webkit.Webview API، وهي:

  • [C-1-1] يجب الإبلاغ عن android.software.webview.
  • [C-1-2] يجب استخدام إصدار مشروع Chromium من مشروع Android المفتوح المصدر على Android 12 فرعًا لتنفيذ android.webkit.WebView واجهة برمجة التطبيقات.
  • [C-1-3] يجب أن تكون سلسلة وكيل المستخدم التي تم الإبلاغ عنها من خلال WebView بالتنسيق التالي:

    Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [Build/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) للأجهزة الجوّالة Safari/537.36

    • يجب أن تكون قيمة السلسلة $(VERSION) مماثلة لقيمة android.os.Build.VERSION.VERSION.
    • قد تكون السلسلة $(MODEL) فارغة، لكن إذا لم تكن فارغة يجب أن تحتوي نفس القيمة مثل android.os.Build.MODEL.
    • "إنشاء/$(BUILD)" قد يتم إغفالها، ولكن في حال توفّر رمز $(BUILD) يجب أن تكون السلسلة مماثلة لقيمة android.os.Build.ID.
    • يجب أن تكون قيمة السلسلة $(CHROMIUM_VER) هي إصدار Chromium في مشروع البرامج المفتوحة المصدر لنظام Android
    • قد تحذف عمليات تنفيذ الأجهزة الأجهزة الجوّالة في سلسلة وكيل المستخدم.
  • ينبغي أن يتيح مكوّن WebView دعمًا لأكبر عدد ممكن من ميزات HTML5 قدر الإمكان، وإذا كان يدعم الميزة، يجب أن يتوافق مع مواصفات HTML5.

  • [C-1-4] يجب أن تعرض المحتوى المقدَّم أو محتوى عنوان URL البعيد قيد المعالجة الذي يختلف عن التطبيق الذي ينشئ مثيلاً لمكوّن WebView. على وجه التحديد يجب أن تحصل عملية العرض المنفصلة على امتياز أقل، كمعرّف مستخدم منفصل، أو لا يمكنها الوصول إلى دليل بيانات التطبيق، ليس لها وصول مباشر إلى الشبكة، بل يمكنها الوصول فقط إلى الحد الأدنى المطلوب خدمات النظام عبر Binder. يتوافق تنفيذ AOSP مع WebView لهذا المطلب.

يُرجى ملاحظة أنّه إذا كانت عمليات تنفيذ الأجهزة 32 بت أو يُرجى الإعلان عن علامة الميزة. android.hardware.ram.low، معفى من C-1-3.

3.4.2 توافُق المتصفّح

إذا كانت عمليات تنفيذ الجهاز تتضمن تطبيق متصفح مستقلاً للأغراض العامة لتصفح الويب، وهي:

  • [C-1-1] يجب أن يتوافق مع كل واجهة من واجهات برمجة التطبيقات المرتبطة HTML5:
  • [C-1-2] يجب أن يتوافق مع HTML5/W3C webstorage API ويجب أن تتوافق مع HTML5/W3C IndexedDB API: لاحظ أنه نظرًا لأن الويب انتقال هيئات معايير التطوير إلى منح الأفضلية لقاعدة البيانات المفهرسة من المتوقع أن تصبح IndexedDB مكونًا مطلوبًا في مساحة تخزين الويب لإصدار Android المستقبلي.
  • قد تشحن سلسلة مخصصة لوكيل المستخدم في تطبيق المتصفح المستقل.
  • ينبغي أن تقوم بتنفيذ الدعم لأكبر قدر من HTML5 قدر الإمكان في العنصر المستقل تطبيق المتصفح (سواء كان يعتمد على متصفح WebKit الرئيسي) تطبيق أو بديل من جهة خارجية).

ومع ذلك، إذا لم تكن عمليات تنفيذ الجهاز تتضمن متصفّحًا مستقلاً تطبيقك، فإنها:

  • [C-2-1] يجب أن تدعم أنماط النية العامة كما هو موضّح في القسم 3.2.3.1.

3.5. التوافق السلوكي لواجهة برمجة التطبيقات

عمليات تنفيذ الأجهزة:

  • [C-0-9] يجب أن يضمن تطبيق التوافق السلوكي لواجهة برمجة التطبيقات على جميع التطبيقات المثبّتة إلا إذا كانت مقيّدة كما هو موضّح في القسم 3.5.1.
  • [C-0-10] يجب ألا يتم تنفيذ نهج القائمة المسموح بها الذي يضمن واجهة برمجة التطبيقات التوافق السلوكي فقط للتطبيقات التي يحدّدها الجهاز القائمين على التنفيذ.

يجب أن تكون سلوكيات كل نوع من أنواع واجهات برمجة التطبيقات (سواء API المُدارة أو ناعمة أو أصلية أو واجهة ويب) متسقة مع التنفيذ المفضّل لعملية التنفيذ مشروع مفتوح المصدر لنظام Android: بعض المناطق المحدّدة التوافق هي:

  • [C-0-1] يجب ألا تغيّر الأجهزة سلوك النية القياسية.
  • [C-0-2] يجب ألا تغيّر الأجهزة دورة الحياة أو دلالات دورة الحياة نوع معين من مكونات النظام (مثل Service وactivity وContentProvider، وما إلى ذلك).
  • [C-0-3] يجب ألا تغيّر الأجهزة دلالات الإذن العادي.
  • يجب ألا تغيّر الأجهزة القيود المفروضة على تطبيقات الخلفية. وبشكل أكثر تحديدًا، بالنسبة إلى تطبيقات الخلفية:
    • [C-0-4] يجب أن يتوقف عن تنفيذ عمليات معاودة الاتصال التي تم تسجيلها بواسطة التطبيق لتلقّي النتائج من GnssMeasurement وGnssNavigationMessage
    • [C-0-5] يجب أن تحد من معدل تكرار التحديثات التي التي تم تقديمها إلى التطبيق من خلال LocationManager فئة واجهة برمجة التطبيقات أو WifiManager.startScan() .
    • [C-0-6] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو مستوى أعلى، يجب ألا السماح بتسجيل مستقبلات البث لعمليات البث الضمنية أهداف Android العادية في بيان التطبيق، ما لم يتم البث تتطلّب intent السمة "signature" أو "signatureOrSystem". protectionLevel إذا كانت مُدرَجة في قائمة الإعفاءات
    • [C-0-7] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو المستويات الأحدث، يجب أن يتوقف خدمات الخلفية في التطبيق، تمامًا كما لو أن التطبيق يسمى للخدمات'stopSelf() ما لم يتم وضع التطبيق في قائمة مسموح بها مؤقتة لمعالجة المهمة التي تظهر للمستخدم.
    • [C-0-8] إذا كان التطبيق يستهدف المستوى 25 من واجهة برمجة التطبيقات أو مستوى أعلى، يجب أن الإفراج عن عمليات قفل التنشيط التي يحتفظ بها التطبيق.
  • [C-0-11] يجب أن تعرض الأجهزة موفري الأمان التاليين كأول سبع قيم للصفائف من Security.getProviders() بالترتيب المحدد وبالأسماء المحددة (كما تم إرجاعها بواسطة Provider.getName()) وفئاتها، إلا إذا عدّل التطبيق القائمة عبر insertProviderAt() أو removeProvider(). الأجهزة يمكن عرض مقدّمي خدمات إضافيين بعد اختيار القائمة المحدَّدة لمزوّدي الخدمة. أدناه.
    1. AndroidNSSP - android.security.net.config.NetworkSecurityConfigProvider
    2. AndroidOpenSSL - com.android.org.conscrypt.OpenSSLProvider
    3. CertPathProvider - sun.security.provider.CertPathProvider
    4. AndroidKeyStoreBCWorkaround - android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
    5. BC - com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
    6. HarmonyJSSE - com.android.org.conscrypt.JSSEProvider
    7. AndroidKeyStore - android.security.keystore.AndroidKeyStoreProvider

القائمة أعلاه ليست شاملة. اختبارات مجموعة أدوات اختبار التوافق (CTS) أجزاء كبيرة من النظام الأساسي للتوافق السلوكي، ولكن ليس كلها. مسئول التنفيذ هو المسؤول عن ضمان التوافق السلوكي من خلال مشروع مفتوح المصدر لنظام Android لهذا السبب، غالبًا ما يستخدم اختصاصيو تنفيذ الأجهزة يجب استخدام رمز المصدر المتاح عبر "مشروع مفتوح المصدر لنظام Android" حيث بدلاً من إعادة تنفيذ أجزاء مهمة من النظام.

3.5.1. قيود التطبيق

إذا كانت عمليات تنفيذ الأجهزة تنفّذ آلية خاصة بحظر التطبيقات تكون هذه الآلية أكثر تقييدًا من حزمة تطبيقات وضع الاستعداد المحدود، فهي:

  • [C-1-1] يجب أن يوفر خصائص المستخدم حيث يمكن للمستخدم مشاهدة قائمة التطبيقات المحظورة.
  • [C-1-2] يجب أن تتوفر للمستخدمين إمكانية تفعيل / إيقاف القيود. في كل تطبيق.
  • [C-1-3] يجب ألا يتم تطبيق القيود تلقائيًا بدون دليل على سوءها سلوك سلامة النظام، ولكن قد يتم تطبيق القيود على التطبيقات عند رصدها الأداء السيئ المتعلّق بصحة النظام مثل عمليات قفل التنشيط المتوقِّفة والخدمات التي تعمل لفترات طويلة معايير أخرى. قد يتم تحديد المعايير بواسطة الأجهزة التنفيذية، ولكن يجب بتأثير التطبيق على سلامة النظام. المعايير الأخرى التي لم يتم ترتبط فقط بسلامة النظام، مثل عدم رواج التطبيق في السوق، يجب ألا تُستخدَم كمعايير
  • [C-1-4] يجب عدم تطبيق قيود التطبيقات تلقائيًا على التطبيقات عندما يكون المستخدم قد أوقفت قيود التطبيق يدويًا، وقد تقترح على المستخدم تطبيق القيود المفروضة على التطبيقات.
  • [C-1-5] يجب إبلاغ المستخدمين إذا تم فرض قيود على التطبيق. تلقائيًا. يجب تقديم هذه المعلومات في غضون 24 ساعة من تطبيق القيود.
  • [C-1-6] يجب عرض true للنطاق ActivityManager.isBackgroundRestricted() عندما يستدعي التطبيق المحظور واجهة برمجة التطبيقات هذه
  • [C-1-7] يجب ألا يقيّد استخدام التطبيق العلوي الذي يعمل في المقدّمة بشكل صريح من قِبل المستخدم
  • [C-1-8] يجب تعليق القيود المفروضة على تطبيق يصبح في المقدمة التطبيق عندما يبدأ المستخدم بشكل صريح في استخدام التطبيق مقيَّد.
  • [C-1-10] يجب عدم السماح بوضع التطبيق تلقائيًا في الفئة "مقيَّد" الحزمة خلال ساعتين من آخر استخدام من قِبل المستخدم.

في حال تؤدي عمليات تنفيذ الأجهزة إلى تمديد قيود التطبيق التي يتم تنفيذها في AOSP، فإنهم:

  • [C-2-1] يجب أن يتّبع طريقة التنفيذ الموضّحة في هذا المستند.

3.5.2 إسبات التطبيق

إذا كانت عمليات تنفيذ الجهاز تتضمّن "إسبات التطبيق" المضمّن في بروتوكول AOSP أو يوسّع الميزة المضمّنة في AOSP، فإنه:

  • يجب أن يستوفي [C-1-1] جميع المتطلبات الواردة في الفقرة 3.5.1 باستثناء [C-1-6] و[C-1-3].
  • [C-1-2] يجب ألا يطبّق الحظر على التطبيق إلا للمستخدم في حال توفُّر دليل على أنّ المستخدم لم يستخدم التطبيق لفترة زمنية معيّنة هذا النمط يُوصى بشدة بأن تكون المدة شهرًا أو أكثر. يجب أن يكون الاستخدام محددة من خلال تفاعل صريح من المستخدم عبر UsageStats#getLastTimevisible() واجهة برمجة التطبيقات أو أي شيء قد يؤدي إلى ترك التطبيق في حالة فرض الإيقاف، بما في ذلك عمليات ربط الخدمات وعمليات ربط موفّر المحتوى وعمليات البث الصريحة وما إلى ذلك والذي سيتم تتبُّعه باستخدام واجهة برمجة التطبيقات UsageStats#getLastTimeAnyComponentUsed() الجديدة.
  • [C-1-3] يجب فقط تطبيق القيود التي تؤثر على جميع مستخدمي الأجهزة عند وجود دليل على أن أي مستخدم لم يستخدم الطرد لفترة من الوقت. يُوصى بشدة بأن تكون هذه المدة شهرًا واحدًا أو أكثر.
  • [C-1-4] يجب ألا يعرض التطبيق غير قادر على الاستجابة لأهداف النشاط. أو قيود الخدمة أو طلبات موفّر المحتوى أو عمليات البث الصريحة.

يستوفي وضع "إسبات التطبيق" في بروتوكول AOSP المتطلبات أعلاه.

3.6. مساحات أسماء واجهات برمجة التطبيقات

يتبع Android اصطلاحات مساحة الاسم للحزمة والفئة المحددة في Java الأساسية. لضمان التوافق مع التطبيقات التابعة لأطراف ثالثة، على المستخدمين الذين نفّذوا الجهاز إجراء أي تعديلات محظورة (انظر أدناه) مساحات اسم الحزمة التالية:

  • java.*
  • javax.*
  • sun.*
  • android.*
  • androidx.*
  • com.android.*

أي أنها:

  • [C-0-1] يجب ألا يعدّل واجهات برمجة التطبيقات المعروضة بشكل علني على نظام Android الأساسي عن طريق تغيير أي طريقة أو توقيعات فئة، أو عن طريق إزالة فئات أو فئة الحقول.
  • [C-0-2] يجب ألا يضيف أي عناصر مكشوفة بشكل عام (مثل الفئات أو الواجهات أو الحقول أو الطرق إلى فئات أو واجهات موجودة) أو اختبار أو System APIs إلى واجهات برمجة التطبيقات في مساحات الاسم المذكورة أعلاه. يحدد العنوان "الكشف بشكل علني العنصر" هو أي بنية غير مزينة بـ "@إخفاء" علامة كـ في رمز المصدر الرئيسي لنظام Android

قد تعدّل جهات تنفيذ الأجهزة عملية التنفيذ الأساسية لواجهات برمجة التطبيقات، ولكن هذه التعديلات:

  • [C-0-3] يجب ألا يؤثر على السلوك المعلن وتوقيع لغة Java أي واجهات برمجة تطبيقات مكشوفة بشكل علني.
  • [C-0-4] يجب ألا يتم الإعلان عنه أو عرضه للمطوّرين.

ومع ذلك، قد يضيف القائمون على تنفيذ الأجهزة واجهات برمجة تطبيقات مخصَّصة خارج نطاق نظام التشغيل Android العادي. مساحة الاسم، ولكن واجهات برمجة التطبيقات المخصصة:

  • [C-0-5] يجب ألا يكون في مساحة اسم يملكها شخص آخر أو تشير إليه التنظيم. مثلاً، يجب ألا يضيف القائمون على تنفيذ الأجهزة واجهات برمجة التطبيقات إلى com.google.* أو مساحة اسم مشابهة: يجوز لشركة Google فقط إجراء ذلك. وبالمثل، على Google ألا تضيف واجهات برمجة التطبيقات إلى الشركات الأخرى ومساحات الاسم.
  • يجب تضمين [C-0-6] في مكتبة مشتركة على Android بحيث لا يمكن تضمين سوى التطبيقات التي تستخدمها بشكل صريح (عبر آلية <uses-library>) المتزايد باستخدام الذاكرة لواجهات برمجة التطبيقات هذه.

يمكن للمستخدمين الذين نفّذوا الأجهزة إضافة واجهات برمجة تطبيقات مخصَّصة باللغات الأصلية، خارج NDK. ولكن واجهات برمجة التطبيقات المخصصة:

  • [C-1-1] يجب ألا يكون في مكتبة NDK أو مكتبة يملكها شخص آخر المؤسسة كما هو موضح هنا.

إذا اقترح أحد منفّذي الجهاز تحسين إحدى مساحات اسم الحزمة أعلاه (مثل إضافة وظائف جديدة مفيدة إلى واجهة برمجة تطبيقات حالية أو إضافة واجهة برمجة التطبيقات)، يجب على القائم بالتنفيذ الانتقال إلى source.android.com وبدء عملية المساهمة بالتغييرات الرمز، وفقًا للمعلومات على هذا الموقع.

لاحظ أن القيود المذكورة أعلاه تتوافق مع الاصطلاحات القياسية للتسمية واجهات برمجة التطبيقات بلغة برمجة Java؛ يهدف هذا القسم ببساطة إلى تعزيز تلك الاصطلاحات وتجعلها ملزمة من خلال التضمين في هذا التوافق التعريف

3.7. التوافق مع بيئة التشغيل

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتوافق مع تنسيق Dalvik التنفيذي بالكامل (DEX) ومواصفات رمز بايت Dalvik والدلالات الدلالية.

  • [C-0-2] يجب ضبط بيئات تشغيل Dalvik لتخصيص الذاكرة فيها وفقًا لنظام Android الأساسي، وكما هو محدّد في الجدول التالي. (راجع القسم 7.1.1 للاطلاع على تعريفات حجم الشاشة وكثافة الشاشة).

  • "يجب استخدام وقت تشغيل Android" (ART)، المرجع الرئيسي في مسار التشغيل تنفيذ تنسيق Dalvik التنفيذي، والمرجع نظام إدارة حزم التنفيذ.

  • يجب إجراء اختبارات الإخفاق في ظل أوضاع التنفيذ المختلفة والبُنى الأساسية المستهدفة لضمان ثبات بيئة التشغيل. ارجع إلى JFuzz وDexFuzz في موقع مشروع Android المفتوح المصدر على الويب.

لاحظ أن قيم الذاكرة المحددة أدناه تعد قيمًا دنيا عمليات تنفيذ الأجهزة قد تخصص المزيد من الذاكرة لكل تطبيق.

تنسيق الشاشة كثافة الشاشة الحد الأدنى لذاكرة التطبيق
ساعة Android 120 نقطة لكل بوصة (ldpi) 32 ميغابايت
140 نقطة لكل بوصة (140 نقطة لكل بوصة)
160 نقطة لكل بوصة (mdpi)
180 نقطة لكل بوصة (180 نقطة لكل بوصة)
200 نقطة لكل بوصة (200 نقطة لكل بوصة)
213 نقطة لكل بوصة (tvdpi)
220 نقطة لكل بوصة (220 نقطة لكل بوصة) 36 ميغابايت
240 نقطة لكل بوصة (hdpi)
280 نقطة لكل بوصة (280 نقطة لكل بوصة)
320 نقطة لكل بوصة (xhdpi) 48 ميغابايت
360 نقطة لكل بوصة (360 نقطة لكل بوصة)
400 نقطة لكل بوصة (400 نقطة لكل بوصة) 56 ميغابايت
420 نقطة لكل بوصة (420 نقطة لكل بوصة) 64 ميغابايت
480 نقطة لكل بوصة (xxhdpi) 88 ميغابايت
560 نقطة لكل بوصة (560 نقطة لكل بوصة) 112 ميغابايت
640 نقطة لكل بوصة (xxxhdpi) 154 ميغابايت
صغيرة/عادية 120 نقطة لكل بوصة (ldpi) 32 ميغابايت
140 نقطة لكل بوصة (140 نقطة لكل بوصة)
160 نقطة لكل بوصة (mdpi)
180 نقطة لكل بوصة (180 نقطة لكل بوصة) 48 ميغابايت
200 نقطة لكل بوصة (200 نقطة لكل بوصة)
213 نقطة لكل بوصة (tvdpi)
220 نقطة لكل بوصة (220 نقطة لكل بوصة)
240 نقطة لكل بوصة (hdpi)
280 نقطة لكل بوصة (280 نقطة لكل بوصة)
320 نقطة لكل بوصة (xhdpi) 80 ميغابايت
360 نقطة لكل بوصة (360 نقطة لكل بوصة)
400 نقطة لكل بوصة (400 نقطة لكل بوصة) 96 ميغابايت
420 نقطة لكل بوصة (420 نقطة لكل بوصة) 112 ميغابايت
480 نقطة لكل بوصة (xxhdpi) 128 ميغابايت
560 نقطة لكل بوصة (560 نقطة لكل بوصة) 192 ميغابايت
640 نقطة لكل بوصة (xxxhdpi) 256 ميغابايت
كبير 120 نقطة لكل بوصة (ldpi) 32 ميغابايت
140 نقطة لكل بوصة (140 نقطة لكل بوصة) 48 ميغابايت
160 نقطة لكل بوصة (mdpi)
180 نقطة لكل بوصة (180 نقطة لكل بوصة) 80 ميغابايت
200 نقطة لكل بوصة (200 نقطة لكل بوصة)
213 نقطة لكل بوصة (tvdpi)
220 نقطة لكل بوصة (220 نقطة لكل بوصة)
240 نقطة لكل بوصة (hdpi)
280 نقطة لكل بوصة (280 نقطة لكل بوصة) 96 ميغابايت
320 نقطة لكل بوصة (xhdpi) 128 ميغابايت
360 نقطة لكل بوصة (360 نقطة لكل بوصة) 160 ميغابايت
400 نقطة لكل بوصة (400 نقطة لكل بوصة) 192 ميغابايت
420 نقطة لكل بوصة (420 نقطة لكل بوصة) 228 ميغابايت
480 نقطة لكل بوصة (xxhdpi) 256 ميغابايت
560 نقطة لكل بوصة (560 نقطة لكل بوصة) 384 ميغابايت
640 نقطة لكل بوصة (xxxhdpi) 512 ميغابايت
كبير جدًا 120 نقطة لكل بوصة (ldpi) 48 ميغابايت
140 نقطة لكل بوصة (140 نقطة لكل بوصة) 80 ميغابايت
160 نقطة لكل بوصة (mdpi)
180 نقطة لكل بوصة (180 نقطة لكل بوصة) 96 ميغابايت
200 نقطة لكل بوصة (200 نقطة لكل بوصة)
213 نقطة لكل بوصة (tvdpi)
220 نقطة لكل بوصة (220 نقطة لكل بوصة)
240 نقطة لكل بوصة (hdpi)
280 نقطة لكل بوصة (280 نقطة لكل بوصة) 144 ميغابايت
320 نقطة لكل بوصة (xhdpi) 192 ميغابايت
360 نقطة لكل بوصة (360 نقطة لكل بوصة) 240 ميغابايت
400 نقطة لكل بوصة (400 نقطة لكل بوصة) 288 ميغابايت
420 نقطة لكل بوصة (420 نقطة لكل بوصة) 336 ميغابايت
480 نقطة لكل بوصة (xxhdpi) 384 ميغابايت
560 نقطة لكل بوصة (560 نقطة لكل بوصة) 576 ميغابايت
640 نقطة لكل بوصة (xxxhdpi) 768 ميغابايت

3.8. التوافق مع واجهة المستخدم

3.8.1. مشغّل التطبيقات (الشاشة الرئيسية)

يشتمل Android على تطبيق مشغّل (الشاشة الرئيسية) ودعم لـ تطبيقات الجهات الخارجية لاستبدال مشغّل الجهاز (الشاشة الرئيسية).

إذا كانت عمليات تنفيذ الجهاز تسمح لتطبيقات تابعة لجهات خارجية باستبدال الجهاز الشاشة الرئيسية، فإنهم:

  • [C-1-1] يجب أن يعلن عن ميزة المنصة android.software.home_screen.
  • [C-1-2] يجب أن يعرض AdaptiveIconDrawable العنصر عندما يستخدم التطبيق التابع لجهة خارجية علامة <adaptive-icon> لتوفير ورمزها، وPackageManager لاسترداد الأيقونات.

في حال تضمّنت عمليات تنفيذ الجهاز مشغّل تطبيقات تلقائيًا متوافقًا داخل التطبيق تثبيت الاختصارات، فإنها:

وبالعكس، إذا لم تكن عمليات تنفيذ الجهاز تتيح تثبيت الاختصارات، فهي:

إذا كانت عمليات تنفيذ الجهاز تستخدم مشغّلًا تلقائيًا يوفر تجربة سريعة إلى الاختصارات الإضافية التي تقدمها التطبيقات التابعة لجهات خارجية من خلال اختصار Manager واجهة برمجة التطبيقات، وهي:

  • [C-4-1] يجب أن تتوافق مع جميع ميزات الاختصارات الموثَّقة (مثل الرموز الثابتة والاختصارات الديناميكية واختصارات التثبيت) وتنفيذ واجهات برمجة التطبيقات ShortcutManager فئة واجهة برمجة التطبيقات.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن تطبيق مشغّل تلقائيًا يعرض شارات أيقونات التطبيق، فهي:

  • [C-5-1] يجب أن يلتزم NotificationChannel.setShowBadge() طريقة واجهة برمجة التطبيقات. بعبارة أخرى، قم بإظهار عنصر وظيفي مرتبط بأيقونة التطبيق إذا تم ضبط القيمة على true، ولا تعرض أي مخطط لشارات رموز التطبيق عند من قنوات الإشعارات الخاصة بالتطبيق قد ضبطت القيمة على false.
  • قد يتم إلغاء شارات رموز التطبيق باستخدام شارات الملكية الخاصة بها في حال تشير تطبيقات الجهات الخارجية إلى دعم نظام شارات الملكية من خلال استخدام واجهات برمجة تطبيقات خاصة، ولكن يجب أن يتم استخدام الموارد والقيم المقدَّمة من خلال واجهات برمجة التطبيقات لشارات الإشعارات الموضّحة في حزمة تطوير البرامج (SDK) مثل Notification.Builder.setNumber() وNotification.Builder.setBadgeIconType() واجهة برمجة التطبيقات.

3.8.2 التطبيقات المصغَّرة

يدعم Android أدوات التطبيقات التابعة لجهات خارجية من خلال تحديد نوع المكوِّن واجهة برمجة التطبيقات ودورة الحياة التي تسمح للتطبيقات بعرض "AppWidget" للمستخدم النهائي.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أدوات التطبيقات التابعة لجهات خارجية، سيتم إجراء ما يلي:

  • [C-1-1] يجب الإعلان عن توافقه مع ميزة المنصة android.software.app_widgets
  • [C-1-2] يجب أن يشتمل على دعم مضمّن لـ AppWidgets وأن يعرض عناصر واجهة المستخدم لإضافة أداة AppWidgets وتهيئتها وعرضها وإزالتها مباشرةً داخل "مشغِّل التطبيقات".
  • [C-1-3] يجب أن يكون قادرًا على عرض الأدوات بحجم 4 × 4 في حجم الشبكة القياسي. الاطّلاع على إرشادات تصميم أداة التطبيقات في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android للحصول على التفاصيل.
  • قد يتوافق مع أدوات التطبيقات على شاشة القفل.

ما إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أدوات التطبيقات التابعة لجهات خارجية وداخل التطبيقات تثبيت الاختصارات، فإنها:

3.8.3. الإشعارات

يشمل نظام التشغيل Android Notification NotificationManager تسمح هذه الواجهات لمطوّري التطبيقات التابعة لجهات خارجية بإشعار المستخدمين بالأحداث وجذب اهتمام المستخدمين عناية باستخدام مكونات الأجهزة (مثل الصوت والاهتزاز والضوء) وميزات البرامج (مثل مركز الإشعارات وشريط النظام) الخاص بك.

3.8.3.1. عرض الإشعارات

إذا كانت عمليات تنفيذ الأجهزة تسمح للتطبيقات التابعة لجهات خارجية بإبلاغ المستخدمين بالأحداث المهمة، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن تتيح إرسال الإشعارات التي تستخدم ميزات الأجهزة على النحو الموضَّح في مستندات حزمة SDK، وإلى أقصى حد ممكن مع عمليات تنفيذ الجهاز الأجهزة. على سبيل المثال، إذا كان تنفيذ الجهاز يتضمن هزّازًا، يجب تنفيذ واجهات برمجة تطبيقات الاهتزاز بشكل صحيح. إذا كان تنفيذ الجهاز ينقص يجب تنفيذ واجهات برمجة التطبيقات المقابلة في حالة عدم وجود عمليات. هذا السلوك هو بمزيد من التفصيل في القسم 7.
  • [C-1-2] يجب أن يعرض جميع الموارد بشكل صحيح (الرموز وملفات الرسوم المتحركة وما إلى ذلك) المتوفرة في واجهات برمجة التطبيقات أو في دليل نمط رموز شريط الحالة/النظام، على الرغم من أنّها قد توفّر تجربة مستخدم بديلة للإشعارات عن ذلك المقدَّم من خلال مرجع التنفيذ المفتوح المصدر لنظام Android
  • [C-1-3] يجب أن يلتزم وينفذ بشكل صحيح السلوكيات الموضحة واجهات برمجة التطبيقات لتعديل الإشعارات وإزالتها وتجميعها.
  • [C-1-4] يجب توفير السلوك الكامل لـ NotificationChannel واجهة برمجة التطبيقات الموثَّقة في حزمة تطوير البرامج (SDK)
  • [C-1-5] يجب أن تتوفر للمستخدم إمكانية حظر وتعديل محتوى وإشعار تطبيق تابع لجهة خارجية لكل قناة ومستوى حزمة التطبيق.
  • [C-1-6] يجب أيضًا توفير إمكانية عرض المستخدم للإشعار المحذوف القنوات.
  • [C-1-7] يجب أن تعرض كل الموارد بشكل صحيح (الصور والملصقات والرموز وما إلى ذلك) المقدَّمة من خلال Notification.MessagingStyle بجانب نص الإشعار بدون أي تفاعل إضافي من المستخدم. بالنسبة على سبيل المثال، يجب أن تظهر جميع الموارد بما في ذلك الرموز المقدمة من خلال android.app.Person في محادثة جماعية يتم تحديدها من خلال setGroupConversation.
  • [C-SR-1] يُوصى بها بشدة لعرض اهتمامات المستخدم تلقائيًا حظر تلقّي إشعارات من تطبيق معيّن تابع لجهة خارجية لكل قناة وتطبيق مستوى الحزمة بعد أن يرفض المستخدم هذا الإشعار عدة مرات
  • [C-SR-2] يُوصى بها بشدة لتوفير وظيفة للمستخدم التحكّم في الإشعارات التي يتم عرضها للتطبيقات التي تم منحها إذن "أداة معالجة الإشعارات" يجب أن يكون الدقة للمستخدم التحكّم في نوع الإشعار الذي يتم إرساله الأنواع المختلفة تصل إلى هذا المستمع. يجب أن تتضمن الأنواع "محادثات" و"تنبيه" و"صامتة" و"مهمة مستمرة" الإشعارات.
  • [C-SR-3] يوصى بشدة بتوفير إمكانية على المستخدمين تحديد التطبيقات المطلوب استبعادها من إشعار أي مستمع إشعار محدد.
  • يجب أن يكون متوافقًا مع الإشعارات الغنية.
  • يجب تقديم بعض الإشعارات ذات الأولوية الأعلى كإشعارات تنبيهية.
  • يجب أن يملك المستخدم القدرة على تأجيل الإشعارات.
  • قد يدير هذا الإعداد مستوى العرض وتوقيت الإشعارات التي يمكن للتطبيقات التابعة لجهات خارجية إرسال الإشعارات فيها فقط. للمستخدمين للأحداث البارزة للتخفيف من مشكلات السلامة مثل تشتيت السائق.

يوفِّر Android 11 إمكانية استخدام إشعارات المحادثات، وهي الإشعارات التي تستخدم MessagingStyle وتوفّر معرّف اختصار الأشخاص المنشور.

عمليات تنفيذ الأجهزة:

  • [C-SR-4] يُنصح بشدة بتجميعها وعرضها conversation notifications قبل الإشعارات التي لا تتعلّق بالمحادثة باستثناء الإشعارات المستمرة عن الخدمة التي تعمل في المقدّمة وimportance:high الإشعارات.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع conversation notifications ويوفر التطبيق البيانات المطلوبة bubbles:

  • [C-SR-5] يُنصح بشدة بعرض هذه المحادثة كفقاعة. تفي عملية تنفيذ AOSP بهذه المتطلبات من خلال واجهة مستخدم النظام التلقائية الإعدادات ومشغّل التطبيقات

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الإشعارات المنسّقة، سيتم إجراء ما يلي:

  • [C-2-1] يجب أن يستخدم الموارد الدقيقة المقدّمة من خلال Notification.Style فئة واجهة برمجة التطبيقات وفئاتها الفرعية لعناصر الموارد المعروضة.
  • "ينبغي" تقديم كل عنصر من عناصر الموارد (على سبيل المثال، الرمز والعنوان ونص الملخّص) المحدّدة في Notification.Style فئة واجهة برمجة التطبيقات وفئاتها الفرعية.

إذا كانت عمليات تنفيذ الأجهزة تتيح إشعارات التنبيه:

  • [C-3-1] يجب استخدام الموارد وعرض الإشعارات الرأسية كما هو موضّح في Notification.Builder فئة واجهة برمجة التطبيقات عند عرض إشعارات تنبيهية.
  • [C-3-2] يجب أن يعرض الإجراءات المقدمة من خلال Notification.Builder.addAction() مع محتوى الإشعار بدون تفاعل إضافي من المستخدم كما هو موضّح في حزمة تطوير البرامج (SDK).
3.8.3.2. خدمة تلقّي الإشعارات

يتضمّن Android NotificationListenerService واجهات برمجة التطبيقات التي تسمح للتطبيقات (بعد أن يفعّلها المستخدم صراحةً) بتلقّي نسخة من جميع الإشعارات عند نشرها أو تعديلها.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب تعديل الإشعارات بالكامل بشكل صحيح وفوري بجميع خدمات المستمعين التي ثبّتها أو يفعّلها المستخدم، بما في ذلك كل البيانات الوصفية المرفقة بعنصر الإشعار
  • [C-0-2] يجب أن يلتزم snoozeNotification() طلب بيانات من واجهة برمجة التطبيقات، وإغلاق الإشعار وإجراء معاودة الاتصال بعد التأجيل يتم تحديدها في طلب بيانات من واجهة برمجة التطبيقات.

إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدم بتأجيل الإشعارات،:

  • [C-1-1] يجب أن يعكس حالة الإشعار المؤجل بشكل صحيح من خلال واجهات برمجة التطبيقات القياسية مثل NotificationListenerService.getSnoozedNotifications()
  • [C-1-2] يجب أن تجعل ميزات هذا المستخدم متاحة لتأجيل الإشعارات من كل تطبيق مثبت تابع لجهة خارجية، ما لم يكن من الخدمات المستمرة/التي تعمل في المقدّمة.
3.8.3.3. وضع "عدم الإزعاج" (DND)

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "عدم الإزعاج"، سيتم:

  • [C-1-1] يجب أن يستخدم هذا الإذن في الحالات التي يوفّر فيها تنفيذ الجهاز وسيلة للمستخدم بمنح التطبيقات التابعة لجهات خارجية أو منعها من الوصول إلى إعدادات سياسة DND عرض قواعد DND التلقائية التطبيقات إلى جانب القواعد التي أنشأها المستخدم والمحددة مسبقًا.
  • [C-1-3] يجب أن يلتزم بـ suppressedVisualEffects القيم التي تم تمريرها في NotificationManager.Policy وإذا كان التطبيق قد ضبط أيًا من SUPPRESSED_مؤثر_SCREEN_OFF أو لعلامات SUPPRESSED_مؤثرات_SCREEN_ON، فيجب أن تشير للمستخدم أن يتم منع التأثيرات المرئية في قائمة إعدادات DND.

3.8.4 واجهات برمجة تطبيقات المساعدة

يتضمَّن Android واجهات برمجة تطبيقات المساعدة للسماح للتطبيقات باختيار مقدار معلومات السياق الحالي تمت مشاركته مع "مساعد Google" على الجهاز.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع إجراء المساعدة، سيتم:

  • [C-2-1] يجب أن يشير بوضوح للمستخدم النهائي عند مشاركة السياق عن طريق إما:
    • وفي كل مرة يصل فيها التطبيق المساعد إلى السياق، ويعرض الضوء حول حواف الشاشة التي تلبي أو تتجاوز المدة سطوع تنفيذ "مشروع مفتوح المصدر لنظام Android"
    • بالنسبة إلى تطبيق المساعد المثبَّت مسبقًا، فهو يوفر تكلفة أقل من عمليتَي تنقل بعيدًا عن قائمة الإعدادات التلقائية لتطبيق "مساعد Google" والإدخال الصوتي، ولا تتم مشاركة السياق إلا عند استدعاء التطبيق المساعد بشكل صريح من خلال للمستخدم من خلال الكلمة المفتاح أو المساعدة في إدخال مفتاح التنقل.
  • [C-2-2] التفاعل المعيّن لتشغيل التطبيق المساعد على النحو الموضَّح في القسم 7.2.3 يجب أن يُطلق المستخدم التطبيق المساعد، أو بعبارةٍ أخرى التطبيق الذي ينفّذ VoiceInteractionService، أو نشاط يعالج هدف ACTION_ASSIST

3.8.5 التنبيهات والإشعارات

يمكن للتطبيقات استخدام Toast واجهة برمجة التطبيقات لعرض سلاسل قصيرة غير نمطية للمستخدم النهائي التي تختفي بعد لفترة زمنية قصيرة، واستخدام TYPE_APPLICATION_OVERLAY window type API لعرض نوافذ التنبيهات كتراكب على التطبيقات الأخرى.

إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:

  • [C-1-1] يجب أن يوفر للمستخدم إمكانية منع التطبيق من عرض التنبيه النوافذ التي تستخدم TYPE_APPLICATION_OVERLAY . ويلبي تنفيذ AOSP هذا الشرط من خلال توفُّر عناصر تحكّم في مركز الإشعارات.

  • [C-1-2] يجب أن يلتزم بـ Toast API وأن يعرض Toasts من التطبيقات إلى المستخدمين النهائيين في بعض بشكل مرئي.

3.8.6. المظاهر

يوفّر Android "المظاهر" كآلية تتيح للتطبيقات تطبيق الأنماط على نشاط أو تطبيق بالكامل.

يتضمن Android "Holo" و"Material" مجموعة الموضوع كمجموعة من الأنماط المحددة إلى أن يستخدمه مطورو التطبيقات إذا أرادوا مطابقة مظهر ومظهر مجسم كما هو محدد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:

  • [C-1-1] يجب ألا يغير أيًا من سمات مظهر Holo المعروضة التطبيقات.
  • [C-1-2] يجب أن تتوافق مع مجموعة المظاهر "Material" (المادة) ويجب ألا تغيّر أيًا من سمات المظهر المتعدد الأبعاد أو أصولها المكشوفة للتطبيقات.
  • [C-1-3] يجب أن يضبط "sans-serif" مجموعة الخطوط إلى الإصدار 2.x من Roboto للغات التي تدعمها Roboto أو توفر للمستخدم القدرة على تغيير الخط المستخدم "sans-serif" مجموعة الخطوط إلى الإصدار 2.x من Roboto للغات التي تدعمها Roboto.

يتضمّن Android أيضًا مجموعة المظاهر "التلقائية للجهاز" كمجموعة من الأنماط المحدّدة. استخدام مطوري التطبيقات إذا أرادوا التوافق مع شكل ومضمون مظهر الجهاز كما هو محدد من قِبل أداة تنفيذ الجهاز.

يتيح Android مظهرًا متفاوتًا مع أشرطة نظام شبه شفافة، ما يتيح مطوري التطبيقات لملء المنطقة خلف شريط الحالة والتنقل مع محتوى التطبيق. لتوفير تجربة متسقة للمطوّرين للغاية، فمن المهم الحفاظ على نمط رمز شريط الحالة عبر عمليات تنفيذ الأجهزة المختلفة.

إذا كانت عمليات تنفيذ الجهاز تتضمّن شريط حالة للنظام، سيؤدّي ذلك إلى ما يلي:

  • [C-2-1] يجب استخدام اللون الأبيض لرموز حالة النظام (مثل قوة الإشارة مستوى البطارية) والإشعارات الصادرة عن النظام، ما لم يكن الرمز تشير إلى حالة هناك مشكلة أو أن التطبيق يطلب شريط حالة خفيف باستخدام WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS .
  • [C-2-2] يجب أن تؤدي عمليات تنفيذ أجهزة Android إلى تغيير لون النظام تصبح رموز الحالة باللون الأسود (للحصول على التفاصيل، راجِع R.style) عندما يكون التطبيق يطلب شريط حالة خفيف.

3.8.7. خلفيات متحركة

يحدد Android نوع المكوِّن وواجهة برمجة التطبيقات ودورة النشاط المرتبطة بها التي تسمح التطبيقات لكشف تطبيق واحد أو أكثر "خلفيات متحركة" للمستخدم النهائي. الخلفيات المتحركة هي صور متحركة أو نقوش أو صور مشابهة مع إمكانات إدخال محدودة تظهر كخلفية التطبيقات.

اعتبار الأجهزة قادرة على تشغيل الخلفيات المتحركة بشكل موثوق إذا كان من الممكن تشغيلها كل الخلفيات المتحركة التي لا تُفرض أي قيود على وظائفها وفي إطار معقول بدون أي تأثيرات سلبية على التطبيقات الأخرى. إذا كانت القيود في تتسبب في تعطُّل الخلفيات و/أو التطبيقات أو تعطُّل وظائفها أو استهلاكها وحدة معالجة مركزية (CPU) أو طاقة بطارية زائدة عن الحد، أو تعمل بمعدلات إطارات منخفضة بشكل غير مقبول، الأجهزة غير قادرة على تشغيل خلفية متحركة. على سبيل المثال، قد يفكر بعض قد تستخدم الخلفيات المتحركة سياق OpenGL 2.0 أو 3.x لعرض المحتوى الخاص بها. لن يتم تشغيل الخلفية المتحركة بشكل موثوق على الأجهزة التي لا تتوافق مع العديد من سياقات OpenGL لأنّ استخدام الخلفية المباشرة لسياق OpenGL قد يتعارض مع مع التطبيقات الأخرى التي تستخدم أيضًا سياق OpenGL.

  • تطبيقات الأجهزة التي يمكنها تشغيل خلفيات متحركة بشكل موثوق به على النحو الموضَّح "ينبغي" أعلاه استخدام الخلفيات المتحركة.

في حال استخدام خلفيات مباشرة على الجهاز، سيتم إجراء ما يلي:

  • [C-1-1] يجب الإبلاغ عن علامة ميزة النظام الأساسي android.software.live_wallpaper.

3.8.8 التبديل بين الأنشطة

تشتمل شفرة المصدر الرئيسية لنظام التشغيل Android على شاشة النظرة العامة واجهة مستخدم على مستوى النظام لتبديل المهام وعرض العناصر التي تم الوصول إليها مؤخرًا الأنشطة والمهام باستخدام صورة مصغّرة للرسم البياني للتطبيق في اللحظة التي غادر فيها المستخدم التطبيق آخر مرة.

عمليات تنفيذ الأجهزة بما في ذلك مفتاح التنقل للوظائف كما هو موضح بالتفصيل في القسم 7.2.3 قد يغيّر الواجهة.

إذا كانت عمليات تنفيذ الجهاز تشمل مفتاح التنقل للوظائف كما هو موضح بالتفصيل في القسم 7.2.3 تغيّر الواجهة، فإنها:

  • [C-1-1] يجب أن يتيح ما يصل إلى 7 أنشطة معروضة على الأقل.
  • يجب أن تعرض على الأقل عنوان 4 أنشطة في المرة الواحدة.
  • [C-1-2] يجب أن ينفذ سلوك تثبيت الشاشة وتزويد المستخدم بقائمة إعدادات لتبديل الميزة.
  • "ينبغي" عرض لون التمييز أو الرمز أو عنوان الشاشة في العناصر الأخيرة.
  • يجب عرض خاصية الإغلاق ("x") ولكن قد يؤخر ذلك حتى يتفاعل المستخدم مع الشاشات.
  • يجب تنفيذ اختصار للتبديل بسهولة إلى النشاط السابق.
  • يجب تشغيل إجراء التبديل السريع بين آخر إصدارين تم استخدامهما مؤخرًا التطبيقات، عندما يتم النقر على مفتاح الوظائف الأحدث مرتين.
  • "ينبغي" تشغيل وضع تقسيم الشاشة المتعدد، إذا كان ذلك متاحًا، عند الضغط مع الاستمرار على مفتاح الوظائف الأخيرة.
  • وقد يعرض آخر العناصر التابعة كمجموعة تتحرك معًا.
  • [SR-1] يُنصح بشدة باستخدام إصدار Android الرئيسي (أو واجهة مشابهة مستندة إلى الصورة المصغرة) لشاشة النظرة العامة.

3.8.9 إدارة الإدخال

يشتمل نظام Android على دعم إدارة الإدخال ودعم لمحرري أساليب الإدخال من جهات خارجية.

إذا كانت عمليات تنفيذ الأجهزة تسمح للمستخدمين باستخدام طرق إدخال تابعة لجهات خارجية على على الجهاز، فإنها:

  • [C-1-1] يجب أن يفصح عن ميزة النظام الأساسي android.software.input_methods تتيح استخدام واجهات برمجة تطبيقات IME كما هو موضح في وثائق Android SDK.

3.8.10. التحكّم في الوسائط على شاشة القفل

تم إيقاف واجهة برمجة التطبيقات Remote Control Client API نهائيًا من Android 5.0 لصالح نموذج إشعار الوسائط تسمح لتطبيقات الوسائط بالتكامل مع عناصر التحكم في التشغيل المعروضة على شاشة القفل.

3.8.11. شاشات الاستراحة (المعروفة سابقًا باسم Dreams)

يُرجى الاطّلاع على القسم 3.2.3.5 لمعرفة الإعدادات. في نية تكوين شاشات الاستراحة.

3.8.12. الموقع الجغرافي

إذا كانت عمليات تنفيذ الجهاز تتضمّن أداة استشعار (مثل نظام تحديد المواقع العالمي (GPS)) قادرة توفير إحداثيات الموقع،

3.8.13. يونيكود والخط

يتيح Android استخدام رموز الإيموجي المحددة في Unicode 10.0

إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:

  • [C-1-1] يجب أن يكون قادرًا على عرض رموز الإيموجي هذه بأحرف رسومية ملونة.
  • [C-1-2] يجب أن يتضمن الدعم لما يلي:
    • خط Roboto 2 بأوزان مختلفة —sans-serif-thin، sans-serif-light، sans-serif-medium, sans-serif-blue, sans-serif-condensed" sans-serif-condensed-light للغات المتاحة على الجهاز.
    • تغطية Unicode 7.0 كاملة للّغات اللاتينية واليونانية والسيريلية، بما في ذلك النطاقات اللاتينية الموسعة A وB وC وD، وجميع الأحرف الرسومية بالعملة كتلة الرموز لـ Unicode 7.0.
  • [C-1-3] يجب ألا يزيل أو يعدل NotoColorEmoji.tff في صورة النظام. (يمكن إضافة خط رموز تعبيرية جديد لإلغاء الرموز التعبيرية في NotoColorEmoji.tff)
  • يجب أن يتوافق مع لون البشرة والرموز التعبيرية المتنوعة المناسبة للعائلة على النحو المحدّد في سمة تقرير Unicode الفني رقم 51.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن أداة IME، سيتم إجراء ما يلي:

  • يجب أن يتم توفير أسلوب إدخال للمستخدم لهذه الرموز التعبيرية.

يتيح نظام Android عرض خطوط ميانمار. تضم ميانمار العديد من خطوط غير متوافقة مع يونيكود، وتُعرف باسم "زاوجي"، لعرض ميانمار اللغات.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن توافقًا مع البورمية، سيتم إجراء ما يلي:

  • [C-2-1] يجب أن يتم عرض نص بخط متوافق مع يونيكود كإعداد تلقائي. يجب عدم تعيين الخط الذي لا يتوافق مع يونيكود كخط تلقائي إلا إذا اختار المستخدم سيختاره من أداة اختيار اللغة
  • [C-2-2] يجب استخدام خط Unicode وخط غير متوافق مع Unicode إذا استخدام خط غير متوافق مع يونيكود على الجهاز. بدون يونيكود يجب ألا يزيل الخط المتوافق خط يونيكود أو يستبدله.
  • [C-2-3] يجب عرض النص بخط غير متوافق مع يونيكود فقط إذا كان رمز اللغة مع رمز النص البرمجي Qaag (على سبيل المثال، my-Qaag). ما من رموز مناطق أو لغات أخرى وفقًا للمنظمة الدولية للمعايير (ISO) (سواء معيّنة أو غير معيَّنة أو محجوزة) للإشارة إلى ملفات غير يونيكود الخط المتوافق لميانمار. يمكن لمطوّري التطبيقات ومؤلفي صفحات الويب تحديد my-Qaag كرمز لغة محدد كما هو الحال مع أي لغة أخرى.

3.8.14 نوافذ متعددة

إذا كانت لعمليات تنفيذ الأجهزة القدرة على عرض أنشطة متعددة في نفس الوقت، فإنها:

  • [C-1-1] يجب تنفيذ أوضاع النوافذ المتعددة هذه وفقًا سلوكيات التطبيقات وواجهات برمجة التطبيقات الموضحة في حزمة تطوير البرامج (SDK) لنظام التشغيل Android مستندات دعم وضع النوافذ المتعددة واجتماع المتطلبات التالية:
  • [C-1-2] يجب أن يلتزم بـ android:resizeableActivity يتم ضبطه من خلال تطبيق في ملف AndroidManifest.xml على النحو الموضّح في حزمة SDK هذه
  • [C-1-3] يجب ألا يتم توفير وضع تقسيم الشاشة أو وضع الشكل الحر إذا ارتفاع الشاشة عن 440 وحدة بكسل مستقلة الكثافة (dp) وعرض الشاشة أقل من 440 بكسل منع فقدان البيانات
  • [C-1-4] يجب عدم تغيير حجم النشاط إلى حجم أصغر من 220 بكسل مستقل الكثافة (dp) أوضاع النوافذ المتعددة بخلاف "نافذة ضمن النافذة".
  • يجب أن تتوافق عمليات تنفيذ الأجهزة بحجم الشاشة xlarge مع التنسيق الحر الحالي.

إذا كانت عمليات تنفيذ الجهاز تتوافق مع أوضاع النوافذ المتعددة، وتقسيم الشاشة فإنهم:

  • [C-2-2] يجب اقتصاص نشاط الإرساء لنافذة متعددة في وضع "تقسيم الشاشة" يجب عرض بعض محتوى هذه الصورة، إذا كان تطبيق "مشغّل التطبيقات" هو النافذة التي عليها التركيز.
  • [C-2-3] يجب أن يلتزم بـ AndroidManifestLayout_minWidth المعلَن عنه وAndroidManifestLayout_minHeight قيم تطبيق المشغّل من جهة خارجية وعدم تجاوز هذه القيم خلال عرض بعض محتوى النشاط الذي تم إرساؤه

إذا كانت تطبيقات الأجهزة تتيح أوضاع النوافذ المتعددة ونافذة ضمن النافذة في وضع النوافذ المتعددة، فإن:

  • [C-3-1] يجب إطلاق الأنشطة في وضع النوافذ المتعددة في وضع "نافذة ضمن النافذة" عندما يكون التطبيق:

  • [C-3-2] يجب أن تعرض الإجراءات في SystemUI على أنها المحدّدة من خلال نشاط نافذة ضمن النافذة (PIP) الحالي من خلال setActions() واجهة برمجة التطبيقات.

  • [C-3-3] يجب أن يتوافق مع نسب عرض إلى ارتفاع أكبر من أو تساوي 1:2.39 وأقل من أو يساوي 2.39:1، كما هو محدد بواسطة نشاط نافذة ضمن النافذة (PIP) حتى setAspectRatio() واجهة برمجة التطبيقات.

  • [C-3-4] يجب أن يستخدم KeyEvent.KEYCODE_WINDOW للتحكم في نافذة نافذة ضمن النافذة (PIP)؛ في حال عدم استخدام وضع "نافذة ضمن النافذة"، يجب أن يكون المفتاح المتاحة للنشاط الذي تعمل في المقدّمة.

  • [C-3-5] يجب أن يوفر للمستخدم إمكانية حظر عرض التطبيق في وضع نافذة ضمن النافذة (PIP) يستوفي تنفيذ بروتوكول AOSP هذا الشرط من خلال وجود عناصر التحكم في مركز الإشعارات.

  • [C-3-6] يجب تخصيص الحد الأدنى التالي لعرض وارتفاع PIP عندما لا يعلن التطبيق عن أي قيمة AndroidManifestLayout_minWidth وAndroidManifestLayout_minHeight:

    • الأجهزة التي تحتوي على Configuration.uiMode والذي تم تعيينه بخلاف UI_MODE_TYPE_TELEVISION يجب تخصيص حد أدنى للعرض والارتفاع يبلغ 108 بكسل مستقل الكثافة (dp).
    • الأجهزة التي تتضمّن Configuration.uiMode والذي تم ضبطه على UI_MODE_TYPE_TELEVISION يجب تخصيص حد أدنى للعرض يبلغ 240 بكسل مستقل الكثافة وحد أدنى للارتفاع 135 بكسل مستقل الكثافة (dp).

3.8.15 الصورة المقطوعة للشاشة

يتوافق Android مع ميزة "صورة مقطوعة للشاشة" كما هو موضّح. في مستند حزمة SDK. تحدّد واجهة برمجة التطبيقات DisplayCutout مساحة على حافة الشاشة قد لا تعمل مع أحد التطبيقات بسبب ظهور شاشة مقتطعة أو مقوّسة عند الحواف

في حال اشتملت عمليات تنفيذ الأجهزة على صور مقطوعة للشاشة، سيتم تطبيق ما يلي:

  • [C-1-5] يجب ألا يحتوي على صور مقطوعة إذا كانت نسبة العرض إلى الارتفاع للجهاز 1.0(1:1).
  • [C-1-2] يجب ألا يحتوي على أكثر من صورة مقطوعة واحدة لكل حافة.
  • [C-1-3] يجب أن يحترم علامات الصورة المقطوعة للشاشة التي حددها التطبيق من خلال WindowManager.LayoutParams واجهة برمجة التطبيقات كما هو موضّح في حزمة تطوير البرامج (SDK).
  • [C-1-4] يجب أن يبلغ عن القيم الصحيحة لجميع مقاييس الاقتصاص المحددة في DisplayCutout API.

3.8.16. عناصر التحكم بالأجهزة

يتضمّن نظام Android ControlsProviderService وControl واجهات برمجة التطبيقات التي تسمح لتطبيقات الجهات الخارجية بنشر عناصر التحكم في الجهاز بشكل سريع والحالة والإجراء للمستخدمين.

راجِع القسم 2_2_3 لمعرفة المتطلبات الخاصة بالأجهزة.

3.9. إدارة الجهاز

يتضمّن Android ميزات تتيح للتطبيقات المتوافقة مع الأمان تنفيذ وظائف إدارة الجهاز على مستوى النظام، مثل فرض كلمة المرور البيانات أو إجراء مسح البيانات عن بُعد، من خلال واجهة برمجة التطبيقات لإدارة جهاز Android

في حال كانت عمليات تنفيذ الجهاز تنفِّذ النطاق الكامل لإدارة الجهاز محددة في وثائق حزمة تطوير البرامج (SDK) لنظام التشغيل Android، فإنها:

  • [C-1-1] يجب أن يفصح عن android.software.device_admin.
  • [C-1-2] يجب توفير إمكانية إدارة حسابات مالكي الأجهزة على النحو الموضّح في الفقرة 3.9.1 الفقرة 3.9.1.1.

3.9.1 توفير المتطلبات اللازمة للأجهزة

3.9.1.1 توفير المتطلبات اللازمة لمالك الجهاز

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.device_admin، سيتم ما يلي:

  • [C-1-1] يجب أن يتيح تسجيل برنامج Device Policy (DPC) باعتباره تطبيق مالك الجهاز كما هو موضح أدناه:
    • في حال عدم ضبط بيانات المستخدمين إلى الآن في عملية تنفيذ الجهاز، سيحدث ما يلي:
      • [C-1-5] يجب تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) كتطبيق مالك الجهاز إذا كان يكشف الجهاز عن توفّر تقنية الاتصال القصير المدى (NFC) عبر الميزة الإبلاغ عن android.hardware.nfc وتلقّي رسالة NFC تحتوي على التسجيل باستخدام نوع MIME MIME_TYPE_PROVISIONING_NFC
      • [C-1-8] يجب إرسال ACTION_GET_PROVISIONING_mode النية بعد تشغيل إدارة حسابات مالك الجهاز حتى يمكن لتطبيق وحدة التحكّم بسياسة الجهاز (DPC) اختيار ما إذا كنت تريد أن تصبح مالكًا للجهاز أو ملفًا شخصيًا. ما لم يتم تحديده من خلال السياق الذي لا وجود له خيارًا صالحًا واحدًا (مثل توفير المتطلبات اللازمة بناءً على تقنية NFC، حيث يكون "الملف الشخصي" إدارة حسابات المالك غير متاحة).
      • [C-1-9] يجب إرسال ACTION_ADMIN_POLICY_COMPLIANCE النية في تطبيق "مالك الجهاز" إذا تم تحديد مالك الجهاز أثناء توفير المتطلبات اللازمة بغض النظر عن طريقة توفير المتطلبات اللازمة. تشير رسالة الأشكال البيانية يجب ألا يكون المستخدم قادرًا على المتابعة في معالج الإعداد حتى سينتهي تثبيت تطبيق "مالك الجهاز".
    • عندما تحتوي عملية تنفيذ الجهاز على بيانات مستخدمين، فإنها:
      • [C-1-7] يجب ألا يتم تسجيل أي تطبيق لوحدة التحكّم بسياسة الجهاز (DPC) كتطبيق مالك الجهاز أكثر من ذلك.
  • [C-1-2] يجب أن يتطلب اتخاذ إجراء تأكيدي قبل أو أثناء توفير المتطلبات اللازمة للموافقة على ضبط التطبيق كمالك للجهاز. يمكن أن تتم الموافقة من خلال إجراء من جانب المستخدم أو باستخدام بعض الوسائل الآلية، ولكن ذلك يكون مناسبًا يجب عرض إشعار الإفصاح عن المعلومات (كما هو مشار إليه في AOSP) قبل مالك الجهاز تم بدء توفير المتطلبات اللازمة. بالإضافة إلى ذلك، يجب الحصول على موافقة مالك الجهاز الآلي الآلية المستخدمة (من قِبل المؤسسات) لتوفير المتطلبات اللازمة لمالك الجهاز أن تعيق تجربة الاستخدام خارج إطار المؤسسات غير الربحية.
  • [C-1-3] يجب ألا يتم ترميز الموافقة أو منع استخدام جهاز آخر المالك.

في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.software.device_admin، ولكنها تشير أيضًا إلى أن تشتمل على حل خاص لإدارة مالك الجهاز وتوفر آلية للترويج لتطبيق تم تكوينه في الحل الخاص به بصفته "مالك الجهاز مكافئ" إلى "مالك الجهاز" القياسي كما هو موضح من قِبل نظام التشغيل Android القياسي مدير سياسة الجهاز واجهات برمجة التطبيقات، وهي:

  • [C-2-1] يجب أن يتضمّن عملية للتحقّق من أنّ التطبيق المحدّد التي يتم الترويج لها تنتمي إلى إدارة مشروعة لأجهزة المؤسسة الذي تم إعداده بالفعل في الحل المملوكة للحصول على ما يعادل "مالك الجهاز" من حقوقك.
  • [C-2-2] يجب أن يعرض الإفصاح نفسه عن موافقة مالك الجهاز من AOSP كما في تم بدء المسار من خلال android.app.action.PROVISION_MANAGED_DEVICE قبل تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC) كـ "مالك الجهاز".
  • قد يحتوي على بيانات المستخدمين على الجهاز قبل تسجيل تطبيق وحدة التحكّم بسياسة الجهاز (DPC). باسم "مالك الجهاز".
3.9.1.2 توفير المتطلبات اللازمة للملف الشخصي المُدار

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users، سيتم ما يلي:

  • [C-1-1] يجب تنفيذ واجهات برمجة التطبيقات السماح لتطبيق وحدة التحكم بسياسة الجهاز (DPC) بأن يصبح مالك ملف شخصي مُدار جديد

  • [C-1-2] عملية توفير المتطلبات اللازمة للملف الشخصي المُدار (مسار العملية الذي تبدأه وحدة التحكّم بسياسة الجهاز باستخدام android.app.action.PROVISION_MANAGED_PROFILE). أو من خلال المنصة)، يجب أن تتوافق شاشة طلب الموافقة وتجربة المستخدم مع تنفيذ AOSP.

  • [C-1-3] يجب أن يوفر خصائص المستخدم التالية ضمن "الإعدادات" من أجل: الإشارة إلى المستخدم عند إيقاف وظيفة نظام معينة من خلال وحدة التحكّم بسياسة الجهاز (DPC):

    • رمز متّسق أو عناصر أخرى تجذب المستخدمين (على سبيل المثال، الإعلان الرئيسي رمز معلومات AOSP) للإشارة إلى الحالات التي يتم فيها تقييد إعداد معين من خلال مشرف الجهاز.
    • رسالة توضيحية موجزة يقدِّمها "مشرف الجهاز" من خلال setShortSupportMessage
    • رمز تطبيق وحدة التحكّم بسياسة الجهاز (DPC).
  • [C-1-4] يجب تشغيل معالج ACTION_PROVISIONING_SuccessFUL الغرض من ملف العمل إذا تم تحديد مالك الملف الشخصي عند يتم بدء توفير المتطلبات اللازمة من خلال android.app.action.PROVISION_MANAGED_PROFILE. intent وقد نفّذت وحدة التحكّم بسياسة الجهاز المعالج.

  • [C-1-5] يجب إرسال ACTION_PROFILE_PROVISIONING_COMPLETE البث إلى وحدة التحكّم بسياسة الجهاز لملف العمل عند بدء توفير المتطلبات اللازمة بواسطة android.app.action.PROVISION_MANAGED_PROFILE. والنية.

  • [C-1-6] يجب إرسال ACTION_GET_PROVISIONING_mode إجراء نية بعد تفعيل إدارة حسابات مالك الملف الشخصي، لكي يكون تطبيق وحدة التحكّم بسياسة الجهاز (DPC) اختيار ما إذا كنت تريد أن تصبح مالكًا للجهاز أو مديرًا للملف الشخصي عندما يتم تفعيل توفير المتطلبات اللازمة من خلال الغرض android.app.action.PROVISION_MANAGED_PROFILE.

  • [C-1-7] يجب إرسال ACTION_ADMIN_POLICY_COMPLIANCE النية في ملف العمل عند إنشاء مالك الملف الشخصي أثناء لتوفير المتطلبات اللازمة بغض النظر عن طريقة إدارة الحسابات المستخدمة باستثناء عند تفعيل إدارة الحسابات بواسطة الغرض android.app.action.PROVISION_MANAGED_PROFILE. يجب ألا يتمكن المستخدم من المتابعة في معالج الإعداد حتى يتمكن الملف الشخصي ينتهي تطبيق المالك.

  • [C-1-8] يجب إرسال ACTION_MANAGED_PROFILE_PROVISIONED بثها إلى وحدة التحكم في سياسة الملف الشخصي عند إنشاء مالك الملف الشخصي، بغض النظر عن طريقة توفير المتطلبات اللازمة.

3.9.2 دعم الملفات الشخصية المُدارة

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users، سيتم ما يلي:

  • [C-1-1] يجب أن يتوافق مع الملفات الشخصية المُدارة عبر android.app.admin.DevicePolicyManager. واجهات برمجة التطبيقات.
  • [C-1-2] يجب أن يتيح إنشاء ملف شخصي مُدار واحد فقط.
  • [C-1-3] يجب استخدام شارة رمز (على غرار شارة العمل الرئيسي لدى AOSP) تمثل التطبيقات والأدوات المُدارة، وغير ذلك من عناصر واجهة المستخدم التي تحمل شارة مثل "المحادثات الأخيرة" الإشعارات.
  • [C-1-4] يجب عرض رمز إشعار (على نحو يشبه إطلاق مشروع AOSP) شارة) للإشارة إلى الوقت الذي يكون فيه المستخدم داخل تطبيق ملف شخصي مُدار.
  • [C-1-6] عند وجود ملف شخصي مُدار، يجب أن يُظهر تقاربًا بصريًا في "أداة اختيار الأهداف" للسماح للمستخدم بإعادة توجيه النية من الحساب المُدار إلى المستخدم الأساسي أو العكس، إذا تم تفعيله بواسطة Device Policy وحدة التحكّم
  • [C-1-7] عند وجود ملف شخصي مُدار، يجب كشف المستخدم التالي الخصائص الوظيفية لكل من المستخدم الأساسي والملف الشخصي المُدار:
    • فصل البطارية والموقع الجغرافي وبيانات الجوّال واستخدام مساحة التخزين للمستخدم الأساسي والملف الشخصي المُدار.
    • الإدارة المستقلة لتطبيقات الشبكة الافتراضية الخاصة (VPN) المثبَّتة ضمن النطاق الأساسي مستخدم أو ملف شخصي مُدار.
    • الإدارة المستقلة للتطبيقات المثبّتة من حساب المستخدم الأساسي أو ملف شخصي مُدار.
    • الإدارة المستقلة للحسابات ضمن حساب المستخدم الأساسي أو المُدارة بك.
  • [C-1-8] يجب التأكّد من أنّ برامج الاتصال وجهات الاتصال والرسائل المثبَّتة مسبقًا يمكن لتطبيقات البحث عن معلومات المتصل والبحث عنها من (إن وجد) إلى جانب تلك الموجودة في الملف الشخصي الأساسي، إذا "وحدة التحكّم بسياسة الجهاز" تسمح بذلك.
  • [C-1-9] يجب أن تضمن استيفاء جميع متطلبات الأمان ينطبق على جهاز تم تفعيل ميزة "تعدُّد المستخدمين" عليه (اطّلِع على القسم 9.5)، على الرغم من أنّ الملف الشخصي المُدار لا يتم حسابه كمستخدم آخر إلى جانب المستخدم الأساسي.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users android.software.secure_lock_screen، وهي:

  • [C-2-1] يجب توفير إمكانية تحديد اجتماع منفصل على شاشة القفل المتطلبات التالية لمنح إمكانية الوصول إلى التطبيقات التي تعمل في حساب للملف الشخصي فقط.
    • يجب أن تفي عمليات تنفيذ الأجهزة بـ DevicePolicyManager.ACTION_SET_NEW_PASSWORD intent وإظهار واجهة لضبط شاشة قفل منفصلة بيانات الاعتماد للملف الشخصي المُدار.
    • يجب أن تستخدم بيانات اعتماد شاشة القفل للملف الشخصي المُدار البيانات نفسها تخزين بيانات الاعتماد وآليات الإدارة كملف تعريف رئيسي، كما هو موثّق على موقع مشروع مفتوح المصدر لنظام Android:
    • سياسات كلمات المرور في وحدة التحكّم بسياسة الجهاز يجب أن تسري على بيانات اعتماد شاشة قفل الملف الشخصي المُدار فقط ما لم تم استدعاء المثيل DevicePolicyManager الذي تم إرجاعه بواسطة getParentProfileInstance
  • عند عرض جهات الاتصال من الملف الشخصي المُدار في سجلّ المكالمات المثبّت مسبقًا، وواجهة المستخدم أثناء المكالمة، وقيد التقدّم والمكالمة الفائتة الإشعارات وجهات الاتصال وتطبيقات المراسلة التي ينبغي وضع شارات عليها الشارة نفسها المستخدمة للإشارة إلى تطبيقات الملف الشخصي المُدار.

3.9.3 دعم المستخدمين المُدار

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.software.managed_users، سيتم ما يلي:

  • [C-1-1] يجب أن تتوفر للمستخدم إمكانية تسجيل الخروج من المستخدم الحالي التبديل مرة أخرى إلى المستخدم الأساسي في جلسة متعددة المستخدمين عندما isLogoutEnabled بإرجاع true. يجب أن تتوفر إمكانية الوصول إلى تكاليف المستخدم من شاشة القفل بدون فتح قفل الجهاز.

في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.software.device_admin وتقديم إمكانية إضافة مستخدمين ثانويين آخرين على الجهاز فقط، يمكنهم:

  • [C-SR-1] يُنصَح باستخدامها بشدة لعرض موافقة مالك جهاز AOSP نفسها الإفصاحات التي تم عرضها في التدفق الذي بدأه android.app.action.PROVISION_MANAGED_DEVICE، قبل السماح بإضافة الحسابات في حساب المستخدم الثانوي الجديد، حتى يدرك المستخدمون أن الجهاز مُدار.

3.10. تسهيل الاستخدام

يوفّر Android طبقة لتسهيل الاستخدام تساعد المستخدمين من ذوي الاحتياجات الخاصة على في التنقل على أجهزتهم بسهولة أكبر. بالإضافة إلى ذلك، يوفّر Android واجهات برمجة التطبيقات للأنظمة الأساسية التي تمكّن عمليات تنفيذ خدمة تسهيل الاستخدام من تلقّي استدعاءات وأحداث النظام وإنشاء آليات تعليقات بديلة، مثل تحويل النص إلى كلام، والتجاوب الحسّي، والتنقل باستخدام كرة التعقب/لوحة التحكّم.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع خدمات إمكانية الوصول التابعة لجهات خارجية، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يوفر تنفيذًا لإمكانية الوصول في Android إطار عمل كما هو موضح في واجهات برمجة تطبيقات Accessibility API مستندات حزمة SDK.
  • [C-1-2] إنشاء أحداث لإمكانية الوصول وتقديم AccessibilityEvent إلى الكل المسجَّلين AccessibilityService عمليات التنفيذ كما هو موثّق في حزمة تطوير البرامج (SDK)
  • [C-1-4] يجب أن يوفر للمستخدم القدرة على التحكم في إمكانية الوصول الخدمات التي تعلن عن AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_Button لاحظ أنه بالنسبة لعمليات تنفيذ الأجهزة باستخدام شريط تنقل النظام، يجب أن تسمح للمستخدم بالحصول على خيار زر في نافذة شريط التنقل للتحكم في هذه الخدمات.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن خدمات إمكانية وصول مثبَّتة مسبقًا، سيحدث ما يلي:

  • [C-2-1] يجب تنفيذ خدمات تسهيل الاستخدام هذه المثبَّتة مسبقًا التعرّف على التشغيل المباشر لميزة التشغيل المباشر تطبيقات عند تشفير تخزين البيانات باستخدام التشفير المستند إلى الملف (FBE).
  • يجب توفير آلية في مسار الإعداد غير الجاهز لتمكين المستخدمين وخدمات تسهيل الاستخدام ذات الصلة، بالإضافة إلى خيارات ضبط حجم الخط حجم العرض وإيماءات التكبير.

3.11. تحويل النص إلى كلام

يشتمل Android على واجهات برمجة تطبيقات تسمح للتطبيقات باستخدام ميزة تحويل النص إلى كلام. (TTS) ويسمح لمقدمي الخدمات بتوفير تحويل النص إلى كلام (TTS)

إذا كانت عمليات تنفيذ الجهاز تبلغ عن الميزة android.hardware.audio.output، وهي:

إذا كانت عمليات تنفيذ الأجهزة تتيح تثبيت محركات تحويل النص إلى كلام التابعة لجهات خارجية، فإنها:

  • [C-2-1] يجب أن يوفر المستخدم القدرة على السماح له باختيار تحويل النص إلى كلام للاستخدام على مستوى النظام.

3.12. إطار عمل إدخال التلفزيون

يبسّط إطار عمل إدخال التلفزيون من Android (TIF) عرض أحداث البث المباشر المحتوى إلى أجهزة تلفزيون Android. ويوفر TIF واجهة برمجة تطبيقات قياسية لإنشاء وحدات الإدخال التي تتحكم في أجهزة تلفزيون Android.

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع TIF، سيتم إجراء ما يلي:

3.13. الإعدادات السريعة

يوفّر Android مكوّنًا في واجهة المستخدم للإعدادات السريعة يتيح الوصول السريع إلى تُستخدم بشكل متكرر أو مطلوبة بشكل عاجل.

إذا كانت عمليات تنفيذ الجهاز تتضمن مكوّنًا لواجهة مستخدم "الإعدادات السريعة" وتتوافق مع تطبيقات جهات خارجية الإعدادات السريعة، وهي:

  • [C-1-1] يجب أن يسمح للمستخدم بإضافة أو إزالة الفئات المتوفرة من خلال quicksettings واجهات برمجة التطبيقات من تطبيق تابع لجهة خارجية
  • [C-1-2] يجب عدم إضافة مربّع تلقائيًا من تطبيق تابع لجهة خارجية مباشرةً إلى "الإعدادات السريعة"
  • [C-1-3] يجب عرض جميع المربّعات التي يضيفها المستخدم من تطبيقات الجهات الخارجية إلى جانب مربّعات الإعدادات السريعة التي يوفّرها النظام

3.14. واجهة مستخدم الوسائط

إذا كانت عمليات تنفيذ الجهاز تتضمن تطبيقات لا يتم تفعيلها عبر الصوت (التطبيقات) تتفاعل مع تطبيقات تابعة لجهات خارجية من خلال MediaBrowser أو MediaSession، التطبيقات:

  • [C-1-2] يجب أن تعرض بوضوح الرموز التي تم الحصول عليها عبر getIconBitmap() أو getIconUri() والعناوين التي تم الحصول عليها من خلال getTitle() كما هو موضّح في MediaDescription. ويمكن أيضًا تقصير العناوين للالتزام بلوائح السلامة (مثل تشتيت السائق).

  • [C-1-3] يجب أن يعرض رمز تطبيق الجهة الخارجية عند عرض المحتوى المقدم من هذا التطبيق التابع للجهة الخارجية.

  • [C-1-4] يجب أن يسمح للمستخدم بالتفاعل مع MediaBrowser بالكامل التسلسل الهرمي. قد تحظر إمكانية الوصول إلى جزء من التسلسل الهرمي التزامًا بلوائح السلامة. (مثل تشتيت السائق)، ولكن يجب ألا تعطي معاملة تفضيلية استنادًا إلى المحتوى أو المحتوى.

  • [C-1-5] يجب التفكير في النقر المزدوج KEYCODE_HEADSETHOOK أو KEYCODE_MEDIA_PLAY_PAUSE باسم KEYCODE_MEDIA_NEXT لـ MediaSession.Callback#onMediaButtonEvent.

3.15. التطبيقات الفورية

إذا كانت عمليات تنفيذ الأجهزة تتيح استخدام التطبيقات الفورية، يجب أن تستوفي المتطلبات التالية المتطلبات:

  • [C-1-1] يجب منح التطبيقات الفورية الأذونات التي تتضمن الأذونات android:protectionLevel مضبوطة على "instant"
  • [C-1-2] يجب ألا تتفاعل التطبيقات الفورية مع التطبيقات المثبَّتة عبر الأهداف الضمنية. ما لم ينطبق أي مما يلي:
    • تم الكشف عن فلتر نمط intent للمكوِّن ويحتوي على CATEGORY_BROWSABLE
    • الإجراء هو أحد ACTION_SEND أو ACTION_SENDTO أو ACTION_SEND_MULTIPLE
    • يتم عرض الاستهداف بشكل صريح باستخدام android:visibleToInstantApps
  • [C-1-3] يجب ألا تتفاعل التطبيقات الفورية بشكل صريح مع التطبيقات المثبَّتة ما لم إظهار المكوِّن من خلال android:visibleToInstantApps.
  • [C-1-4] يجب ألا ترى التطبيقات المثبّتة تفاصيل التطبيقات الفورية على ما لم يتصل التطبيق الفوري بشكل صريح تطبيق مثبت.
  • يجب أن توفر عمليات تنفيذ الأجهزة الخصائص التالية للمستخدم للتفاعل مع التطبيقات الفورية يلبي "الشريك المعتمد من Google للناشرين" (AOSP) المتطلبات مع واجهة مستخدم النظام التلقائية والإعدادات ومشغّل التطبيقات عمليات تنفيذ الأجهزة:

    • [C-1-5] يجب أن يوفر للمستخدم إمكانية عرض التطبيقات الفورية وحذفها التخزين المؤقت محليًا لكل حزمة تطبيق فردية.
    • [C-1-6] يجب تقديم إشعار دائم للمستخدم يمكن يتم التصغير أثناء تشغيل تطبيق فوري في المقدّمة. هذا المستخدم يجب أن يتضمّن الإشعار أنّ التطبيقات الفورية لا تتطلّب التثبيت. وتوفر قدرة المستخدم التي توجه المستخدم إلى التطبيق المعلومات في "الإعدادات" بالنسبة إلى التطبيقات الفورية التي يتم إطلاقها من خلال أهداف الويب، بالنسبة إلى باستخدام هدف مع ضبط إجراء على Intent.ACTION_VIEW بمخطط "http" أو "https"، وهي ميزة إضافية للمستخدم "يجب" السماح للمستخدم بعدم تشغيل التطبيق الفوري تشغيل الرابط المرتبط بمتصفح الويب الذي تم إعداده، إذا كان المتصفح متوفّرة على الجهاز
    • [C-1-7] يجب السماح بتشغيل التطبيقات الفورية للوصول إليها من "العناصر الأخيرة" إذا كانت وظيفة "الأخيرة" متاحة على الجهاز.
  • [C-1-8] يجب إجراء تحميل مسبق لمكوّن خدمة أو تطبيق واحد أو أكثر إذا كان لديه معالج intent للعناصر المدرَجة في حزمة تطوير البرامج (SDK) هنا وجعل الأهداف مرئية للتطبيقات الفورية.

3.16. إقران الجهاز المصاحب

يتيح نظام التشغيل Android إمكانية إقران الجهاز المصاحب لتتمكّن من إدارتها بفعالية أكبر. الربط بالأجهزة المصاحبة وتوفير CompanionDeviceManager واجهة برمجة تطبيقات تتيح للتطبيقات إمكانية استخدام هذه الميزة.

إذا كانت عمليات تنفيذ الأجهزة تتيح ميزة إقران الجهاز المصاحب، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يعلن عن علامة الميزة FEATURE_COMPANION_DEVICE_SETUP .
  • [C-1-2] يجب ضمان استخدام واجهات برمجة التطبيقات في android.companion تنفيذ الحزمة بالكامل.
  • [C-1-3] يجب أن يوفر المستخدم الخصائص الوظيفية للمستخدم لاختيار/تأكيد وجود مصاحب أن جهازك موجود وقابل للتشغيل.

3.17. تطبيقات ثقيلة الوزن

إذا كانت عمليات تنفيذ الأجهزة تشير إلى الميزة FEATURE_CANT_SAVE_STATE، فإنهم:

  • [C-1-1] يجب أن يتضمن تطبيقًا واحدًا مثبّتًا يحدد cantSaveState في النظام في كل مرة. إذا كان المستخدم مغادرة هذا التطبيق بدون الخروج منه بشكل صريح (على سبيل المثال، عن طريق الضغط على المنزل مع ترك نشاط نشط للنظام، بدلاً من الضغط على الرجوع بدون أي أنشطة نشطة متبقية في النظام)، يجب أن تعطي عمليات تنفيذ الأجهزة الأولوية لهذا التطبيق في ذاكرة الوصول العشوائي (RAM) كما هو الحال مع الأشياء التي من المتوقع أن تظل قيد التشغيل، مثل الخدمات التي تعمل في المقدّمة. أثناء تشغيل هذا التطبيق في الخلفية، سيظل بإمكان النظام استخدام الطاقة. ميزات الإدارة القصوى لها، مثل تقييد الوصول إلى وحدة المعالجة المركزية (CPU) والشبكة.
  • [C-1-2] يجب أن توفر ميزة واجهة المستخدم لاختيار التطبيق الذي لن يكون المشاركة في آلية الحفظ/الاستعادة بالحالة العادية بمجرد أن ينقر المستخدم تعمل على تشغيل تطبيق ثانٍ تم الإعلان عنه باستخدام cantSaveState .
  • [C-1-3] يجب ألا يتم تطبيق تغييرات أخرى في السياسة على التطبيقات التي تحدد cantSaveState، مثل تغيير أداء وحدة المعالجة المركزية أو تغيير أولويات الجدولة.

في حال لم تكن عمليات تنفيذ الأجهزة تشير إلى الميزة FEATURE_CANT_SAVE_STATE، فإنهم:

  • [C-1-1] يجب أن يتجاهل cantSaveState التي تحددها التطبيقات ويجب ألا تغيّر سلوك التطبيق استنادًا إلى ذلك .

3.18. جهات اتصال Google

يتضمّن نظام Android Contacts Provider تسمح واجهات برمجة التطبيقات للتطبيقات بإدارة معلومات جهات الاتصال المخزَّنة على الجهاز. عادةً ما تتم مزامنة بيانات جهات الاتصال التي يتم إدخالها مباشرةً في الجهاز بخدمة ويب، ولكن قد تكون البيانات أيضًا محليًا على الجهاز فقط. ويُشار إلى جهات الاتصال المخزَّنة على الجهاز فقط باسم المحلية. جهات الاتصال

RawContacts "مرتبطة بـ" أو "مخزنة في" CANNOT TRANSLATE الحساب عندما ACCOUNT_NAME, أو ACCOUNT_TYPE، تتطابق الأعمدة مع جهات الاتصال الأولية مع اسم الحساب أو نوع الحساب حقول الحساب.

حساب محلي تلقائي: حساب لجهات الاتصال الأولية التي يتم تخزينها على الجهاز وغير مرتبط بحساب في مدير الحساب، وهي تم إنشاؤه باستخدام القيم null ACCOUNT_NAME, أو ACCOUNT_TYPE, والأعمدة.

حساب محلي مخصص: حساب لجهات الاتصال الأولية المخزنة على ولا يكون مرتبطًا بحساب في مدير الحساب، وهي تم إنشاؤه باستخدام قيمة واحدة غير فارغة على الأقل ACCOUNT_NAME, أو ACCOUNT_TYPE، والأعمدة.

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بعدم إنشاء حسابات محلية مخصّصة.

إذا كانت عمليات تنفيذ الأجهزة تستخدم حسابًا محليًا مخصّصًا:

  • [C-1-1] ACCOUNT_NAME، من الحساب المحلي المخصص يجب إرجاعه من خلال ContactsContract.RawContacts.getLocalAccountName
  • [ج-1-2] ACCOUNT_TYPE، من الحساب المحلي المخصص يجب إرجاعه من خلال ContactsContract.RawContacts.getLocalAccountType
  • [C-1-3] جهات الاتصال الأولية التي يتم إدراجها بواسطة تطبيقات الجهات الخارجية باستخدام الحساب المحلي التلقائي (أي من خلال ضبط قيم فارغة ACCOUNT_NAME وACCOUNT_TYPE) يجب إدراجهما في المُحلي المخصص الحساب.
  • [C-1-4] يجب عدم إدراج جهات الاتصال الأولية المدرجة في الحساب المحلي المخصص إزالتها عند إضافة حسابات أو إزالتها.
  • [C-1-5] حذف العمليات التي تم إجراؤها في الحساب المحلي المخصّص يجب أن تتم إزالة جهات الاتصال الأولية فورًا (كما لو كانت CALLER_IS_SYNCADAPTER تم ضبط المعلمة على "صحيح")، حتى إذا تم ضبط المعلمة "CALLER\_IS\_SYNCADAPTER" إلى false أو غير محدد.

4. توافق حزمة التطبيقات

عمليات تنفيذ الأجهزة:

  • يجب أن يكون [C-0-1] قادرًا على تثبيت ملفات ".apk" على Android وتشغيلها التي يتم إنشاؤها باستخدام أداة "aapt" حزمة SDK الرسمية لنظام التشغيل Android
    • ونظرًا لأن المطلب أعلاه قد يمثل تحديًا، فإن عمليات تنفيذ الأجهزة يُنصَح باستخدام إدارة الحزمة الخاصة بتنفيذ مرجع AOSP. .

عمليات تنفيذ الأجهزة:

  • [C-0-2] يجب أن يتيح التحقق من ملفات ".apk" باستخدام الإصدار 3 من مخطّط توقيع حِزم APK الإصدار 2 من مخطّط توقيع حِزم APK وتوقيع JAR
  • [C-0-3] يجب ألا يوسع أيًا من .apk بيان Android، رمز بايت دالفيك تنسيقات رمز البايت RenderScript بطريقة تمنع هذه الملفات من تثبيته وتشغيله بشكل صحيح على الأجهزة المتوافقة الأخرى.
  • [C-0-4] يجب ألا يسمح بتطبيقات أخرى غير التطبيقات الحالية "أداة تثبيت مساحة التخزين" أن تلغي الحزمة التطبيق تلقائيًا بدون أي تأكيد المستخدم، كما هو موثق في حزمة تطوير البرامج (SDK) الخاصة DELETE_PACKAGE إذن. الاستثناءات الوحيدة هي معالجة تطبيق أداة التحقّق من حزمة النظام. PACKAGE_NEEDS_VERIFICATION intent وتطبيق "مدير مساحة التخزين" الذي يتعامل مع ACTION_MANAGE_STORAGE والنية.

  • [C-0-5] يجب أن يكون له نشاط يعالج android.settings.MANAGE_UNKNOWN_APP_SOURCES والنية.

  • [C-0-6] يجب ألا يتم تثبيت حزم التطبيقات من شبكة غير معروفة المصادر، ما لم يكن التطبيق الذي يطلب التثبيت تستوفي جميع المتطلبات التالية:

    • يجب أن يفصح عن REQUEST_INSTALL_PACKAGES أو ضبط android:targetSdkVersion على 24 أو أقل.
    • يجب أن يحصل المستخدم على إذن لتثبيت التطبيقات من المصادر غير المعروفة.
  • ينبغي أن تمنح المستخدم القدرة على منح/إبطال الإذن إلى تثبيت تطبيقات من مصادر غير معروفة لكل تطبيق، ولكن قد يختار تنفيذها هذه الخطوة كإجراء نهائي وإرجاع RESULT_CANCELED مقابل startActivityForResult(). إذا كان تنفيذ الجهاز لا يريد السماح للمستخدمين بالحصول على هذا الخيار. ومع ذلك، حتى في مثل هذه الحالات، يجب أن توضح للمستخدم سبب عدم وجود تم تقديم هذا الخيار.

  • [C-0-7] يجب عرض مربع حوار تحذيري مع سلسلة التحذير المقدّمة من خلال واجهة برمجة تطبيقات النظام PackageManager.setHarmfulAppWarning إلى المستخدم قبل تشغيل نشاط في أحد التطبيقات التي تم تمييزها بعلامة باستخدام واجهة برمجة تطبيقات النظام PackageManager.setHarmfulAppWarning نفسها كما هو وارد ضارة.

  • توفير إمكانية اختيار إلغاء تثبيت تطبيق أو تشغيله للمستخدم التطبيق في مربع حوار التحذير.

  • [C-0-8] يجب أن تنفيذ الدعم لنظام الملفات التزايدي كما هو موثق هنا.

  • [C-0-9] يجب أن يتيح التحقق من ملفات .apk باستخدام الإصدار 4 من مخطّط توقيع حِزم APK

5. توافق الوسائط المتعددة

عمليات تنفيذ الأجهزة:

  • يجب أن يتيح [C-0-1] استخدام تنسيقات الوسائط وبرامج الترميز وبرامج فك الترميز وأنواع الملفات. بتنسيقات الحاويات المحدّدة في القسم 5.1 لكل برنامج ترميز تم تحديده في MediaCodecList.
  • [C-0-2] يجب الإعلان عن دعم برامج الترميز وفك الترميز المتوفرة والإبلاغ عنها. إلى تطبيقات تابعة لجهات خارجية عبر MediaCodecList
  • [C-0-3] يجب أن يكون قادرًا على فك ترميز المحتوى بشكل صحيح وإتاحتها للجهات الخارجية التطبيقات بجميع التنسيقات التي يمكنها ترميزها. ويشمل ذلك كل مجموعات البث التي تُنشئه برامج الترميز والملفات الشخصية المذكورة في CamcorderProfile

عمليات تنفيذ الأجهزة:

  • ينبغي أن تهدف إلى الحد الأدنى لوقت استجابة برنامج الترميز، أو بعبارةٍ أخرى،
    • يجب عدم استهلاك المخازن المؤقتة للإدخال وتخزينها وإرجاع المخازن المؤقتة للإدخال فقط بمجرد معالجتها.
    • "ينبغي ألا" يتم الاحتفاظ بالمخازن المؤقتة التي تم فك ترميزها لفترة أطول مما هو محدد بواسطة (مثل SPS).
    • يجب ألا يتم الاحتفاظ بالموردين الاحتياطية المشفَّرة لفترة أطول مما تطلبه مجموعة GOP. البنية.

يتم توفير جميع برامج الترميز المدرجة في القسم أدناه كبرامج في التنفيذ المفضّل لنظام Android من واجهة Android Open المشروع المصدر:

يُرجى ملاحظة أنّه لا تتولى Google أو تحالف Open Handset Alliance أي أن برامج الترميز هذه مجانية من براءات الاختراع التابعة لجهات خارجية. تلك يُنصَح باستخدام رمز المصدر هذا في منتجات الأجهزة أو البرامج أن تنفيذ هذه التعليمة البرمجية، بما في ذلك البرامج المفتوحة المصدر أو برامج تجريبية، أو قد تتطلب تراخيص براءات الاختراع من مالكي براءات الاختراع المعنيين.

5.1. برامج ترميز الوسائط

5.1.1. ترميز الصوت

يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.3. تفاصيل برامج ترميز الصوت

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، يجب أن تدعم ترميز تنسيقات الصوت التالية وإتاحتها إلى تطبيقات تابعة لجهات خارجية:

  • [C-1-1] PCM/WAVE
  • [C-1-2] FLAC
  • [C-1-3] Opus

يجب أن تتوافق كل برامج ترميز الصوت مع:

  • [C-3-1] إطارات صوت PCM ذات ترتيب 16 بت أصلية عبر android.media.MediaCodec واجهة برمجة التطبيقات.

5.1.2. فك ترميز الصوت

يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.3. تفاصيل برامج ترميز الصوت

إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافقها مع android.hardware.audio.output، يجب أن توفّر هذه الميزة فك ترميز التنسيقات الصوتية التالية:

  • [C-1-1] ملف تعريف MPEG-4 AAC (AAC LC)
  • [C-1-2] ملف تعريف MPEG-4 HE AAC (AAC+ )
  • [C-1-3] ملف MPEG-4 HE AACv2 الشخصي (الإصدار AAC+ المحسّن)
  • [C-1-4] AAC ELD (معيار AAC منخفض ومحسّن)
  • [C-1-11] xHE-AAC (وفقًا لمعيار ISO/IEC 23003-3 Extended HE AAC Profile، والذي يتضمّن الملف التعريفي الأساسي في USAC، والنطاق الديناميكي ISO/IEC 23003-4 الملف الشخصي للتحكم)
  • [C-1-5] FLAC
  • [C-1-6] MP3
  • [C-1-7] MIDI
  • [C-1-8] Vorbis
  • [C-1-9] PCM/WAVE تشمل صوتًا عالي الدقة بتنسيقات تصل إلى 24 بت، ومعدل بيانات 192 كيلوهرتز، و8 قنوات. تجدر الإشارة إلى أنّ هذا الشرط خاص بفك الترميز فقط، وأنّ الجهاز يُسمح بتقليل العينات وتقليلها أثناء مرحلة التشغيل.
  • [C-1-10] Opus

إذا كانت تطبيقات الأجهزة تدعم فك ترميز المخازن المؤقتة لإدخالات AAC مجموعات بث متعددة القنوات (أي أكثر من قناتين) إلى PCM من خلال الإعداد التلقائي برنامج فك ترميز الصوت AAC في واجهة برمجة تطبيقات android.media.MediaCodec، يجب أن يكون ما يلي: مدعوم:

  • [C-2-1] يجب تنفيذ فك الترميز بدون تقليل الاختزال (مثلاً، 5.0 AAC يجب فك ترميز مجموعة البث إلى خمس قنوات من PCM، ويجب فك ترميز مجموعة البث بتنسيق 5.1 AAC. إلى ست قنوات من PCM).
  • [C-2-2] يجب أن تكون البيانات الوصفية للنطاق الديناميكي على النحو المحدّد في "التحكّم في النطاق الديناميكي". (جمهورية الكونغو الديمقراطية)" في ISO/IEC 14496-3 ومفاتيح DRC لـ android.media.MediaFormat إعداد السلوكيات ذات الصلة بالنطاق الديناميكي في برنامج فك ترميز الصوت. تشير رسالة الأشكال البيانية تم تقديم مفاتيح AAC DRC في واجهة برمجة التطبيقات 21، وهي: KEY_AAC_DRC_ATTENUATION_FACTOR، KEY_AAC_DRC_BOOST_FACTOR، KEY_AAC_DRC_HEAVY_COMPRESSION وKEY_AAC_DRC_TARGET_REFERENCE_LEVEL و KEY_AAC_ENCODED_TARGET_LEVEL
  • [SR-1] يُوصى بشدة بأن تكون المتطلبات C-2-1 وC-2-2 المذكورة أعلاه عن طريق كل برامج فك ترميز الصوت AAC

عند فك ترميز صوت USAC، تنسيق MPEG-D (ISO/IEC 23003-4):

  • [C-3-1] يجب تفسير البيانات الوصفية لارتفاع الصوت وجمهورية الكونغو الديمقراطية وتطبيقها وفقًا للمستوى 1 من ملف تعريف التحكم في النطاق الديناميكي في MPEG-D DRC.
  • [C-3-2] يجب أن تعمل أداة فك الترميز وفقًا للإعدادات. باستخدام مفاتيح android.media.MediaFormat التالية: KEY_AAC_DRC_TARGET_REFERENCE_LEVEL وKEY_AAC_DRC_EFFECT_TYPE

برامج فك ترميز الملف الشخصي MPEG-4 AAC وHE AAC وHE AACv2:

  • قد تتوفّر إمكانية التحكّم في مستوى ارتفاع الصوت والنطاق الديناميكي باستخدام ISO/IEC 23003-4. ملف تعريف التحكم في النطاق الديناميكي.

في حال اعتماد ISO/IEC 23003-4 وإذا كان كل من ISO/IEC 23003-4 تتوفّر البيانات الوصفية وفقًا لمعيار ISO/IEC 14496-3 في بث بت مباشر تم فك ترميزه، وعندئذٍ:

  • ستكون الأولوية للبيانات الوصفية ISO/IEC 23003-4.

يجب أن تتيح جميع برامج فك ترميز الصوت إخراج:

  • [C-6-1] إطارات صوت PCM ذات ترتيب 16 بت أصلية عبر android.media.MediaCodec واجهة برمجة التطبيقات.

5.1.3. تفاصيل برامج ترميز الصوت

التنسيق/برنامج الترميز التفاصيل أنواع الملفات/تنسيقات الحاويات المطلوبة
ملف MPEG-4 AAC الشخصي
(AAC LC)
إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار لأخذ عينات من 8 إلى 48 كيلوهرتز.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4 و .m4a)
  • تنسيق AAC الأولي لـ ADTS (.aac، ولا يمكن استخدام ADIF)
  • MPEG-TS (.ts، غير قابل للبحث، فك الترميز فقط)
  • Matroska (.mkv، فك الترميز فقط)
ملف تعريف MPEG-4 HE AAC (AAC+ ) إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار معدلات أخذ العينات من 16 إلى 48 كيلوهرتز.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4 و .m4a)
MPEG-4 HE AACv2
الملف الشخصي (AAC+ المحسَّن)
إتاحة المحتوى الأحادي/استيريو/5.0/5.1 مع معيار معدلات أخذ العينات من 16 إلى 48 كيلوهرتز.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4 و .m4a)
AAC ELD (معيار AAC منخفض ومحسّن) دعم المحتوى الأحادي/استيريو مع معدلات أخذ العينات القياسية من 16 إلى 48 كيلوهرتز
  • 3GPP (.3gp)
  • MPEG-4 (.mp4 و .m4a)
الولايات المتحدة الأمريكية (USAC) دعم المحتوى الأحادي/استيريو مع معدلات أخذ العينات القياسية من 7.35 إلى 48 كيلو هرتز. MPEG-4 (.mp4 و .m4a)
AMR-NB 4.75 إلى 12.2 كيلوبت في الثانية، تم أخذ عينات من البيانات عند 8 كيلوهرتز 3GPP (.3gp)
AMR-WB 9 معدّلات من 6.60 كيلوبت في الثانية إلى 23.85 كيلوبت في الثانية استنادًا إلى العيّنة بمعدّل 16 كيلوهرتز، وفقًا لما هو محدّد في AMR-WB، المعدّل المتعدد التكيّفي - برنامج ترميز الكلام بنطاق واسع النطاق 3GPP (.3gp)
FLAC لكلّ من برنامج الترميز وفك الترميز: يجب ضبط الوضع "أحادي" و"استيريو" على الأقل يجب أن تكون معدلات العينات التي تصل إلى 192 كيلوهرتز متوافقة. 16 بت و24 بت الدقة إلى دعم البيانات. يجب أن تكون معالجة بيانات الصوت بتنسيق FLAC بسرعة 24 بت متوفّرة مع إعدادات صوت النقطة العائمة
  • FLAC ‏(‎.flac)
  • MPEG-4 (.mp4 و .m4a وفك الترميز فقط)
  • Matroska (.mkv، فك الترميز فقط)
MP3 ثابت/استيريو 8-320 كيلوبت في الثانية (CBR) أو معدل نقل بيانات متغير (VBR)
  • MP3 ‏(‎.mp3)
  • MPEG-4 (.mp4 و .m4a وفك الترميز فقط)
  • Matroska (.mkv، فك الترميز فقط)
MIDI نوعا MIDI 0 و1. الإصدار 1 و2 من DLS. XMF وMobile XMF. الدعم لـ صيغ نغمات الرنين RTTTL/RTX وOTA وiMelody
  • اكتب 0 و1 (.mid و .xmf و .mxmf)
  • RTTTL/RTX (.rtttl و .rtx)
  • iMelody (.imy)
فوربيس
  • Ogg (.ogg)
  • MPEG-4 (.mp4 و .m4a وفك الترميز فقط)
  • Matroska (.mkv)
  • Webm (.webm)
تضمين نبضي مشفر (PCM)/موجة (موجة) يجب أن يتوافق برنامج ترميز PCM مع تنسيق PCM خطي 16 بت ونموذج عائم 16 بت. موجة يجب أن يتوافق جهاز الاستخراج مع معيار PCM الخطي 16 بت و24 بت و32 بت وعدد عائم 32 بت (معدلات تصل إلى حد الأجهزة). يجب أن تكون معدلات أخذ العينات متاحة من من 8 كيلوهرتز إلى 192 كيلوهرتز WAVE (.wav)
Opus فك الترميز: دعم للمحتوى الأحادي والاستيريو والإصدار 5.0 و5.1 بمعدلات عينات 8000 و12000 و16000 و24000 و48000 هرتز.
الترميز: دعم المحتوى الأحادي و الاستيريو بمعدلات عينات 8000 و12000 و16000 و24000 و48000 هرتز.
  • Ogg (.ogg)
  • MPEG-4 (.mp4 و .m4a وفك الترميز فقط)
  • Matroska (.mkv)
  • Webm (.webm)

5.1.4. ترميز الصور

يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.6. تفاصيل برامج ترميز الصور.

يجب أن تدعم عمليات تنفيذ الأجهزة ترميز الصور التالي:

  • [C-0-1] JPEG
  • [C-0-2] PNG
  • [C-0-3] WebP

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ترميز HEIC عبر android.media.MediaCodec لنوع الوسائط MIMETYPE_IMAGE_ANDROID_HEIC، وهي:

  • يجب أن يوفر [C-1-1] برنامج ترميز HEVC مسرَّع على الجهاز يتوافق مع BITRATE_MODE_CQ وضع التحكّم في معدّل نقل البيانات، HEVCProfileMainStill ملف شخصي وحجم إطار 512 × 512 بكسل

5.1.5. فك ترميز الصور

يمكنك الاطّلاع على مزيد من التفاصيل في 5.1.6. تفاصيل برامج ترميز الصور.

يجب أن تتيح عمليات تنفيذ الأجهزة فك ترميز الصور التالية:

  • [C-0-1] JPEG
  • [C-0-2] GIF
  • [C-0-3] PNG
  • [C-0-4] BMP
  • [C-0-5] WebP
  • [C-0-6] RAW

إذا كانت عمليات تنفيذ الأجهزة تتيح فك ترميز فيديو HEVC، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع فك ترميز صورة HEIF (HEIC).

برامج فك ترميز الصور التي تدعم تنسيقًا عاليًا البت (أكثر من 9 وحدات بت لكل قناة):

  • [C-2-1] يجب أن يتيح إخراج تنسيق مكافئ له 8 بت إذا طلب ذلك من خلال التطبيق، على سبيل المثال، عبر ARGB_8888 إعداد android.graphics.Bitmap.

5.1.6. تفاصيل برامج ترميز الصور

التنسيق/برنامج الترميز التفاصيل أنواع الملفات/تنسيقات الحاويات المتوافقة
JPEG أساسي+تدريجي JPEG (.jpg)
ملف GIF GIF (.gif)
PNG PNG (.png)
BMP BMP (.bmp)
تنسيق WebP WebP (.webp)
عرض أوّلي ARW (.arw) وCR2 (.cr2) وDNG (.dng) وNEF (.nef) وNRW (.nrw) وORF (.orf) PEF (.pef) وRAF (.raf) وRW2 (.rw2) وSRW (.srw)
ملف HEIF الصور، مجموعة الصور، تسلسل الصور HEIF (.heif) وHEIC (.heic)

برنامج ترميز الصور وفكّ الترميز الظاهرَين من خلال واجهة برمجة التطبيقات MediaCodec

  • [C-1-1] يجب أن يتوافق مع YUV420 8:8:8 اللون المرن (COLOR_FormatYUV420Flexible) إلى CodecCapabilities.

  • [SR-1] يُنصح بشدة بأن يتوافق مع تنسيق الألوان RGB888 لسطح الإدخال الحالي.

  • [C-1-3] يجب أن يدعم واحدًا على الأقل من مستوٍ أو شبه مستوٍ تنسيق الألوان YUV420 8:8:8: COLOR_FormatYUV420PackedPlanar (ما يعادل COLOR_FormatYUV420Planar) أو COLOR_FormatYUV420PackedSemiPlanar (ما يعادل على COLOR_FormatYUV420SemiPlanar). موصى بها بشدة لدعم كليهما.

5.1.7. برامج ترميز الفيديو

  • لضمان جودة مقبولة لبث الفيديو على الويب ومؤتمر الفيديو في خدمات الأجهزة، ينبغي أن تستخدم عمليات تنفيذ الأجهزة برنامج ترميز VP8 للأجهزة الذي يفي المتطلبات.

إذا كانت عمليات تنفيذ الأجهزة تشمل برنامجًا لفك ترميز الفيديوهات أو برنامج ترميز:

  • [C-1-1] يجب أن تتوافق برامج ترميز الفيديو مع أحجام مخزن البيانات المؤقت وإخراجه تستوعب أكبر إطار مضغوط وغير مضغوط على النحو المطلوب وفقًا للمعيار والتهيئة ولكن ليس بشكل عام أيضًا.

  • [C-1-2] يجب أن تتوافق برامج ترميز الفيديو وفك ترميزها مع ألوان YUV420 8:8:8 المرنة. التنسيقات (COLOR_FormatYUV420Flexible) إلى CodecCapabilities.

  • [C-1-3] يجب أن تتوافق برامج ترميز الفيديو وفك ترميزها مع جهاز واحد على الأقل. تنسيق الألوان YUV420 شبه المستوى 8:8:8: COLOR_FormatYUV420PackedPlanar (ما يعادل COLOR_FormatYUV420Planar) أو COLOR_FormatYUV420PackedSemiPlanar (ما يعادل COLOR_FormatYUV420SemiPlanar). يُوصى بها بشدة لدعم كلا الخيارين.

  • [SR-1] يُنصح بشدة باستخدام برامج ترميز الفيديو وفك ترميزها قطعة واحدة على الأقل من جهاز مستوٍ محسّن أو شبه مستوٍ YUV420 8:8:8 (YV12، أو NV12، أو NV21، أو أي تنسيق مكافئ للمورّد).

  • [C-1-5] برامج فك ترميز الفيديوهات التي تتوافق مع تنسيق بتات عميق يجب أن يدعم (9 بت لكل قناة) إخراج تنسيق مكافئ له 8 بت في حالة يطلبه التطبيق. ويجب أن ينعكس ذلك على إتاحة تنسيق الألوان YUV420 8:8:8 عبر android.media.MediaCodecInfo

إذا كانت عمليات تنفيذ الأجهزة تُعلن عن دعم ملف HDR من خلال Display.HdrCapabilities، وهي:

  • [C-2-1] يجب أن يتيح تحليل البيانات الوصفية الثابتة بتقنية HDR ومعالجتها.

إذا كانت عمليات تنفيذ الأجهزة تُعلن عن دعم التحديث الداخلي من خلال FEATURE_IntraRefresh في MediaCodecInfo.CodecCapabilities صنف، فإنها:

  • [C-3-1] يجب أن تتوافق مع فترات إعادة التحميل في نطاق يتراوح بين 10 و60 لقطة. تعمل بدقة خلال 20% من فترة إعادة التحميل التي تم إعدادها.

ما لم يحدد التطبيق خلاف ذلك باستخدام KEY_COLOR_FORMAT مفتاح التنسيق وعمليات فك ترميز الفيديو:

  • [C-4-1] يجب أن يتم الضبط تلقائيًا على تنسيق الألوان المحسَّن لعرض الأجهزة إذا تم تكوينها باستخدام مخرجات السطح.
  • [C-4-2] يجب أن يتم ضبط الإعدادات التلقائية على تنسيق الألوان YUV420 8:8:8 المحسَّن لوحدة المعالجة المركزية (CPU). إذا تم إعداده بحيث لا يستخدم إخراج Surface.

5.1.8. قائمة برامج ترميز الفيديو

التنسيق/برنامج الترميز التفاصيل أنواع الملفات/تنسيقات الحاويات المطلوبة
بروتوكول H.263
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv، فك الترميز فقط)
H.264 AVC راجع القسم 5.2 5.3 للاطّلاع على التفاصيل
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • MPEG-2 TS (.ts، لا يمكن البحث عنه)
  • Matroska (.mkv، فك الترميز فقط)
H.265 HEVC راجِع القسم 5.3 لمعرفة التفاصيل.
  • MPEG-4 (.mp4)
  • Matroska (.mkv، فك الترميز فقط)
MPEG-2 الجودة الرئيسية
  • MPEG2-TS (.ts، لا يمكن البحث عنه)
  • MPEG-4 (.mp4، فك الترميز فقط)
  • Matroska (.mkv، فك الترميز فقط)
MPEG-4 SP
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv، فك الترميز فقط)
نموذج الفيديو 8 (VP8) راجع القسم 5.2 5.3 للاطّلاع على التفاصيل
نموذج الفيديو 9 (VP9) راجِع القسم 5.3 لمعرفة التفاصيل.

5.1.9. أمان برنامج ترميز الوسائط

يجب أن تضمن عمليات تنفيذ الأجهزة التوافق مع ميزات أمان برنامج ترميز الوسائط كما هو موضح أدناه.

يشمل Android دعم OMX، وهي واجهة برمجة تطبيقات لتسريع الوسائط المتعددة عبر الأنظمة الأساسية، بالإضافة إلى Codec 2.0، وهي واجهة برمجة تطبيقات تسريع وسائط متعددة منخفضة الأداء.

إذا كانت تطبيقات الأجهزة تدعم الوسائط المتعددة،:

  • [C-1-1] يجب أن يتم توفير الدعم لبرامج ترميز الوسائط إما من خلال OMX أو Codec 2.0 واجهات برمجة التطبيقات (أو كليهما) كما هو الحال في المشروع المفتوح المصدر لنظام Android ولا يجب إيقافها أو التحايل على وسائل الحماية الأمنية. هذا لا يعني على وجه التحديد أن كل يجب أن يستخدم برنامج الترميز OMX أو Codec 2.0 API، وأن يتيح فقط استخدام يجب أن تتوفر إحدى واجهات برمجة التطبيقات هذه، ويجب أن يتوفر الدعم لواجهات برمجة التطبيقات المتاحة وسائل الحماية الأمنية الموجودة.
  • [C-SR-1] يُنصَح بشدة بتضمين إمكانية استخدام واجهة برمجة التطبيقات Codec 2.0 API

إذا لم تكن عمليات تنفيذ الأجهزة متوافقة مع واجهة برمجة التطبيقات Codec 2.0 API، سيحدث ما يلي:

  • [C-2-1] يجب أن يتضمن برنامج ترميز برنامج OMX المقابل من نظام التشغيل Android. مشروع مفتوح المصدر (إن كان متاحًا) لكل تنسيق ونوع وسائط (برنامج ترميز أو برنامج فك الترميز) يتوافق مع الجهاز.
  • [C-2-2] برامج الترميز التي تبدأ أسماؤها بـ "OMX.google" يجب أن يكون مستندًا إلى على رمز مصدر المشروع المفتوح المصدر لنظام Android
  • [C-SR-2] يُنصح بشدة بتشغيل برامج ترميز برامج OMX في برنامج ترميز. عملية لا يمكنها الوصول إلى برامج تشغيل الأجهزة بخلاف مصممي خرائط الذاكرة.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع واجهة برمجة التطبيقات Codec 2.0 API، سيحدث ما يلي:

  • يجب أن يشتمل [C-3-1] على برنامج ترميز البرنامج المقابل لبرنامج Codec 2.0 من "مشروع مفتوح المصدر لنظام Android" (إذا كان متاحًا) لكل تنسيق ونوع وسائط (برنامج ترميز أو برنامج فك الترميز) يتوافق مع الجهاز.
  • [C-3-2] يجب أن يحتوي على برامج ترميز البرنامج Codec 2.0 في برنامج الترميز. كما هو منصوص عليه في "المشروع المفتوح المصدر لنظام Android" لمنح إمكانية الوصول إلى برامج ترميز البرامج على نطاق أوسع
  • [C-3-3] برامج الترميز التي تبدأ أسماؤها بـ "c2.android" يجب أن يكون مستندًا إلى على رمز مصدر المشروع المفتوح المصدر لنظام Android

5.1.10. وصف برنامج ترميز الوسائط

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز الوسائط، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتم عرض القيم الصحيحة لترميز برنامج ترميز الوسائط عبر MediaCodecInfo واجهة برمجة التطبيقات.

ويشمل ذلك على وجه الخصوص:

  • [C-1-2] برامج الترميز التي تبدأ أسماؤها بـ "OMX" يجب استخدام واجهات برمجة تطبيقات OMX وأن يكون لها أسماء تتوافق مع إرشادات التسمية الخاصة بـ OMX IL.
  • [C-1-3] برامج الترميز التي تبدأ أسماؤها بـ "c2" أن يستخدم واجهة برمجة التطبيقات Codec 2.0 API لها أسماء تتوافق مع إرشادات التسمية في Codec 2.0 لنظام التشغيل Android.
  • [C-1-4] برامج الترميز التي تبدأ أسماؤها بـ "OMX.google" أو "c2.android". يجب ألا يتم وصفها كمورِّد أو مسرَّعة باستخدام الأجهزة.
  • [C-1-5] برامج الترميز التي يتم تشغيلها في عملية ترميز (المورِّد أو النظام) والتي يجب ألا يكون الوصول إلى برامج تشغيل الأجهزة بخلاف مخصصات الذاكرة واضعي الخرائط على أنها برامج فقط.
  • [C-1-6] برامج الترميز غير المتوفّرة في المشروع المفتوح المصدر لنظام Android أو غير المستندة إليه في التعليمات البرمجية المصدر في هذا المشروع يجب أن يتم وصفها كمورّد.
  • [C-1-7] يجب أن يتم وصف برامج الترميز التي تستخدم تسريع الأجهزة مثل تسريع الأجهزة.
  • [C-1-8] يجب ألا تكون أسماء برامج الترميز مضلِّلة. على سبيل المثال، برامج الترميز المسماة "برامج فك الترميز" يجب أن يدعم فك الترميز وتلك التي تحمل اسم "برامج الترميز". يجب تقديم الدعم الترميز. يجب أن تتوافق برامج الترميز ذات الأسماء التي تحتوي على تنسيقات الوسائط مع هذه والتنسيقات.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز الفيديو:

  • [C-2-1] يجب أن تنشر جميع برامج ترميز الفيديو بيانات قابلة للتحقيق في عدد اللقطات في الثانية الأحجام التالية إذا كان برنامج الترميز متوافقًا:
SD (جودة منخفضة) SD (جودة عالية) دقة عالية - 720p دقة عالية - 1080p دقة فائقة
دقة الفيديو
  • 176 × 144 بكسل (H263 أو MPEG2 أو MPEG4)
  • 352 × 288 بكسل (برنامج ترميز MPEG4 أو H263 أو MPEG2)
  • 320 × 180 بكسل (VP8 وVP8)
  • 320 × 240 بكسل (غير ذلك)
  • 704 × 576 بكسل (H263)
  • 640 × 360 بكسل (VP8 وVP9)
  • 640 × 480 بكسل (برنامج ترميز MPEG4)
  • 720 × 480 بكسل (غير ذلك)
  • 1408 × 1152 بكسل (H263)
  • 1280 × 720 بكسل (غير ذلك)
1920 × 1080 بكسل (بخلاف MPEG4) 3840 × 2160 بكسل (HEVC وVP9)
  • [C-2-2] يجب أن يتم وصف برامج ترميز الفيديو التي يتم وصفها كأجهزة مسرَّعة ونشر معلومات نقاط الأداء. يجب أن تكون كل القوائم متوافقة نقاط الأداء العادية (مُدرَجة في PerformancePoint واجهة برمجة التطبيقات)، ما لم تكن مشمولة بنقطة أداء عادية أخرى متوافقة.
  • بالإضافة إلى ذلك، عليه نشر نقاط أداء إضافية إذا تدعم أداءً مستدامًا للفيديو بخلاف الأداء القياسي المدرج.

5.2. ترميز الفيديو

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أي برنامج ترميز للفيديو وإتاحتها إلى التطبيقات التابعة لجهات خارجية، فإنّها:

  • ينبغي ألا يزيد عن نافذتين منزلقتين، وأن يتجاوز معدل نقل البيانات بنسبة 15% بين الفواصل الزمنية داخل الإطار (I-frame).
  • يجب ألا يزيد معدل نقل البيانات عن 100% عبر نافذة منزلقة من ثانية واحدة

إذا كانت عمليات تنفيذ الجهاز تتضمن عرض شاشة مضمّنة مع قطري لا يقل عن 2.5 بوصة أو يتضمن منفذ إخراج فيديو الإعلان عن دعم الكاميرا عبر android.hardware.camera.any عن الميزات، فإنها:

  • [C-1-1] يجب أن يتضمن دعم فيديو واحد على الأقل من فيديو VP8 أو H.264 وبرامج الترميز، وإتاحتها للتطبيقات التابعة لجهات خارجية.
  • يجب أن يتوافق مع كل من برنامجَي ترميز الفيديوهات VP8 وH.264 وإتاحة هذه الميزة. لتطبيقات الجهات الخارجية.

إذا كانت عمليات تنفيذ الجهاز تتوافق مع أي من تنسيقات الفيديو ذات الترميز H.264 أو VP8 أو VP9 أو HEVC برامج الترميز وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنها:

  • [C-2-1] يجب أن يتوافق مع معدّلات نقل البيانات القابلة للضبط ديناميكيًا.
  • يجب أن يدعم معدلات عرض الإطارات المتغيرة، حيث من المفترض أن يحدد برنامج ترميز الفيديو مدة عرض اللقطة الفورية بناءً على الطوابع الزمنية للمخازن المؤقتة للإدخال تخصيص حزمة وحدات البيانات الخاصة به بناءً على مدة الإطار

إذا كانت طرق تنفيذ الأجهزة تتوافق مع برنامج ترميز الفيديو MPEG-4 SP وجعله متوفّرة للتطبيقات التابعة لجهات خارجية، فإنها:

  • يجب أن يتوافق مع معدلات نقل البيانات القابلة للضبط ديناميكيًا لبرنامج الترميز المتوافق.

إذا كانت عمليات تنفيذ الأجهزة توفّر برامج ترميز فيديو مسرَّع على الجهاز أو صور، ويدعم جهاز واحد أو أكثر من الكاميرات المتصلة أو القابلة للتوصيل التي تم الكشف عنها من خلال واجهات برمجة تطبيقات android.camera:

  • [C-4-1] يجب أن تتوافق جميع برامج ترميز الفيديو المسرّع للأجهزة والصور مع إطارات الترميز من كاميرات الأجهزة.
  • "يجب أن يكون" متوافقًا مع إطارات الترميز من كاميرات الأجهزة في جميع الفيديوهات أو برامج ترميز الصور.

إذا كانت عمليات تنفيذ الأجهزة توفّر ترميز النطاق العالي الديناميكية، سيتم إجراء ما يلي:

  • يُوصى بشدة [C-SR-1] بتوفير مكوّن إضافي واجهة برمجة التطبيقات لتحويل الترميز السلس لتحويل تنسيق HDR إلى تنسيق SDR.

5.2.1. بروتوكول H.263

ما إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برامج ترميز H.263 وإتاحتها على جميع الأجهزة إلى التطبيقات التابعة لجهات خارجية، فإنّها:

  • [C-1-1] يجب أن يتوافق مع المستوى 45 للملف الشخصي الأساسي.
  • يجب أن يتوافق مع معدلات نقل البيانات القابلة للضبط ديناميكيًا لبرنامج الترميز المتوافق.

5.2.2. H.264

في حال كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.264، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع المستوى 3 للملف الشخصي الأساسي. ومع ذلك، دعم ASO (ترتيب الشرائح العشوائي) وFMO (المرن) ترتيب الكتلة الجزئية) وRS (الشرائح المتكررة) اختياري. علاوة على ذلك، الحفاظ على التوافق مع أجهزة Android الأخرى، يُوصى لا تستخدم برامج الترميز كلاً من ASO وFMO وRS في الملف الشخصي الأساسي.
  • [C-1-2] يجب أن يتوافق مع ملفات ترميز الفيديو ذات الدقة العادية (SD) في الجدول التالي.
  • يجب أن يتوافق مع المستوى 4 للملف الشخصي الرئيسي.
  • "يجب أن" متوافق مع ملفات ترميز الفيديو ذات الدقة العالية (HD) كما هو موضح في الجدول التالي.

في حال الإبلاغ عن توافق عمليات تنفيذ الأجهزة مع ترميز H.264 للفيديوهات بدقة 720p أو 1080p مقاطع الفيديو من خلال واجهات برمجة تطبيقات الوسائط، وهي:

  • [C-2-1] يجب أن يتوافق مع ملفات الترميز الشخصية في الجدول التالي.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p
دقة الفيديو 320 × 240 بكسل 720 × 480 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل
عدد اللقطات في الثانية للفيديو 20 لقطة في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية
معدّل نقل بيانات الفيديو 384 كيلوبت في الثانية 2 ميغابت في الثانية ‫4 ميغابت في الثانية ‫10 ميغابت في الثانية

5.2.3. نموذج الفيديو 8 (VP8)

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP8، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع ملفات ترميز الفيديو بدقة عادية.
  • يجب أن يتوافق مع ملفات ترميز الفيديو ذات الدقة العالية (HD) التالية.
  • [C-1-2] يجب أن يتيح كتابة ملفات Matroska WebM.
  • ينبغي توفير برنامج ترميز VP8 للأجهزة الذي يفي متطلبات ترميز أجهزة RTC الخاصة بمشروع WebM، لضمان الجودة المقبولة لخدمات بث الفيديو على الويب ومؤتمرات الفيديو.

في حال الإبلاغ عن توافق عمليات تنفيذ الجهاز مع ترميز VP8 للفيديوهات بدقة 720p أو 1080p مقاطع الفيديو من خلال واجهات برمجة تطبيقات الوسائط، وهي:

  • [C-2-1] يجب أن يتوافق مع ملفات الترميز الشخصية في الجدول التالي.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p
دقة الفيديو 320 × 180 بكسل 640 × 360 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية
معدّل نقل بيانات الفيديو 800 كيلوبت في الثانية 2 ميغابت في الثانية ‫4 ميغابت في الثانية ‫10 ميغابت في الثانية

5.2.4. نموذج الفيديو 9 (VP9)

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9، سيتم إجراء ما يلي:

  • [C-1-2] يجب توفير الملف الشخصي 0 المستوى 3.
  • [C-1-1] يجب أن يتيح كتابة ملفات Matroska WebM.
  • [C-1-3] يجب أن ينشئ بيانات Codecprivate.
  • "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.
  • يُنصَح بشدة بأن توافق [C-SR-1] مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية. كما هو موضح في الجدول التالي إذا كان هناك برنامج ترميز للأجهزة.
دقة عادية دقة عالية - 720p دقة عالية - 1080p دقة فائقة
دقة الفيديو 720 × 480 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل 3840 × 2160 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية
معدّل نقل بيانات الفيديو 1.6 ميغابت في الثانية ‫4 ميغابت في الثانية 5 ميغابت في الثانية 20 ميغابت في الثانية

إذا طالبت عمليات تنفيذ الجهاز بتوفير الدعم للملف الشخصي 2 أو الملف الشخصي 3 من خلال واجهات برمجة تطبيقات الوسائط:

  • يتوفّر الدعم لتنسيق 12 بت بشكلٍ اختياري.

5.2.5. بروتوكول H.265

إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.265، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع المستوى 3 للملف الشخصي الرئيسي.
  • يجب أن يتوافق مع ملفات الترميز العالية الدقة كما هو موضّح في الجدول التالي.
  • يُنصَح بشدة بأن توافق [C-SR-1] مع ملفات ترميز الدقة العالية. كما هو موضح في الجدول التالي إذا كان هناك برنامج ترميز للأجهزة.
دقة عادية دقة عالية - 720p دقة عالية - 1080p دقة فائقة
دقة الفيديو 720 × 480 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل 3840 × 2160 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية
معدّل نقل بيانات الفيديو 1.6 ميغابت في الثانية ‫4 ميغابت في الثانية 5 ميغابت في الثانية 20 ميغابت في الثانية

5.3. فك ترميز الفيديو

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برامج ترميز VP8 أو VP9 أو H.264 أو H.265، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتيح التبديل الديناميكي لدرجة دقة الفيديو وعدد اللقطات في الثانية من خلال واجهات برمجة تطبيقات Android العادية ضمن البث نفسه لجميع VP8 وVP9 برنامجا الترميز H.264 وH.265 في الوقت الفعلي وبدرجة دقة تصل إلى الحدّ الأقصى المسموح به لكل برنامج ترميز على الجهاز

5.3.1. MPEG-2

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برامج فك ترميز MPEG-2، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع المستوى العالي للملف الشخصي الرئيسي.

5.3.2 بروتوكول H.263

إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برامج فك ترميز H.263، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع المستوى 30 والمستوى 45 للملف الشخصي الأساسي.

5.3.3. MPEG-4

في حال تنفيذ الجهاز باستخدام برامج فك ترميز MPEG-4:

  • [C-1-1] يجب أن يتوافق مع المستوى 3 من الملف الشخصي البسيط.

5.3.4 H.264

إذا كانت عمليات تنفيذ الأجهزة تتيح برامج فك ترميز H.264، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع المستوى 3.1 للملف الشخصي الرئيسي والملف الشخصي الأساسي. دعم بالنسبة إلى ترتيب الشرائح العشوائية (ASO) وFMO (الترتيب المرن للكتلة الفائقة) وRS (الشرائح المتكررة) اختياري.
  • [C-1-2] يجب أن يكون قادرًا على فك ترميز الفيديوهات باستخدام الدقة العادية (SD) الملفات الشخصية المدرَجة في الجدول التالي وتم ترميزها باستخدام "الملف الشخصي الأساسي" والمستوى 3.1 للملف الشخصي الرئيسي (بما في ذلك 720p30).
  • يجب أن يكون قادرًا على فك ترميز الفيديوهات باستخدام الملفات الشخصية ذات الدقة العالية (HD) كما هو موضح في الجدول التالي.

إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes() هو دقة الفيديو أو أكبر منها، وعمليات تنفيذ الأجهزة:

  • [C-2-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عالية تبلغ 720p في ما يلي: المؤقت.
  • [C-2-2] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عالية 1080p في الحالات التالية: المؤقت.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p
دقة الفيديو 320 × 240 بكسل 720 × 480 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 60 لقطة في الثانية 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون)
معدّل نقل بيانات الفيديو 800 كيلوبت في الثانية 2 ميغابت في الثانية ‫8 ميغابت في الثانية 20 ميغابت في الثانية

5.3.5. ‫H.265 (HEVC)

إذا كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز H.265، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع الفئة الرئيسية للملف الشخصي الرئيسي من المستوى 3 وفيديو SD بفك ترميز الملفات الشخصية كما هو موضح في الجدول التالي.
  • "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.
  • [C-1-2] يجب أن يتوافق مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في ما يلي. جدول إذا كان هناك برنامج لفك ترميز الأجهزة.

إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes() هو مساوٍ لدرجة دقة الفيديو أو أكبر منها، ثم:

  • [C-2-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع أحد بروتوكولات H.265 أو VP9 على الأقل. فك ترميز الملفات الشخصية بتنسيق 720 و1080 وUHD.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p دقة فائقة
دقة الفيديو 352 × 288 بكسل 720 × 480 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل 3840 × 2160 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30/60 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون باستخدام فك ترميز أجهزة H.265) 60 لقطة في الثانية
معدّل نقل بيانات الفيديو 600 كيلوبت في الثانية 1.6 ميغابت في الثانية ‫4 ميغابت في الثانية 5 ميغابت في الثانية 20 ميغابت في الثانية

في حال ادعاء عمليات تنفيذ الأجهزة أنّها تتيح ملف تعريف بتقنية HDR من خلال الوسائط واجهات برمجة التطبيقات:

  • [C-3-1] يجب أن تقبل عمليات تنفيذ الأجهزة البيانات الوصفية المطلوبة ذات تنسيق HDR من بالإضافة إلى دعم استخراج وإخراج تقنية HDR المطلوبة البيانات الوصفية من مصدر البيانات البت و/أو الحاوية.
  • [C-3-2] يجب أن تعرض عمليات تنفيذ الأجهزة محتوى HDR بشكل صحيح على على شاشة الجهاز أو على منفذ إخراج الفيديو العادي (مثل HDMI).

5.3.6. نموذج الفيديو 8 (VP8)

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP8، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز SD في الجدول التالي.
  • "هل يجب استخدام برنامج ترميز VP8 للأجهزة" المتطلبات.
  • يجب أن تتوفر الملفات الشخصية لفك ترميز المحتوى بدقة عالية في الجدول التالي.

إذا كان الارتفاع كما تم الإبلاغ عن الطريقة Display.getSupportedModes() يساوي درجة دقة الفيديو أو أكبر منها:

  • [C-2-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع ملفات شخصية بدقة 720p في الجدول التالي.
  • [C-2-2] يجب أن تتوافق عمليات تنفيذ الأجهزة مع ملفات شخصية بدقة 1080p في الجدول التالي.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p
دقة الفيديو 320 × 180 بكسل 640 × 360 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون) 30 (60 لقطة في الثانيةالتلفزيون)
معدّل نقل بيانات الفيديو 800 كيلوبت في الثانية 2 ميغابت في الثانية ‫8 ميغابت في الثانية 20 ميغابت في الثانية

5.3.7. نموذج الفيديو 9 (VP9)

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز الفيديو بدقة عادية كما هو موضّح في الجدول التالي.
  • "يُفترض" أن تتيح استخدام الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في الجدول التالي.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع برنامج ترميز VP9 وبرنامج فك ترميز الأجهزة:

  • [C-2-1] يجب أن يتوافق مع الملفات الشخصية لفك ترميز المحتوى بدقة عالية كما هو موضّح في ما يلي. المؤقت.

إذا كان الارتفاع الذي تم الإبلاغ عنه من خلال طريقة Display.getSupportedModes() هو مساوٍ لدرجة دقة الفيديو أو أكبر منها، ثم:

  • [C-3-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع أحد VP9 أو H.265 على الأقل. فك ترميز الملفات الشخصية لـ 720 و1080 وUHD.
دقة عادية (جودة منخفضة) دقة عادية (جودة عالية) دقة عالية - 720p دقة عالية - 1080p دقة فائقة
دقة الفيديو 320 × 180 بكسل 640 × 360 بكسل 1280 × 720 بكسل 1920 × 1080 بكسل 3840 × 2160 بكسل
عدد اللقطات في الثانية للفيديو 30 إطارًا في الثانية 30 إطارًا في الثانية 30 إطارًا في الثانية 30 لقطة في الثانية (60 لقطة في الثانيةالتلفزيون باستخدام فك ترميز أجهزة VP9) 60 لقطة في الثانية
معدّل نقل بيانات الفيديو 600 كيلوبت في الثانية 1.6 ميغابت في الثانية ‫4 ميغابت في الثانية 5 ميغابت في الثانية 20 ميغابت في الثانية

إذا طالبت عمليات تنفيذ الأجهزة بتوفير الدعم لـ VP9Profile2 أو VP9Profile3 من خلال "CodecProfileLevel" واجهات برمجة تطبيقات الوسائط:

  • يتوفّر الدعم لتنسيق 12 بت بشكلٍ اختياري.

إذا ادّعت عمليات تنفيذ الأجهزة أنّها تتيح ملف شخصي بنطاق عالي الديناميكية (VP9Profile2HDR، VP9Profile2HDR10Plus وVP9Profile3HDR وVP9Profile3HDR10Plus) من خلال واجهات برمجة تطبيقات الوسائط:

  • [C-4-1] يجب أن تقبل عمليات تنفيذ الأجهزة البيانات الوصفية المطلوبة ذات تنسيق HDR (KEY_HDR_STATIC_INFO) لجميع ملفات تعريف HDR، بالإضافة إلى "KEY_HDR10_PLUS_INFO" للملفات الشخصية التي تستخدم تقنية HDR10Plus) من التطبيق. كما يجب أن تدعم استخراج وإخراج البيانات الوصفية ذات تنسيق HDR المطلوبة من مصدر البيانات البت و/أو الحاوية.
  • [C-4-2] يجب أن تعرض عمليات تنفيذ الأجهزة محتوى HDR بشكل صحيح على على شاشة الجهاز أو على منفذ إخراج الفيديو العادي (مثل HDMI).

5.3.8. Dolby Vision

إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافق برنامج فك ترميز Dolby Vision من خلال HDR_TYPE_DOLBY_VISION فإنهم:

  • [C-1-1] يجب توفير أداة استخراج تتوافق مع تقنية Dolby Vision.
  • [C-1-2] يجب عرض محتوى Dolby Vision بشكل صحيح على شاشة الجهاز على منفذ إخراج فيديو عادي (مثل HDMI).
  • [C-1-3] يجب تعيين فهرس المسار لالطبقات الأساسية المتوافقة مع الأنظمة القديمة (إذا هو نفسه فهرس المسار لطبقة Dolby Vision المدمجة.

5.3.9 AV1

في حال كانت عمليات تنفيذ الأجهزة متوافقة مع برنامج ترميز AV1، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتوافق مع الملف الشخصي 0، بما في ذلك محتوى 10 بت.

5.4. تسجيل الصوت

في حين أن بعض المتطلبات الموضحة في هذا القسم مدرجة على أنه "ينبغي" ونظرًا إلى الإصدار Android 4.3، فقد وضعنا تعريف التوافق للإصدارات المستقبلية. لتغييرها إلى "يجب". أجهزة Android الحالية والجديدة تعمل بشكل كبير موصى بها باستيفاء هذه المتطلبات المدرجة كما هو مطلوب لن يتمكنوا من تحقيق التوافق مع Android عند الترقية إلى الإصدارات المستقبلية. .

5.4.1. معلومات تسجيل الصوت والميكروفونات الأولية

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، سيتم ما يلي:

  • [C-1-1] يجب أن يسمح بالتقاط محتوى صوتي أوليّ مع ما يلي: الخصائص التالية:

    • التنسيق: PCM خطي، 16 بت
    • معدلات أخذ العينات: 8000، 11025، 16000، 44100، 48,000 هرتز
    • القنوات: أحادي
  • "يجب السماح" بالتقاط المحتوى الصوتي غير المنسّق بما يلي: الخصائص التالية:

    • التنسيق: PCM الخطي، 16 بت و24 بت
    • معدلات أخذ العينات: 8000، 11025، 16000، 22050، 24000، 32000، 44100 48000 هرتز
    • القنوات: هو عدد القنوات الذي يعادل عدد الميكروفونات على جهاز
  • [C-1-2] يجب أن يتم التقاطها بمعدلات عينة أعلى من دون زيادة العينات.

  • [C-1-3] يجب أن يتضمن فلترًا مناسبًا لمنع التشويش عند يتم الحصول على معدلات العينات الموضحة أعلاه باستخدام العينات المنخفضة.

  • "ينبغي" السماح بالتقاط جودة راديو AM وDVD للمحتوى الصوتي الأولي، الذي تعني السمات التالية:

    • التنسيق: PCM خطي، 16 بت
    • معدلات أخذ العينات: 22050، 48000 هرتز
    • القنوات: استيريو
  • [C-1-4] يجب أن يلتزم بـ MicrophoneInfo API وملء المعلومات للميكروفونات المتوفرة على الجهاز بشكل صحيح التطبيقات التابعة لأطراف ثالثة من خلال AudioManager.getMicrophones() والميكروفونات النشطة حاليًا التي يمكن الوصول إليها من قِبل الجهة الخارجية تطبيقات تابعة لجهات خارجية عبر AudioRecord.getActiveMicrophones() وMediaRecorder.getActiveMicrophones() واجهات برمجة التطبيقات. إذا كانت عمليات تنفيذ الجهاز تسمح بالتقاط جودة راديو AM وDVD للصوت الأولي للمحتوى، فإن:

  • [C-2-1] يجب التقاط الصور بدون زيادة أخذ العينات بأي نسبة أعلى من 16000:22050 أو 44100:48000.

  • [C-2-2] يجب أن يتضمن فلتر تنعيم مناسب لأي زيادة العينات أو تقليلها.

5.4.2. الالتقاط للتعرف على الصوت

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، سيتم ما يلي:

  • [C-1-1] يجب التقاط الصور مصدر صوت واحد (android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION) في أحد معدلات العينات، وهما 44100 و48000.
  • [C-1-2] يجب أن توقِف تلقائيًا أي معالجة للصوت لخفض الضوضاء في حال يتم تسجيل بث صوتي من صوت AudioSource.VOICE_RECOGNITION. المصدر.
  • [C-1-3] يجب، تلقائيًا، إيقاف أي عنصر تحكم تلقائي في الصوت أثناء التسجيل بثّ صوتي من مصدر الصوت AudioSource.VOICE_RECOGNITION.
  • "ينبغي" تسجيل البث الصوتي لميزة "التعرّف على الصوت" بنسبة مسطّحة تقريبًا سعة السعة مقابل خصائص التردد: على وجه التحديد، أقل من 3 ديسيبل، بدءًا من 100 هرتز إلى 4000 هرتز.
  • يجب تسجيل البث الصوتي لميزة "التعرّف على الصوت" مع ضبط حساسية الإدخال. بحيث ينتج عن مصدر طاقة صوت يبلغ 90 ديسيبل (SPL) عند 1000 هرتز متوسط عائد MSM بقيمة 2500 للعينات ذات 16 بت.
  • يجب تسجيل البث الصوتي لميزة "التعرّف على الصوت" بحيث يتوفّر اتساع PCM تتبع مستويات المدخلات وخط مستوى الصوت المنخفض خطيًا لنطاق لا يقل عن 30 ديسيبل من -18 ديسيبل إلى +12 ديسيبل re 90 ديسيبل مستوى صوت SPL عند الميكروفون.
  • يجب تسجيل البث الصوتي لميزة "التعرّف على الصوت" بالتناغم التام تشوّه (THD) أقل من% 1 لتردد 1 كيلوهرتز عند مستوى إدخال SPL 90 ديسيبل على مستوى الصوت الميكروفون.

في حال رصدت عمليات تنفيذ الأجهزة للسمة android.hardware.microphone والتشويش تقنيات الإيقاف (الخفض) المضبوطة للتعرف على الكلام، فهي:

  • [C-2-1] يجب السماح بالتحكم في هذا التأثير الصوتي من خلال واجهة برمجة تطبيقات android.media.audiofx.NoiseSuppressor.
  • [C-2-2] يجب أن يحدّد بشكل فريد كل تقنية من تقنيات كتم الضوضاء التنفيذ من خلال الحقل AudioEffect.Descriptor.uuid.

5.4.3. الالتقاط لإعادة توجيه التشغيل

وتشمل الفئة android.media.MediaRecorder.AudioSource الفئة REMOTE_SUBMIX. مصدر الصوت

إذا كانت عمليات تنفيذ الأجهزة تشير إلى كلّ من android.hardware.audio.output و android.hardware.microphone، وهي:

  • [C-1-1] يجب تنفيذ مصدر الصوت REMOTE_SUBMIX بشكل صحيح بحيث عندما يستخدم تطبيق واجهة برمجة التطبيقات android.media.AudioRecord للتسجيل من هذه يلتقط الصوت مزيجًا من جميع عمليات البث الصوتي، باستثناء ما يلي:

    • AudioManager.STREAM_RING
    • AudioManager.STREAM_ALARM
    • AudioManager.STREAM_NOTIFICATION

5.4.4. وحدة إلغاء صدى الصوت

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، سيتم ما يلي:

  • يجب استخدام ميزة إلغاء صدى الصوت (AEC) هي تكنولوجيا تم ضبطها للاتصال الصوتي وتم تطبيقها على مسار الالتقاط عند التقاط الصورة باستخدام AudioSource.VOICE_COMMUNICATION

إذا كانت عمليات تنفيذ الجهاز توفّر ميزة "إلغاء صدى الصوت" الصوتية يتم إدراجه في مسار التقاط الصوت عند AudioSource.VOICE_COMMUNICATION ، فهي:

  • [C-SR-1] يُنصَح باعتماد هذا الإجراء للإبلاغ عن هذا الإجراء عبر AcousticEchoCanceler طريقة واجهة برمجة التطبيقات AcousticEchoCanceler.isAvailable()
  • [C-SR-2] تستخدم strongLY_RECOMMENDED للسماح بتشغيل هذا التأثير الصوتي يمكن التحكّم فيها باستخدام أداة AcousticEchoCanceler واجهة برمجة التطبيقات.
  • [C-SR-3] يتم استخدامها strongLY_RECOMMENDED لتحديد كل تقنية AEC بشكل فريد التنفيذ من خلال AudioEffect.Descriptor.uuid .

5.4.5. التقاط متزامن

إذا أعلنت عمليات تنفيذ الأجهزة عن السمة android.hardware.microphone، يجب تنفيذ الالتقاط المتزامن كما هو موضح في هذا المستند. وعلى وجه التحديد:

  • [C-1-1] يجب أن يسمح بالوصول المتزامن إلى الميكروفون من خلال أدوات تسهيل الاستخدام التقاط خدمة باستخدام AudioSource.VOICE_RECOGNITION وواحد على الأقل التقاط أي تطبيقات مع أي AudioSource.
  • [C-1-2] يجب أن يسمح بالوصول المتزامن إلى الميكروفون بواسطة جهاز مثبت مسبقًا تطبيق لديه دور "مساعد Google" وتطبيق واحد على الأقل الالتقاط بأي AudioSource باستثناء AudioSource.VOICE_COMMUNICATION أو AudioSource.CAMCORDER.
  • [C-1-3] يجب كتم صوت التقاط الصوت في أي تطبيق آخر، باستثناء خدمة إمكانية وصول، بينما يستخدم التطبيق في التقاط الصور AudioSource.VOICE_COMMUNICATION أو AudioSource.CAMCORDER ومع ذلك، عندما يلتقط أحد التطبيقات عبر AudioSource.VOICE_COMMUNICATION ثم تطبيق آخر يمكنه التقاط المكالمة الصوتية إذا كان تطبيقًا مميزًا (مثبّتًا مسبقًا) يحتوي على الإذن CAPTURE_AUDIO_OUTPUT.
  • [C-1-4] إذا تم التقاط تطبيقين أو أكثر بشكل متزامن وإذا لا يحتوي أي من التطبيقين على واجهة مستخدم في الأعلى، التطبيق الذي بدأ في التقاط أحدث يتلقى صوتًا.

5.4.6. مستويات اكتساب صوت الميكروفون

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، سيتم ما يلي:

  • من المفترض أن تكون اتساعًا مسطّحًا مقابل التردد الثابت الخصائص في نطاق التردد المتوسط: تحديدًا أقل من 3 ديسيبل من 100 من هرتز إلى 4000 هرتز لكل ميكروفون يتم استخدامه لتسجيل الصوت التعرف على مصدر الصوت.
  • "يجب ضبط حساسية إدخال الصوت" لدرجة أن الصوت الجيبي بتردد 1000 هرتز مصدر نغمة يتم تشغيلها عند مستوى ضغط الصوت (SPL) البالغ 90 ديسيبل ينتج عنها استجابة مع RMS من 2500 لعينة 16 بت (أو -22.35 ديسيبل على مقياس كامل للعينات العائمة عينة دقيقة/مزدوجة) لكل ميكروفون يُستخدم تسجيل مصدر الصوت لميزة التعرف على الصوت.
  • يوصى بشدة باستخدام [C-SR-1] لإظهار مستويات السعة في المستوى المنخفض نطاق التردد: تحديدًا من ≥20 ديسيبل من 5 هرتز إلى 100 هرتز مقارنةً إلى نطاق التردد المتوسط لكل ميكروفون يُستخدَم للتسجيل مصدر الصوت للتعرف على الصوت.
  • [C-SR-2] مستحسن بشدة لإظهار مستويات السعة في نطاق تردد مرتفع: تحديدًا من + 30 ديسيبل من 4000 هرتز إلى 22 كيلوهرتز مقارنةً بنطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل مصدر الصوت لميزة التعرف على الصوت.

5.5. تشغيل الصوت

يتيح Android للتطبيقات إمكانية تشغيل الصوت من خلال الصوت. جهاز ملحق للإخراج كما هو موضح في القسم 7.8.2.

5.5.1. تشغيل الصوت الأولي

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output، سيتم ما يلي:

  • [C-1-1] يجب أن يسمح بتشغيل المحتوى الصوتي الأولي باستخدام ما يلي الخصائص التالية:

    • تنسيقات المصدر: PCM الخطي، 16 بت، 8 بت، عائم
    • القنوات: إعدادات أحادية وستيريو وصالحة للقنوات المتعددة لما يصل إلى 8 قنوات
    • معدّلات أخذ العينات (بالهرتز):
      • 8000 و11025 و16000 و22050 و24000 و32000 و44100 و48,000 على القناة الإعدادات الواردة أعلاه
      • 96000 في وضع أحادي وستيريو

5.5.2 التأثيرات الصوتية

يوفّر Android واجهة برمجة تطبيقات للتأثيرات الصوتية. لعمليات تنفيذ الأجهزة.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى الميزة android.hardware.audio.output، وهي:

  • [C-1-1] يجب أن يتوافق مع EFFECT_TYPE_EQUALIZER عمليات تنفيذ EFFECT_TYPE_LOUDNESS_ENHANCER التي يمكن التحكم فيها من خلال الفئتان الفرعيتان "تأثير الصوت" Equalizer وLoudnessEnhancer
  • [C-1-2] يجب أن يتوافق مع تنفيذ واجهة برمجة تطبيقات العروض المرئية، ويمكن التحكم فيها من خلال لفئة Visualizer.
  • [C-1-3] يجب أن يتيح تنفيذ "EFFECT_TYPE_DYNAMICS_PROCESSING". يمكن التحكم فيها من خلال الفئة الفرعية AudioEffect DynamicsProcessing.
  • يجب أن تتوافق مع EFFECT_TYPE_BASS_BOOST وEFFECT_TYPE_ENV_REVERB عمليات تنفيذ EFFECT_TYPE_PRESET_REVERB وEFFECT_TYPE_VIRTUALIZER يمكن التحكم فيه من خلال AudioEffect الفئات الفرعية BassBoost، EnvironmentalReverb وPresetReverb وVirtualizer.
  • [C-SR-1] يُوصى بها بشدة لدعم التأثيرات في العناصر العائمة متعدد القنوات.

5.5.3. مستوى إخراج الصوت

عمليات تنفيذ أجهزة السيارات:

  • السماح بضبط مستوى الصوت بشكل منفصل لكل بث صوتي باستخدام نوع المحتوى أو استخدامه على النحو المحدّد بواسطة السمات الصوتية واستخدام الإعدادات الصوتية في السيارة على النحو المحدّد بشكل علني في android.car.CarAudioManager.

5.5.4. نقل الصوت

إذا كانت عمليات تنفيذ الأجهزة تتيح إعادة تحميل الصوت، سيتم إجراء ما يلي:

  • [C-SR-1] يُنصَح باستخدامها بشكل كبير لقطع المحتوى الصوتي الذي لا يتضمّن أي مشاكل عند تشغيله إذا تم تحديدها من خلال AudioTrack gapless API وحاوية الوسائط لـ MediaPlayer.

5.6. وقت استجابة الصوت

إنّ وقت استجابة الصوت هو التأخير الزمني الذي تمر به إشارة صوتية عبر النظام. تعتمد العديد من فئات التطبيقات على وقت الاستجابة القصير لتحقيق الوقت والمؤثرات الصوتية.

استخدِم التعريفات التالية لأغراض هذا القسم:

  • وقت استجابة الناتج. يشير هذا المصطلح إلى الفاصل الزمني بين وقت كتابة التطبيق لإطار. من البيانات المُرمّزة بترميز PCM وعند تقديم الصوت المقابل إلى البيئة في محول الطاقة أو الإشارة الموجودة على الجهاز، والتي تغادر الجهاز عبر منفذ ويمكن تتم مراقبتها خارجيًا.
  • وقت استجابة الإخراج البارد. الوقت بين بدء بث إخراج و وقت العرض لأول إطار استنادًا إلى الطوابع الزمنية، عند إخراج الصوت كان النظام خاملاً وتم إيقافه قبل تقديم الطلب.
  • وقت استجابة الإخراج المستمر. كما أن وقت استجابة الإخراج للإطارات اللاحقة بعد تشغيل الصوت على الجهاز.
  • وقت استجابة الإدخال: الفاصل الزمني بين وقت تقديم الصوت بواسطة البيئة إلى الجهاز لدى محول الإشارة الموجود على الجهاز أو إشارة تدخل إلى الجهاز عن طريق المنفذ وعندما يقرأ تطبيق الإطار المقابل من بيانات PCM المشفرة.
  • فقدان الإدخال. الجزء الأولي من إشارة إدخال غير قابلة للاستخدام أو غير متاح.
  • وقت استجابة الإدخال البارد. الوقت بين بدء البث ووقت تلقي أول إطار صالح، عندما يكون نظام إدخال الصوت غير مستخدَم من قِبل أي برنامج حاليًا قبل الطلب.
  • وقت استجابة الإدخال المستمر. وقت استجابة الإدخال للإطارات اللاحقة، أثناء تسجيل الجهاز للصوت
  • عدم استقرار الإخراج البارد. التباين بين القياسات المنفصلة لدرجة الحرارة الباردة قيم وقت استجابة الإخراج
  • عدم استقرار الإدخال البارد. التباين بين القياسات المنفصلة لدرجة الحرارة الباردة قيم وقت استجابة الإدخال
  • وقت استجابة الذهاب والعودة المستمر. مجموع وقت استجابة الإدخال المستمر بالإضافة إلى وقت الاستجابة المستمر للمخرج بالإضافة إلى فترة مخزنة واحدة. تسمح فترة المخزن المؤقت الوقت الذي يحتاجه التطبيق لمعالجة الإشارة والوقت اللازم للتخفيف من حدة الفرق بين مصادر الإدخال والإخراج.
  • واجهة برمجة تطبيقات قائمة انتظار المخزن المؤقت لـ OpenSL ES PCM. مجموعة أدوات PCM ذات الصلة OpenSL ES واجهات برمجة التطبيقات ضمن Android NDK.
  • واجهة برمجة التطبيقات للصوت الأصلي: مجموعة واجهات برمجة تطبيقات AAudio ضمن Android NDK.
  • الطابع الزمني: يشير هذا المصطلح إلى زوج يتكون من موضع إطار نسبي داخل إطار. البث والوقت المقدّر للدخول في هذا الإطار أو مغادرته مسار معالجة الصوت على نقطة النهاية المرتبطة. يمكن أيضًا مراجعة AudioTimestamp:
  • glitch انقطاع مؤقت أو قيمة عيّنة غير صحيحة في الإشارة الصوتية يكون سببها عادةً تم تقليل المخزن المؤقت للمخرجات، تجاوز سعة التخزين المؤقت للمدخلات أو أي مصدر آخر للضوضاء الرقمية أو التناظرية.
  • متوسط الانحراف المطلق. ومتوسّط القيمة المطلقة لـ عن المتوسط لمجموعة من القيم.
  • وقت استجابة النقر للنغمة. الفترة الزمنية بين النقر على الشاشة ووقت النقر على الشاشة نغمة تصدر نتيجة سماع النقر على السماعة.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output، سيتم يجب أن تستوفي المتطلبات التالية أو تتجاوزها:

  • [C-1-1] الطابع الزمني للمُخرج الذي تم عرضه بواسطة AudioTrack.getTimestamp ودقة AAudioStream_getTimestamp هي +/- 2 ملي ثانية.
  • [C-1-2] يصل وقت استجابة الإخراج البارد إلى 500 مللي ثانية أو أقل.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى أنّ android.hardware.audio.output هي موصى به بشدة لاستيفاء المتطلبات التالية أو تجاوزها:

  • [C-SR-1] يصل وقت استجابة الإخراج على البارد إلى 100 مللي ثانية أو أقل عبر بيانات مكبر الصوت . الأجهزة الحالية والجديدة التي تعمل بهذا الإصدار من Android كثيرة جدًا يُنصح بشدة باستيفاء هذه المتطلبات الآن. في منصة مستقبلية إصداره، سنحتاج إلى أن يبلغ وقت استجابة الإخراج البارد 200 ملي ثانية أو أقل.
  • [C-SR-2] يبلغ وقت استجابة النقر للنغمة 80 مللي ثانية أو أقل.
  • [C-SR-3] تقليل عدم استقرار الإخراج البارد.
  • [C-SR-4] الطابع الزمني للمُخرج الذي تم عرضه بواسطة AudioTrack.getTimestamp ودقة AAudioStream_getTimestamp هي +/- 1 ملي ثانية.

في حال كانت عمليات تنفيذ الأجهزة تستوفي المتطلبات المذكورة أعلاه، بعد إجراء أي عملية عند استخدام واجهة برمجة تطبيقات الصوت الأصلي AAudio للمعايرة، للحصول على إخراج متواصل وقت الاستجابة ووقت الاستجابة عند البارد في مقطع صوتي متوافق واحد على الأقل جهاز إخراج الصوت، وهي:

في حال لم تكن عمليات تنفيذ الأجهزة تستوفي متطلبات تشغيل الصوت ذي وقت الاستجابة السريع عبر واجهة برمجة تطبيقات الصوت الأصلي A Audio:

  • [C-2-1] يجب ألا يُبلِغ عن توفير الصوت في وقت الاستجابة المنخفض.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن android.hardware.microphone، سيتم يجب أن تستوفي متطلبات إدخال الصوت التالية:

  • [C-3-1] تحديد الخطأ في الطوابع الزمنية للإدخال، وفقًا لما يعرضه AudioRecord.getTimestamp أو AAudioStream_getTimestamp، إلى +/- 2 ملي ثانية. "خطأ" وهذا يعني الانحراف عن القيمة الصحيحة.
  • [C-3-2] يبلغ وقت استجابة الإدخال البارد 500 مللي ثانية أو أقل.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن android.hardware.microphone، سيتم موصى به بشدة لاستيفاء متطلبات صوت الإدخال التالية:

  • [C-SR-8] يبلغ وقت استجابة الإدخال البارد 100 مللي ثانية أو أقل عبر الميكروفون مسار البيانات. إنّ الأجهزة الحالية والجديدة التي تعمل بهذا الإصدار من Android هي موصى به بشدة لاستيفاء هذه المتطلبات الآن. في المستقبل إصدار النظام الأساسي، سنطلب وقت استجابة إدخال بارد يبلغ 200 ملي ثانية أو أقل يجب.
  • [C-SR-9] وقت استجابة إدخال مستمر يبلغ 30 مللي ثانية أو أقل.
  • [C-SR-10] تقليل عدم استقرار الإدخال البارد.
  • [C-SR-11] الحدّ من الخطأ في الطوابع الزمنية للإدخال، وفقًا لما يعرضه AudioRecord.getTimestamp أو AAudioStream_getTimestamp، إلى +/- 1 ملي ثانية.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.audio.output android.hardware.microphone، وهي:

  • [C-SR-12] يُنصح بشدة بأن يكون لها وقت استجابة متواصل للرحلة ذهابًا وإيابًا 50 ملي ثانية أو أقل من 5 قياسات، مع متوسط الانحراف المطلق أقل من 10 مللي ثانية، عبر مسار متوافق واحد على الأقل.

5.7. بروتوكولات الشبكة

يجب أن تدعم عمليات تنفيذ الأجهزة بروتوكولات شبكة الوسائط لتشغيل الصوت والفيديو كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

لكل برنامج ترميز وتنسيق حاوية يكون تطبيق الجهاز مطلوبًا تنفيذ الجهاز:

  • [C-1-1] يجب أن يتوافق مع برنامج الترميز أو الحاوية عبر بروتوكول HTTP وHTTPS.

  • [C-1-2] يجب أن يتوافق مع تنسيقات شرائح الوسائط المقابلة كما هو موضّح في جدول تنسيقات شرائح الوسائط أدناه فوق بروتوكول مسودة البث المباشر عبر HTTP، الإصدار 7

  • [C-1-3] يجب أن يتوافق مع تنسيقات حمولة البيانات الأساسية لـ RTSP كما هو موضح في جدول بروتوكول RTSP أدناه. بالنسبة إلى الاستثناءات، يُرجى الاطّلاع على الحواشي السفلية للجدول في القسم 5.1.

تنسيقات شرائح الوسائط

تنسيقات الشرائح المَراجع توفُّر برنامج ترميز مطلوب
MPEG-2 Transport Stream ISO 13818 برامج ترميز الفيديو:
  • H264 AVC
  • MPEG-4 SP
  • MPEG-2
راجِع الفقرة 5.1.8 للحصول على تفاصيل حول H264 AVC وMPEG2-4 SP
. وMPEG-2.

برامج ترميز الصوت:

  • الترميز المتقدّم للصوت
لمزيد من التفاصيل حول الترميز المتقدّم للصوت والصيغ المختلفة، يُرجى مراجعة القسم 5.1.3.
الترميز المتقدّم للصوت مع إطارات ADTS وعلامات رقم التعريف 3 (ID3) ISO 13818-7 راجع القسم 5.1.1 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة
WebVTT WebVTT

بروتوكول النقل في الوقت الفعلي (RTP)، أو بروتوكول البث المباشر على الإنترنت (SDP)

اسم الملف الشخصي المَراجع توفُّر برنامج ترميز مطلوب
H264 AVC RFC 6184 راجع القسم 5.1.8 للحصول على تفاصيل حول H264 AVC
MP4A-LATM RFC 6416 راجع القسم 5.1.3 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة
H263-1998 RFC 3551
RFC 4629
RFC 2190
راجع القسم 5.1.8 للحصول على تفاصيل حول H263
H263-2000 RFC 4629 راجع القسم 5.1.8 للحصول على تفاصيل حول H263
دورة AMR RFC 4867 راجع القسم 5.1.3 للحصول على تفاصيل حول AMR-NB
AMR-WB RFC 4867 راجع القسم 5.1.3 للحصول على تفاصيل حول AMR-WB
MP4V-ES RFC 6416 راجع القسم 5.1.8 للحصول على تفاصيل حول MPEG-4 SP
mpeg4 عامة RFC 3640 راجع القسم 5.1.3 للحصول على تفاصيل حول الترميز المتقدّم للصوت وخياراته المختلفة
MP2T RFC 2250 يُرجى الاطّلاع على MPEG-2 Transport Stream ضمن HTTP Live Streaming لمزيد من التفاصيل.

5.8. الوسائط الآمنة

إذا كانت عمليات تنفيذ الأجهزة تتيح إخراج الفيديو الآمن وكانت قادرة على تتوافق مع الأسطح الآمنة:

  • [C-1-1] يجب أن يعلن عن دعمه لـ Display.FLAG_SECURE.

في حال أعلنت عمليات تنفيذ الأجهزة عن توافقها مع Display.FLAG_SECURE والدعم بروتوكول العرض اللاسلكي:

  • [C-2-1] يجب تأمين الرابط باستخدام آلية تشفير قوية مثل HDCP 2.x أو أعلى للشاشات المتصلة من خلال البروتوكولات اللاسلكية مثل Miracast.

في حال أعلنت عمليات تنفيذ الأجهزة عن توافقها مع Display.FLAG_SECURE متوافقة مع شاشة عرض خارجية سلكية، وهي:

  • [C-3-1] يجب أن يتوافق مع HDCP 1.2 أو الإصدارات الأحدث مع جميع الشاشات الخارجية المتصلة. عبر منفذ سلكي يمكن للمستخدم الوصول إليه.

5.9. الواجهة الرقمية للآلات الموسيقية (MIDI)

في حال أبلغت عمليات تنفيذ الأجهزة عن توافق الميزة android.software.midi من خلال android.content.pm.PackageManager صنف، فإنها:

  • [C-1-1] يجب أن يتوافق مع MIDI على جميع عمليات نقل الأجهزة التي تتيح استخدام MIDI التي توفّر اتصالاً عامًا لا يتوافق مع MIDI، وفيها تكون وسائل النقل هذه:

  • [C-1-2] يجب أن يتوافق مع نقل برامج MIDI بين التطبيقات. (أجهزة MIDI الافتراضية)

  • [C-1-3] يجب أن يتضمن libamedi.so (دعم MIDI الأصلي)

  • "التوافق مع أجهزة MIDI" عبر وضع الجهاز الملحق بمنفذ USB، القسم 7.7

5.10. صوت احترافي

في حال إبلاغ عمليات تنفيذ الأجهزة عن توافق الميزات android.hardware.audio.pro عبر android.content.pm.PackageManager صنف، فإنها:

  • [C-1-1] يجب الإبلاغ عن إتاحة الميزة android.hardware.audio.low_latency
  • يجب أن يتوفر في [C-1-2] وقت استجابة الصوت ذهابًا وإيابًا بشكل مستمر، كما هو محدد في القسم 5.6 وقت استجابة الصوت، يجب أن يكون 20 ملي ثانية أو أقل وينبغي أن تبلغ 10 مللي ثانية أو أقل عبر مسار معتمد واحد على الأقل.
  • [C-1-3] يجب أن يشتمل على منافذ USB تدعم وضع مضيف USB وUSB. الجهاز الطرفي.
  • [C-1-4] يجب الإبلاغ عن إتاحة الميزة android.software.midi.
  • [C-1-5] يجب أن يستوفي وقت الاستجابة ومتطلبات صوت USB باستخدام الصوت الأصلي واجهة برمجة التطبيقات.
  • [C-1-6] يجب أن يبلغ وقت استجابة إخراج الصوت البارد 200 ملّي ثانية أو أقل.
  • [C-1-7] يجب أن يبلغ وقت استجابة إدخال "البارد" 200 ملّي ثانية أو أقل.
  • [C-SR-1] يُنصح بشدة بتلبية وقت الاستجابة على النحو المحدّد في القسم 5.6 وقت استجابة الصوت بمدّة 20 ملي ثانية أو أقل، أكثر من 5 قياسات مع متوسط انحراف مطلق أقل من 5 مللي ثانية عبر مسار المتحدث إلى الميكروفون.
  • [C-SR-2] يُنصَح باستخدامها بشدة لاستيفاء متطلبات Pro Audio وقت استجابة الصوت ذهابًا وإيابًا بشكل مستمر، ووقت استجابة الإدخال على البارد، والإخراج البارد وقت الاستجابة ومتطلبات الصوت عبر USB باستخدام واجهة برمجة التطبيقات Aaudio الأصلية عبر مسار MMAP.
  • [C-SR-3] يُوصى بها بشدة لتوفير مستوى ثابت من وحدة المعالجة المركزية الأداء عندما يكون الصوت نشطًا ويختلف حِمل وحدة المعالجة المركزية (CPU). يجب اختبار هذه البيانات باستخدام تطبيق Android SynthMark. يستخدم SynthMark أداة توليف برامج تعمل على إطار عمل محاكاة الصوت يقيس أداء النظام. يجب تشغيل تطبيق SynthMark باستخدام خيار "الاختبار الآلي" وتحقيق النتائج التالية:
    • Voicemark.90 >= 32 صوتًا
    • timemark.fixed.little <= 15 مللي ثانية
    • timemark.dynamic.little <= 50 ميللي ثانية

يمكنك الاطّلاع على مستندات SynthMark. للحصول على شرح للمقاييس.

  • يجب تقليل دقة ساعة الصوت وانحرافها بالنسبة إلى الوقت القياسي.
  • يجب تقليل تغيُّر ساعة الصوت بالنسبة إلى وحدة المعالجة المركزية (CPU) CLOCK_MONOTONIC عندما يكون كلاهما نشطين.
  • يجب تقليل وقت استجابة الصوت عبر محوّلات الطاقة على الجهاز.
  • "يجب" تقليل وقت استجابة الصوت عبر صوت USB الرقمي.
  • "يجب" توفير قياسات وقت استجابة الصوت في جميع المسارات.
  • يجب تقليل التشويه في أوقات إدخال معاودة الاتصال لإكمال المخزن المؤقت الصوتي، حيث إن ذلك في النسبة المئوية القابلة للاستخدام من معدل نقل بيانات وحدة المعالجة المركزية الكامل من خلال معاودة الاتصال.
  • يجب ألا تحدث أخطاء في الصوت عند الاستخدام العادي في وقت الاستجابة الذي تم الإبلاغ عنه.
  • يجب ألا يكون هناك أي فارق في وقت الاستجابة بين القنوات.
  • يجب تقليل وقت استجابة MIDI في جميع عمليات النقل.
  • يجب تقليل تغيُّر وقت استجابة MIDI أثناء التحميل (عدم الاستقرار) في جميع عمليات النقل.
  • يجب أن يتم توفير طوابع زمنية دقيقة لـ MIDI في جميع عمليات النقل.
  • يجب تقليل ضوضاء الإشارة الصوتية عبر المحوّلات على الجهاز، بما في ذلك فترة مباشرة بعد التشغيل على البارد.
  • يجب أن توفر قيمة صفرية للفرق في ساعة الصوت بين جانبي الإدخال والإخراج نقاط النهاية المقابلة عندما يكون كلاهما نشط. أمثلة على العبارات المقابلة نقاط النهاية تشمل الميكروفون ومكبّر الصوت المتوفّر على الجهاز أو منفذ إدخال مقبس الصوت والنتيجة.
  • يجب التعامل مع استدعاءات إكمال المخزن المؤقت للصوت مع جانبي الإدخال والإخراج. نقاط النهاية المقابلة في نفس سلسلة المحادثات عندما يكون كلاهما نشطًا، استدعاء الإخراج مباشرةً بعد الإرجاع من معاودة اتصال الإدخال. أو وإذا لم يكن من الممكن معالجة عمليات الاستدعاء على سلسلة المحادثات نفسها، أدخِل إخراج رد الاتصال بعد وقت قصير من إدخال استدعاء الإدخال للسماح التطبيق أن يكون له توقيت ثابت بين جانبي المدخلات والمخرجات.
  • يجب تقليل فرق الطور بين التخزين المؤقت للصوت HAL في الإدخال. وجوانب إخراج نقاط النهاية المتجاوبة.
  • يجب تقليل وقت استجابة اللمس.
  • يجب تقليل تغيُّر وقت استجابة اللمس عند التحميل (عدم الاستقرار).
  • يجب أن يكون وقت الاستجابة من الإدخال باللمس إلى إخراج الصوت أقل من أو تساوي 40 ملي ثانية.

إذا كانت عمليات تنفيذ الأجهزة تستوفي جميع المتطلبات أعلاه، فإنها:

إذا كانت عمليات تنفيذ الجهاز تتضمّن مقبس صوت مقاس 3.5 ملم بأربعة موصّلات:

إذا تجاهلت عمليات تنفيذ الجهاز مقبس صوت مقاس 3.5 ملم بأربعة موصّلات تشتمل على منافذ USB تدعم وضع مضيف USB، فهي:

  • [C-3-1] يجب تنفيذ فئة الصوت على USB.
  • [C-3-2] يجب أن يكون سرعة انتقال الصوت ذهابًا وإيابًا متواصلاً لمدة 25 مللي ثانية أو أقل، أكثر من 5 قياسات مع متوسط الانحراف المطلق أقل من 5 ملي ثانية عبر منفذ وضع مضيف USB باستخدام فئة صوت USB. (يمكن قياس ذلك باستخدام محوّل USB-3.5 ملم وأداة لاسترجاع الصوت). مفتاح إلكتروني أو استخدام واجهة صوتية بمنفذ USB مع كابلات توصيل لتوصيل المدخلات إلى المخرجات).
  • [C-SR-6] يُنصَح باستخدامها بشدة لإتاحة إمكانية عقد مؤتمر I/O في وقت واحد لما يصل إلى 8 قنوات كل اتجاه، ومعدل عينة بتردد 96 كيلو هرتز، وعمق 24 بت أو 32 بت، عند استخدامه مع أجهزة USB المُلحقة الصوتية التي تستوفي أيضًا هذه المتطلبات.
  • [C-SR-7] يُنصح بشدة باستيفاء هذه المجموعة من المتطلبات باستخدام واجهة برمجة تطبيقات الصوت الأصلي AAudio عبر مسار MMAP.

إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ HDMI، سيتم إجراء ما يلي:

  • "ينبغي" أن يدعم إخراج الصوت الاستيريو و ثماني قنوات بسرعة 20 بت أو عمق 24 بت و192 كيلوهرتز بدون فقدان عمق البت أو إعادة أخذ العينات، في تهيئة واحدة على الأقل.

5.11. التقاط لم تتم معالجته

يتيح Android تسجيل الأصوات التي لم تتم معالجتها عبر مصدر صوت واحد (android.media.MediaRecorder.AudioSource.UNPROCESSED) ضِمن OpenSL ES، يمكن الوصول إليه من خلال ضبط إعداد مسبق للتسجيل SL_ANDROID_RECORDING_PRESET_UNPROCESSED

إذا كانت عمليات تنفيذ الجهاز تهدف إلى دعم مصدر الصوت الذي لم تتم معالجته توفّرها للتطبيقات التابعة لجهات خارجية، وهي:

  • [C-1-1] يجب الإبلاغ عن الدعم من خلال android.media.AudioManager. الموقع Property_SUPPORT_AUDIO_SOURCE_UNPROCESSED.

  • [C-1-2] يجب أن تكون ذات اتساع مسطّح مقابل تردد مسطّح تقريبًا الخصائص في نطاق التردد المتوسط: تحديدًا أقل من 10 ديسيبل من من 100 هرتز إلى 7000 هرتز لكل ميكروفون يتم استخدامه لتسجيل الصوت الذي لم تتم معالجته مصدر الصوت

  • [C-1-3] يجب أن تظهر مستويات اتساع في التردد المنخفض النطاق: تحديدًا من ≥20 ديسيبل من 5 z إلى 100 هرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل مصدر صوت لم تتم معالجته

  • [C-1-4] يجب أن تظهر مستويات اتساع في التردد العالي النطاق: تحديدًا من أقل من 30 ديسيبل من 7000 هرتز إلى 22 كيلوهرتز مقارنةً بـ نطاق التردد المتوسط لكل ميكروفون يتم استخدامه لتسجيل مصدر صوت لم تتم معالجته

  • [C-1-5] يجب ضبط حساسية إدخال الصوت على شكل جيب جيبي بتردد 1000 هرتز مصدر نغمة يتم تشغيلها عند مستوى ضغط الصوت (SPL) البالغ 94 ديسيبل ينتج عنها استجابة مع قيمة RMS بقيمة 520 لعينة 16 بت (أو مقياس كامل-36 ديسيبل للنقطة العائمة/المزدوجة لكل ميكروفون يُستخدَم لتسجيل أصوات الأجهزة التي لم تتم معالجتها مصدر الصوت

  • [C-1-6] يجب أن تبلغ نسبة الإشارة إلى الضوضاء (SNR) 60 ديسيبل أو أعلى كل ميكروفون يتم استخدامه لتسجيل مصدر الصوت الذي لم تتم معالجته. (في حين يُقاس SNR كفرق بين 94 ديسيبل SPL وما يعادل ذلك مستوى الضوضاء الذاتية (SPL) بمقياس A).

  • يجب أن يحتوي [C-1-7] على تشوّه التوافقي الكلي (THD) أقل من 1% لكل ميكروفون، مع مستوى إدخال لصوت SPL يبلغ 90 ديسيبل، لكل ميكروفون يتم استخدامه تسجيل مصدر الصوت الذي لم تتم معالجته

  • [C-1-8] يجب ألا يتضمّن أي إشارات أخرى (مثل اكتساب تلقائي). السعر الأساسي أو فلتر المرور المرتفع أو إلغاء الصدى) في المسار بخلاف للانتقال إلى النطاق المطلوب. معنى هذا التعديل:

    • [C-1-9] في حال توفُّر أي معالجة إشارات في البنية لأي من التنسيقات سببًا، فيجب أن يتم إيقافه وأن يقدم بشكل فعال عدم أي تأخير أو وقت استجابة إضافي لمسار الإشارة.
    • [C-1-10] يجب ألا يكون مضاعف المستوى على المسار الصحيح تؤدي إلى تأخير أو وقت الاستجابة في مسار الإشارة.

يتم إجراء جميع قياسات مستوى العميل (SPL) مباشرةً بجانب الميكروفون قيد الاختبار. بالنسبة إلى عمليات إعداد الميكروفونات المتعددة، تسري هذه المتطلبات على لكل ميكروفون.

في حال كانت عمليات تنفيذ الأجهزة تشير إلى السمة android.hardware.microphone ولكنها لا تشير إلى ذلك تتوافق مع مصدر الصوت الذي لم تتم معالجته، وهي:

  • [C-2-1] يجب عرض null للحقل AudioManager.getProperty(PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED) طريقة واجهة برمجة التطبيقات، للإشارة إلى عدم وجود دعم على نحو صحيح.
  • لا يزال [C-SR-1] مقترحًا بشدة لاستيفاء أكبر عدد من المتطلبات بالنسبة إلى مسار الإشارة لمصدر التسجيل الذي لم تتم معالجته.

6. التوافق بين أدوات المطوّرين وخياراتهم

6.1. أدوات مطوّري البرامج

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتوافق مع أدوات مطوّري برامج Android المتوفرة في نظام التشغيل Android SDK.
  • Android Debug Bridge (adb)

    • يجب أن يتوافق [C-0-2] مع adb كما هو موضّح في حزمة Android SDK وواجهة الأوامر. والأوامر المقدّمة في بروتوكول AOSP والتي يمكن لمطوِّري التطبيقات استخدامها، من ضمنهم dumpsys cmd stats
    • [C-0-11] يجب أن يتوافق مع أمر الغلاف cmd testharness. جارٍ الترقية الأجهزة من إصدار Android سابق بدون وقد يتم إعفاء كتلة بيانات دائمة من C-0-11.
    • [C-0-3] يجب ألا يغيّر تنسيق أو محتوى نظام الجهاز أحداث (إحصائيات البطارية ، Diskstats، بصمة الإصبع، إحصائيات الرسومات، netstats، الملف الشخصي (procstats) التي تم تسجيلها من خلال أمر dumpsys.
    • [C-0-10] يجب أن يسجّل بدون حذف وأن ينفّذ الأحداث التالية متاحة ويمكن الوصول إليها من خلال أمر الغلاف cmd stats فئة واحدة (StatsManager) في System API.
      • تم تغيير حالة ActivityForegroundState.
      • تم رصد قيمة شاذة
      • تم الإبلاغ عن مسار تنقل التطبيق
      • حدث AppCrashOccurred
      • حدث AppStartOccurred
      • تم تغيير مستوى البطارية
      • البطاريةSaverModeStateChanged
      • تم تلقّي نتيجة BleScanResult
      • BleScanStateChanged
      • تم تغيير حالة الشحن
      • DeviceIdleModeStateChanged
      • .ForegroundServiceStateChanged
      • GpsScanStateChanged
      • تم تغيير JobState
      • plgedStateChanged
      • scheduleJobStateChanged
      • تم تغيير حالة الشاشة
      • SyncStateChanged
      • SystemEboundedRealtime (الوقت الفعلي للنظام)
      • UidProcessStateChanged
      • تم تغيير حالة WakelockState
      • حدث منبّه الصباح
      • تم تغيير حالة WifiLockState
      • تم تغيير حالة WifiMulticastLock
      • تم تغيير حالة Wi-FiScanState
    • [C-0-4] يجب أن يكون البرنامج الخفي لـ adb من جهة الجهاز غير نشط بشكل تلقائي يجب أن تتوفّر آلية يمكن للمستخدمين الوصول إليها لتفعيل ميزة تصحيح الأخطاء في Android جسر.
    • [C-0-5] يجب أن يتيح استخدام adb. يوفِّر Android إمكانية استخدام Adb. يفعِّل Adb الآمن واجهة برمجة التطبيقات (ADb) على المضيفات المعروفة التي تمت مصادقتها.
    • [C-0-6] يجب أن يوفر آلية تسمح بربط Adb من الجهاز المضيف. وعلى وجه التحديد:

    إذا كانت عمليات تنفيذ الجهاز بدون منفذ USB تتوافق مع وضع الأجهزة الملحقة، سيتم إجراء ما يلي:

    • [C-3-1] يجب تنفيذ adb عبر شبكة محلية (مثل Ethernet) أو Wi-Fi).
    • [C-3-2] يجب أن يوفر برامج تشغيل لأنظمة Windows 7 و8 و10، مما يسمح مطوّري البرامج للاتصال بالجهاز باستخدام بروتوكول adb.

    إذا كانت عمليات تنفيذ الجهاز تدعم اتصالات adb بجهاز مضيف من خلال شبكات Wi-Fi:

    • [C-4-1] يجب أن يستخدم طريقة AdbManager#isAdbWifiSupported() إرجاع true.

    إذا كانت عمليات تنفيذ الجهاز تدعم اتصالات adb بجهاز مضيف من خلال شبكة Wi-Fi وتتضمّن كاميرا واحدة على الأقل:

    • [C-5-1] يجب أن يستخدم طريقة AdbManager#isAdbWifiQrSupported() إرجاع true.
  • خدمة Dalvik Debug Monitor (ddms)

    • يجب أن يتوافق [C-0-7] مع جميع ميزات نظام إدارة البيانات (ddms) كما هو موثّق في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. بما أنّ نظام dms يستخدم adb، يُفترَض أن يكون الدعم لنظام ddms غير نشط بشكل تلقائي. يجب أن يكون معتمدًا عندما ينشط المستخدم Android Debug Bridge على النحو الوارد أعلاه.
  • قرد

    • [C-0-8] يجب أن يتضمن إطار عمل Monkey ويجعله متاحًا التطبيقات التي تستخدمها.
  • تتبُّع النظام (SysTrace)

    • [C-0-9] يجب أن يتوافق مع أداة تتبُّع النظم كما هو موثّق في حزمة تطوير البرامج (SDK) لنظام التشغيل Android. يجب أن يكون النظام غير نشط بشكل افتراضي ويجب أن يكون هناك برنامج يمكن الوصول إليه من المستخدم لتشغيل Systrace.
  • Perfetto

    • [C-SR-1] يُوصى بشدتها لكشف /system/bin/perfetto ثنائي النظام إلى مستخدم واجهة المستخدم الذي يتوافق مع cmdline مستندات العروض
    • [C-SR-2] يُنصح بشدة بقبول البرنامج الثنائي للأداء كإدخال تهيئة Protobuf التي تتوافق مع المخطط المحدد في مستندات المزايا
    • [C-SR-3] يُنصح بشدة بكتابة برنامج Perfetto كمخرج تتبع النماذج الأوّلية التي تتوافق مع المخطط المحدد في مستندات المزايا
    • [C-SR-4] يُوصى بشدة بتقديمها من خلال برنامج Perfetto الثنائي على الأقل من مصادر البيانات الموضّحة في مستندات المزايا.
  • قاتل الذاكرة المنخفضة

  • وضع مفعِّل الاختبار إذا كانت عمليات تنفيذ الجهاز تتوافق مع أمر واجهة الأوامر cmd testharness تشغيل cmd testharness enable، فإن:

إذا أبلغَت عمليات تنفيذ الأجهزة عن دعم Vulkan 1.0 أو إصدار أحدث عبر علامات ميزات android.hardware.vulkan.version، وهي:

  • [C-1-1] يجب أن توفر ميزة لمطوّر التطبيق لتفعيل/إيقاف طبقات تصحيح أخطاء وحدة معالجة الرسومات
  • [C-1-2] يجب، عند تفعيل طبقات تصحيح أخطاء وحدة معالجة الرسومات، تعداد الطبقات في المكتبات التي توفرها أدوات خارجية (أي ليست جزءًا من النظام الأساسي أو حزمة التطبيق) في التطبيقات القابلة للتصحيح الدليل الأساسي إلى إتاحة vkEnumerateInstanceLayerProperties() وvkCreateInstance() طرق واجهة برمجة التطبيقات.

6.2. خيارات المطوّرين

يتيح Android للمطوّرين ضبط إعدادات التطبيق. الإعدادات المتعلقة بالتطوير.

يجب أن توفر عمليات تنفيذ الأجهزة تجربة متسقة تتيح خيارات المطوّرين ما يلي:

  • [C-0-1] يجب أن يحترم android.settings.APPLICATION_DEVELOPMENT_SETTINGS الغرض من عرض الإعدادات المتعلقة بتطوير التطبيقات. أحدث إصدارات Android يؤدي تنفيذ هذا الإجراء إلى إخفاء قائمة "خيارات المطوّرين" تلقائيًا وتمكين المستخدمين من تشغيل "خيارات المطوّرين" بعد الضغط سبع (7) مرات في الإعدادات > لمحة عن الجهاز > عنصر القائمة رقم الإصدار
  • [C-0-2] يجب أن تخفي خيارات المطوّرين تلقائيًا.
  • [C-0-3] يجب أن توفر آلية واضحة لا تمنح الأولوية مع تطبيق تابع لجهة خارجية بدلاً من تطبيق آخر لتمكين المطوّرين الخيارات. يجب أن يقدم مستندًا أو موقعًا إلكترونيًا مرئيًا للجميع يصف كيفية لتفعيل "خيارات المطوّرين". يجب أن يكون هذا المستند أو موقع الويب قابلاً للربط من مستندات Android SDK.
  • يجب أن يتم إرسال إشعار مرئي مستمر للمستخدم عند بدء مرحلة من البرنامج. تم تفعيل الخيارات والمخاوف المتعلقة بأمان المستخدم.
  • قد يقصر مؤقتًا الدخول إلى قائمة "خيارات المطورين"، عن طريق إخفاء القائمة أو إيقافها، وذلك لمنع تشتيت الانتباه في الحالات التي يكون فيها فإن سلامة المستخدم موضع قلق.

7. توافُق الأجهزة

إذا كان أحد الأجهزة يتضمن مكونًا معينًا للجهاز له واجهة برمجة التطبيقات للمطوّرين التابعين لجهات خارجية:

  • [C-0-1] يجب أن تنفذ عملية تنفيذ الجهاز ذلك واجهة برمجة التطبيقات كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

إذا كانت هناك واجهة برمجة تطبيقات في حزمة SDK مع مكون جهاز يُعرف أنه اختياري تطبيق الجهاز لا يتضمن هذا المكون:

  • [C-0-2] تعريفات الفئة الكاملة (كما هو موثق بواسطة SDK) للمكوِّن يجب عرض واجهات برمجة التطبيقات.
  • [C-0-3] يجب تنفيذ سلوكيات واجهة برمجة التطبيقات كعمليات مستقلة في بعض المعقول والموضة.
  • [C-0-4] يجب أن تعرض طرق واجهة برمجة التطبيقات قيمًا فارغة في الحالات التي تسمح بها حزمة تطوير البرامج (SDK) التوثيق.
  • [C-0-5] يجب أن تعرض طرق واجهة برمجة التطبيقات عمليات تنفيذ للفئات التي تحتوي على قيم فارغة في وثائق حزمة SDK.
  • [C-0-6] يجب ألا تنشئ طرق واجهة برمجة التطبيقات استثناءات غير موثّقة من خلال حزمة تطوير البرامج (SDK) التوثيق.
  • [C-0-7] يجب أن تُبلغ عمليات تنفيذ الأجهزة عن الأجهزة الدقيقة بشكل مستمر معلومات الإعداد عبر getSystemAvailableFeatures() طريقتَان (hasSystemFeature(String)) على android.content.pm.PackageManager الفئة نفسها لبصمة الإصدار.

ومن الأمثلة النموذجية على السيناريو الذي تنطبق فيه هذه المتطلبات هو الاتصال الهاتفي واجهة برمجة التطبيقات: حتى على الأجهزة بخلاف الهواتف، يجب تنفيذ واجهات برمجة التطبيقات هذه على النحو المعقول بلا عمليات.

7.1. العرض والرسومات

يتضمن Android مرافق تعدِّل أصول التطبيقات وواجهة المستخدم تلقائيًا. بشكل مناسب للجهاز لضمان خروج تطبيقات الجهات الخارجية يعمل بشكل جيد على مجموعة متنوعة من تهيئات الأجهزة. على الشاشات المتوافقة مع Android حيث تعمل جميع الجهات الخارجية المتوافقة مع Android إمكانية تشغيل تطبيقات الأجهزة، يجب أن تنفذ عمليات تنفيذ الأجهزة واجهات برمجة التطبيقات هذه بشكل صحيح وسلوكياتهم، كما هو مفصل في هذا القسم.

يتم تعريف الوحدات المُشار إليها من خلال المتطلّبات في هذا القسم على النحو التالي:

  • الحجم القطري الفعلي. المسافة بالبوصة بين اثنين متعارضين زوايا الجزء المضيء من الشاشة.
  • نقاط لكل بوصة (dpi). عدد وحدات البكسل التي يشتمل عليها خط خطي مدى أفقي أو رأسي بمقدار 1 بوصة. عند سرد قيم النقاط لكل بوصة، يكون كلاهما أفقيًا ويجب أن تقع النقاط لكل بوصة (DPI) الرأسية ضمن النطاق.
  • نسبة العرض إلى الارتفاع يشير ذلك المصطلح إلى نسبة وحدات البكسل للبُعد الأطول إلى بُعد أقصر للشاشة. على سبيل المثال، فإن عرض 480x854 بكسل ستكون 854/480 = 1.779، أو ما يقرب من "16:9".
  • وحدة بكسل مستقلة الكثافة (dp) وحدة البكسل الافتراضية التي تمت تسويتها شاشة بدقة 160 نقطة لكل بوصة، ويتم احتسابها على النحو التالي: بكسل = dps * (الكثافة/160).

7.1.1. إعدادات الشاشة

7.1.1.1. حجم الشاشة وشكلها

يتوافق إطار عمل واجهة المستخدم من Android مع مجموعة متنوعة من تنسيقات الشاشة المنطقية المختلفة ويسمح للتطبيقات بالاستعلام عن شاشة التكوين الحالية حجم التنسيق عبر Configuration.screenLayout مع SCREENLAYOUT_SIZE_MASK وConfiguration.smallestScreenWidthDp.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب الإبلاغ عن حجم التخطيط الصحيح Configuration.screenLayout كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android. وعلى وجه التحديد، يجب أن تبلغ عمليات تنفيذ الأجهزة عن القيم المنطقية الصحيحة أبعاد شاشة البكسل المستقلة الكثافة (dp) على النحو التالي:

    • الأجهزة التي تم ضبط Configuration.uiMode فيها كأي قيمة بخلاف UI_mode_TYPE_watch، والإبلاغ عن حجم small Configuration.screenLayout، يجب أن يحتوي على 426 بكسل مستقل الكثافة × 320 بكسل مستقل الكثافة على الأقل.
    • الأجهزة التي يبلغ حجمها normal لجهاز Configuration.screenLayout يجب أن يحتوي على 480 بكسل مستقل الكثافة × 320 بكسل مستقل الكثافة على الأقل.
    • الأجهزة التي يبلغ حجمها large لجهاز Configuration.screenLayout يجب أن يحتوي على ما لا يقل عن 640 بكسل مستقل الكثافة × 480 بكسل مستقل الكثافة (dp).
    • الأجهزة التي يبلغ حجمها xlarge لجهاز Configuration.screenLayout يجب أن يحتوي على ما لا يقل عن 960 بكسل مستقل الكثافة × 720 بكسل مستقل الكثافة (dp).
  • [C-0-2] يجب أن يلتزم بالطلبات بشكل صحيح" مذكور إتاحة أحجام الشاشات من خلال <supports-screens> في ملف AndroidManifest.xml، كما هو موصوف في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android

  • قد يحتوي على الشاشات المتوافقة مع Android ذات الزوايا المستديرة.

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع UI_MODE_TYPE_NORMAL وتتضمّن الشاشات المتوافقة مع Android ذات الزوايا الدائرية:

  • [C-1-1] يجب أن يضمن استيفاء أحد المتطلبات التالية على الأقل تحقق:

    • نصف قطر الزوايا المستديرة أقل من أو يساوي 38 وحدة بكسل مستقلة الكثافة.
    • عندما يتم تثبيت مربع 15 بكسل مستقل الكثافة × 15 بكسل مستقل الكثافة في كل زاوية من زوايا الشاشة، تكون وحدة بكسل واحدة على الأقل من كل مربع مرئية على الشاشة.
  • مدى تحمل المستخدم للتبديل إلى وضع العرض زوايا مستطيلة.

إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشات عرض متوافقة مع Android ذات أو يتضمن مفصلة قابلة للطي بين لوحات عرض متعددة ويجعلها هذه الشاشات المتاحة لعرض تطبيقات تابعة لجهات خارجية:

إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشات عرض متوافقة مع Android ذات قابلة للطي أو تتضمن مفصلة قابلة للطي بين لوحات عرض متعددة وإذا تعبر المفصّلة أو الطي نافذة تطبيق بملء الشاشة، حيث:

  • [C-3-1] يجب أن يبلغ عن الموضع والحدود وحالة المفصّلة أو الطي من خلال الإضافات أو واجهات برمجة تطبيقات السيارة الجانبية للتطبيق.

للحصول على تفاصيل عن تنفيذ واجهات برمجة التطبيقات للإضافة أو الإضافة بشكل صحيح، يُرجى الرجوع إلى إلى المستندات العلنية الخاصة بحزمة Window Manager Jetpack.

7.1.1.2. نسبة عرض إلى ارتفاع الشاشة

على الرغم من أنه ليست هناك قيود على نسبة العرض إلى الارتفاع للعرض الفعلي الشاشات المتوافقة مع Android، ونسبة العرض إلى الارتفاع للشاشة المنطقية موضع عرض تطبيقات الجهات الخارجية، والذي يمكن استنتاجه من طول الشاشة قيم العرض التي تم الإبلاغ عنها من خلال view.Display واجهات برمجة التطبيقات والإعدادات يجب أن تستوفي واجهات برمجة التطبيقات المتطلبات التالية:

  • [C-0-1] تم ضبط عمليات تنفيذ الأجهزة مع Configuration.uiMode على يجب أن تكون نسبة العرض إلى الارتفاع في UI_MODE_TYPE_NORMAL أقل من أو تساوي إلى 1.86 (حوالي 16:9)، إلا إذا استوفى التطبيق أحد المتطلبات التالية الشروط:

    • أعلن التطبيق أنّه يتيح زيادة نسبة العرض إلى الارتفاع للشاشة. من خلال android.max_aspect بيانات التعريف.
    • يشير التطبيق إلى أنّه قابل لتغيير الحجم من خلال android:resizeableActivity. .
    • يستهدف التطبيق المستوى 24 من واجهة برمجة التطبيقات أو مستوى أعلى، ولا يفصح عن android:maxAspectRatio يحدّ من نسبة العرض إلى الارتفاع المسموح بها.
  • [C-0-3] عمليات تنفيذ الأجهزة مع ضبط Configuration.uiMode على يجب ضبط نسبة العرض إلى الارتفاع في UI_MODE_TYPE_WATCH على 1.0 (1:1).

7.1.1.3. كثافة الشاشة

يحدد إطار عمل واجهة المستخدم من Android مجموعة من الكثافات المنطقية القياسية للمساعدة في يستهدف مطورو التطبيقات موارد التطبيقات.

  • [C-0-1] بشكل افتراضي، يجب أن تعرض عمليات تنفيذ الأجهزة أحد يتم إدراج كثافات إطار عمل Android المُدرجة في DisplayMetrics من خلال DENSITY_DEVICE_STABLE API ويجب ألا تتغير هذه القيمة في أي وقت ومع ذلك، قد يبلغ الجهاز عن كثافة عشوائية مختلفة وفقًا لإعدادات العرض التغييرات التي أجراها المستخدم (مثل حجم العرض) بعد ضبط الإعدادات الأولية .

  • يجب أن تحدد عمليات تنفيذ الأجهزة الكثافة العادية لإطار عمل Android الأقرب رقميًا إلى الكثافة الفيزيائية للشاشة، ما لم الكثافة المنطقية تجعل حجم الشاشة المبلّغ عنه أقل من الحد الأدنى المتاح. في حال حذف تمثّل الكثافة العادية لإطار عمل Android الأقرب رقميًا إلى ينتج عن الكثافة الفيزيائية حجم شاشة أصغر من أصغر حجم حجم شاشة متوافق متوافق (عرض 320 وحدة بكسل مستقلة الكثافة)، وينبغي في الإبلاغ عن ثاني أدنى كثافة لإطار عمل Android وفقًا للمعيار.

إذا كانت هناك إمكانية لتغيير حجم عرض الجهاز:

  • [C-1-1] يجب ألا يزيد حجم العرض عن الكثافة الأصلية بمقدار 1.5 مرة إنتاج حد أدنى فعّال لبُعد الشاشة الذي يقل عن 320 بكسل مستقل الكثافة (ما يعادل إلى مؤهل المورد sw320dp)، أيهما أقرب.
  • [C-1-2] يجب ألا يتم تصغير حجم العرض عن الكثافة الأصلية بمقدار 0.85 مرة.
  • ولضمان سهولة الاستخدام وأحجام الخطوط المتسقة، يُنصح باتّباع توفير خيارات الإعلانات المدمجة مع المحتوى التالية (مع الالتزام بالحدود) المحددة أعلاه)
    • صغيرة: 0.85x
    • الإعداد التلقائي: 1x (مقياس العرض الأصلي)
    • كبيرة: 1.15x
    • أكبر: 1.3x
    • الأكبر 1.45x

7.1.2. مقاييس العرض

إذا كانت عمليات تنفيذ الأجهزة تتضمن الشاشات أو الشاشات المتوافقة مع Android إخراج الفيديو إلى شاشات العرض المتوافقة مع Android، فإنها:

  • [C-1-1] يجب الإبلاغ عن القيم الصحيحة لجميع الشاشات المتوافقة مع Android المقاييس المحددة في android.util.DisplayMetrics API.

إذا كانت عمليات تنفيذ الجهاز لا تتضمن شاشة مضمّنة أو إخراج فيديو، وهي:

  • [C-2-1] يجب الإبلاغ عن القيم الصحيحة للشاشة المتوافقة مع Android. كما هو محدّد في واجهة برمجة تطبيقات android.util.DisplayMetrics للقيمة التلقائية التي تمت محاكاتها لـ view.Display.

7.1.3. اتجاه الشاشة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يبلغ عن اتجاهات الشاشة المتوافقة (android.hardware.screen.portrait و/أو android.hardware.screen.landscape) ويجب أن يتم الإبلاغ عن عملية دعم واحدة على الأقل. توجهك. على سبيل المثال، جهاز باتجاه أفقي ثابت شاشة، مثل التلفزيون أو الكمبيوتر المحمول، والتي ينبغي الإبلاغ عن android.hardware.screen.landscape
  • [C-0-2] يجب الإبلاغ عن القيمة الصحيحة للجهاز الحالي الاتجاه، متى تم الاستعلام عبر android.content.res.Configuration.orientation, android.view.Display.getOrientation() أو واجهات برمجة تطبيقات أخرى.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع كلا اتجاهَي الشاشة، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يدعم الاتجاه الديناميكي من خلال التطبيقات إما على الشاشة العمودية أو الأفقية توجهك. وهذا يعني أنّ الجهاز يجب أن يراعي طلب التطبيق بخصوص شاشة محدّدة. توجهك.
  • [C-1-2] يجب ألا يتم تغيير حجم الشاشة أو كثافةها التي تم الإبلاغ عنها عند تغيير الاتجاه.
  • من الممكن اختيار الاتجاه العمودي أو الأفقي كإعداد تلقائي.

7.1.4. تسريع الرسومات الثنائية الأبعاد والثلاثية الأبعاد

7.1.4.1 OpenGL ES

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يحدد بشكل صحيح إصدارات OpenGL ES المتوافقة (1.1، 2.0، 3.0 و3.1 و3.2) من خلال واجهات برمجة التطبيقات المُدارة (على سبيل المثال من خلال GLES10.getString()) وواجهات برمجة التطبيقات الأصلية.
  • [C-0-2] يجب أن يتضمن الدعم لجميع واجهات برمجة التطبيقات المُدارة ذات الصلة واجهات برمجة التطبيقات الأصلية لكل إصدارات OpenGL ES التي تم تحديدها لدعمها.

إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:

يتم تقسيم اختبارات OpenGL ES dEQP إلى عدد من قوائم الاختبار، كل منها تاريخ/رقم إصدار مرتبط. وتتوفر هذه البيانات في شجرة مصادر Android على external/deqp/android/cts/main/glesXX-master-YYYY-MM-DD.txt هو جهاز يتوافق مع OpenGL ES على مستوى يتم الإبلاغ عنه ذاتيًا إلى أنّه يمكنه اجتياز dEQP في جميع قوائم الاختبار من هذا المستوى والمستويات السابقة.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أي من إصدارات OpenGL ES، سيتم إجراء ما يلي:

  • [C-2-1] يجب إعداد التقارير من خلال واجهات برمجة التطبيقات المُدارة في OpenGL ES وواجهات برمجة التطبيقات الأصلية بأي إضافات OpenGL ES الأخرى التي تم تنفيذها، وبالتالي يجب لا تُبلغ عن سلاسل الإضافات التي لا تتوافق معها.
  • [C-2-2] يجب أن يتوافق مع EGL_KHR_image وEGL_KHR_image_base EGL_ANDROID_image_native_buffer، EGL_ANDROID_get_native_client_buffer، EGL_KHR_wait_sync، EGL_KHR_get_all_proc_addresses، EGL_ANDROID_presentation_time، EGL_KHR_swap_buffers_with_damage، EGL_ANDROID_recordable وEGL_ANDROID_GLES_layers إضافة
  • [C-2-3] يجب الإبلاغ عن الحد الأقصى لإصدار اختبارات OpenGL ES dEQP متاحة عبر علامة الميزة android.software.opengles.deqp.level.
  • [C-2-4] يجب أن يتوافق على الأقل مع الإصدار 132383489 (اعتبارًا من 1 آذار (مارس) 2020) تم الإبلاغ عنه في علامة الميزة android.software.opengles.deqp.level.
  • [C-2-5] يجب اجتياز جميع اختبارات OpenGL ES dEQP في قوائم الاختبار بين الإصدار 132383489 والإصدار المحدّد في علامة ميزة واحدة (android.software.opengles.deqp.level) لكل ميزة متاحة إصدار OpenGL ES.
  • [C-SR-2] يُنصح بشدة بدعم EGL_KHR_partial_update OES_EGL_image_external إضافات
  • يجب أن يتم الإبلاغ بدقة عبر طريقة getString()، وأي زخرفة تنسيق الضغط الذي يتيحونه، والذي يكون عادةً خاصًا بالمورّد.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى توافقها مع OpenGL ES 3.0 أو 3.1 أو 3.2، ينطبق ما يلي:

  • [C-3-1] يجب تصدير رموز الدوال المقابلة لهذه النسخة بتنسيق بالإضافة إلى رموز الدالة OpenGL ES 2.0 في مكتبة libGLESv2.so.
  • [C-SR-3] يُنصَح باستخدامها بشدة لإتاحة OES_EGL_image_external_essl3 الإضافة.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع OpenGL ES 3.2، سيتم إجراء ما يلي:

  • [C-4-1] يجب أن يتوافق مع حزمة إضافات OpenGL ES Android بالكامل.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع حزمة إضافات Android OpenGL ES في بالكامل، فإنها:

  • [C-5-1] يجب أن يحدد خدمة الدعم من خلال android.hardware.opengles.aep علامة الميزة.

إذا كشفت عمليات تنفيذ الأجهزة عن الدعم لـ EGL_KHR_mutable_render_buffer الإضافة، فإنها:

  • [C-6-1] يجب أن يتوافق أيضًا مع EGL_ANDROID_front_buffer_auto_refresh. الإضافة.
7.1.4.2 Vulkan

يدعم Android استخدام Vulkan ، وهي واجهة برمجة تطبيقات منخفضة التكلفة وتعمل عبر الأنظمة الأساسية للرسومات الثلاثية الأبعاد العالية الأداء.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع OpenGL ES 3.1، سيتم إجراء ما يلي:

  • [C-SR-1] يُنصح بشدة بتضمين الدعم لـ Vulkan 1.1.

إذا كانت عمليات تنفيذ الجهاز تتضمّن شاشة أو إخراج فيديو، سيتم اتخاذ الإجراءات التالية:

  • يجب أن تتوافق مع الإصدار 1.1 من Vulkan.

يتم تقسيم اختبارات Vulkan dEQP إلى عدد من قوائم الاختبارات، يتضمّن كلّ منها التاريخ/النسخة المرتبطة. وتتوفر هذه البيانات في شجرة مصادر Android على external/deqp/android/cts/main/vk-master-YYYY-MM-DD.txt هو جهاز يتوافق مع Vulkan على المستوى الذي يتم الإبلاغ عنه ذاتيًا إلى أنّه بإمكانه اجتياز dEQP في جميع قوائم الاختبار من هذا المستوى والمستويات السابقة.

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع Vulkan 1.0 أو الإصدارات الأحدث، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن تبلغ قيمة العدد الصحيح مع android.hardware.vulkan.level وandroid.hardware.vulkan.version علامات الميزات.
  • [C-1-2] يجب تعداد VkPhysicalDevice واحد على الأقل لـ Vulkan واجهة برمجة التطبيقات الأصلية vkEnumeratePhysicalDevices() .
  • [C-1-3] يجب تنفيذ واجهات برمجة تطبيقات Vulkan 1.0 بشكل كامل لكل عدد VkPhysicalDevice
  • [C-1-4] يجب تعداد الطبقات، المضمنة في المكتبات الأصلية المسماة libVkLayer*.so في دليل المكتبة الأصلي لحزمة التطبيق، من خلال واجهات برمجة تطبيقات Vulkan الأصلية vkEnumerateInstanceLayerProperties() وvkEnumerateDeviceLayerProperties() .
  • [C-1-5] يجب عدم تعداد الطبقات التي توفرها المكتبات خارج حزمة التطبيق، أو توفير طرق أخرى لتتبع أو اعتراض Vulkan API، ما لم يكن التطبيق يحتوي على السمة android:debuggable الضبط على true
  • [C-1-6] يجب الإبلاغ عن جميع سلاسل الإضافات التي تتوافق معها عبر واجهات برمجة تطبيقات Vulkan الأصلية، وفي المقابل يجب ألا تُبلّغ عن سلاسل الإضافات وهي لا تدعمها بشكل صحيح.
  • [C-1-7] يجب أن يتوافق مع VK_KHR_surface وVK_KHR_android_surface وVK_KHR_swapchain وVK_KHR_incremental_present.
  • [C-1-8] يجب الإبلاغ عن الحد الأقصى لإصدار اختبارات dEQP من Vulkan متاحة عبر علامة الميزة android.software.vulkan.deqp.level.
  • [C-1-9] يجب أن يتوافق على الأقل مع الإصدار 132317953 (اعتبارًا من 1 آذار (مارس) 2019) بتنسيق تم الإبلاغ عنه في علامة الميزة android.software.vulkan.deqp.level.
  • [C-1-10] يجب أن يجتاز جميع اختبارات Vulkan dEQP في قوائم الاختبار بين للإصدار 132317953 والإصدار المحدّد في علامة ميزة android.software.vulkan.deqp.level
  • [C-1-11] يجب ألا تعداد الدعم لـ VK_KHR_video_queue، VK_KHR_video_decode_queue أو VK_KHR_video_encode_queue.
  • [C-SR-2] يُوصى بها بشدة لدعم VK_KHR_driver_سمات و إضافات VK_GOOGLE_display_timing.

إذا لم تكن عمليات تنفيذ الأجهزة متوافقة مع Vulkan 1.0، سيتم إجراء ما يلي:

  • [C-2-1] يجب ألا تعلن عن أي علامة من علامات ميزة Vulkan (مثل android.hardware.vulkan.level، android.hardware.vulkan.version).
  • [C-2-2] يجب ألا يتم تعداد أي VkPhysicalDevice لواجهة Vulkan الأصلية vkEnumeratePhysicalDevices()

في حال اشتملت عمليات تنفيذ الأجهزة على التوافق مع Vulkan 1.1 وأعلِن عن أي من تتيح ميزات Vulkan ما يلي:

  • [C-3-1] يجب أن يتم تقديم الدعم للدلالة الخارجية والاسم المعرِّف SYNC_FD والإضافة VK_ANDROID_external_memory_android_hardware_buffer.
7.1.4.3 RenderScript
  • [C-0-1] يجب أن تتوافق عمليات تنفيذ الأجهزة مع Android RenderScript، على النحو المفصّل في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
7.1.4.4 تسريع الرسومات ثنائية الأبعاد

يشتمل Android على آلية تتيح للتطبيقات إعلان رغبتها في لتمكين تسريع الأجهزة للرسومات ثنائية الأبعاد على التطبيق، أو النشاط، مستوى النافذة أو العرض من خلال استخدام علامة بيان android:hardwareAccelerated أو طلبات البيانات المباشرة من واجهة برمجة التطبيقات

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتيح تسريع الأجهزة تلقائيًا، ويجب وتعطل تسريع الأجهزة إذا طلب المطور ذلك عن طريق إعداد android:hardwareAccelerated="false" أو إيقاف ميزة "تسريع الأجهزة" مباشرةً من خلال واجهات برمجة تطبيقات Android View.
  • [C-0-2] يجب أن يظهر سلوكًا متوافقًا مع مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android حول تسريع الأجهزة

يتضمّن Android عنصر TextureView يتيح للمطوّرين دمج زخارف OpenGL ES التي يتم تسريعها بالأجهزة كأهداف عرض في تسلسل هرمي لواجهة المستخدم.

عمليات تنفيذ الأجهزة:

  • [C-0-3] يجب أن يتوافق مع واجهة برمجة تطبيقات TextureView، ويجب أن يحتوي على سلوك متّسق مع عملية تنفيذ Android
7.1.4.5 شاشات واسعة النطاق

إذا كانت عمليات تنفيذ الأجهزة تطالب بإتاحة شاشات العرض ذات النطاق الواسع من خلال Configuration.isScreenWideColorGamut() فإنهم:

  • [C-1-1] يجب أن يحتوي على شاشة معايرة بالألوان.
  • [C-1-2] يجب أن يحتوي على شاشة تغطي سلسلة ألوانها مجموعة ألوان sRGB بالكامل في بيئة CIE 1931 xyY.
  • [C-1-3] يجب أن يحتوي على شاشة تبلغ مساحتها 90% على الأقل من DCI-P3 في مساحة CIE 1931 xyY.
  • [C-1-4] يجب أن يتوافق مع OpenGL ES 3.1 أو 3.2 والإبلاغ عنه بشكل صحيح.
  • [C-1-5] يجب الإعلان عن دعم EGL_KHR_no_config_context. EGL_EXT_pixel_format_float، EGL_KHR_gl_colorspace، EGL_EXT_gl_colorspace_scrgb، EGL_EXT_gl_colorspace_scrgb_linear، EGL_EXT_gl_colorspace_display_p3 وEGL_EXT_gl_colorspace_display_p3_linear وEGL_EXT_gl_colorspace_display_p3_passthrough الإضافات.
  • [C-SR-1] يُنصَح باستخدامها بشدة لإتاحة GL_EXT_sRGB.

بالمقابل، إذا كانت عمليات تنفيذ الأجهزة لا تتيح الشاشات ذات النطاق العريض، سيؤدي ذلك إلى:

  • [C-2-1] يجب أن تغطي 100% أو أكثر من sRGB في مساحة CIE 1931 xyY، على الرغم من مجموعة ألوان الشاشة غير محددة.

7.1.5. وضع التوافق مع التطبيقات القديم

يحدد Android "وضع التوافق" الذي يعمل فيه إطار العمل في "عادي" وضع حجم الشاشة المكافئ (عرض 320 بكسل مستقل الكثافة) لصالح نظام التشغيل القديم التطبيقات التي لم يتم تطويرها للإصدارات القديمة من نظام التشغيل Android التي ظهرت قبل . واستقلالية حجم الشاشة.

7.1.6. تكنولوجيا الشاشة

يشتمل نظام Android الأساسي على واجهات برمجة تطبيقات تسمح للتطبيقات بعرض بيانات الرسومات على شاشة متوافقة مع Android. يجب أن تتوافق الأجهزة مع كل هذه واجهات برمجة التطبيقات كما هو محدّد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android، ما لم يتم السماح بذلك على وجه التحديد في هذا المستند.

جميع الشاشات المتوافقة مع Android والمتوافقة مع نظام التشغيل Android:

  • يجب أن يكون [C-0-1] قادرًا على عرض رسومات ملونة 16 بت.
  • "ينبغي" أن يتوافق مع شاشات العرض قادرة على عرض رسومات ملونة بـ 24 بت.
  • يجب أن يكون [C-0-2] قادرًا على عرض الصور المتحركة.
  • [C-0-3] يجب أن تكون له نسبة عرض إلى ارتفاع بكسل (PAR) بين 0.9 و1.15. وهذا يعني أنّ نسبة العرض إلى الارتفاع للبكسل يجب أن تكون قريبة من المربع (1.0) مع تفاوت يتراوح بين 10 و15%.

7.1.7. الشاشات الثانوية

يتيح Android استخدام شاشات العرض الثانوية المتوافقة مع Android لتفعيل الميزة. إمكانات مشاركة الوسائط وواجهات برمجة التطبيقات للمطوّرين للوصول إلى الشاشات الخارجية.

إذا كانت عمليات تنفيذ الجهاز تتوافق مع شاشة عرض خارجية إما عبر كابل سلكي، لاسلكيًا أو اتصال عرض إضافيًا مضمّنًا، فإنهما:

  • [C-1-1] يجب تنفيذ DisplayManager خدمة النظام وواجهة برمجة التطبيقات كما هو موضّح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

7.2. أجهزة إدخال بيانات

عمليات تنفيذ الأجهزة:

7.2.1. لوحة المفاتيح

إذا كانت عمليات تنفيذ الأجهزة تشمل دعمًا لجهات خارجية مع تطبيقات محرر أسلوب الإدخال (IME)، فإنها:

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يتضمن لوحة مفاتيح خارجية لا تتطابق مع إحدى التنسيقات المحدّدة في android.content.res.Configuration.Dashboard (QWERTY أو 12 مفتاح).
  • يجب أن يشمل ذلك عمليات تنفيذ إضافية للوحة المفاتيح الافتراضية.
  • وقد يشتمل على لوحة مفاتيح خارجية.

7.2.2. التنقُّل بدون لمس

يتيح Android استخدام لوحة التحكّم وكرة التعقب والعجلة كآليات التنقل بدون لمس.

عمليات تنفيذ الأجهزة:

في حال عدم توفُّر عمليات تنقّل لا تعمل باللمس في عمليات تنفيذ الأجهزة، سيؤدّي ذلك إلى ما يلي:

  • [C-1-1] يجب أن يوفر آلية معقولة لواجهة مستخدم بديلة تحديد النص وتعديله، بما يتوافق مع "محركات إدارة الإدخال". تشير رسالة الأشكال البيانية يتضمّن التنفيذ المفتوح المصدر لنظام Android آلية اختيار مناسب للاستخدام مع الأجهزة التي تفتقر إلى إدخالات التنقل التي لا تعمل باللمس.

7.2.3. مفاتيح التنقل

إنّ المنزل العناصر الأخيرة، ورجوع الوظائف التي يتم توفيرها عادةً عن طريق التفاعل مع زر مادي مخصص أو جزءًا مميزًا من الشاشة التي تعمل باللمس، أساسية لنظام Android نموذج التنقّل، وبالتالي عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يوفر للمستخدم القدرة على تشغيل التطبيقات المثبّتة التي لديها نشاط مع <intent-filter> مجموعة مع ACTION=MAIN CATEGORY=LAUNCHER أو CATEGORY=LEANBACK_LAUNCHER لجهاز التلفزيون وعمليات التنفيذ. يجب أن تكون الدالة Home الآلية لهذه الوظيفة التي يمكن لهذا المستخدم الوصول إليها.
  • يجب توفير أزرار لوظيفة "الأخيرة" و"الرجوع".

إذا تم توفير وظيفتَي "الصفحة الرئيسية" و"الأخيرة" و"رجوع"، سيتم ما يلي:

  • [C-1-1] يجب أن تتوفّر من خلال إجراء واحد (مثل النقر أو النقر مرّتين أو ) عندما يكون أي منها متاحًا.
  • [C-1-2] يجب أن يقدم مؤشرًا واضحًا حول الإجراء الفردي الذي سيؤدي إلى تشغيل لكل دالة. وجود رمز مطبوع مطبوع على الزر، يوضح أحد البرامج الأيقونة في جزء شريط التنقل من الشاشة، أو تمشية المستخدم خلال التدفق التوضيحي الإرشادي خطوة بخطوة أثناء تجربة الإعداد خارج الصندوق أمثلة على هذا المؤشر.

عمليات تنفيذ الأجهزة:

  • يُوصى بشدة [C-SR-1] بعدم توفير آلية إرسال البيانات وظيفة القائمة لأنّه تم إيقافه لصالح شريط الإجراءات بدءًا من Android 4.0.

إذا كانت عمليات تنفيذ الجهاز توفر وظيفة القائمة، فإنها:

  • [C-2-1] يجب عرض زر القائمة الكاملة للإجراء عند تنفيذ الإجراء النافذة المنبثقة للقائمة الكاملة غير فارغة وشريط الإجراءات مرئي.
  • [C-2-2] يجب ألا يعدّل موضع النافذة المنبثقة لتجاوز الإجراء يتم عرضه من خلال تحديد زر القائمة الكاملة في شريط الإجراءات، ولكن قد يتم النافذة المنبثقة لتجاوز الإجراء في موضع معدل على الشاشة عندما تكون من خلال تحديد وظيفة القائمة.

إذا لم تكن عمليات تنفيذ الجهاز توفر وظيفة "القائمة"، للعكس التوافق، فهي:

  • [C-3-1] يجب أن تجعل وظيفة القائمة متاحة للتطبيقات عندما targetSdkVersion أقل من 10، إما عن طريق زر فعلي أو مفتاح برنامج، أو الإيماءات. يجب الوصول إلى دالة القائمة هذه ما لم تكن مخفية مع وظائف التنقل الأخرى.

إذا كانت عمليات تنفيذ الأجهزة توفر دالة المساعدة، وهي:

  • [C-4-1] يجب أن يجعل وظيفة المساعدة سهلة الوصول من خلال إجراء واحد (مثل النقر أو النقر مرّتين أو إيماءة) عندما تتوفّر إمكانية الوصول إلى مفاتيح التنقُّل الأخرى.
  • [C-SR-2] يُنصح بشدة باستخدام الضغط مع الاستمرار على وظيفة الصفحة الرئيسية بهذا الشكل التفاعل المحدد.

إذا كانت عمليات تنفيذ الجهاز تستخدم جزءًا مميزًا من الشاشة لعرض مفاتيح التنقل، وهي:

  • [C-5-1] يجب أن تستخدم مفاتيح التنقل جزءًا مميزًا من الشاشة، وليس متاحة للتطبيقات، ويجب ألا تحجبها أو تتداخل مع جزء الشاشة المتاح للتطبيقات.
  • [C-5-2] يجب توفير جزء من الشاشة للتطبيقات التي المتطلبات المحددة في الفقرة 7.1.1.
  • [C-5-3] يجب أن يحترم العلامات التي حددها التطبيق من خلال View.setSystemUiVisibility() واجهة برمجة التطبيقات، بحيث يصبح هذا الجزء المميز من الشاشة (المعروف أيضًا باسم شريط التنقل) مخفيًا بشكل صحيح بعيدًا كما هو موثق في حزمة SDK.

إذا تم توفير وظيفة التنقّل كإجراء على الشاشة ومستند إلى الإيماءات:

  • [C-6-1] WindowInsets#getMandatorySystemGestureInsets() يجب استخدامه فقط للإبلاغ عن منطقة التعرّف على الإيماءات في "الشاشة الرئيسية".
  • [C-6-2] الإيماءات التي تبدأ داخل مستطيل استبعاد وفقًا لما تحدده الإيماءات تطبيق يعمل في المقدّمة عبر View#setSystemGestureExclusionRects()، ولكن خارج WindowInsets#getMandatorySystemGestureInsets(), يجب عدم اعتراضه لدالة التنقل ما دام الاستبعاد يُسمح باستخدام المستطيل ضمن الحد الأقصى للاستبعاد كما هو محدد في وثائق View#setSystemGestureExclusionRects()
  • [C-6-3] يجب أن يرسل إلى التطبيق الذي يعمل في المقدّمة MotionEvent.ACTION_CANCEL الحدث بمجرد بدء اعتراض اللمسات بواسطة إيماءة نظام، إذا سبق أن تم إرسال MotionEvent.ACTION_DOWN فعالية.
  • [C-6-4] يجب أن توفر للمستخدم القدرة على التبديل إلى شاشة على الشاشة، التنقل المستند إلى الأزرار (على سبيل المثال، في الإعدادات).
  • يجب توفير وظيفة "الصفحة الرئيسية" من خلال التمرير سريعًا للأعلى من الحافة السفلية الاتجاه الحالي للشاشة.
  • يُفترض أن توفر وظيفة "Recents" (الأحدث) كتمرير سريع لأعلى مع الاستمرار قبل الإصدار، من نفس المنطقة مثل إيماءة الشاشة الرئيسية.
  • الإيماءات التي تبدأ خلال WindowInsets#getMandatorySystemGestureInsets() يجب ألا تتأثر بمستطيلات الاستبعاد التي تقدمها المقدمة تطبيق عبر View#setSystemGestureExclusionRects()

إذا تم توفير وظيفة تنقل من أي مكان على الحافة اليسرى واليمنى الاتجاه الحالي للشاشة:

  • [C-7-1] يجب أن تكون وظيفة التنقل "رجوع" ويتم تقديمها كتمرير سريع من الحافتين اليسرى واليمنى للاتجاه الحالي للشاشة.
  • [C-7-2] إذا تم توفير لوحات نظام مخصصة قابلة للتمرير السريع على اليمين أو الحواف اليمنى، يجب وضعها في أعلى 1/3 من الشاشة مع مؤشر مرئي واضح ومستمر على أن السحب للداخل المذكورة أعلاه، وبالتالي لا يعود. قد تكون لوحة نظام التي ضبطها المستخدم بحيث تهبط أسفل الجزء العلوي أو الثالث من الشاشة الحواف، لكن يجب ألا تستخدم لوحة النظام أطول من 1/3 حواف (الحواف).
  • [C-7-3] عندما يحتوي التطبيق الذي تعمل في المقدّمة على إما View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT أو تم تعيين علامات WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE، يجب أن يتصرف التمرير السريع من الحواف كما هو مُطبق في AOSP، وهو كما هو موثق في حزمة SDK.
  • [C-7-4] عندما يحتوي التطبيق الذي تعمل في المقدّمة على إما View.SYSTEM_UI_FLAG_IMMERSIVE, View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, WindowInsetsController.BEHAVIOR_DEFAULT أو تم تعيين علامات WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE، يجب أن تكون لوحات النظام المخصصة القابلة للتمرير السريع مخفية حتى يدخل المستخدم أو إلغاء تعتيم أشرطة النظام (أي التنقل وشريط الحالة) كما تم التنفيذ في بروتوكول AOSP.

7.2.4. إدخال الشاشة التي تعمل باللمس

يتيح Android استخدام مجموعة متنوعة من أنظمة إدخال المؤشر، مثل الشاشات التي تعمل باللمس ولوحات اللمس وأجهزة الإدخال التي تعمل باللمس وهمية عمليات تنفيذ الأجهزة المستندة إلى شاشة تعمل باللمس ترتبط بعرض حتى يكون لدى المستخدم انطباعه مباشرةً التلاعب بالعناصر المعروضة على الشاشة. نظرًا لأن المستخدم يلمس الشاشة مباشرة، لا يحتاج النظام إلى أي عناصر وظيفية إضافية للإشارة إلى الكائنات يتم التلاعب به.

عمليات تنفيذ الأجهزة:

  • يجب أن يتوفّر لديه نظام إدخال مؤشر من نوع ما (سواء بشكل الماوس أو اللمس).
  • يجب أن تدعم المؤشرات التي يتم تتبُّعها بشكل مستقل بالكامل.

إذا كانت عمليات تنفيذ الجهاز تتضمن شاشة تعمل باللمس (بلمسة واحدة أو أفضل) على شاشة أساسية متوافقة مع Android، وهي:

  • [C-1-1] يجب الإبلاغ عن TOUCHSCREEN_FINGER بشأن Configuration.touchscreen واجهة برمجة التطبيقات.
  • [C-1-2] يجب أن يبلغ عن android.hardware.touchscreen تم الإبلاغ عن ميزة واحدة (android.hardware.faketouch).

إذا كانت عمليات تنفيذ الجهاز تتضمن شاشة تعمل باللمس يمكنها تتبع أكثر من بلمسة واحدة على شاشة أساسية متوافقة مع Android، فإنهم:

  • [C-2-1] يجب الإبلاغ عن علامات الميزات المناسبة android.hardware.touchscreen.multitouch، android.hardware.touchscreen.multitouch.distinct، android.hardware.touchscreen.multitouch.jazzhand يتوافق مع نوع الشاشة المحددة التي تعمل باللمس على الجهاز.

إذا كانت عمليات تنفيذ الجهاز تعتمد على جهاز إدخال خارجي مثل الماوس أو كرة تعقّب (أي عدم لمس الشاشة مباشرةً) لإدخال بيانات في جهاز شاشة متوافقة مع Android وتستوفي متطلبات اللمس الزائف في الفقرة 7.2.5، فهي:

  • [C-3-1] يجب ألا يتم الإبلاغ عن أي علامة ميزة تبدأ بـ android.hardware.touchscreen
  • [C-3-2] يجب أن يبلغ android.hardware.faketouch فقط.
  • [C-3-3] يجب الإبلاغ عن TOUCHSCREEN_NOTOUCH Configuration.touchscreen واجهة برمجة التطبيقات.

7.2.5. الإدخال باللمس الزائف

توفّر واجهة اللمس الزائفة نظامًا لإدخالًا للمستخدم يتعامل بشكل تقريبي مع مجموعة فرعية من إمكانات الشاشة التي تعمل باللمس. على سبيل المثال، يستخدم الماوس أو جهاز التحكم عن بعد الذي يقود يقترب المؤشر على الشاشة من اللمس، ولكنه يتطلب من المستخدم الإشارة أولاً التركيز ثم النقر. العديد من أجهزة الإدخال، مثل الماوس ولوحة اللمس والجيروسكوب يتيح ماوس هوائي ومؤشر الجيروسكوب وذراع التحكّم ولوحة اللمس المتعددة اللمس أن يستخدموا الأجهزة المزيّفة. والتفاعلات باللمس. يتضمن Android ثابت الميزات android.hardware.fake touch، الذي يتوافق مع شاشة عالية الدقة لا تعمل باللمس جهاز إدخال (مستند إلى المؤشر) مثل الماوس أو لوحة اللمس التي يمكنها توفير لمحاكاة الإدخال الذي يعتمد على اللمس (بما في ذلك دعم الإيماءات الأساسية)، ويشير إلى أن يتوافق الجهاز مع مجموعة فرعية محاكى من وظائف الشاشة التي تعمل باللمس.

إذا كانت عمليات تنفيذ الجهاز لا تشمل شاشة تعمل باللمس ولكنها تتضمن شاشة أخرى نظام إدخال المؤشر الذي يريدون إتاحته، يمكنهم:

  • يجب أن تعلن عن توافقها مع علامة الميزة android.hardware.faketouch.

إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.faketouch، وهي:

  • [C-1-1] يجب الإبلاغ عن موضعَي الشاشة المطلقتين X وY لموقع المؤشر وعرض مؤشر مرئي على الشاشة.
  • [C-1-2] يجب الإبلاغ عن حدث اللمس الذي يتضمن رمز الإجراء الذي يحدد تغيير الحالة الذي يحدث في المؤشر لأسفل أو لأعلى على الشاشة.
  • [C-1-3] يجب أن يدعم المؤشر لأسفل وأعلى على أي كائن على الشاشة، والذي تسمح للمستخدمين بمحاكاة النقر على عنصر على الشاشة.
  • [C-1-4] يجب دعم المؤشر لأسفل والمؤشر لأعلى والمؤشر لأسفل ثم المؤشر لأعلى في نفس المكان على كائن على الشاشة خلال مهلة زمنية، والتي تسمح للمستخدمين بمحاكاة النقر المزدوج على كائن معروض على الشاشة.
  • [C-1-5] يجب أن يدعم المؤشر لأسفل على نقطة عشوائية على الشاشة، تحريك المؤشر إلى أي نقطة عشوائية أخرى على الشاشة، متبوعًا بمؤشر أعلى، وهو ما يسمح للمستخدمين بمحاكاة السحب باللمس.
  • [C-1-6] يجب دعم المؤشر لأسفل ثم السماح للمستخدمين بتحريك كائن إلى موضع مختلف على الشاشة ثم المؤشر لأعلى على الشاشة، والتي تتيح للمستخدمين تمرير كائن على الشاشة بسرعة.

إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.faketouch.multitouch.distinct، إن:

  • [C-2-1] يجب أن يعلن عن دعمه لـ android.hardware.faketouch.
  • [C-2-2] يجب أن يتيح التتبع المميز لمؤشرين مستقلين أو أكثر المدخلات.

إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.faketouch.multitouch.jazzhand، إن:

  • [C-3-1] يجب أن يعلن عن دعمه لـ android.hardware.faketouch.
  • [C-3-2] يجب أن يتيح تتبُّعًا مختلفًا لـ 5 (تتبُّع اليدين من الأصابع) أو أكثر من إدخالات المؤشر بشكل مستقل تمامًا.

7.2.6. دعم أذرعة التحكّم في الألعاب

7.2.6.1. تعيينات الأزرار

عمليات تنفيذ الأجهزة:

  • يجب أن يكون بإمكان [C-1-1] ربط أحداث HID بثوابت InputEvent المقابلة لها كما هو موضّح في الجداول أدناه. تستوفي عملية التنفيذ الأولية لنظام التشغيل Android هذا الشرط.

إذا كانت عمليات تنفيذ الأجهزة تتضمن وحدة تحكم أو تم شحنها مع وحدة تحكم منفصلة في الصندوق والتي من شأنها أن توفر وسائل لإدخال جميع الأحداث المدرجة في الجداول أدناه، فإنها:

  • [C-2-1] يجب أن يعلن عن علامة الميزة android.hardware.gamepad
زرّ استخدام أجهزة HID2 زر Android
أ1 0x09 0x0001 KEYCODE_button_A (96)
ب1 0x09 0x0002 KEYCODE_button_B (97)
X1 0x09 0x0004 KEYCODE_button_X (99)
ش1 0x09 0x0005 KEYCODE_button_Y (100)
لوحة التحكّم1
لوحة التحكّم1
0x01 0x00393 AXIS_HAT_Y4
لوحة التحكّم لليسار1
لوحة التحكّم اليمنى1
0x01 0x00393 AXIS_HAT_X4
زر الكتف الأيسر1 0x09 0x0007 KEYCODE_button_L1 (102)
زر الكتف الأيمن1 0x09 0x0008 KEYCODE_button_R1 (103)
النقر على الذراع اليسرى1 0x09 0x000E KEYCODE_button_THUMBL (106)
النقر بزر الماوس الأيمن1 0x09 0x000F KEYCODE_button_THUMBR (107)
رجوع1 0x0c 0x0224 KEYCODE_BACK (4)

1 KeyEvent

2 يجب الإفصاح عن حالات استخدام أجهزة الواجهة البشرية (HID) أعلاه ضمن اللعبة pad CA (0x01 0x0005).

3 يجب ألا يقل الحد الأدنى المنطقي لهذا الاستخدام عن 0، الحد الأقصى المنطقي 7، والحد الأدنى المادي 0، والحد الأقصى المادي 315، من الوحدات بالدرجات، وحجم التقرير 4. يتم تعريف القيمة المنطقية بأنها الدوران في اتجاه عقارب الساعة بعيدًا عن المحور الرأسي؛ على سبيل المثال، القيمة المنطقية ويمثل الرقم 0 عدم وجود دوران ويتم الضغط على الزر لأعلى، بينما تمثل القيمة المنطقية الرقم 1 يمثل تدويرًا بمقدار 45 درجة ويمثل مفتاحا لأعلى واليسار ضغط.

4 MotionEvent

عناصر التحكّم التناظرية1 استخدام أجهزة HID زر Android
عامل التفعيل الأيسر 0x02 0x00C5 AXIS_LTRIGGER
عامل التفعيل الأيمن 0x02 0x00C4 خوارزمية "AXIS_RTRIGGER"
ذراع التحكّم الأيسر 0x01 0x0030
0x01 0x0031
AXIS_X
AXIS_Y
ذراع التحكّم الأيمن 0x01 0x0032
0x01 0x0035
AXIS_Z
AXIS_RZ

1 MotionEvent

7.2.7. جهاز التحكّم عن بُعد

لمعرفة المتطلبات الخاصة بالأجهزة، يمكنك الاطّلاع على القسم 2.3.1.

7.3. أدوات الاستشعار

إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له وواجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، وتنفيذ الأجهزة أن تنفذ واجهة برمجة التطبيقات هذه كما هو موضح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android مستندات Android المفتوحة المصدر بخصوص أجهزة الاستشعار.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يبلغ بدقة وجود أو عدم وجود أجهزة استشعار وفقًا android.content.pm.PackageManager الصف.
  • [C-0-2] يجب أن تعرض قائمة دقيقة بأجهزة الاستشعار المتوافقة عبر SensorManager.getSensorList() وطرق مماثلة
  • [C-0-3] يجب أن يعمل بشكل معقول مع جميع واجهات برمجة تطبيقات أداة الاستشعار الأخرى (على سبيل المثال، من خلال عرض true أو false على النحو المناسب عندما تحاول الطلبات التسجيل المستمعين، ولا يتصل بمستمعيات المستشعرات عندما لا تكون المستشعرات المقابلة حاليًا وما إلى ذلك).

إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، فإنهم:

  • [C-1-1] يجب الإبلاغ عن جميع قياسات أجهزة الاستشعار باستخدام قيم النظام الدولي للوحدات (المقاييس) ذات الصلة لكل نوع أداة الاستشعار كما هو محدّد في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
  • [C-1-2] يجب الإبلاغ عن بيانات جهاز الاستشعار بحد أقصى لوقت الاستجابة 100. ملي ثانية + 2 * sample_time لحالة تدفق مستشعر يبلغ الحد الأقصى لوقت الاستجابة المطلوب 0 ملي ثانية عندما يكون معالج التطبيقات نشطًا. ولا يشمل هذا التأخير أي تأخير في الفلترة.
  • [C-1-3] يجب الإبلاغ عن عيّنة المستشعر الأولى خلال 400 مللي ثانية + 2 * sample_time لوقت تشغيل المستشعر. من المقبول أن تقدم هذه العينة دقة المعامل 0.
  • [C-1-4] بالنسبة إلى أي واجهة برمجة تطبيقات تشير إليها مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android أداة استشعار مستمرة عمليات تنفيذ الأجهزة باستمرار عينات البيانات الدورية التي ينبغي أن يكون لها عدم استقرار أقل من 3٪، ويُعرَّف فيه عدم الاستقرار بأنه الانحراف المعياري للفرق تم تسجيل قيم الطوابع الزمنية بين الأحداث المتتالية.
  • يجب أن يتأكّد [C-1-5] من بث حدث جهاز الاستشعار. يجب ألا يمنع وحدة المعالجة المركزية للجهاز من إدخال حالة التعليق أو الاستيقاظ. من حالة التعليق.
  • [C-1-6] يجب الإبلاغ عن وقت الفعالية في غضون نانو ثانية كما هو موضح في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android، والتي تمثل وقت وقوع الحدث ومزامنته مع ساعة SystemClock.elapsedRealtimeNano()
  • [C-SR-1] يُنصح بشدة بحدوث خطأ في مزامنة الطابع الزمني أقل من 100 مللي ثانية، ويجب أن يكون الخطأ في مزامنة الطابع الزمني أقل من 1 ميليثانية.
  • عند تفعيل عدة أجهزة استشعار، يجب ألا يتجاوز استهلاك الطاقة مجموع استهلاك الطاقة الذي تم الإبلاغ عنه لجهاز الاستشعار الفردي.

القائمة أعلاه ليست شاملة. السلوك الموثَّق لحزمة تطوير البرامج (SDK) لنظام التشغيل Android ووثائق Android المفتوحة المصدر حول أجهزة الاستشعار وموثوق به.

إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات (API) المقابلة للمطورين من الجهات الخارجية، فإنهم:

  • [C-1-6] يجب ضبط درجة دقة غير صفرية لجميع أجهزة الاستشعار والإبلاغ عن القيمة من خلال Sensor.getResolution() طريقة واجهة برمجة التطبيقات.

بعض أنواع أدوات الاستشعار مركَّبة، ما يعني أنّه يمكن اشتقاقها من البيانات المقدَّمة بواسطة جهاز استشعار آخر أو أكثر. (تشمل الأمثلة أداة استشعار الاتجاه جهاز استشعار التسارع الخطي).

عمليات تنفيذ الأجهزة:

  • "يجب" تطبيق أنواع أدوات الاستشعار هذه، عندما تضمين المستشعرات المادية والضرورية على النحو الموضَّح في أنواع أدوات الاستشعار.

إذا كانت عمليات تنفيذ الجهاز تتضمّن أداة استشعار مركّبة، سيتم تطبيق ما يلي:

إذا كانت تطبيقات الجهاز تتضمن نوع أداة استشعار محددًا له واجهة برمجة التطبيقات المقابلة للمطورين من الجهات الخارجية وأداة الاستشعار واحدة فقط ثم عمليات تنفيذ الأجهزة:

  • [C-3-1] يجب ضبط درجة الدقة على 1 لجهاز الاستشعار والإبلاغ عن القيمة من خلال Sensor.getResolution() طريقة واجهة برمجة التطبيقات.

إذا كانت عمليّات تنفيذ الجهاز تشمل نوعًا معيّنًا من أجهزة الاستشعار التي تتيح SensorAdditionalInfo#TYPE_VEC3_CALIBRATION وتُعرّض أداة الاستشعار لمطوّري برامج الجهات الخارجية لما يلي:

  • [C-4-1] يجب ألا تتضمّن أي معايرة ثابتة ومحددة من المصنع في البيانات المقدمة.

فإذا كانت عمليات تنفيذ الجهاز تتضمن مجموعة من مقياس التسارع ثلاثي المحاور، جهاز استشعار الجيروسكوب الثلاثي المحاور أو جهاز استشعار مقياس المغناطيسية:

  • [C-SR-2] يُوصى به بشدة للتأكد من استخدام مقياس التسارع والجيروسكوب لمقياس المغناطيسية موضع نسبي ثابت، بحيث إذا كان الجهاز قابلة للتحويل (على سبيل المثال، قابلة للطي)، تظل محاور أداة الاستشعار منحنية ومتسقة مع نظام الإحداثيات في أداة الاستشعار في جميع الأجهزة حالات التحويل.

7.3.1. مقياس التسارع

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُوصى بشدة بتضمين مقياس تسارع ثلاثي المحاور.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس تسارع ثلاثي المحاور، سيتم إجراء ما يلي:

  • يجب أن يتمكّن [C-1-1] من الإبلاغ عن الأحداث التي تصل ترددها إلى 50 هرتز على الأقل.
  • [C-1-2] يجب تنفيذ TYPE_ACCELEROMETER والإبلاغ عنه أداة الاستشعار.
  • [C-1-3] يجب أن يتوافق مع نظام الإحداثيات لمستشعر Android كما هو موضح بالتفصيل في واجهات برمجة تطبيقات Android.
  • [C-1-4] يجب أن يكون قادرًا على القياس من السقوط الحر لما يصل إلى أربعة أضعاف الجاذبية(4 غرام) أو أكثر على أي محور.
  • [C-1-5] يجب أن تصل درجة الدقة إلى 12 بت على الأقل.
  • [C-1-6] يجب أن يكون لها انحراف معياري لا يزيد عن 0.05 م/ث^، حيث ينبغي حساب الانحراف المعياري على أساس كل محور في العينات تم جمعها خلال مدة لا تقل عن 3 ثوانٍ وبأسرع معدل أخذ العينات.
  • [C-SR-2] يُنصَح بشدة بتنفيذ TYPE_SIGNIFICANT_MOTION المركب.
  • يُنصَح بشدة بأن يتم تنفيذ TYPE_ACCELEROMETER_UNCALIBRATED والإبلاغ عنها من قِبل [C-SR-3]. أداة الاستشعار. ونحن ننصح بشدة أجهزة Android لاستيفاء هذا الشرط يمكنهم الترقية إلى إصدار النظام الأساسي المستقبلي حيث قد يكون ذلك مطلوبة.
  • يجب تنفيذ TYPE_SIGNIFICANT_MOTION، TYPE_TILT_DETECTOR، TYPE_STEP_DETECTOR، TYPE_STEP_COUNTER جهاز استشعار مركبة كما هو موضح في مستند حزمة تطوير البرامج (SDK) لنظام التشغيل Android
  • "يجب" الإبلاغ عن الأحداث التي تصل ترددها إلى 200 هرتز على الأقل.
  • يجب أن تبلغ درجة دقة الصورة 16 بت على الأقل.
  • ينبغي معايرته أثناء الاستخدام إذا تغيرت الخصائص بمرور دورة الحياة وتعويضها، والحفاظ على معلمات التعويض بين عمليات إعادة تشغيل الجهاز.
  • يجب تعويض درجة الحرارة.

فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس تسارع ثلاثي المحاور وأي من TYPE_SIGNIFICANT_MOTION، TYPE_TILT_DETECTOR، TYPE_STEP_DETECTOR، تم تنفيذ TYPE_STEP_COUNTER من أجهزة الاستشعار المركّبة:

  • [C-2-1] يجب أن يكون مجموع استهلاك الطاقة دائمًا أقل من 4 ميغاواط.
  • يجب أن تكون قيمة كل منهما أقل من 2 ميغاواط و0.5 ميغاواط عندما يكون الجهاز في الوضع الديناميكي أو شرط ثابت.

فإذا كانت عمليات تنفيذ الجهاز تشمل مقياس تسارع ثلاثي المحاور ومستشعر جيروسكوب ثلاثي المحاور، وهي:

  • [C-3-1] يجب تنفيذ TYPE_GRAVITY وTYPE_LINEAR_ACCELERATION أجهزة الاستشعار المركّبة.
  • [C-SR-4] يُنصَح باستخدامها بشدة لتنفيذ TYPE_GAME_ROTATION_VECTOR المركب.

فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس تسارع ثلاثي المحاور، أو مستشعر جيروسكوب ثلاثي المحاور، وجهاز استشعار مقياس المغناطيسية، وهي:

  • [C-4-1] يجب استخدام أداة استشعار مركّبة TYPE_ROTATION_VECTOR.

7.3.2 مقياس المغناطيسية

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتضمين مقياس مغناطيسي ثلاثي المحاور (بوصلة).

إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس مغناطيسي ثلاثي المحاور، سيتم إجراء ما يلي:

  • [C-1-1] يجب تشغيل أداة استشعار TYPE_MAGNETIC_FIELD.
  • [C-1-2] يجب أن يكون قادرًا على الإبلاغ عن الأحداث التي تصل مدتها إلى 10 هرتز على الأقل ويجب أن يتم الإبلاغ عن الأحداث التي تصل مدّتها إلى 50 هرتز على الأقل.
  • [C-1-3] يجب أن يتوافق مع نظام الإحداثيات لمستشعر Android كما هو موضح بالتفصيل في واجهات برمجة تطبيقات Android.
  • يجب أن يكون بإمكان جهاز [C-1-4] القياس بين -900 ميكرومتر و+900 ميكرو طن في كل وحدة. المحور قبل التشبع.
  • [C-1-5] يجب أن تكون قيمة إزاحة الحديد الصلب أقل من 700 ميكرومتر عن قيمة أقل من 200 ميكرومتر، عن طريق وضع مقياس المغناطيسية بعيدًا عن المجالات المغناطيسية الديناميكية (الناتجية الحالية) والثابتة (الناتجة عن المغناطيس).
  • يجب أن تكون دقة الشاشة [C-1-6] مساوية أو أكثر كثافة من 0.6 ميكرومتر.
  • [C-1-7] يجب أن يتيح المعايرة وتعويض الحديد الصلب على الإنترنت والتحيز، والاحتفاظ بمعلمات التعويض بين عمليات إعادة تشغيل الجهاز.
  • [C-1-8] يجب تطبيق التعويض باستخدام الحديد الليّن، ويمكن إجراء المعايرة تتم إمّا أثناء استخدام الجهاز أو أثناء إنتاجه.
  • [C-1-9] يجب أن يحتوي على انحراف معياري، محسوبًا على أساس كل محور وفقًا العيّنات التي تم جمعها خلال فترة لا تقلّ عن 3 ثوانٍ في أسرع وقت لجمع العيّنات معدّل النقل: 1.5 ميكرو طن يجب أن يكون لها انحراف معياري لا يزيد عن 0.5 ميكرومتر
  • [C-1-10] يجب تنفيذ TYPE_MAGNETIC_FIELD_UNCALIBRATED أداة الاستشعار.

فإذا اشتملت عمليات تنفيذ الجهاز على مقياس مغناطيسية ثلاثي المحاور، فإن مقياس التسارع ومستشعر جيروسكوب ثلاثي المحاور، فإنها:

  • [C-2-1] يجب استخدام أداة استشعار مركّبة TYPE_ROTATION_VECTOR.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياس المغناطيسية ثلاثي المحاور، وهو مقياس التسارع، سينطبق التالي:

  • قد يتم استخدام أداة استشعار "TYPE_GEOMAGNETIC_ROTATION_VECTOR".

فإذا كانت عمليات تنفيذ الجهاز تتضمن مقياس المغناطيسية ثلاثي المحاور ومقياس التسارع جهاز استشعار "TYPE_GEOMAGNETIC_ROTATION_VECTOR"، وهو:

  • [C-3-1] يجب أن تستهلك أقل من 10 ميغاواط.
  • من المفترض أن تستهلك الطاقة أقل من 3 ميغاواط عند تسجيل أداة الاستشعار في وضع الدفعة. بتردد 10 هرتز

7.3.3. نظام تحديد المواقع العالمي (GPS)

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُوصى بشدة بتضمين جهاز استقبال GPS/GNSS.

إذا كانت عمليات تنفيذ الجهاز تتضمّن مستقبِل GPS/GNSS والإبلاغ عن الإمكانات إلى التطبيقات من خلال علامة ميزة android.hardware.location.gps، فإنها:

  • [C-1-1] يجب أن يتوافق مع مخرجات الموقع الجغرافي بمعدّل لا يقل عن 1 هرتز عند تم الطلب عبر LocationManager#requestLocationUpdate.
  • [C-1-2] يجب أن يتمكن من تحديد الموقع في ظروف السماء المفتوحة (إشارات قوية، مسارات متعددة ضبابية، HDOP < 2) في غضون 10 ثوانٍ (سريعة) الوقت اللازم لإصلاح الأخطاء لأول مرة)، عند الاتصال بسرعة بيانات تبلغ 0.5 ميغابت في الثانية أو أكثر الاتصال بالإنترنت. وعادةً ما يتم استيفاء هذا الشرط من خلال استخدام بعض أحد أشكال تقنية نظام تحديد المواقع العالمي (GPS) / نظام GNSS المدعوم أو المتوقَّع لتقليل وقت قفل GPS/GNSS (تشمل بيانات المساعدة الوقت المرجعي، الموقع الجغرافي المرجعي وتوقيتات القمر الصناعي/الساعة).
    • [C-1-6] بعد إجراء عملية حسابية للموقع، يجب أن تحدد عمليات التنفيذ موقعها، في السماء المفتوحة، داخل 5 ثوانٍ، عند إعادة تشغيل طلبات الموقع الجغرافي، بعد ما يصل إلى ساعة حساب الموقع الأولي، حتى عندما يكون الطلب اللاحق يتم إجراؤها بدون اتصال البيانات، و/أو بعد دورة الطاقة.
  • في السماء المفتوحة بعد تحديد الموقع، أثناء كونك ثابتًا أو تتحرك بسرعة أقل من متر واحد في الثانية مربعة التسارع:

    • [C-1-3] يجب أن يتمكن من تحديد الموقع في نطاق 20 مترًا والسرعة في نطاق 0.5 متر في الثانية، أي ما لا يقل عن 95% من الوقت.
    • [C-1-4] يجب أن تتبع في وقت واحد والإبلاغ عبر GnssStatus.Callback ما لا يقل عن 8 أقمار صناعية من مجموعة نجمية واحدة.
    • ينبغي أن تكون قادرًا على تتبع ما لا يقل عن 24 قمرًا صناعيًا، من مجموعات نجمية متعددة (مثل نظام تحديد المواقع العالمي (GPS) + واحد على الأقل من غلوناس، وبيدو، غاليليو).
  • [C-SR-2] يُنصَح باستخدامها بشدة لمواصلة تقديم بيانات نظام تحديد المواقع العالمي (GPS)/نظام GNSS العادي. مخرجات الموقع الجغرافي من خلال واجهة برمجة تطبيقات الموقع الجغرافي في GNSS أثناء هاتف الطوارئ الاتصال.

  • [C-SR-3] يُنصح بشدة بالإبلاغ عن قياسات GNSS من جميع المجموعات النجمية التي يتم تتبعها (كما تم الإبلاغ عنها في رسائل GnssStatus)، باستثناء SBAS.

  • [C-SR-4] يُوصى بشدة بالإبلاغ عن AGC ومعدّل تكرار GNSS القياس.

  • [C-SR-5] يُنصح بشدة بالإبلاغ عن جميع تقديرات الدقة (بما في ذلك الاتجاه والسرعة والوضع العمودي) كجزء من كل موقع من مواقع نظام تحديد المواقع العالمي (GPS)/ GNSS.

  • [C-SR-6] يُنصح بشدة بالإبلاغ عن قياسات GNSS، في أقرب وقت العثور عليها، حتى إذا لم يتم حساب الموقع من خلال GPS/GNSS بعد تم الإبلاغ عنها.

  • [C-SR-7] يُوصى بها بشدة للإبلاغ عن النطاقات الزائفة في GNSS بمعدلات زائفة، أنه في ظروف مفتوحة بعد تحديد الموقع، أثناء كونه ثابتًا أو يتحرك بأقل من 0.2 متر في الثانية المربعة والعجلة، وهي كافية لحساب الموقع على بُعد 20 مترًا، والسرعة في نطاق 0.2 متر في الثانية، أي ما لا يقل عن 95% من الوقت.

7.3.4 الجيروسكوب

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتضمين جهاز استشعار جيروسكوب.

إذا كانت عمليات تنفيذ الأجهزة تتضمن جيروسكوبًا ثلاثي المحاور، سيتم إجراء ما يلي:

  • يجب أن يتمكّن [C-1-1] من الإبلاغ عن الأحداث التي تصل ترددها إلى 50 هرتز على الأقل.
  • [C-1-2] يجب تشغيل أداة استشعار TYPE_GYROSCOPE.
  • [C-1-4] يجب أن تصل درجة الدقة إلى 12 بت أو أكثر.
  • [C-1-5] يجب تعويض درجة الحرارة فيه.
  • [C-1-6] يجب معايرته وتعويضه أثناء الاستخدام، مع الحفاظ على معلَمات التعويض بين عمليات إعادة تشغيل الجهاز
  • [C-1-7] يجب أن يحتوي على تباين لا يزيد عن 1e-7 rad^2 / s^2 لكل هرتز (التباين لكل هرتز، أو rad^2 / s) يُسمح بأن يختلف التباين حسب على معدل أخذ العينات، إلا أنه يجب أن يكون مقيَّدًا بهذه القيمة. بمعنى آخر، إذا كنت قياس تباين الجيروسكوب بمعدل أخذ عينات 1 هرتز، يجب ألا يكون أكبر من 1e-7 rad^2/s^2.
  • [C-SR-2] يُوصى بشدة بأن يكون خطأ المعايرة أقل من 0.01 راد/ثانية عندما يكون الجهاز ثابتًا في درجة حرارة الغرفة.
  • [C-SR-3] يُنصَح باستخدامها بشدة لتنفيذ TYPE_GYROSCOPE_UNCALIBRATED أداة الاستشعار.
  • [C-SR-4] يُوصى بشدة بأن تكون درجة الدقة 16 بت أو أكثر.
  • "يجب" الإبلاغ عن الأحداث التي تصل ترددها إلى 200 هرتز على الأقل.

إذا كانت عمليات تنفيذ الجهاز تتضمّن جيروسكوبًا ثلاثي المحاور، يمكن استخدام أداة استشعار لمقياس التسارع وجهاز استشعار مقياس المغناطيسية، وهي:

  • [C-2-1] يجب استخدام أداة استشعار مركّبة TYPE_ROTATION_VECTOR.

إذا كانت عمليات تنفيذ الجهاز تشتمل على مقياس تسارع ثلاثي المحاور وجيروسكوب ثلاثي المحاور جهاز الاستشعار، فهي:

  • [C-3-1] يجب أن ينفذ TYPE_GRAVITY TYPE_LINEAR_ACCELERATION جهاز استشعار مُركَّب.
  • [C-SR-5] يُوصى بها بشدة لتنفيذ TYPE_GAME_ROTATION_VECTOR المركب.

7.3.5. مقياس الضغط الجوي

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتضمين مقياس الضغط الجوي (ضغط الهواء المحيط جهاز الاستشعار).

إذا كانت عمليات تنفيذ الأجهزة تتضمّن مقياسًا للمؤشر، سيتم تفسير ما يلي:

  • [C-1-1] يجب استخدام أداة استشعار TYPE_PRESSURE والإبلاغ عنها.
  • [C-1-2] يجب أن يكون قادرًا على إرسال الأحداث بسرعة 5 هرتز أو أكثر.
  • [C-1-3] يجب تعويض درجة الحرارة فيه.
  • [C-SR-2] يُنصح بشدة بأن تكون قادرًا على الإبلاغ عن قياسات الضغط في النطاق 300hPa إلى 1100hPa.
  • "ينبغي" الحصول على دقة مطلقة تبلغ 1hPa.
  • يجب أن تكون الدقة النسبية 0.12hPa على نطاق 20hPa (أي ما يعادل دقة تبلغ حوالي متر واحد أعلى من 200 متر تقريبًا من التغيير على مستوى سطح البحر).

7.3.6. مقياس درجة الحرارة

إذا كانت عمليات تنفيذ الأجهزة تشمل ميزان حرارة في البيئة المحيطة (أداة استشعار الحرارة)، وهي:

  • [C-1-1] يجب أن يحدد SENSOR_TYPE_AMBIENT_TEMPERATURE جهاز استشعار الحرارة في البيئة المحيطة، وعلى أداة الاستشعار (كابينة الغرفة/المركبة) حيث يتفاعل المستخدم مع جهازك بدرجات مئوية.

إذا كانت عمليّات استخدام الجهاز تشمل أداة استشعار لميزان الحرارة تقيس بخلاف درجة الحرارة المحيطة، مثل درجة حرارة وحدة المعالجة المركزية (CPU)، تكون:

إذا كانت عمليات تنفيذ الجهاز تتضمن أداة استشعار لمراقبة درجة حرارة الجلد، فإنهم:

7.3.7. مقياس ضوء

  • وقد تشمل إجراءات استخدام الجهاز مقياس ضوء (أداة استشعار الضوء المحيط).

7.3.8 أداة استشعار التقارب

  • وقد تتضمن عمليات تنفيذ الأجهزة أداة استشعار التقارب.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن أداة استشعار التقارب وكانت تعرض تقارير القراءة الثنائية "بالقرب" أو "البعيد":

  • [C-1-1] يجب أن يقيس مسافة جسم في نفس اتجاه الشاشة. بمعنى آخر، يجب أن يكون جهاز استشعار التقارب موجَّهًا لاكتشاف الأجسام بالقرب من الشاشة، لأنّ الهدف الأساسي من هذا النوع من أجهزة الاستشعار هو اكتشاف هاتف قيد الاستخدام من قبل المستخدم. إذا كانت عمليات تنفيذ الجهاز تتضمن أداة استشعار التقارب بأي اتجاه آخر، يجب ألا تكون متاحة من خلال واجهة برمجة التطبيقات هذه.
  • [C-1-2] يجب أن يكون بدقة 1 بت أو أكثر.
  • [C-1-3] يجب استخدام 0 سنتيمتر كقيمة أقرب للقراءة و5 سنتيمترات القراءة البعيدة.
  • [C-1-4] يجب أن يبلغ الحد الأقصى للنطاق والدقة 5.

7.3.9 أجهزة استشعار الدقة العالية

إذا كانت عمليات تنفيذ الأجهزة تتضمّن مجموعة من أدوات الاستشعار العالية الجودة على النحو المحدّد في هذا القسم وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنّها:

  • [C-1-1] يجب أن يحدد القدرة من خلال علامة ميزة واحدة (android.hardware.sensor.hifi_sensors)

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.sensor.hifi_sensors، وهي:

  • يجب أن يتضمّن [C-2-1] جهاز استشعار "TYPE_ACCELEROMETER" ينطبق عليه ما يلي:

    • يجب أن يتراوح نطاق القياس بين -8g و+8g على الأقل يُنصح بشدة بأن يكون نطاق القياس بين -16 غرامًا على الأقل و+16 غرامًا.
    • يجب أن تكون درجة دقة القياس لا تقل عن 2048 LSB/غرام.
    • يجب أن يكون الحد الأدنى لتكرار القياس 12.5 هرتز أو أقل.
    • يجب أن يبلغ الحد الأقصى لتردد القياس 400 هرتز أو أعلى. يجب تتوافق مع SensorDirectChannel RATE_VERY_FAST.
    • يجب أن يكون هناك تشويش في القياس ليس أعلى من 400 ميكروغرام/توفِّر ترددًا هرتز.
    • يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لما لا يقل عن 3000 حدث جهاز استشعار.
    • يجب أن يكون استهلاك الطاقة بالدفعة أقل من 3 ميغاواط.
    • [C-SR-1] يُوصى بشدة بأن يكون معدل نقل بيانات قياس 3dB في على الأقل 80% من تردد Nyquist وطيف الضوضاء البيضاء ضمن هذه النطاق الترددي.
    • من المفترض أن يكون لديك تسريع في المشي عشوائيًا أقل من 30 ميكروغرام 🏏 هرتز تم اختباره على درجة حرارة الغرفة.
    • يُفترض أن يكون هناك تغيُّر في الانحياز مقارنةً بدرجة الحرارة التي تبلغ ≤ +/- 1 مليغرام/درجة مئوية.
    • يجب أن يكون الخط غير الخطي الأكثر ملاءمة بنسبة ≤ 0.5%، وتغيّر الحساسية مقابل درجة الحرارة ≤ ≤ 0.03%/درجة مئوية.
    • يجب أن تكون حساسية المحور المتقاطع < 2.5٪ وتغير الحساسية عبر المحاور < 0.2% في نطاق درجة حرارة تشغيل الجهاز
  • [C-2-2] يجب أن يحتوي على TYPE_ACCELEROMETER_UNCALIBRATED مع متطلبات الجودة مثل TYPE_ACCELEROMETER.

  • يجب أن يتضمّن [C-2-3] أداة استشعار TYPE_GYROSCOPE وهي:

    • يجب أن يتراوح نطاق القياس بين -1000 و +1000 نقطة في الثانية على الأقل.
    • يجب أن تكون درجة دقة القياس 16 LSB/dps على الأقل.
    • يجب أن يكون الحد الأدنى لتكرار القياس 12.5 هرتز أو أقل.
    • يجب أن يبلغ الحد الأقصى لتردد القياس 400 هرتز أو أعلى. يجب تتوافق مع SensorDirectChannel RATE_VERY_FAST.
    • يجب أن يكون هناك تشويش في قياس حالة الجهاز لا يزيد عن 0.014 درجة/ثانية/وإعادة هرتز.
    • [C-SR-2] يُوصى بشدة بأن يكون معدل نقل بيانات قياس 3dB في على الأقل 80% من تردد Nyquist وطيف الضوضاء البيضاء ضمن هذه النطاق الترددي.
    • يجب أن يكون معدّل المشي العشوائي أقلّ من 0.001 درجة/ثانية ©Hz تم اختباره في الغرفة. درجة الحرارة.
    • يُفترض أن يكون هناك تغيُّر في الانحياز مقارنةً بدرجة الحرارة التي تبلغ ≤ +/- 0.05 درجة/ ثانية / درجة مئوية.
    • من المفترض أن يتغيّر مستوى الحساسية مقارنةً بدرجة الحرارة التي تقل عن 0.02% / درجة مئوية.
    • يُفترض أن يحتوي الخط غير الخطي على أفضل ملاءمة، وهو ≤ 0.2%.
    • من المفترض أن تكون كثافة الضوضاء 0.007 درجة/ثانية/وإعادة هرتز أو أقل.
    • من المفترض أن يكون خطأ المعايرة أقل من 0.002 راد/ثانية في يتراوح نطاق درجة الحرارة بين 10 و40 درجة مئوية عندما يكون الجهاز ثابتًا.
    • يجب أن تكون حساسية g-g أقل من 0.1 درجة/s/g.
    • يجب أن تكون حساسية المحور المتقاطع < 4.0 % وحساسية المحاور الاختلاف < 0.3% في نطاق درجة حرارة تشغيل الجهاز
  • [C-2-4] يجب أن يحتوي على TYPE_GYROSCOPE_UNCALIBRATED بالجودة نفسها المتطلبات مثل TYPE_GYROSCOPE.

  • يجب أن يتضمّن [C-2-5] أداة استشعار TYPE_GEOMAGNETIC_FIELD وهي:

    • يجب أن يتراوح نطاق القياس بين -900 و+900 ميكرومتر.
    • يجب أن تكون درجة دقة القياس 5 LSB/uT على الأقل.
    • يجب أن يكون الحد الأدنى لتكرار القياس 5 هرتز أو أقل.
    • يجب أن يبلغ الحد الأقصى لتردد القياس 50 هرتز أو أعلى.
    • يجب أن يكون هناك تشويش في القياس ليس أعلى من 0.5 وحدة uT.
  • [C-2-6] يجب أن يحتوي على TYPE_MAGNETIC_FIELD_UNCALIBRATED بالجودة نفسها المتطلبات مثل TYPE_GEOMAGNETIC_FIELD، إضافةً إلى ذلك:

    • يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لـ 600 حدث جهاز استشعار على الأقل.
    • [C-SR-3] مستحسن بشدة أن يكون له طيف ضوضاء بيضاء من 1 هرتز إلى 10 هرتز على الأقل عندما يكون معدّل الإبلاغ 50 هرتز أو أعلى.
  • يجب أن يتضمّن [C-2-7] أداة استشعار TYPE_PRESSURE وهي:

    • يجب أن يتراوح نطاق القياس بين 300 و1100 هيلتر باسك على الأقل.
    • يجب أن تكون درجة دقة القياس 80 LSB/hPa على الأقل.
    • يجب أن يكون الحد الأدنى لتكرار القياس 1 هرتز أو أقل.
    • يجب أن يبلغ الحد الأقصى لتردد القياس 10 هرتز أو أعلى.
    • يجب أن يكون هناك تشويش في القياس ليس أعلى من 2 Pa/fill هرتز.
    • يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لما لا يقل عن 300 حدث جهاز استشعار.
    • يجب أن يكون استهلاك الطاقة بالدفعة أقل من 2 ميغاواط.
  • يجب أن يتضمّن [C-2-8] أداة استشعار TYPE_GAME_ROTATION_VECTOR.

  • يجب أن يتضمّن [C-2-9] أداة استشعار TYPE_SIGNIFICANT_MOTION تتوافق مع ما يلي:

    • يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
  • يجب أن يتضمّن [C-2-10] أداة استشعار TYPE_STEP_DETECTOR متوافقة مع ما يلي:

    • يجب استخدام نموذج لا يمكن تنشيطه من هذا المستشعر مع مورد احتياطي. لـ 100 حدث استشعار على الأقل.
    • يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
    • يجب أن يكون استهلاك الطاقة بالدفعة أقل من 4 ميغاواط.
  • يجب أن يتضمّن [C-2-11] جهاز استشعار TYPE_STEP_COUNTER ينطبق عليه ما يلي:

    • يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
  • يجب أن يتضمّن [C-2-12] أداة استشعار TILT_DETECTOR تتوافق مع ما يلي:

    • يجب أن يكون استهلاك الطاقة أقل من 0.5 ميغاواط عندما يكون الجهاز ثابتة و1.5 ميغاواط عند تحرك الجهاز.
  • [C-2-13] الطابع الزمني للحدث الفعلي نفسه الذي تم الإبلاغ عنه من قِبل يجب أن يكون مقياس التسارع والجيروسكوب ومقياس المغناطيسية ضمن 2.5 مللي ثانية. من بعضها البعض. الطابع الزمني للحدث الفعلي نفسه الذي تم الإبلاغ عنه من قِبل يجب أن يكون مقياس التسارع والجيروسكوب في حدود 0.25 مللي ثانية من كل منهما آخر.

  • [C-2-14] يجب أن يحتوي على الطوابع الزمنية لأحداث أداة استشعار الجيروسكوب في الوقت نفسه الأساسية كنظام فرعي للكاميرا وفي غضون 1 مللي ثانية من الخطأ.

  • [C-2-15] يجب أن يسلم عينات إلى التطبيقات في غضون 5 مللي ثانية من الوقت الذي تصبح فيه البيانات متوفرة على أي من أجهزة الاستشعار الفعلية المذكورة أعلاه بالتطبيق.

  • [C-2-16] يجب ألا يزيد استهلاك الطاقة عن 0.5 ميغاواط. عندما يكون الجهاز ثابتًا وتبلغ طاقته 2.0 ميغاواط عند تحريك الجهاز عند تفعيل أي مجموعة من أدوات الاستشعار التالية:

    • SENSOR_TYPE_SIGNIFICANT_MOTION
    • SENSOR_TYPE_STEP_DETECTOR
    • SENSOR_TYPE_STEP_COUNTER
    • SENSOR_TILT_DETECTORS
  • [C-2-17] قد يتضمّن جهاز استشعار "TYPE_PROXIMITY"، ولكن يجب أن يتضمّن في حال توفُّره حد أدنى لقدرة المخزن المؤقت لـ 100 حدث استشعار.

لاحظ أن جميع متطلبات استهلاك الطاقة في هذا القسم لا تشمل استهلاك الطاقة لمعالج التطبيقات. إنها تشمل القوة ترسمها سلسلة المستشعر بالكامل - أداة الاستشعار، وأي دائرة دعامة، وأي نظام معالجة مستشعر مخصص، إلخ.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن دعمًا مباشرًا لأداة الاستشعار، سيتم تطبيق ما يلي:

  • [C-3-1] يجب أن يعلن بشكل صحيح عن توافقه مع أنواع القنوات المباشرة مستوى الأسعار في التقارير من خلال isDirectChannelTypeSupported وgetHighestDirectReportRateLevel واجهة برمجة التطبيقات.
  • [C-3-2] يجب أن يتوافق مع نوع واحد على الأقل من نوعَي القنوات المباشرة لجهاز الاستشعار لكل أجهزة الاستشعار التي تعلن أنّها تتوافق مع القناة المباشرة لجهاز الاستشعار.
  • من المفترض أن يدعم إعداد تقارير الأحداث من خلال القناة المباشرة لأداة الاستشعار أداة استشعار (خيار غير التنشيط) من الأنواع التالية:
    • TYPE_ACCELEROMETER
    • TYPE_ACCELEROMETER_UNCALIBRATED
    • TYPE_GYROSCOPE
    • TYPE_GYROSCOPE_UNCALIBRATED
    • TYPE_MAGNETIC_FIELD
    • TYPE_MAGNETIC_FIELD_UNCALIBRATED

7.3.10. أدوات استشعار المقاييس الحيوية

للحصول على خلفية إضافية عن قياس أمان فتح القفل باستخدام المقاييس الحيوية، يُرجى الاطّلاع على قياس مستندات الأمان باستخدام المقاييس الحيوية

إذا كانت عمليات تنفيذ الأجهزة تتضمّن شاشة قفل آمنة:

  • يجب أن تتضمّن أداة استشعار للمقاييس الحيوية.

يمكن تصنيف أدوات استشعار المقاييس الحيوية على أنّها الفئة 3 (المعروفة سابقًا باسم قويةالفئة 2 (المعروفة سابقًا باسم الضعيفة)، أو الفئة 1 (المعروفة سابقًا باسم الملاءمة) بناءً على معدلات قبول الانتحال والمحتال، وعلى أمان المقاييس الحيوية. ويحدد هذا التصنيف الإمكانات التي يجب أن تتفاعل أداة استشعار المقاييس الحيوية مع المنصة ومع طرف ثالث التطبيقات. تُصنَّف أجهزة الاستشعار على أنّها من الفئة 1 تلقائيًا، وتحتاج استيفاء متطلبات إضافية كما هو موضّح أدناه إذا أردت تصنيفها إما الفئة 2 أو الفئة 3. كل من الفئة 2 والفئة 3 تحصل المقاييس الحيوية على إمكانات إضافية كما هو موضّح أدناه.

إذا كانت عملية تنفيذ الجهاز تتيح أداة استشعار للمقاييس الحيوية لطرف ثالث التطبيقات عبر android.hardware.biometrics.BiometricManager، android.hardware.biometrics.BiometricPrompt، وandroid.provider.Settings.ACTION_BIOMETRIC_ENROLL، وهي:

  • يجب أن يستوفي [C-4-1] متطلبات المقاييس الحيوية من الفئة 3 أو الفئة 2. كما هو موضح في هذا المستند.
  • [C-4-2] يجب أن يتعرف على كل اسم معلمة محدد على أنه ثابت ويحترمه في قسم المصادقون الفئة وأي مجموعات منها. وفي المقابل، يجب ألا يتم قبول أو التعرف على ثوابت الأعداد الصحيحة التي تم تمريرها إلى canAuthenticate(int) وsetAllowedAuthenticators(int) بخلاف تلك الموثقة كثوابت عامة في المصادقون وأي مجموعات منها.
  • [C-4-3] يجب تنفيذ ACTION_BIOMETRIC_ENROLL إجراء على الأجهزة التي تتضمّن أحد المقاييس الحيوية من الفئة 3 أو الفئة 2. يجب أن يعرض هذا الإجراء نقاط دخول التسجيل في الفئة 3 فقط. أو المقاييس الحيوية من الفئة 2.

في حال كانت عمليات تنفيذ الأجهزة تتيح المقاييس الحيوية السلبية، سيتم اتخاذ الإجراءات التالية:

  • [C-5-1] يجب أن يتم تلقائيًا طلب خطوة تأكيد إضافية (مثل الضغط على زر).
  • [C-SR-1] يُنصح بشدة بأن يكون لها إعداد يسمح للمستخدمين لإلغاء تفضيل التطبيق ويتطلب دائمًا إرفاق خطوة تأكيد البيانات.
  • [C-SR-2] يُنصح بشدة بتأمين إجراء التأكيد بحيث لا يمكن لنظام التشغيل أو اختراق النواة انتحال صفتها. على سبيل المثال، يعني ذلك أنّ الإجراء المؤكد هو استناد إلى زر فعلي. يتم توجيهه من خلال دبوس إدخال/إخراج (GPIO) للإدخال فقط للأغراض العامة عنصر آمن (SE) لا يمكن تشغيله بواسطة أي وسيلة أخرى غير للضغط على الأزرار الفعلية.
  • [C-5-2] يجب أيضًا تنفيذ مسار مصادقة ضمنية (بدون خطوة التأكيد) بما يتوافق مع setConfirmationrequired(boolean), التطبيقات التي يمكن إعدادها للاستخدام في تدفقات تسجيل الدخول.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن عدة أدوات استشعار حيوية، سيتم إجراء ما يلي:

  • [C-SR-3] يُنصح بشدة بطلب تأكيد مقياس حيوي واحد فقط لكل عملية مصادقة (مثلاً في حال توفُّر كل من بصمة الإصبع وأدوات استشعار الوجه على الجهاز، onAuthenticationSucceeded يجب إرسالها بعد تأكيد أيٍ منها).

للسماح لعمليات تنفيذ الأجهزة بالوصول إلى مفاتيح ملف تخزين المفاتيح تطبيقات الجهات الخارجية، فإنها:

  • يجب أن يستوفي [C-6-1] متطلبات الفئة 3 على النحو المحدّد في هذا. أدناه.
  • [C-6-2] يجب أن يتم استخدام المقاييس الحيوية من الفئة 3 فقط عند إجراء المصادقة تتطلب BIOMETRIC_strong، أو يتم استدعاء المصادقة باستخدام CryptoObject.

إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أداة استشعار للمقاييس الحيوية على أنّها من الفئة 1 (المعروفة سابقًا باسم مستوى الراحة)، وهي:

  • [C-1-1] يجب أن يكون معدل قبول خاطئ أقل من 0.002٪.
  • [C-1-2] يجب الإفصاح عن أن هذا الوضع قد يكون أقل أمانًا من رقم التعريف الشخصي القوي. أو النمط أو كلمة المرور مع تعداد مخاطر تفعليها بوضوح، إذا أن تكون معدلات قبول المحتال والانتحال أعلى من 7٪ وفقًا لقياسه بروتوكولات اختبار المقاييس الحيوية في Android
  • [C-1-9] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) بعد ما لا يزيد عن عشرين محاولة خاطئة ولا وقت تراجع أقل من تسعين ثانية للتحقق باستخدام المقاييس الحيوية - حيث المحاولة الخاطئة هي محاولة الحصول على جودة كافية (BIOMETRIC_ACQUIRED_GOOD) لا يتطابق مع مقياس حيوي مسجَّل.
  • [C-SR-4] يُنصح بشدة بتقليل إجمالي عدد المحاولات الخاطئة لإثبات الهوية باستخدام المقاييس الحيوية المحدّدة في [C-1-9] في حال كان الانتحال والاحتيال أعلى من% 7 كمقياس للمقاييس الحيوية في Android. اختبار البروتوكولات
  • [C-1-3] يجب أن تحد من معدّل محاولات التحقّق باستخدام المقاييس الحيوية - عندما المحاولة الخاطئة هي محاولة الحصول على جودة كافية (BIOMETRIC_ACQUIRED_GOOD) لا تتطابق مع المقاييس الحيوية المسجَّلة.
  • [C-SR-5] يُوصى بشدة بفرض قيود على محاولات الحدّ من المعدل 30 ثانية بعد خمس محاولات خاطئة للتحقق باستخدام المقاييس الحيوية الحد الأقصى لعدد المحاولات الخاطئة لكل [C-1-9] - حيث تكون المحاولة الخاطئة واحدة باستخدام جودة تسجيل ملائمة (BIOMETRIC_ACQUIRED_GOOD) لا تتطابق مع وهي المقاييس الحيوية المسجَّلة.
  • [C-SR-6] يُنصح بشدة باعتماد جميع أسباب تقييد المعدّل في بيئة التنفيذ الموثوقة (TEE).
  • [C-1-10] يجب إيقاف المقاييس الحيوية بعد التراجع عن المصادقة الأساسية تم تشغيله لأول مرة كما هو موضح في [C-0-2] من القسم 9.11.
  • [C-1-4] يجب منع إضافة مقاييس حيوية جديدة بدون إنشاء سلسلة من الثقة من خلال تكليف المستخدم بتأكيد وجود جهاز حالي أو إضافة جهاز جديد بيانات الاعتماد (رقم التعريف الشخصي أو النمط أو كلمة المرور) المحمية من قِبل TEE فتح Android يوفر تنفيذ مشروع المصدر الآلية في إطار العمل لتنفيذ إذًا.
  • [C-1-5] يجب إزالة جميع بيانات المقاييس الحيوية التي تحدِّد هوية المستخدم بالكامل. عند إزالة حساب المستخدم (بما في ذلك من خلال إعادة الضبط على الإعدادات الأصلية).
  • [C-1-6] يجب أن يحترم العلامة الفردية لهذا المقياس الحيوي (أي DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT، DevicePolicymanager.KEYGUARD_DISABLE_FACE ، أو DevicePolicymanager.KEYGUARD_DISABLE_IRIS ).
  • [C-1-7] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور): أ) مرة واحدة كل 24 ساعة أو أقل للأجهزة تعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث، أو b) مرة كل 72 ساعة أو أقل للأجهزة التي تتم ترقيتها من Android 8 أو الإصدارات الأقدم
  • [C-1-8] يجب أن يطلب من المستخدم الحصول على المصادقة الأساسية المقترحة (على سبيل المثال: رقم التعريف الشخصي أو النقش أو كلمة المرور) أو المقاييس الحيوية من الفئة 3 (strong) بعد أحد التالي:

    • مهلة عدم النشاط لمدة 4 ساعات
    • 3 محاولات فاشلة لمصادقة المقاييس الحيوية

  • [C-SR-7] يُنصح بشدة باستخدام المنطق في إطار العمل المقدَّم بواسطة المشروع المفتوح المصدر لنظام Android لفرض القيود المحددة في [C-1-7] و[C-1-8] للأجهزة الجديدة.

  • [C-SR-8] يُوصى بشدة بأن يكون معدل الرفض الخاطئ أقل من 10%، وفقًا لما تم قياسه على الجهاز.

  • [C-SR-9] يُنصح بشدة بأن يكون وقت الاستجابة أقل من ثانية واحدة، ويتم قياسها من وقت رصد المقاييس الحيوية إلى أن يتم فتح قفل الشاشة وهي المقاييس الحيوية المسجَّلة.

إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أحد أجهزة الاستشعار الحيوية على أنّها من الفئة 2 (المعروفة سابقًا باسم ضعيفة)، وهي:

  • يجب أن يستوفي [C-2-1] جميع متطلبات الفئة 1 أعلاه.
  • [C-2-2] يجب أن يشتمل على معدل قبول للاحتيال والمحتال لا يزيد عن 20% كما تم قياسها بواسطة بروتوكولات اختبار المقاييس الحيوية على Android.
  • [C-2-3] يجب أن يؤدي مطابقة المقاييس الحيوية في بيئة تنفيذ معزولة خارج Android مساحة المستخدم أو مساحة النواة، مثل بيئة التنفيذ الموثوقة (TEE) على شريحة ذات قناة آمنة إلى بيئة التنفيذ المعزولة.
  • [C-2-4] يجب أن تكون جميع بيانات تحديد الهوية مشفّرة وبتشفير مصادَق عليها بحيث لا يمكن الحصول عليها أو قراءتها أو تغييرها خارج بيئة تنفيذ معزولة أو شريحة ذات قناة آمنة إلى بيئة تنفيذ معزولة كما هو موثق في عملية تنفيذ الإرشادات في موقع "مشروع مفتوح المصدر لنظام Android"
  • [C-2-5] للمقاييس الحيوية المستندة إلى الكاميرا، والمصادقة المستندة إلى المقاييس الحيوية أو عند التسجيل:
    • يجب تشغيل الكاميرا في وضع يمنع اصطدام إطارات الكاميرا التي تتم قراءتها أو تعديلها خارج بيئة التنفيذ المعزولة أو شريحة من خلال قناة آمنة لبيئة التنفيذ المنعزلة
    • بالنسبة إلى حلول الكاميرا الواحدة باستخدام النموذج اللوني أحمر أخضر أزرق، يمكن ضبط إطارات الكاميرا على يمكن قراءته خارج بيئة التنفيذ المعزولة لدعم العمليات مثل معاينة التسجيل، ولكن يجب ألا تكون قابلة للتغيير.
  • [C-2-6] يجب ألا يتم تفعيل تطبيقات الجهات الخارجية للتمييز بين تسجيلات المقاييس الحيوية الفردية.
  • [C-2-7] يجب ألا يسمح بالوصول غير المشفر إلى معلومات تحديد الهوية بيانات المقاييس الحيوية أو أي بيانات مشتقة منها (مثل التضمينات) إلى إلى معالج الطلبات خارج سياق بيئة التنفيذ الموثوقة (TEE). ترقية الأجهزة التي تم إطلاقها على الإصدار 9 من نظام التشغيل Android أو الإصدارات الأقدم منه، لا تُستثنى من برنامج C-2-7.
  • [C-2-8] يجب أن يحتوي على مسار معالجة آمن بحيث يمكن بالنظام أو اختراق النواة لا يسمح بإدخال البيانات بشكل مباشر إلى المصادقة بشكل خاطئ على أنك المستخدم.

  • [C-SR-10] يُنصح بشدة بتضمين ميزة "رصد الحياة الواقعية" للجميع المقاييس الحيوية وميزة "رصد الانتباه" الخاصة بالمقاييس الحيوية للوجه

  • [C-2-9] يجب إتاحة أداة الاستشعار الحيوية للجهات الخارجية. التطبيقات.

إذا كانت عمليات تنفيذ الأجهزة تريد التعامل مع أحد أجهزة الاستشعار الحيوية على أنّها من الفئة 3 (المعروفة سابقًا باسم قوية)، وهي:

  • يجب أن يستوفي [C-3-1] جميع متطلبات الفئة 2 أعلاه، باستثناء [C-1-7] و[C-1-8].
  • يجب أن يتوفّر لدى [C-3-2] ملف تخزين مفاتيح مستنِد إلى الجهاز.
  • [C-3-3] يجب أن يتضمن معدل قبول للاحتيال والمحتال لا يزيد عن 7% كما تم قياسها بواسطة بروتوكولات اختبار المقاييس الحيوية على Android.
  • [C-3-4] يجب أن يطلب المستخدم من المستخدم تحديد مسار الاختبار الأساسي الموصى به المصادقة (مثل رقم التعريف الشخصي أو النقش أو كلمة المرور) مرة واحدة كل 72 ساعة أو أقل.
  • [C-3-5] يجب إعادة إنشاء رقم تعريف Authenticator لجميع المقاييس الحيوية من الفئة 3 والمتوافقة على الأجهزة إذا كان أي منها إعادة تسجيلهم.
  • [C-3-6] يجب تفعيل مفاتيح تخزين المفاتيح المستنِدة إلى مقاييس حيوية إلى جهة خارجية. التطبيقات.

إذا كانت عمليات تنفيذ الجهاز تحتوي على أداة استشعار بصمة الإصبع أسفل الشاشة (UDFPS): وهي:

  • [C-SR-11] يُوصى بها بشدة لمنع المنطقة القابلة للمس في UDFPS من التداخل مع التنقل باستخدام ثلاثة أزرار( وهو ما قد يطلبه بعض المستخدمين إمكانية الوصول).

7.3.12. أداة استشعار الوضعية

عمليات تنفيذ الأجهزة:

  • قد يتم دعم أداة استشعار الوضعية بزاوية 6 درجات بحريّة.

إذا كانت تطبيقات الجهاز توفّر أداة استشعار الوضعية بزاوية 6 درجات بحريّة، سيتم:

  • [C-1-1] يجب تنفيذ TYPE_POSE_6DOF والإبلاغ عنه أداة الاستشعار.
  • يجب أن يكون [C-1-2] أكثر دقة من متجه الدوران وحده.

7.3.13. أداة استشعار زاوية المفصّلة

إذا كانت عمليّات تنفيذ الأجهزة تتوافق مع أداة استشعار زاوية المفصّلة، سيتم إجراء ما يلي:

7.4. إمكانية اتصال البيانات

7.4.1. الاتصالات الهاتفية

"الاتصالات الهاتفية" كما تستخدمها واجهات برمجة تطبيقات Android، ويشير هذا المستند على وجه التحديد بالأجهزة ذات الصلة بإجراء مكالمات صوتية وإرسال رسائل SMS عبر بروتوكول GSM أو CDMA. على الرغم من أن هذه المكالمات الصوتية قد يتم أو لا يتم تبديل حزمها، أن تكون لأغراض Android مستقلة عن أي بيانات الاتصال التي يمكن تنفيذها باستخدام الشبكة نفسها. أو بعبارةٍ أخرى، تشير وظيفة "الاتصال الهاتفي" في Android وواجهات برمجة التطبيقات إلى الصوت المكالمات والرسائل القصيرة SMS. على سبيل المثال، عمليات تنفيذ الأجهزة التي لا يمكنها إجراء مكالمات أو لا يُعتبر إرسال/تلقي الرسائل القصيرة SMS أداة هاتفية، بصرف النظر عن ما إذا كانوا يستخدمون شبكة خلوية للاتصال بالبيانات.

  • قد يتم استخدام Android على الأجهزة التي لا تتضمن أجهزة اتصال هاتفي. الذي هو أن Android متوافق مع الأجهزة بخلاف الهواتف.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن الاتصال الهاتفي من خلال بروتوكول GSM أو CDMA، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يعلن عن علامة الميزة android.hardware.telephony محددة أخرى خاصة بالميزات الفرعية وفقًا للتكنولوجيا.
  • [C-1-2] يجب أن تنفيذ الدعم الكامل لواجهة برمجة التطبيقات الخاصة بتلك التقنية.
  • "يجب أن" تسمح بجميع أنواع خدمات شبكة الجوّال المتاحة (شبكة الجيل الثاني والثالث والرابع والجيل الخامس وما إلى ذلك) أثناء مكالمات الطوارئ (بغض النظر عن أنواع الشبكات التي تم تحديدها بواسطة SetAllowedNetworkTypeBitmap()).

إذا كانت عمليات تنفيذ الأجهزة لا تتضمّن أجهزة هاتفية، فإنها:

  • [C-2-1] يجب تنفيذ واجهات برمجة التطبيقات الكاملة في بيئة مستقلة.

إذا كانت عمليات تنفيذ الأجهزة تتيح استخدام واجهات eUICC أو شرائح eSIM أو شرائح SIM المضمّنة، وعليك تضمين ما يلي: آلية ملكية لإتاحة وظائف شريحة eSIM للجهات الخارجية المطورين، فهم:

  • [C-3-1] يجب أن يقدم تنفيذًا كاملاً لـ EuiccManager API.

في حال لم تؤدي عمليات تنفيذ الأجهزة إلى ضبط خاصية النظام ro.telephony.iwlan\_operation\_mode على "قديم"، سيتم ما يلي:

إذا كانت عمليات تنفيذ الجهاز تتوافق مع نظام فرعي واحد للوسائط المتعددة لعناوين IP (IMS) التسجيل لكل من خدمة الاتصال الهاتفي للوسائط المتعددة (MMTEL) ميزات خدمات الاتصالات التفاعلية (RCS) ويتوقع أن تمتثل متطلبات مشغل شبكة الجوّال المتعلقة باستخدام تسجيل الرسائل الفورية لجميع إشارات IMS لحركة البيانات:

7.4.1.1. التوافق مع حظر الأرقام

إذا أبلغت عمليات تنفيذ الأجهزة عن android.hardware.telephony feature، سيتم ما يلي:

  • [C-1-1] يجب أن يتضمن إمكانية حظر الأرقام
  • [C-1-2] يجب تنفيذ BlockedNumberContract بالكامل وواجهة برمجة التطبيقات المقابلة كما هو موضح في مستندات حزمة SDK.
  • [C-1-3] يجب حظر جميع المكالمات والرسائل من رقم هاتف في "BlockNumberProvider" بدون أي تفاعل مع التطبيقات. الاستثناء الوحيد تحدث هذه المشكلة عندما يتم رفع حظر الرقم مؤقتًا كما هو موضّح في حزمة تطوير البرامج (SDK) التوثيق.
  • [C-1-4] يجب ألا تتم الكتابة إلى موفِّر سجلّ المكالمات في النظام الأساسي لمكالمة محظورة.
  • [C-1-5] يجب ألّا يتم التواصل مع مقدِّم خدمات الاتصال الهاتفي بحثًا عن رسالة محظورة.
  • [C-1-6] يجب تنفيذ واجهة مستخدم لإدارة الأرقام المحظورة، والتي يتم فتحها الغرض من العرض هو TelecomManager.createManageBlockedNumbersIntent(). .
  • [C-1-7] يجب عدم السماح للمستخدمين الثانويين بعرض الأرقام المحظورة أو تعديلها على الجهاز حيث يفترض نظام Android الأساسي أن المستخدم الأساسي التحكم في الخدمات الهاتفية، في حالة واحدة، على الجهاز. الكل يجب أن تكون واجهة المستخدم ذات الصلة مخفية بالنسبة إلى المستخدمين الثانويين ويجب أن تكون القائمة المحظورة لا يزال يحترمه.
  • يجب نقل الأرقام المحظورة إلى مقدّم الخدمة عند تحديث الجهاز. إلى Android 7.0.
7.4.1.2. واجهة برمجة تطبيقات الاتصالات

في حال أبلغت عمليات تنفيذ الأجهزة عن android.hardware.telephony، سينطبق التالي على:

  • يجب أن يتوافق [C-1-1] مع واجهات برمجة تطبيقات ConnectionService الموضّحة في حزمة تطوير البرامج (SDK).
  • [C-1-2] يجب أن يعرض مكالمة واردة جديدة ويتيح للمستخدم إمكانية قبول المكالمة الواردة أو رفضها عندما يكون المستخدم في مكالمة جارية تم إنشاؤه من خلال تطبيق تابع لجهة خارجية لا يتيح ميزة تجميد البيانات محددة عبر CAPABILITY_SUPPORT_HOLD
  • [C-1-3] يجب أن يكون له تطبيق ينفذ InCallService:
  • [C-SR-1] يُوصى بها بشدة لإبلاغ المستخدم بأنه يجيب على مكالمة واردة سيتم إنهاء المكالمة الجارية.

    يستوفي تنفيذ بروتوكول AOSP هذه المتطلبات من خلال إشعار تنبيهي والتي تشير للمستخدم إلى أن الرد على مكالمة واردة سيؤدي إلى سيتم إنهاء المكالمة الأخرى.

  • [C-SR-1] يُنصح بشدة بتحميل تطبيق برنامج الاتصال التلقائي الذي عرض إدخال في سجلّ المكالمات واسم تطبيق تابع لجهة خارجية في سجلّ المكالمات عندما يضبط التطبيق التابع لجهة خارجية EXTRA_LOG_SELF_MANAGED_CALLS مفتاح إضافي على الجهاز من PhoneAccount إلى true.

  • [C-SR-2] يُنصح بها بشدة للتعامل مع سماعات الرأس KEYCODE_MEDIA_PLAY_PAUSE وKEYCODE_HEADSETHOOK حدثين android.telecom واجهات برمجة التطبيقات على النحو التالي:

    • الاتصال بالرقم Connection.onDisconnect() عند رصد ضغطة قصيرة على الحدث الرئيسي أثناء مكالمة جارية.
    • الاتصال بالرقم Connection.onAnswer() عند رصد ضغطة قصيرة على الحدث الرئيسي أثناء مكالمة واردة.
    • الاتصال بالرقم Connection.onReject() عند رصد ضغطة مطوّلة على الحدث الرئيسي أثناء مكالمة واردة.
    • تبديل حالة كتم صوت جهاز CallAudioState

7.4.2 معيار IEEE 802.11 (لشبكات Wi-Fi)

عمليات تنفيذ الأجهزة:

  • يجب أن يتوفر دعم لشكل واحد أو أكثر من أشكال 802.11.

إذا كانت تنفيذات الجهاز تتضمن دعم 802.11 وكشف وظيفة أخرى إلى تطبيق تابع لجهة خارجية، فإنها:

  • [C-1-1] يجب أن ينفذ واجهة برمجة تطبيقات Android المقابلة.
  • [C-1-2] يجب الإبلاغ عن علامة ميزة الجهاز android.hardware.wifi.
  • [C-1-3] يجب تنفيذ multicast API كما هو موضّح في مستندات حزمة SDK.
  • [C-1-4] يجب أن يتوافق مع نظام أسماء النطاقات ذي البث المتعدد (mDNS) ويجب ألا يصف حزم mDNS (224.0.0.251) في أي وقت عمل، بما في ذلك:
    • حتى عندما لا تكون الشاشة في حالة نشطة.
    • لتطبيقات جهاز Android TV، حتى عندما يكون في وضع الاستعداد حالات القوة.
  • [C-1-5] يجب ألا يتعامل مع WifiManager.enableNetwork() طلب البيانات إلى طريقة واجهة برمجة التطبيقات كمؤشر كافٍ لتبديل نوع البيانات النشطة حاليًا Network الذي يتم استخدامه تلقائيًا لعدد زيارات التطبيق ويتم عرضه بواسطة ConnectivityManager طرق واجهة برمجة التطبيقات، مثل getActiveNetwork وregisterDefaultNetworkCallback. بمعنى آخر، قد يعطِّلون فقط الوصول إلى الإنترنت الذي توفره أي مزوّد شبكة آخر (مثل بيانات الجوّال) إذا نجح في التحقق من الصحة أن شبكة Wi-Fi توفر الاتصال بالإنترنت.
  • [C-1-6] يُوصى بها بشدة، عندما ConnectivityManager.reportNetworkConnectivity() ما يسمى، إعادة تقييم الاتصال بالإنترنت على Network، بعد أن يحدّد التقييم أنّ قيمة Network الحالية لم تعُد توفّر اتصال بالإنترنت، والتبديل إلى أي شبكة أخرى متاحة (مثل شبكة الجوّال البيانات) التي توفر الوصول إلى الإنترنت.
  • [C-1-7] يجب أن عشوائيًا عنوان MAC المصدر ورقم تسلسل التحقيق إطارات الطلب، مرة واحدة في بداية كل عملية فحص، في حين أن STA غير متصل.
  • [C-1-8] يجب استخدام عنوان MAC واحد متسق (يجب عدم ترتيب MAC عشوائيًا في منتصف الطريق من خلال عملية فحص).
  • [C-1-9] يجب تكرار رقم تسلسل طلب التحقيق بالشكل المعتاد (بالتسلسل) بين طلبات التحقيق في الفحص.
  • [C-1-10] يجب اختيار رقم تسلسل طلب التحقيق عشوائيًا بين الاستطلاع الأخير طلب الفحص وطلب الفحص الأول لإجراء الفحص التالي.
  • [C-SR-1] يُنصح بشدة بإجراء ترتيب عشوائي لعنوان MAC المصدر المستخدَم في جميع اتصالات STA بنقطة وصول (AP) أثناء الربط المرتبطة.
    • يجب أن يستخدم الجهاز عنوان MAC عشوائيًا مختلفًا لكل معرِّف SSID (FQDN for Passpoint) الذي يتواصل معه.
    • يجب أن يوفر الجهاز للمستخدم خيارًا للتحكم في التوزيع العشوائي حسب SSID (FQDN لنقطة المرور) باستخدام خيارات عشوائية عشوائيًا، ويجب تعيين الوضع الافتراضي للاتصال بشبكة Wi-Fi الجديدة من الإعدادات ليتم توزيعها عشوائيًا.
  • [C-SR-2] يُنصَح بشدة باستخدام معرّف مجموعة خدمات الأساسية (BSSID) عشوائيًا لأي نقطة وصول (AP) الإنشاء.
    • يجب اختيار عنوان MAC عشوائيًا واستمراره وفقًا لمعرّف SSID الذي يستخدمه نقطة الوصول
    • قد يوفر الجهاز للمستخدم خيارًا لتعطيل هذه الميزة. في حال توفير مثل هذا الخيار، يجب تفعيل التوزيع العشوائي تلقائيًا.

إذا كانت عمليات تنفيذ الجهاز تتضمّن توافقًا مع وضع توفير الطاقة بشبكة Wi-Fi على النحو المحدّد وفقًا لمعيار IEEE 802.11، فإنهم:

  • يجب إيقاف وضع توفير الطاقة عبر شبكة Wi-Fi عند تثبيت تطبيق قفل WIFI_MODE_FULL_HIGH_PERF أو قفل WIFI_MODE_FULL_LOW_LATENCY من خلال WifiManager.createWifiLock() وWifiManager.WifiLock.acquire() واجهات برمجة التطبيقات والقفل نشط.
  • [C-3-2] متوسط وقت الاستجابة للإرسال والاستقبال بين الجهاز ونقطة وصول عندما يكون الجهاز في "قفل وقت الاستجابة المنخفض" لشبكة Wi-Fi يجب أن يكون وضع (WIFI_MODE_FULL_LOW_LATENCY) أصغر من وقت الاستجابة أثناء وضع "قفل الأداء العالي" في شبكة Wi-Fi (WIFI_MODE_FULL_HIGH_PERF).
  • [C-SR-3] يُوصى بها بشدة لتقليل وقت استجابة إرسال البيانات ذهابًا وإيابًا في شبكة Wi-Fi عند الحصول على قفل وقت الاستجابة السريع (WIFI_MODE_FULL_LOW_LATENCY) ويدخل حيز التنفيذ.

إذا كانت إجراءات تنفيذ الجهاز تتوافق مع شبكة Wi-Fi وتستخدم Wi-Fi للبحث عن الموقع، وهي:

  • [C-2-1] يجب توفير ميزة للمستخدم لتفعيل/إيقاف قراءة القيمة من خلال WifiManager.isScanAlwaysAvailable طريقة واجهة برمجة التطبيقات.
7.4.2.1. اتصال Wi-Fi مباشر

عمليات تنفيذ الأجهزة:

  • يجب أن يشمل ذلك الدعم لاتصال Wi-Fi المباشر (شبكة Wi-Fi من نظير إلى نظير).

إذا كانت عمليات تنفيذ الأجهزة تتضمّن إمكانية الاتصال بشبكة Wi-Fi المباشرة، يعني ذلك ما يلي:

  • [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات Android المقابلة كما هو موضّح في مستندات حزمة SDK.
  • [C-1-2] يجب الإبلاغ عن ميزة الأجهزة android.hardware.wifi.direct.
  • [C-1-3] يجب أن يتوافق مع اتصال Wi-Fi المعتاد.
  • [C-1-4] يجب أن يتوافق مع عمليات Wi-Fi وWi-Fi Direct معًا.
  • [C-SR-1] يُنصَح بشدة باستخدام عنوان MAC المصدر عشوائيًا لجميع المستخدمين اتصالات Wi-Fi Direct التي تم تشكيلها حديثًا.

عمليات تنفيذ الأجهزة:

في حال كانت عمليات تنفيذ الجهاز تتضمّن دعمًا لـ TDLS وTDLS من خلال واجهة برمجة تطبيقات WiFiManager، وهي:

  • [C-1-1] يجب أن يعلن عن توفّر TDLS من خلال WifiManager.isTdlsSupported.
  • "يجب" استخدام "TDL" فقط عندما يكون ذلك ممكنًا ومفيدًا.
  • يجب أن يكون لديك بعض الإرشادات وألّا تستخدم "تحديد المسار الفرعي" (TDLS) عندما يكون من المحتمَل أن يكون أداؤها أسوأ من المرور عبر نقطة وصول Wi-Fi.
7.4.2.3. التعرُّف على شبكة Wi-Fi

عمليات تنفيذ الأجهزة:

إذا كانت عمليات تنفيذ الجهاز تتضمن دعم خدمة Wi-Fi Aware وكشفت الوظائف إلى تطبيقات الجهات الخارجية، فيتم إجراء ما يلي:

  • [C-1-1] يجب تنفيذ واجهات برمجة تطبيقات WifiAwareManager كما هو موضّح في مستندات حزمة تطوير البرامج (SDK):
  • [C-1-2] يجب أن يعلن عن علامة الميزة android.hardware.wifi.aware.
  • [C-1-3] يجب أن يتوافق مع عمليات Wi-Fi وWi-Fi في الوقت نفسه.
  • [C-1-4] يجب اختيار عنوان واجهة إدارة Wi-Fi Aware عشوائيًا على فترات زمنية لمدة لا تزيد عن 30 دقيقة وعندما تكون خدمة Wi-Fi Aware مفعّلة إلا إذا كان عملية النطاق المستمرة جارية أو مسار بيانات Aware نشط (العشوائية غير متوقعًا ما دام مسار البيانات نشطًا).

إذا كانت عمليات تنفيذ الجهاز تتضمن دعم خدمة Wi-Fi Aware موقع Wi-Fi كما هو موضح في القسم 7.4.2.5 تعرض هذه الوظائف لتطبيقات تابعة لجهات خارجية، وتضمن لها ما يلي:

7.4.2.4. نقطة مرور Wi-Fi

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع معيار 802.11 (Wi-Fi)، سيتم ما يلي:

  • [C-1-1] يجب أن يتوافق مع نقطة مرور Wi-Fi.
  • [C-1-2] يجب تنفيذ واجهات برمجة تطبيقات WifiManager ذات الصلة بنقطة المرور باعتبارهما كما هو موضح في وثائق حزمة SDK.
  • [C-1-3] يجب أن يتوافق مع معيار IEEE 802.11u، ذي الصلة على وجه التحديد إلى اكتشاف الشبكة وتحديدها، مثل الإعلانات العامة بروتوكول خدمات (GAS) وبروتوكول طلب شبكة الوصول (ANQP).
  • [C-1-4] يجب أن يعلن عن علامة ميزة android.hardware.wifi.passpoint.
  • [C-1-5] يجب أن يتبع تنفيذ AOSP لاكتشاف ومطابقة وربط إلى شبكات نقطة المرور.
  • [C-1-6] يجب أن يتوافق مع المجموعة الفرعية التالية على الأقل من إعدادات الجهاز البروتوكولات كما هو موضح في نقطة مرور Wi-Fi Alliance R2: EAP-TTLS وSOAP-XML.
  • [C-1-7] يجب أن يعالج شهادة خادم AAA كما هو موضح في مواصفات نقطة الاتصال 2.0 R3.
  • [C-1-8] يجب أن يتيح تحكُّم المستخدم في توفير المتطلبات اللازمة من خلال "أداة اختيار شبكة Wi-Fi".
  • [C-1-9] يجب أن تظل إعدادات نقطة المرور مستمرة في جميع عمليات إعادة التشغيل.
  • [C-SR-1] يُوصى بها بشدة لدعم الأحكام والشروط ميزة القبول.
  • [C-SR-2] يُوصى بها بشدة لدعم ميزة معلومات المكان.

عكس ذلك، إذا كانت عمليات تنفيذ الجهاز لا تتضمّن إمكانية الاتصال بشبكة Wi-Fi نقطة المرور:

  • [C-2-1] تنفيذ "WifiManager" بخصوص نقطة المرور يجب أن تعرض واجهات برمجة التطبيقات العلامة UnsupportedOperationException.

في حال توفير مفتاح تحكّم عام لإيقاف نقطة المرور للمستخدم، يجب تنفيذ ما يلي:

  • [C-3-1] يجب تفعيل "نقطة المرور" تلقائيًا.
7.4.2.5. موقع Wi-Fi (وقت الذهاب والعودة عند الاتصال بشبكة Wi-Fi: ميزة "المراسلة النصية في الوقت الفعلي")

عمليات تنفيذ الأجهزة:

إذا كانت إجراءات تنفيذ الجهاز تتضمن توافقًا مع موقع Wi-Fi وكشف الوظائف إلى تطبيقات الجهات الخارجية، فيتم إجراء ما يلي:

  • [C-1-1] يجب تنفيذ واجهات برمجة تطبيقات WifiRttManager كما هو موضّح في مستندات حزمة تطوير البرامج (SDK):
  • [C-1-2] يجب أن يعلن عن علامة الميزة android.hardware.wifi.rtt.
  • [C-1-3] يجب اختيار عنوان MAC للمصدر عشوائيًا لكل سلسلة رسائل RTT. التي يتم تنفيذها أثناء استخدام واجهة Wi-Fi التي يتم فيها إرسال ميزة "المراسلة النصية في الوقت الفعلي" التي يتم تنفيذها غير مرتبطة بنقطة وصول.
  • [C-1-4] يجب أن تكون دقيقة في نطاق 2 متر عند نطاق ترددي 80 ميغاهرتز عند الشريحة المئوية الثامنة والثلاثين (كما تم حسابها مع عمود دالة التوزيع).
7.4.2.6. إيقاف نقل بيانات شبكة Wi-Fi Keepalive

عمليات تنفيذ الأجهزة:

  • يجب أن يشمل ذلك الدعم لنقل بيانات رسالة التحقُّق من الاتصال بشبكة Wi-Fi.

إذا كانت عمليات تنفيذ الجهاز تتضمن دعم نقل بيانات رسالة التحقق من الاتصال بشبكة Wi-Fi تعرض الوظائف للتطبيقات التابعة لجهات خارجية، فإنّها:

  • [C-1-1] يجب أن يتيح SocketKeepAlive.

  • [C-1-2] يجب أن يتوافق مع ما لا يقل عن ثلاث خانات متزامنة للبقاء على الاتصال عبر شبكة Wi-Fi منفذ واحد على الأقل للبقاء على الاتصال عبر شبكة الجوّال.

إذا لم تكن عمليات تنفيذ الجهاز تتضمّن توافقًا مع نقل بيانات رسالة التحقُّق من الاتصال بشبكة Wi-Fi، وهي:

7.4.2.7. الاتصال السهل عبر Wi-Fi (بروتوكول توفير المتطلبات اللازمة للأجهزة)

عمليات تنفيذ الأجهزة:

إذا كانت تنفيذات الجهاز تتضمن دعمًا لـ Wi-Fi Easy Connect وكشف الوظائف للتطبيقات التابعة للجهات الخارجية، فإنها:

7.4.2.8. التحقُّق من شهادة خادم Wi-Fi للمؤسسات

إذا لم يتم التحقّق من صحة شهادة خادم Wi-Fi أو خادم Wi-Fi لم يتم تعيين اسم النطاق، وعمليات تنفيذ الأجهزة:

  • يُوصى بشدة [C-SR-1] بعدم توفير خيار للمستخدم لإضافة شبكة Wi-Fi للمؤسسات يدويًا في تطبيق الإعدادات.

7.4.3. البلوتوث

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع الملف الشخصي لـ Bluetooth Audio:

  • يجب أن تتوافق مع برامج ترميز الصوت المتقدّمة وبرامج ترميز الصوت عبر البلوتوث (مثل LDAC).

إذا كانت تطبيقات الأجهزة تتيح استخدام HFP وA2DP وAVRCP، سيتم ما يلي:

  • يجب أن يتوافق مع إجمالي 5 أجهزة متصلة على الأقل.

في حال كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.vr.high_performance الميزات، فهي:

  • [C-1-1] يجب أن يتوافق مع Bluetooth 4.2 وBluetooth LE Data Length.

يتيح Android استخدام البلوتوث والبلوتوث منخفض الطاقة.

إذا كانت عمليات تنفيذ الجهاز تشمل التوافق مع البلوتوث والبلوتوث منخفضة الطاقة، وهي:

  • [C-2-1] يجب أن يفصح عن الميزات المرتبطة بالمنصّة (android.hardware.bluetooth وandroid.hardware.bluetooth_le) على التوالي) وتنفيذ واجهات برمجة التطبيقات للنظام الأساسي.
  • "يجب تنفيذ" الملفات الشخصية ذات الصلة عبر البلوتوث، مثل A2DP وAVRCP وOBEX وHFP وما إلى ذلك على النحو المناسب للجهاز

إذا كانت عمليات تنفيذ الأجهزة تتضمّن إمكانية استخدام Bluetooth Low Energy (BLE)، سيتم إجراء ما يلي:

  • يجب أن يُعلِن [C-3-1] عن ميزة الأجهزة "android.hardware.bluetooth_le".
  • [C-3-2] يجب تفعيل البلوتوث المستند إلى GATT (الملف الشخصي للسمات العامة) واجهات برمجة التطبيقات كما هو موضح في وثائق حزمة SDK android.Bluetooth
  • [C-3-3] يجب الإبلاغ عن القيمة الصحيحة BluetoothAdapter.isOffloadedFilteringSupported() للإشارة إلى ما إذا كانت منطق الفلترة لعرض ScanFilter تم تنفيذ فئات واجهة برمجة التطبيقات.
  • [C-3-4] يجب الإبلاغ عن القيمة الصحيحة BluetoothAdapter.isMultipleAdvertisementSupported() للإشارة إلى ما إذا كانت الإعلانات منخفضة الطاقة متاحة
  • [C-3-5] يجب تنفيذ مهلة عنوان خاص قابل للحل (RPA) بعد الآن أكثر من 15 دقيقة مع تدوير العنوان عند انتهاء المهلة لحماية خصوصية المستخدم عندما يستخدم الجهاز تقنية BLE لإجراء مسح ضوئي أو لعرض الإعلانات. لمنع هجمات التوقيت، يجب أيضًا توزيع الفواصل الزمنية بشكل عشوائي. بين 5 و15 دقيقة
  • يجب أن يتيح تحميل منطق الفلترة إلى شريحة البلوتوث. عند تنفيذ ScanFilter API.
  • يجب أن يتيح تحميل المسح المجمَّع إلى شريحة البلوتوث.
  • يجب أن يدعم الإعلان المتعدد في 4 خانات على الأقل.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع Bluetooth LE وتستخدم Bluetooth LE for فحص الموقع، فإنهم:

  • [C-4-1] يجب توفير ميزة للمستخدم لتفعيل/إيقاف قراءة القيمة من خلال System API BluetoothAdapter.isBleScanAlwaysAvailable().

إذا كانت عمليات تنفيذ الأجهزة تشمل التوافق مع البلوتوث المنخفض الطاقة (Bluetooth) وسماعات الأذن الطبية (Hearing Aids) الملف الشخصي، كما هو موضح في دعم سماعات الأذن الطبية باستخدام Bluetooth LE:

إذا كانت عمليات تنفيذ الجهاز تشمل التوافق مع البلوتوث أو Bluetooth Low Energy، وهي:

  • [C-6-1] يجب أن يحظر الوصول إلى أي بيانات وصفية خاصة بالبلوتوث (مثل فحص النتائج) التي يمكن استخدامها لمعرفة موقع الجهاز، ما لم يجتاز التطبيق الذي قدّم الطلب android.permission.ACCESS_FINE_LOCATION بنجاح التحقّق من الإذن استنادًا إلى حالة المقدّمة/الخلفية الحالية

إذا كانت عمليات تنفيذ الأجهزة تتضمّن توافقًا مع البلوتوث أو Bluetooth Low Energy ولا يتضمّن بيان التطبيق إقرارًا من المطوّر ينص على أنها لا تحصل على الموقع من البلوتوث، بعد ذلك، سيقومون بما يلي:

7.4.4 الاتصالات القريبة المدى

عمليات تنفيذ الأجهزة:

  • يجب أن تشتمل هذه الوسائط على جهاز إرسال واستقبال وأجهزة ذات صلة بالحقل القريب من الحقل. الاتصالات (NFC)
  • [C-0-1] يجب تنفيذ android.nfc.NdefMessage android.nfc.NdefRecordواجهات برمجة التطبيقات حتى إذا لم تكن تتضمن دعمًا لتقنية الاتصال القصير المدى (NFC) أن تعلن عن الميزة android.hardware.nfc لأن الفئات تمثل تنسيق تمثيل بيانات مستقل عن البروتوكول.

إذا كانت عمليات تنفيذ الأجهزة تشمل أجهزة NFC ونخطط لتوفيرها تطبيقات الجهات الخارجية، فإنها:

  • [C-1-1] يجب الإبلاغ عن ميزة android.hardware.nfc من طريقة android.content.pm.PackageManager.hasSystemFeature().
  • يجب أن يكون قادرًا على قراءة رسائل NDEF وكتابتها عبر تقنية NFC التالية على النحو التالي:
  • [C-1-2] يجب أن يكون قادرًا على العمل كقارئ أو كاتب منتدى NFC (على النحو المحدَّد في المواصفات الفنية لمنتدى NFC) NFCForum-TS-DigitalProtocol-1.0) عبر معايير NFC التالية:
    • NFCA (ISO14443-3A)
    • NFCB (ISO14443-3B)
    • NfcF (JIS X 6319-4)
    • IsoDep (ISO 14443-4)
    • أنواع علامات منتدى NFC 1 و2 و3 و4 و5 (يحدّدها منتدى NFC)
  • [C-SR-1] يُنصح بشدة بأن تكون قادرًا على قراءة وكتابة NDEF بالإضافة إلى البيانات الأولية عبر معايير NFC التالية. لاحظ أن في حين أن معايير الاتصال القصير المدى (NFC) موصى بها بشدة، ومن المخطط تغيير تعريف التوافق لإصدار مستقبلي تغيير هذه إليه. هذه المعايير اختيارية في هذا الإصدار ولكنّها ستكون مطلوبة. في الإصدارات المستقبلية. الأجهزة الحالية والجديدة التي تشغّل هذا الإصدار من نشجِّع نظام Android بشدة على استيفاء هذه المتطلبات الآن يمكنهم الترقية إلى إصدارات المنصة المستقبلية.

  • [C-1-13] يجب إجراء استطلاع لكل التكنولوجيات المتوافقة أثناء اكتشاف الاتصال القصير المدى (NFC) الحالي.

  • يجب أن يكون في وضع اكتشاف NFC عندما يكون الجهاز نشطًا مع تفعيل الشاشة وفتح قفل الشاشة.

  • يجب أن تكون قادرة على قراءة الرمز الشريطي وعنوان URL (إذا تم ترميزه) الرمز الشريطي لتقنية NFC على Thinfilm المنتجات.

تجدر الإشارة إلى أنّ الروابط المتاحة للجميع لا تتوفّر لنظامَي JIS وISO وNFC. مواصفات المنتدى المذكورة أعلاه.

يتيح Android استخدام وضع محاكاة بطاقة مضيف NFC (HCE).

إذا كانت تطبيقات الجهاز تتضمن مجموعة شرائح لوحدة تحكم NFC قادرة على استخدام وظيفة HCE (على سبيل المثال، تقنية NfcA و/أو NfcB أو تدعم توجيه "رقم تعريف التطبيق" (AID)، وهي:

  • [C-2-1] يجب أن يبلغ عن ثابت خاصية android.hardware.nfc.hce.
  • [C-2-2] يجب أن يتوافق مع واجهات برمجة تطبيقات NFC HCE على النحو التالي: محدد في حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

إذا كانت عمليّات تنفيذ الجهاز تتضمّن مجموعة شرائح لوحدة تحكّم NFC يمكنها استخدام وظيفة محاكاة البطاقة المُضيفة (HCE) لشبكات NFCF، وتنفيذ هذه الميزة على تطبيقات تابعة لجهات خارجية، فإنها:

إذا كانت عمليّات تنفيذ الجهاز تتضمّن توافقًا عامًا مع NFC كما هو موضَّح في هذا وندعم تقنيات MIFARE (إصدار MiFARE Classic، MiFARE Ultralight وNDEF على MIFARE Classic) من دور القارئ/الكاتب:

  • [C-4-1] يجب تنفيذ واجهات برمجة تطبيقات Android المقابلة لها على النحو الموثق من حزمة تطوير البرامج (SDK) لنظام التشغيل Android.
  • [C-4-2] يجب الإبلاغ عن الميزة com.nxp.mifare من android.content.pm.PackageManager.hasSystemFeature() . يُرجى ملاحظة أنّ هذه الميزة ليست من ميزات Android العادية، وبالتالي لا تظهر كثابت في الفئة android.content.pm.PackageManager.

7.4.5 بروتوكولات الشبكة وواجهات برمجة التطبيقات

7.4.5.1. الحد الأدنى لإمكانات الشبكة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتضمن الدعم لشكل واحد أو أكثر من أشكال شبكات البيانات. يجب أن تتضمن عمليات تنفيذ الأجهزة على وجه التحديد دعمًا معيار بيانات واحد على الأقل قادر على 200 كيلوبت/ثانية أو أكثر. أمثلة على تشمل التقنيات التي تستوفي هذا الشرط EDGE وHSPA وEV-DO 802.11g، وشبكة إيثرنت ورقم PAN للبلوتوث.
  • يجب أن تتضمن أيضًا إمكانية استخدام بيانات لاسلكية شائعة واحدة على الأقل. مثل 802.11 (Wi-Fi)، عندما يكون معيار الشبكة المادي (مثل Ethernet) هو اتصال البيانات الأساسي.
  • قد تنفذ أكثر من شكل واحد من أشكال اتصال البيانات.
7.4.5.2. بروتوكول IPv6

عمليات تنفيذ الأجهزة:

  • [C-0-2] يجب أن يحتوي على حزم شبكات IPv6 وأن تدعم IPv6 باستخدام واجهات برمجة التطبيقات المُدارة، مثل java.net.Socket java.net.URLConnection، بالإضافة إلى واجهات برمجة التطبيقات الأصلية، مثل AF_INET6 والمقابس.
  • [C-0-3] يجب تفعيل IPv6 تلقائيًا.
    • يجب أن يضمن أن اتصال IPv6 موثوق به مثل IPv4، على سبيل المثال:
      • [C-0-4] يجب الحفاظ على اتصال IPv6 في وضع القيلولة.
      • [C-0-5] يجب ألا يؤدي تقييد المعدل إلى فقدان الجهاز لبروتوكول IPv6 على أي شبكة متوافقة مع بروتوكول IPv6 تستخدم 180 ثانية على الأقل
  • [C-0-6] يجب أن يوفر تطبيقات الجهات الخارجية إمكانية اتصال IPv6 مباشر عندما تكون متصلاً بشبكة IPv6، بدون أي شكل من أشكال العناوين أو ترجمة المنفذ التي تحدث محليًا على الجهاز. تعمل كل من واجهات برمجة التطبيقات المُدارة مثل Socket#getLocalAddress أو Socket#getLocalPort) ويجب أن تعرض واجهات برمجة تطبيقات NDK مثل getsockname() أو IPV6_PKTINFO عنوان IP والمنفذ اللذين يستخدمانهما بالفعل لإرسال واستقبال الحزم على وتظهر كخادم عنوان IP المصدر وخوادم المنفذ إلى الإنترنت (الويب).

ويعتمد المستوى المطلوب من دعم IPv6 على نوع الشبكة، كما هو موضح في المتطلبات التالية.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع شبكة Wi-Fi، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتيح التشغيل على حزمتَي بروتوكول الإنترنت وIPv6 فقط على شبكة Wi-Fi.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع شبكة إيثرنت، سيتم ما يلي:

  • [C-2-1] يجب أن يتيح تشغيل بروتوكولات حزمتَي بروتوكول الإنترنت وبروتوكول IPv6 فقط. إيثرنت

إذا كانت عمليات تنفيذ الأجهزة تتيح بيانات شبكة الجوّال، سيتم اتخاذ الإجراءات التالية:

  • [C-3-1] يجب أن يتوافق مع تشغيل IPv6 (IPv6-only وربما تكديس مزدوج) على شبكة الجوّال.

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع أكثر من نوع شبكة واحد (مثل اتصال Wi-Fi وبيانات شبكة الجوّال)، فإن:

  • [C-4-1] يجب أن يستوفي في الوقت نفسه المتطلبات أعلاه على كل شبكة عندما يكون الجهاز متصلاً بأكثر من نوع شبكة واحد في الوقت نفسه
7.4.5.3. بوابات مشروطة

يشير البوابة المشروطة إلى شبكة تتطلب تسجيل الدخول من الحصول على اتصال بالإنترنت.

إذا كانت عمليات تنفيذ الأجهزة توفر تنفيذًا كاملاً android.webkit.Webview API، وهي:

  • [C-1-1] يجب تقديم تطبيق مدخل مشروط الوصول إليه لمعالجة الغرض ACTION_CAPTIVE_PORTAL_SIGN_IN وعرض صفحة تسجيل الدخول إلى المدخل المقيد، عن طريق إرسال هذا الغرض، على طلب واجهة برمجة تطبيقات النظام ConnectivityManager#startCaptivePortalApp(Network, Bundle)
  • [C-1-2] يجب إجراء اكتشاف المداخل المشروطة وإمكانية تسجيل الدخول من خلال تطبيق المدخل المشروط عند اتصال الجهاز إلى أي نوع شبكة، بما في ذلك شبكة الجوّال/الجوّال، وشبكة Wi-Fi، وإيثرنت أو البلوتوث.
  • [C-1-3] يجب أن يتيح تسجيل الدخول إلى البوابات المقيّدة باستخدام نظام أسماء النطاقات الواضح عند ضبط الجهاز على استخدام الوضع المتشدد لنظام أسماء النطاقات الخاص.
  • [C-1-4] يجب استخدام "نظام أسماء النطاقات" (DNS) المشفر وفقًا لمستندات حزمة تطوير البرامج (SDK) android.net.LinkProperties.getPrivateDnsServerName وandroid.net.LinkProperties.isPrivateDnsActive لجميع حركات بيانات الشبكة التي لا تتصل بشكل صريح مدخل مقيد.
  • [C-1-5] يجب أن يضمن ذلك أثناء تسجيل المستخدم الدخول إلى مستخدم مقيّد بوابة، الشبكة الافتراضية التي تستخدمها التطبيقات (كما تم إرجاعها بواسطة ConnectivityManager.getActiveNetwork، ConnectivityManager.registerDefaultNetworkCallback, وتستخدم بشكل افتراضي في واجهات برمجة تطبيقات شبكات Java مثل java.net.Socket، وواجهات برمجة التطبيقات الأصلية مثلconnect())، أي شبكة أخرى متاحة توفّر خدمة الاتصال بالإنترنت، في حال توفّرها

7.4.6. إعدادات المزامنة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب تشغيل إعداد المزامنة التلقائية الرئيسي بشكل افتراضي بحيث الطريقة getMasterSyncAutomatically() يعرض "true".

7.4.7. توفير البيانات

إذا كانت عمليات تنفيذ الأجهزة تتضمّن اتصالاً تفرض تكلفة استخدام، تكون:

  • [C-SR-1] يُنصح بشدة بتوفير وضع توفير البيانات.

إذا كانت عمليات تنفيذ الأجهزة توفر وضع "توفير البيانات"، سيتم ما يلي:

في حال لم توفِّر عمليات تنفيذ الأجهزة وضع "توفير البيانات"، سيحدث ما يلي:

7.4.8 العناصر الآمنة

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع إمكانية استخدام Open Mobile API عناصر آمنة وإتاحتها للتطبيقات التابعة لجهات خارجية، فإنّها:

7.5. الكاميرات

إذا كانت عمليات تنفيذ الأجهزة تتضمّن كاميرا واحدة على الأقل، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يعلن عن علامة الميزة android.hardware.camera.any.
  • [C-1-2] يجب أن يكون بالإمكان تخصيص التطبيق للتطبيق في الوقت نفسه 3 صور نقطية بتنسيق RGBA_8888 تساوي حجم الصور الناتجة عن أداة استشعار الكاميرا ذات الدقة الأكبر على الجهاز، أثناء فتح الكاميرا الغرض من المعاينة الأساسية والتسجيل المستمر.
  • [C-1-3] يجب التأكّد من أنّ تطبيق الكاميرا التلقائي المثبَّت مسبقًا نوايا المعالجة MediaStore.ACTION_IMAGE_CAPTURE، MediaStore.ACTION_IMAGE_CAPTURE_SECURE, أو MediaStore.ACTION_VIDEO_CAPTURE, مسؤول عن إزالة موقع المستخدم من البيانات الوصفية للصورة قبل إرساله إلى التطبيق المستلم عند عدم لديهم ACCESS_FINE_LOCATION.

7.5.1. الكاميرا الخلفية

الكاميرا الخلفية هي كاميرا توجد على جانب الجهاز المقابل للشاشة أي صور مشاهد في الجانب الأخير من الجهاز، مثل الكاميرا التقليدية.

عمليات تنفيذ الأجهزة:

  • يجب أن يشتمل على كاميرا خلفية.

إذا كانت تصاميم الجهاز تتضمّن كاميرا خلفية واحدة على الأقل، سيتم إجراء ما يلي:

  • [C-1-1] يجب الإبلاغ عن علامة الميزة android.hardware.camera android.hardware.camera.any
  • [C-1-2] يجب أن تبلغ درجة دقة الهاتف 2 ميغابكسل على الأقل.
  • يجب أن يتم إما تنفيذ التركيز التلقائي للجهاز أو التركيز التلقائي للبرامج في برنامج تشغيل الكاميرا (مرئي لبرنامج التطبيق).
  • قد يحتوي على أجهزة ذات تركيز ثابت أو EDOF (عمق مجال ممتد).
  • وقد يتضمن فلاشًا.

إذا كانت الكاميرا تتضمن وميضًا:

  • [C-2-1] يجب ألا تتم إضاءة مصباح الفلاش أثناء تم تسجيل مثيل واحد (android.hardware.Camera.PreviewCallback). على سطح معاينة الكاميرا، ما لم يتم تفعيل التطبيق بشكل صريح ضوء الفلاش من خلال تفعيل إحدى السمتين FLASH_MODE_AUTO أو FLASH_MODE_ON لكائن Camera.Parameters. لاحظ أن هذا القيد لا ينطبق على نظام الكاميرا المضمَّن في الجهاز، ولكن لجهات خارجية فقط التطبيقات التي تستخدم Camera.PreviewCallback.

7.5.2 الكاميرا الأمامية

الكاميرا الأمامية هي كاميرا توجد على نفس الجانب من الجهاز على الشاشة أي كاميرا تُستخدم عادةً لتصوير المستخدم، مثل لعقد اجتماعات الفيديو والتطبيقات المشابهة

عمليات تنفيذ الأجهزة:

  • وقد يشتمل على كاميرا أمامية.

إذا كانت عمليات تنفيذ الجهاز تتضمّن كاميرا أمامية واحدة على الأقل، سيتم إجراء ما يلي:

  • [C-1-1] يجب الإبلاغ عن علامة الميزة android.hardware.camera.any android.hardware.camera.front
  • [C-1-2] يجب أن تكون درجة الدقة VGA (640x480 بكسل) على الأقل.
  • [C-1-3] يجب ألا يتم استخدام كاميرا أمامية كإعداد افتراضي للكاميرا، ويجب ألا يضبط واجهة برمجة التطبيقات هذه التعامل مع الكاميرا الأمامية الكاميرا الخلفية التلقائية، حتى لو كانت الكاميرا الوحيدة على الجهاز.
  • [C-1-4] يجب عكس معاينة الكاميرا أفقيًا بالنسبة إلى الاتجاه الذي يحدده التطبيق عند توفر طلب صراحةً أن تكون الكاميرا سيتم تدوير الشاشة عن طريق استدعاء android.hardware.Camera.setDisplayOrientation() . وبالعكس، يجب أن يتم عكس المعاينة وفقًا للإعدادات التلقائية للجهاز على المحور الأفقي عندما لا يطلب التطبيق الحالي بشكل صريح أن يتم تدوير شاشة الكاميرا من خلال الاتصال android.hardware.Camera.setDisplayOrientation() .
  • [C-1-5] يجب ألا تعكس آخر الصور الثابتة أو الفيديوهات المضمّنة تم إرجاعه إلى استدعاءات التطبيق أو التزامه بتخزين الوسائط.
  • [C-1-6] يجب أن تعكس الصورة المعروضة من خلال إجراء ما بعد المشاهدة بالطريقة نفسها كتدفق صورة معاينة الكاميرا.
  • قد تتضمن ميزات (مثل التركيز التلقائي والفلاش وما إلى ذلك) المتاحة الكاميرات الخلفية كما هو موضح في القسم 7.5.1.

في حال كان من الممكن تغيير عمليات تنفيذ الجهاز من قِبل المستخدم (مثل تلقائيًا باستخدام مقياس التسارع أو يدويًا من خلال إدخال المستخدم):

  • [C-2-1] يجب عكس معاينة الكاميرا أفقيًا بالنسبة إلى الاتجاه الحالي للجهاز.

7.5.3. كاميرا خارجية

عمليات تنفيذ الأجهزة:

  • وقد يشمل ذلك دعمًا لكاميرا خارجية ليس بالضرورة. متصل دائمًا.

إذا كانت عمليّات تنفيذ الأجهزة تتضمّن توافقًا مع كاميرا خارجية، سيحدث ما يلي:

  • [C-1-1] يجب الإعلان عن علامة ميزة المنصة "android.hardware.camera.external" وandroid.hardware camera.any"
  • [C-1-2] يجب أن يتوافق مع فئة الفيديو عبر USB (UVC 1.0 أو أعلى) إذا لم يكن الكاميرا من خلال منفذ مضيف USB.
  • [C-1-3] يجب اجتياز اختبارات CTS للكاميرا باستخدام جهاز كاميرا خارجي فعلي متصلين. تتوفّر تفاصيل اختبار CTS للكاميرا على source.android.com.
  • "يجب" أن تدعم ضغطات الفيديو مثل MJPEG لتمكين نقل مجموعات بث بجودة عالية غير مرمّزة (أي صور أوّلية أو مضغوطة بشكل مستقل والتدفقات).
  • قد تتوافق مع عدة كاميرات.
  • قد يتم دعم ترميز الفيديو المستند إلى الكاميرا.

إذا كان ترميز الفيديو المستند إلى الكاميرا متوافقًا:

  • [C-2-1] A متزامن يجب أن تكون إمكانية الوصول إلى مجموعة بث غير مرمّزة / MJPEG (QVGA أو بدرجة دقة أعلى) متاحة تنفيذ الجهاز.

7.5.4. سلوك واجهة برمجة التطبيقات للكاميرا

يشتمل Android على حزمتي واجهة برمجة تطبيقات للوصول إلى الكاميرا، والحزمتين الأحدث هي تعرض واجهة برمجة التطبيقات android.hardware.camera2 التحكم في الكاميرا على مستوى أقل للتطبيق، بما في ذلك تدفقات البث/التدفق الفعالة بدون نسخ وعناصر التحكم لكل إطار تعرض، زيادة، موازنة اللون الأبيض، تحويل اللون، إزالة التشويش، زيادة الحدة والمزيد.

تم وضع علامة إيقاف حزمة واجهة برمجة التطبيقات القديمة، android.hardware.Camera، في الإصدار 5.0 من نظام التشغيل Android، لكن من المفترض أن يظلّ متاحًا لاستخدام التطبيقات. جهاز Android التنفيذ المستمر لواجهة برمجة التطبيقات على النحو الموضَّح في هذا القسم وفي حزمة تطوير البرامج (SDK) لنظام التشغيل Android.

كل الميزات الشائعة بين فئة android.hardware.camera المتوقفة نهائيًا يجب أن يكون أداء حزمة android.hardware.camera2 الأحدث مكافئًا والجودة في واجهتَي برمجة التطبيقات على سبيل المثال، باستخدام الإعدادات المكافئة، يجب أن تتطابق سرعة ودقة التركيز التلقائي، وجودة الصور التي تم التقاطها هي نفسها. الميزات التي تعتمد على الدلالات المختلفة لواجهتَي برمجة التطبيقات لا يلزم أن تكون هناك سرعة أو جودة مطابِقة، ولكن يجب أن تتطابق بأكبر قدر ممكن قدر الإمكان.

يجب أن تنفّذ عمليات تنفيذ الأجهزة السلوكيات التالية واجهات برمجة التطبيقات المتعلقة بالكاميرا، وذلك لجميع الكاميرات المتاحة. عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب استخدام android.hardware.PixelFormat.YCbCr_420_SP للمعاينة البيانات المقدمة إلى استدعاءات التطبيق عندما لا يطلب التطبيق android.hardware.Camera.Parameters.setPreviewFormat(int)
  • [C-0-2] يجب أن يكون بتنسيق ترميز NV21 إذا كان أحد التطبيقات تسجِّل android.hardware.Camera.PreviewCallback يستدعي النظام الطريقة onPreviewFrame() والمعاينة YCbCr_420_SP، يتم تمرير بيانات البايت[] إلى onPreviewFrame(). بمعنى آخر، يجب أن يكون NV21 هو الإعداد التلقائي.
  • يجب أن يتوافق [C-0-3] مع تنسيق YV12 (كما تشير إليه السمة android.graphics.ImageFormat.YV12 ثابت) لمعاينات الكاميرا لكلّ منهما الكاميرات الأمامية والخلفية من أجل android.hardware.Camera (الأجهزة الكاميرا وبرنامج ترميز الفيديو أي تنسيق بكسل أصلي، غير أن الجهاز يجب أن يتيح التنفيذ التحويل إلى YV12.)
  • [C-0-4] يجب أن يتوافق مع android.hardware.ImageFormat.YUV_420_888 يمكنك استخدام تنسيقات android.hardware.ImageFormat.JPEG كمخرجات من خلال android.media.ImageReader API لعدد android.hardware.camera2 من الأجهزة التي الإعلان REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE في android.request.availableCapabilities.
  • [C-0-5] يجب تنفيذ واجهة برمجة تطبيقات الكاميرا بالكامل المضمنة في وثائق حزمة تطوير البرامج (SDK) لنظام التشغيل Android، بغض النظر عما إذا كان الجهاز تشمل التركيز التلقائي للأجهزة أو إمكانات أخرى. على سبيل المثال، الكاميرات التي التي تفتقر إلى التركيز التلقائي يجب أن تطلب أي رقم android.hardware.Camera.AutoFocusCallback مثال (على الرغم من عدم احتوائها على صلة كاميرا لا تركز على البؤرة التلقائية). لاحظ أن هذا ينطبق على الواجهة الأمامية والكاميرات؛ على سبيل المثال، رغم أن معظم الكاميرات الأمامية لا تتوافق التركيز التلقائي، يجب أن تكون استدعاءات واجهة برمجة التطبيقات "مزيفة" كما هو موضح.
  • [C-0-6] يجب أن يتعرف على كل اسم معلمة وأن يلتزم به على أنه ثابت في android.hardware.Camera.Parameters الصف وandroid.hardware.camera2.CaptureRequest. وفي المقابل، يجب ألا تلتزم عمليات تنفيذ الجهاز بثوابت السلسلة أو تتعرّف عليها. يتم تمريره إلى طريقة android.hardware.Camera.setParameters() غير تلك موثقة كثوابت في android.hardware.Camera.Parameters. أي، يجب أن تتوافق عمليات تنفيذ الأجهزة مع جميع مَعلمات "الكاميرا" العادية في حال الأجهزة، ويجب ألا تكون متوافقة مع أنواع مَعلمات "الكاميرا" المخصَّصة على سبيل المثال، آليات الأجهزة التي تتيح التقاط الصور استخدام تقنيات التصوير بتقنية النطاق العالي الديناميكية (HDR) يجب أن يتوافق مع مَعلَمات الكاميرا Camera.SCENE_MODE_HDR
  • [C-0-7] يجب أن يبلغ عن المستوى المناسب من الدعم مع android.info.supportedHardwareLevel كما هو موضح في حزمة تطوير البرامج (SDK) لنظام التشغيل Android، والإبلاغ علامات ميزات إطار العمل.
  • [C-0-8] يجب أيضًا أن يعلن عن قدرات الكاميرا الفردية الخاصة به android.hardware.camera2 عبر موقع واحد (android.request.availableCapabilities) وتوضيح عمليات الإبلاغ عن الميزات المناسبة يجب تحديد علامة الميزة في حال كان أي من أجهزة الكاميرا المتصلة به. ويدعم هذه الميزة.
  • [C-0-9] يجب أن يبث Camera.ACTION_NEW_PICTURE كل مرة يتم فيها التقاط صورة جديدة بواسطة الكاميرا ومدخل تمت إضافة صورة إلى متجر الوسائط.
  • [C-0-10] يجب أن يبث Camera.ACTION_NEW_VIDEO كل مرة يتم فيها تسجيل فيديو جديد بواسطة الكاميرا ودخول تمت إضافة صورة إلى متجر الوسائط.
  • [C-0-11] يجب أن تتوفر جميع الكاميرات للوصول إليها من خلال التطبيق المتوقف android.hardware.Camera يمكن الوصول إلى واجهة برمجة التطبيقات أيضًا عبر android.hardware.camera2 واجهة برمجة التطبيقات.
  • [C-0-12] يجب التأكد من عدم تغيير مظهر الوجه، بما في ذلك على سبيل المثال لا الحصر، تغيير هندسة الوجه أو لون بشرة الوجه لتنعيم البشرة لأي android.hardware.camera2 أو android.hardware.Camera واجهة برمجة التطبيقات.
  • [C-SR-1] بالنسبة إلى الأجهزة المزوَّدة بعدة كاميرات بنموذج أحمر أخضر أزرق (RGB) موجَّهة في الاتجاه نفسه، يوصى بشدة بأن يتم استخدام جهاز كاميرا منطقي الإمكانية CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA، يتكون من جميع الكاميرات المزوّدة بإضاءة خلفية بألوان الأحمر والأخضر والأزرق التي تواجه هذا الاتجاه كأجهزة فرعية مادية.

إذا كانت عمليات تنفيذ الأجهزة توفّر واجهة برمجة تطبيقات خاصة بالكاميرا للتطبيقات التابعة لجهات خارجية، وهي:

  • [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات للكاميرا باستخدام android.hardware.camera2 واجهة برمجة التطبيقات.
  • قد توفِّر علامات و/أو إضافات مورّدين إلى android.hardware.camera2. واجهة برمجة التطبيقات.

7.5.5 اتجاه الكاميرا

إذا كانت أجهزة الكاميرا مزوّدة بكاميرا أمامية أو خلفية، تكون هذه الكاميرات:

  • [C-1-1] يجب أن يكون موجهًا وفقًا للأبعاد الطويلة للكاميرا البعد الطويل للشاشة. أي عند تثبيت الجهاز في الوضع الأفقي الاتجاه، يجب على الكاميرات التقاط الصور في الاتجاه الأفقي. هذا النمط تسري بغض النظر عن الاتجاه الطبيعي للجهاز أي أنها تنطبق على الأجهزة الأساسية ذات الاتجاه الأفقي، بالإضافة إلى الأجهزة الأساسية ذات الاتجاه العمودي.

تُستثنى من الشرط أعلاه الأجهزة التي تستوفي جميع المعايير التالية:

  • يستخدم الجهاز شاشات ذات أشكال هندسية متغيّرة، مثل الشاشات القابلة للطي أو المفصّلة. ما يعرضه.
  • عند تغيير حالة الطي أو المفصّلة في الجهاز، يتم تبديل الجهاز بين الاتجاه الرأسي-الأساسي إلى الاتجاه الأفقي الأساسي (أو العكسي).

7.6. الذاكرة ومساحة التخزين

7.6.1. الحد الأدنى من مساحة الذاكرة ومساحة التخزين

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يحتوي على تطبيق إدارة التنزيل قد تستخدمها التطبيقات لتنزيل ملفات البيانات ويجب أن تكون قادرة على تنزيل ملفات فردية لا يقل حجمها عن 100 ميغابايت وفقًا للإعدادات التلقائية "ذاكرة التخزين المؤقت" الموقع.

7.6.2. مساحة التخزين المشتركة للتطبيق

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يقدم مساحة تخزين لتشاركها التطبيقات، والتي يُشار إليها أيضًا غالبًا باسم "وحدة تخزين خارجية مشتركة"، أو "وحدة تخزين مشتركة للتطبيق" أو نظام التشغيل Linux المسار " /sdcard" التي يتم تثبيتها عليه
  • [C-0-2] يجب إعداده مع مساحة التخزين المشتركة التي يتم تثبيتها تلقائيًا، "خارج الصندوق"، بغض النظر عما إذا كانت مساحة التخزين منفَّذة مكون وحدة تخزين داخلية أو وسيط تخزين قابل للإزالة (على سبيل المثال، آمن منفذ بطاقة رقمية)
  • [C-0-3] يجب تثبيت مساحة التخزين المشتركة للتطبيق مباشرةً على مسار Linux يمكنك sdcard أو تضمين رابط رمزي لنظام التشغيل Linux من sdcard إلى قاعدة التثبيت الفعلية. نقطة واحدة.
  • [C-0-4] يجب تفعيل مساحة تخزين في نطاق معيّن تلقائيًا للجميع التطبيقات التي تستهدف المستوى 29 من واجهة برمجة التطبيقات أو المستويات الأعلى، باستثناء الحالات التالية:
    • عندما طلب التطبيق مبلغ android:requestLegacyExternalStorage="true" في البيان الخاص بهم.
  • [C-0-5] يجب إخفاء البيانات الوصفية للموقع الجغرافي، مثل علامات Exif لنظام تحديد المواقع العالمي (GPS)، المخزَّنة في ملفات الوسائط عند الوصول إلى هذه الملفات من خلال MediaStore، إلا في حال إذا كان تطبيق الاتصال لديه إذن ACCESS_MEDIA_LOCATION

قد تستوفي عمليات تنفيذ الأجهزة المتطلبات أعلاه باستخدام أي من التالي:

  • وحدة تخزين قابلة للإزالة ويمكن للمستخدمين الوصول إليها، مثل فتحة بطاقة رقمية آمنة (SD)
  • جزء من وحدة التخزين الداخلية (غير القابلة للإزالة) كما هو مُطبق في مشروع مفتوح المصدر لنظام Android (AOSP).

في حال كانت عمليات تنفيذ الأجهزة تستخدم مساحة تخزين قابلة للإزالة لاستيفاء ما سبق المتطلبات، فإنها:

  • [C-1-1] يجب تنفيذ إشعار منبثق أو نافذة منبثقة تحذّر المستخدم. عندما لا يكون هناك وسيط تخزين مدرَج في الفتحة
  • [C-1-2] يجب أن يحتوي على وسيط تخزين بتنسيق FAT (مثل بطاقة SD) أو يعرض على العلبة والمواد الأخرى المتاحة وقت الشراء يجب شراء الوسيط بشكل منفصل.

إذا كانت عمليات تنفيذ الجهاز تستخدم جزءًا من مساحة التخزين غير القابلة للإزالة لتلبية المتطلبات أعلاه، فإنها:

  • يجب استخدام تنفيذ AOSP للتطبيق الداخلي المشترك مساحة التخزين.
  • قد تتم مشاركة مساحة التخزين مع بيانات التطبيق الخاصة.

إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ USB متوافقًا مع وضع أجهزة USB الطرفية، وهي:

  • [C-3-1] يجب أن يتم توفير آلية للوصول إلى البيانات في التطبيق. مساحة التخزين المشتركة من كمبيوتر مضيف.
  • يجب عرض المحتوى من كلا مساري التخزين بشفافية من خلال خدمة فحص الوسائط من Android وandroid.provider.MediaStore.
  • قد يتم استخدام وحدة تخزين USB الكبيرة، ولكن "ينبغي" استخدام "بروتوكول نقل الوسائط" لتلبية لهذا المطلب.

إذا كانت عمليات تنفيذ الأجهزة تتضمّن منفذ USB مع وضع USB للأجهزة الملحقة والدعم فإن بروتوكول نقل الوسائط:

  • من المفترض أن يكون متوافقًا مع مضيف بروتوكول نقل الوسائط (MTP) المرجعي لنظام التشغيل Android، نقل ملفات Android.
  • يجب أن يتم الإبلاغ عن فئة جهاز USB بقيمة 0x00.
  • يجب الإبلاغ عن اسم واجهة USB بتنسيق "MTP".

7.6.3. مساحة تخزين قابلة للاستخدام

إذا كان من المتوقع أن يكون الجهاز جوّالاً بطبيعته على عكس التلفزيون، عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتنفيذ التخزين القابل للاستخدام في في موقع مستقر على المدى الطويل، لأن فصل الاتصال عن طريق الخطأ يمكن أن إلى فقدان/تلف البيانات.

إذا كان منفذ جهاز التخزين القابل للإزالة في مكان ثابت على المدى الطويل، مثل داخل حجرة البطارية أو أي غطاء واقي آخر عمليات تنفيذ الأجهزة:

7.7. USB

إذا كانت عمليات تنفيذ الأجهزة تحتوي على منفذ USB، سيتم إجراء ما يلي:

  • يجب أن يتوافق مع وضع الجهاز الطرفي USB ويجب أن يتوافق مع وضع مضيف USB.
  • يجب أن تتوفّر إمكانية إيقاف إشارات البيانات عبر USB.

7.7.1. وضع الأجهزة الملحقة بكابل USB

إذا كانت عمليات تنفيذ الأجهزة تتضمّن منفذ USB متوافقًا مع وضع الأجهزة الملحقة:

  • [C-1-1] يجب أن يكون المنفذ قابلاً للاتصال بمضيف USB لديه قاعدة بيانات منفذ USB من النوع A أو C
  • [C-1-2] يجب الإبلاغ عن القيمة الصحيحة لـ iSerialNumber في معيار USB واصف الأجهزة من خلال android.os.Build.SERIAL.
  • [C-1-3] يجب أن يرصد شاحن بقوة 1.5 أمبير و3.0 أمبير لكل مقاوم من نوع C يجب أن تكشف التغييرات في الإعلان إذا كانت تدعم منفذ USB من نوع C
  • [C-SR-1] يجب أن يستخدم المنفذ شكل جهاز USB مصغر-B أو Micro-AB أو من النوع C. يُنصَح بشدة بأن تستوفي أجهزة Android الحالية والجديدة هذه الشروط المتطلبات حتى يتمكّنوا من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
  • [C-SR-2] يجب العثور على المنفذ أسفل الجهاز (حسب الاتجاه الطبيعي) أو تمكين تدوير شاشة البرنامج جميع التطبيقات (بما في ذلك الشاشة الرئيسية)، بحيث يتم رسم الشاشة بشكل صحيح عند يتم توجيه الجهاز مع المنفذ في الأسفل. نظام Android الحالي والجديد موصى بها بشدة لاستيفاء هذه المتطلبات حتى تتمكن من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
  • [C-SR-3] يجب تنفيذ الدعم لرسم تيار بقوة 1.5 أمبير أثناء اهتزاز HS وعدد الزيارات على النحو المحدَّد في مواصفات شحن البطارية بمنفذ USB، النسخة 1.2 يُنصَح بشدة بأن تستوفي أجهزة Android الحالية والجديدة هذه الشروط المتطلبات حتى يتمكّنوا من الترقية إلى إصدارات الأنظمة الأساسية المستقبلية.
  • [C-SR-4] يُنصح بشدة بعدم التوافق مع حسابات الملكية طرق الشحن التي تعدِّل الجهد الكهربائي لـ Vbus ليتجاوز المستويات التلقائية وقد تؤدي أدوار المصارف/المصدر على هذا النحو إلى حدوث مشكلات في إمكانية التشغيل التفاعلي مع الشواحن أو الأجهزة التي تتيح استخدام طرق الشحن السريع بمعيار USB. بينما هذا ما يسمى بـ "موصى به بشدة"، ففي إصدارات Android المستقبلية قد تتطلب جميع الأجهزة من النوع C أن تتوافق مع إمكانية التشغيل التفاعلي الكامل مع شاحن من النوع C.
  • [C-SR-5] يُنصح بشدة بدعم Power Delivery للبيانات تبديل دور الطاقة عندما تتوافق مع وضع مضيف USB من النوع C وUSB.
  • يجب أن يدعم تسليم الطاقة لشحن الجهد العالي ودعم الأوضاع البديلة مثل العرض الخارجي.
  • "يجب تنفيذ" واجهة برمجة تطبيقات "الملحق المفتوح لنظام Android" (AOA) والمواصفات على النحو التالي: موثقة في وثائق Android SDK.

إذا كانت عمليات تنفيذ الجهاز تشمل منفذ USB وتم تنفيذ AOA المواصفات، فهي:

  • [C-2-1] يجب أن يعلن عن إتاحة ميزة الأجهزة. android.hardware.usb.accessory
  • [C-2-2] يجب أن تتضمن فئة تخزين USB الكبيرة السلسلة "android" في نهاية وصف الواجهة iInterface سلسلة وحدة تخزين USB الكبيرة

7.7.2 وضع مضيف USB

إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB متوافقًا مع وضع المضيف، سيتم إجراء ما يلي:

  • [C-1-1] يجب تنفيذ واجهة برمجة تطبيقات مضيف USB في Android كما هو موثق في حزمة تطوير البرامج (SDK) لنظام التشغيل Android ويجب أن تعلن عن توافقها مع ميزة الأجهزة android.hardware.usb.host
  • [C-1-2] يجب تنفيذ الدعم لتوصيل أجهزة USB الطرفية القياسية، أو بعبارةٍ أخرى، يجب أن:
    • توفّر منفذ من النوع C أو سفينة على الجهاز مزوّدة بكابلات تتوافق مع الجهاز منفذ خاص إلى منفذ USB عادي من النوع C (جهاز USB من النوع C).
    • توفّر النوع A على الجهاز أو شحنه مع كابلات تتوافق مع الجهاز منفذ خاص إلى منفذ USB من النوع A القياسي.
    • توفّر منفذ Micro-AB على الجهاز يجب أن يتم شحنه مع كابل يتوافق مع هذه الميزة إلى منفذ من النوع A قياسي
  • [C-1-3] يجب ألا يتم شحنه مع محوّل يحوِّل من USB من النوع A أو منافذ ميكرو-AB إلى منفذ من النوع C (وعاء).
  • [C-SR-1] يُنصح بشدة بتطبيق USB audio class كما هو موثّق في مستندات حزمة تطوير البرامج (SDK) لنظام التشغيل Android
  • يجب أن تتوفّر إمكانية شحن جهاز USB الملحق المتصل أثناء التواجد في المضيف. وضع؛ يُعلِن عن مصدر حالي بقيمة لا تقل عن 1.5 أمبير كما هو محدّد في قسم "مَعلمات الإنهاء" في المراجعة 1.2 لكابل USB من نوع C ومواصفات الموصل لـ USB من نوع C أو استخدام النطاق الحالي لإخراج منفذ الشحن(CDP) المحددة في مواصفات شحن بطارية USB، النسخة 1.2 لموصلات الصغيرة-AB.
  • "يجب" تنفيذ معايير USB من نوع C واعتمادها.

إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يتوافق مع وضع المضيف ومنفذ USB الفئة الصوتية، فإنها:

  • [C-2-1] يجب أن يتوافق مع فئة USB HID.
  • يجب أن يتوافق جهاز [C-2-2] مع رصد بيانات HID التالية وربطها. الحقول المحدّدة في جداول استخدام أجهزة HID بمنفذ USB وطلب استخدام Voice Command إلى KeyEvent الثوابت على النحو التالي:
    • معرِّف استخدام صفحة الاستخدام (0xC) (0x0CD): KEYCODE_MEDIA_PLAY_PAUSE
    • معرّف استخدام صفحة الاستخدام (0xC) (0x0E9): KEYCODE_VOLUME_UP
    • معرِّف استخدام صفحة الاستخدام (0xC) (0x0EA): KEYCODE_VOLUME_DOWN
    • معرّف استخدام صفحة الاستخدام (0xCF) (0x0CF): KEYCODE_VOICE_ASSIST

إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يدعم وضع المضيف إطار عمل الوصول إلى مساحة التخزين (SAF)، حيث:

  • [C-3-1] يجب أن يتعرف على أي بروتوكول نقل الوسائط (MTP) المتصل عن بُعد. الأجهزة وإتاحة الوصول إلى محتواها من خلال ACTION_GET_CONTENT ACTION_OPEN_DOCUMENT وACTION_CREATE_DOCUMENT هدفًا. .

إذا كانت عمليات تنفيذ الجهاز تتضمن منفذ USB يتوافق مع وضع المضيف وUSB النوع C، فهي:

  • [C-4-1] يجب تنفيذ وظيفة "منفذ الأدوار المزدوجة" على النحو المحدّد في USB مواصفات النوع ج (الفقرة 4.5.1.3.3).
  • [C-SR-2] يُنصح بشدة بأن يتوافق مع DisplayPort، ويجب أن يكون متوافقًا مع منفذ USB معدلات البيانات ذات السرعة الفائقة، ويُنصح بشدة بدعمها لتبادل البيانات والقوة.
  • [C-SR-3] يُنصح بشدة بعدم توافق وضع إكسسوار محوّل الصوت الموضحة في الملحق "أ" من الإصدار 1.2 من كابل ومواصفات موصّل USB من نوع C
  • "ينبغي" تنفيذ نموذج Try.* الأكثر ملاءمة شكل الجهاز. على سبيل المثال، يجب أن ينفذ الجهاز المحمول باليد نموذج Try.SNK

7.8. الصوت

7.8.1. الميكروفون

إذا كانت عمليات تنفيذ الجهاز تتضمن ميكروفونًا، سيتم ما يلي:

  • [C-1-1] يجب أن يبلغ عن ثابت خاصية android.hardware.microphone.
  • [C-1-2] يجب أن تستوفي متطلبات التسجيل الصوتي في القسم 5.4.
  • [C-1-3] يجب أن تستوفي متطلبات وقت استجابة الصوت في القسم 5.6.
  • [C-SR-1] يُنصح بها بشدة لإتاحة التسجيل بالموجات فوق الصوتية القريبة على النحو الموصوف في الفقرة 7.8.3.

إذا حذفَت عمليات تنفيذ الجهاز ميكروفونًا، سيحدث ما يلي:

  • [C-2-1] يجب ألا يتم الإبلاغ عن ثابت خاصية android.hardware.microphone.
  • [C-2-2] يجب تنفيذ واجهة برمجة تطبيقات تسجيل الصوت على الأقل في حالات عدم التنفيذ، وفقًا القسم 7.

7.8.2 إخراج الصوت

إذا كانت عمليات تنفيذ الجهاز تتضمن مكبّر صوت أو مخرجًا صوتيًا/وسائط متعددة منفذ لجهاز ملحق لإخراج الصوت مثل مقبس صوت مقاس 4 موصّلات مقاس 3.5 ملم أو منفذ وضع مضيف USB باستخدام الفئة USB audio class، وهي:

  • [C-1-1] يجب أن يبلغ عن ثابت خاصية android.hardware.audio.output.
  • [C-1-2] يجب أن تستوفي متطلبات تشغيل الصوت في القسم 5.5.
  • [C-1-3] يجب أن تستوفي متطلبات وقت استجابة الصوت في القسم 5.6.
  • [C-SR-1] يُنصح بشدة بتوفير إمكانية التشغيل بالموجات فوق الصوتية تقريبًا كما هو موضَّح في الفقرة 7.8.3.

إذا لم تتضمّن عمليات تنفيذ الجهاز مكبّر صوت أو منفذ لإخراج الصوت، سيسري ما يلي:

  • [C-2-1] يجب ألا يتم الإبلاغ عن ميزة "android.hardware.audio.output".
  • [C-2-2] يجب أن تنفذ واجهات برمجة التطبيقات المتعلقة بإخراج الصوت في عمليات بيئة مستقلة على الأقل.

لأغراض هذا القسم، "منفذ إخراج" هو واجهة المستخدم مثل مقبس صوت مقاس 3.5 ملم أو HDMI أو منفذ وضع مضيف USB مع فئة صوت USB. دعم إخراج الصوت عبر البروتوكولات اللاسلكية مثل البلوتوث، لا يمكن أن تتضمن شبكة WiFi أو الشبكة الخلوية "منفذ إخراج".

7.8.2.1. منافذ الصوت التناظرية

لتكون متوافقة مع سمّاعات الرأس وملحقات الصوت الأخرى باستخدام مقبس صوت مقاس 3.5 ملم عبر منظومة Android المتكاملة، إذا كان الجهاز تشتمل على منافذ صوت تناظرية واحدة أو أكثر، وهي:

  • [C-SR-1] يُوصى بشدة بتضمين واحد من منافذ صوت لتكون مقبس صوت مقاس 3.5 ملم بأربعة موصّلات.

إذا كانت عمليات تنفيذ الأجهزة تحتوي على مقبس صوت مقاس 3.5 ملم بأربعة موصّلات:

  • [C-1-1] يجب تشغيل الصوت على سماعات رأس استيريو وسماعات رأس استيريو بواسطة ميكروفون.
  • [C-1-2] يجب أن تتوافق مع مقابس صوت TRRS مع طلب تثبيت CTIA.
  • [C-1-3] يجب أن يعتمد الكشف والتعيين لرموز المفاتيح بعد 3 نطاقات من المعاوقة المكافئة بين الميكروفون والأرض الموصلات على مقبس الصوت:
    • 70 أوم أو أقل: KEYCODE_HEADSETHOOK
    • 210-290 أوم: KEYCODE_VOLUME_UP
    • 360-680 أوم: KEYCODE_VOLUME_DOWN
  • [C-1-4] يجب أن يشغّل ACTION_HEADSET_PLUG عند إدخال قابس، ولكن فقط بعد أن تلمس جميع جهات الاتصال على المقبس الأجزاء ذات الصلة على المقبس.
  • يجب أن يتمكن جهاز [C-1-5] من قيادة طاقة لا تقل عن 150 ميغا فولت أو أكثر أو أقل بنسبة% 10 من الجهد الكهربي للإخراج. معاوقة مكبّر صوت بقوة 32 أوم.
  • يجب أن يحتوي [C-1-6] على جهد كهربائي لانحياز الميكروفون يتراوح بين 1.8 فولت و2.9 فولت.
  • [C-1-7] يجب اكتشاف رمز المفتاح وتعيينه لما يلي نطاق المعاوقة المكافئة بين الميكروفون وموصّلات الأرض على مقبس الصوت:
    • 110-180 أوم: KEYCODE_VOICE_ASSIST
  • [C-SR-2] يُنصَح باستخدامها بشدة لتتوافق مع منافذ الصوت مع بروتوكول OMTP الطلب المسبَق.
  • [C-SR-3] مقترحان بشدة لإتاحة تسجيل الصوت من الاستيريو سماعة رأس مع ميكروفون.

إذا كانت عمليات تنفيذ الجهاز تحتوي على مقبس صوت مقاس 3.5 ملم مزود بأربعة موصّلات الميكروفون، وبثّ android.intent.action.HEADSET_PLUG باستخدام ذات القيمة الإضافية التي يتم ضبطها على القيمة 1، فإنها:

  • [C-2-1] يجب أن يتوافق مع اكتشاف الميكروفون في الصوت الذي يتم توصيله ملحق.
7.8.2.2. منافذ الصوت الرقمية

للتوافق مع سماعات الرأس وملحقات الصوت الأخرى التي تستخدم موصِّلات USB-C وتطبيق (فئة USB Audio) على منظومة Android المتكاملة كما هو محدّد في مواصفات سمّاعات الرأس USB التي تعمل بنظام التشغيل Android.

يُرجى الاطّلاع على الفقرة 2.2.1 لمعرفة المتطلبات الخاصة بالأجهزة.

7.8.3. الموجات فوق الصوتية القريبة

الصوت القريب من الموجات فوق الصوتية هو نطاق يتراوح بين 18.5 كيلوهرتز و20 كيلوهرتز.

عمليات تنفيذ الأجهزة:

  • يجب أن يبلغ بشكل صحيح عن دعم إمكانية صوت شبه فوق صوتي عبر AudioManager.getProperty واجهة برمجة التطبيقات على النحو التالي:

في حال PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND "صحيح"، يجب استيفاء المتطلبات التالية من خلال مصادر الصوت VOICE_RECOGNITION وUNPROCESSED:

  • [C-1-1] متوسط استجابة صوت الميكروفون في نطاق يتراوح بين 18.5 كيلوهرتز و20 كيلوهرتز يجب ألا يزيد مستوى الصوت عن 15 ديسيبل عن الاستجابة عند 2 كيلوهرتز.
  • [C-1-2] نسبة الضوضاء غير المرجحة إلى الضوضاء في الميكروفون أعلى من 18.5 كيلوهرتز إلى 20 كيلوهرتز لنغمة 19 كيلوهرتز عند -26 ديسيبل، يجب ألا تكون أقل من 50 ديسيبل.

في حال PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND "صحيح":

  • [C-2-1] يجب ألا تقل استجابة مكبّر الصوت عند 18.5 كيلوهرتز إلى 20 كيلوهرتز عن 40 ديسيبل أسفل الاستجابة عند 2 كيلوهرتز.

7.8.4. سلامة الإشارة

عمليات تنفيذ الأجهزة:

  • يجب توفير مسار إشارة صوتية خالية من أي خلل لكل من منفذ الإدخال وبث المحتوى على الأجهزة المحمولة باليد، وفق تعريفها بدون أي أعطال تقنية بعد اختبار مدته دقيقة واحدة لكل مسار. الاختبار باستخدام أداة اختبار OboeTest "اختبار الخطأ الآلي".

يتطلب الاختبار مفتاح إلكتروني لاسترجاع الصوت، يُستخدم مباشرةً في مقبس مقاس 3.5 ملم و/أو مع محوّل مزوّد بمنفذ USB-C إلى منفذ 3.5 ملم. يجب اختبار جميع منافذ إخراج الصوت.

يدعم OboeTester حاليًا مسارات AAudio، ولذلك يجب اختبار المجموعات التالية بحثًا عن أي خلل باستخدام AAudio:

وضع الأداء المشاركة معدّل النسبة المئوية خارج العينة في تشان ترانيم الفرقعة
وقت استجابة سريع حصري غير محدّد 1 2
وقت استجابة سريع حصري غير محدّد 2 1
وقت استجابة سريع مشترك غير محدّد 1 2
وقت استجابة سريع مشترك غير محدّد 2 1
لم يتم اختيار لون مشترك 48000 1 2
لم يتم اختيار لون مشترك 48000 2 1
لم يتم اختيار لون مشترك 44100 1 2
لم يتم اختيار لون مشترك 44100 2 1
لم يتم اختيار لون مشترك 16000 1 2
لم يتم اختيار لون مشترك 16000 2 1

يجب أن تستوفي مجموعة البث الموثوق بها المعايير التالية لاستخدام ميزة "إشارات الضوضاء" (Signal to Noise). النسبة (SNR) والتشوّه التوافقي الكلي (THD) لجيب الزاوية بتردد 2000 هرتز

محوّل طاقة 60 معدّل الضوضاء الديناميكي
مكبّر صوت أساسي مدمج، يتم قياسه باستخدام ميكروفون مرجعي خارجي &lt; 3.0% >= 50 ديسيبل
ميكروفون أساسي مدمج، يتم قياسه باستخدام مكبّر صوت مرجعي خارجي &lt; 3.0% >= 50 ديسيبل
مقابس تناظرية مدمجة مقاس 3.5 ملم، تم اختبارها باستخدام محوّل استرجاعي أقل من %1 >= 60 ديسيبل
محوّلات USB المرفقة مع الهاتف، وتم اختبارها باستخدام محوّل الاسترجاع &lt; 1.0% >= 60 ديسيبل

7.9 الواقع الافتراضي

يشتمل Android على واجهات برمجة تطبيقات ومرافق لإنشاء "الواقع الافتراضي". (وضع الواقع الافتراضي) التطبيقات، بما في ذلك تجارب الواقع الافتراضي ذات الجودة العالية على الأجهزة الجوّالة. الجهاز التنفيذ يجب أن تنفذ واجهات برمجة التطبيقات والسلوكيات هذه بشكل صحيح كما هو مفصل في هذا القسم.

7.9.1. وضع الواقع الافتراضي

يشتمل نظام Android على دعم وضع "الواقع الافتراضي" وهي ميزة تعالج العرض المجسَّم للإشعارات وتُوقف مكونات واجهة مستخدم النظام الأحادي بينما يركز تطبيق الواقع الافتراضي على المستخدم.

7.9.2. وضع الواقع الافتراضي - أداء عالي

إذا كانت عمليات تنفيذ الأجهزة تتيح وضع الواقع الافتراضي (VR)، سيتم ما يلي:

  • [C-1-1] يجب أن يحتوي على نواتين ماديتين على الأقل.
  • [C-1-2] يجب أن يفصح عن ميزة android.hardware.vr.high_performance.
  • [C-1-3] يجب أن يتوافق مع وضع الأداء المستدام.
  • [C-1-4] يجب أن يتوافق مع OpenGL ES 3.2.
  • [C-1-5] يجب أن يتوافق مع android.hardware.vulkan.level 0.
  • يجب أن يتوافق مع الإصدار 1 من "android.hardware.vulkan.level" أو الإصدارات الأحدث.
  • [C-1-6] يجب التنفيذ EGL_KHR_mutable_render_buffer، EGL_ANDROID_front_buffer_auto_refresh, EGL_ANDROID_get_native_client_buffer, EGL_KHR_fence_sync, EGL_KHR_wait_sync، EGL_IMG_context_priority، EGL_EXT_protected_content، EGL_EXT_image_gl_colorspace، وعرض الإضافات في قائمة إضافات EGL المتاحة.
  • [C-1-8] يجب تنفيذه GL_EXT_multisampled_render_to_texture2، GL_OVR_multiview, GL_OVR_multiview2, GL_EXT_protected_textures, وعرض الإضافات في قائمة إضافات GL المتاحة.
  • [C-SR-1] يُوصى بشدة بتنفيذها GL_EXT_external_buffer، GL_EXT_EGL_image_array, GL_OVR_multiview_multisampled_render_to_texture, وعرض الإضافات في قائمة إضافات GL المتاحة.
  • [C-SR-2] يُوصى بها بشدة لدعم Vulkan 1.1.
  • [C-SR-3] يُوصى بشدة بتنفيذها VK_ANDROID_external_memory_android_hardware_buffer، VK_GOOGLE_display_timing, VK_KHR_shared_presentable_image, وعرضه في قائمة إضافات Vulkan المتاحة.
  • [C-SR-4] يُنصح بشدة بعرض مجموعة Vulkan واحدة على الأقل في قائمة انتظار Vulkan حيث إن flags تحتوي على كل من VK_QUEUE_GRAPHICS_BIT وVK_QUEUE_COMPUTE_BIT، وqueueCount 2 على الأقل.
  • [C-1-7] يجب أن تتمكن وحدة معالجة الرسومات والعرض من مزامنة الوصول إلى وحدة معالجة الرسومات المشتركة مخزن أمامي أمامي يتيح العرض بالعين المتبادلة لمحتوى الواقع الافتراضي بسرعة 60 لقطة في الثانية باستخدام سيتم عرض سياقات العرض بدون عناصر ممزّقة مرئية.
  • [C-1-9] يجب تنفيذ الدعم لـ AHardwareBuffer العلامة AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER، AHARDWAREBUFFER_USAGE_SENSOR_DIRECT_DATA و AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT كما هو موضح في NDK.
  • [C-1-10] يجب تنفيذ الدعم لـ AHardwareBuffer مع أي مجموعة من علامات الاستخدام AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT, AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE, AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT للتنسيقات التالية على الأقل: AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM, AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT
  • [C-SR-5] يُنصَح باستخدامها بشدة لإتاحة تخصيص AHardwareBuffer بأكثر من طبقة وعلامات وتنسيقات محددة في C-1-10.
  • [C-1-11] يجب أن يتيح فك ترميز H.264 بمعدل 3840 × 2160 على الأقل بمعدّل 30 لقطة في الثانية ضغطه إلى متوسط 40 ميغابت في الثانية (ما يعادل 4 مثيلات 1920 x 1080 بمعدّل 30 لقطة في الثانية - 10 ميغابت في الثانية أو نسختَين من 1920 × 1080 بمعدل 60 لقطة في الثانية و20 ميغابت في الثانية).
  • [C-1-12] يجب أن يتوافق مع HEVC وVP9، ويجب أن يكون قادرًا على فك الترميز على الأقل يتم ضغط 1920 × 1080 بمعدل 30 لقطة في الثانية إلى متوسط 10 ميغابت في الثانية، ويجب أن يكون قادر على فك ترميز 3840 x 2160 بمعدّل 30 لقطة في الثانية و 20 ميغابت في الثانية (ما يعادل 4 أمثلة للدقة 1920 × 1080 بمعدّل 30 لقطة في الثانية-5 ميغابت في الثانية).
  • [C-1-13] يجب أن يتوافق مع واجهة برمجة تطبيقات HardwarePropertiesManager.getDeviceTemperatures وتعرض قيمًا دقيقة لدرجة حرارة الجلد
  • [C-1-14] يجب أن يحتوي على شاشة مضمّنة، ويجب أن تكون درجة دقته على الأقل 1920 × 1080.
  • [C-SR-6] يُوصى بشدة بأن تكون درجة دقة العرض بها لا تقل عن 2560 × 1440.
  • [C-1-15] يجب أن يتم تحديث الشاشة بتردد 60 هرتز على الأقل أثناء استخدام وضع الواقع الافتراضي (VR).
  • [C-1-17] يجب أن تتوافق الشاشة مع وضع التشديد المنخفض لمدة 5 مللي ثانية أو أقل المثابرة، حيث يتم تعريف المثابرة على أنها مقدار الوقت التي تنبعث منها ضوء البكسل.
  • [C-1-18] يجب أن يتوافق مع Bluetooth 4.2 وBluetooth LE Data Length الفقرة 7.4.3.
  • [C-1-19] يجب تقديم الدعم والإبلاغ بشكل صحيح نوع القناة المباشرة لكل أنواع أدوات الاستشعار التلقائية التالية:
    • TYPE_ACCELEROMETER
    • TYPE_ACCELEROMETER_UNCALIBRATED
    • TYPE_GYROSCOPE
    • TYPE_GYROSCOPE_UNCALIBRATED
    • TYPE_MAGNETIC_FIELD
    • TYPE_MAGNETIC_FIELD_UNCALIBRATED
  • [C-SR-7] يُوصى بها بشدة لدعم TYPE_HARDWARE_BUFFER نوع القناة المباشرة لجميع أنواع القنوات المباشرة المذكورة أعلاه.
  • [C-1-21] يجب أن يتوافق مع السمات المرتبطة بالجيروسكوب ومقياس التسارع ومقياس المغناطيسية متطلبات android.hardware.hifi_sensors، على النحو المحدد في الفقرة 7.3.9.
  • [C-SR-8] يُوصى بها بشدة لدعم ميزة "android.hardware.sensor.hifi_sensors"
  • [C-1-22] يجب أن تتوفر حركة من طرف إلى طرف لوقت استجابة الفوتون لا يزيد عن 28 مللي ثانية.
  • [C-SR-9] يُنصح بشدة باعتماد حركة شاملة على وقت استجابة الفوتون لا يزيد عن 20 ملي ثانية.
  • [C-1-23] يجب أن تتضمن نسبة الإطار الأول، وهي النسبة بين سطوع وحدات البكسل في الإطار الأول بعد الانتقال من الأسود إلى الأبيض وسطوع وحدات البكسل البيضاء في حالة ثابتة لا تقل عن 85%.
  • [C-SR-10] يُنصح بشدة بأن تبلغ نسبة عرض اللقطة الأول فيها %90 على الأقل.
  • قد يوفر خلفية أساسية حصرية للمقدّمة وقد يتيحان استخدام واجهة برمجة تطبيقات Process.getExclusiveCores لعرض هو عدد نوى وحدة المعالجة المركزية (CPU) الحصرية في المقدّمة العلوية. التطبيق.

إذا كان الدعم الحصري متاحًا، فإن الطريقة الأساسية:

  • [C-2-1] يجب ألا يسمح بتشغيل أي عمليات أخرى في مساحة المستخدم عليه (باستثناء برامج تشغيل الأجهزة التي يستخدمها التطبيق)، ولكن قد تسمح ببعض النواة من العمليات حسب الضرورة.

7.10. أجهزة تعمل باللمس

يُرجى الاطّلاع على الفقرة 2.2.1 لمعرفة المتطلبات الخاصة بالأجهزة.

7.11. صف أداء الوسائط

يمكن الحصول على فئة أداء الوسائط لتنفيذ الجهاز من android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS. متطلبات يتم تحديد فئة أداء الوسائط لكل إصدار من إصدارات Android بدءًا من R (الإصدار 30). تدل القيمة الخاصة 0 على أن الجهاز ليس من فئة أداء الوسائط.

إذا كانت تنفيذات الجهاز تُرجع قيمة غير صفرية android.os.Build.VERSION.MEDIA_PERFORMANCE_CLASS، إن:

  • [C-1-1] يجب أن تعرض قيمة android.os.Build.VERSION_CODES.R على الأقل.

  • [C-1-2] يجب أن يكون جهازًا محمولاً باليد.

  • [C-1-3] يجب أن يستوفي جميع متطلبات "صف أداء الوسائط". موصوفة في القسم 2.2.7.

يمكنك الاطّلاع على القسم 2.2.7 لمعرفة الخيارات الخاصة بالجهاز. متطلبات المشروع.

8. الأداء والقوة

بعض معايير الحد الأدنى للأداء والتشغيل تكون بالغة الأهمية لتجربة المستخدم الافتراضات الأساسية التي ستكون لدى المطورين عند تطوير التطبيق.

8.1. الاتساق في تجربة المستخدم

يمكن توفير واجهة مستخدم سلسة للمستخدم النهائي إذا كان هناك الحد الأدنى من المتطلبات لضمان اتساق عدد اللقطات في الثانية وأوقات الاستجابة التطبيقات والألعاب. عمليات تنفيذ الأجهزة، وفقًا لنوع الجهاز قد تحتوي على متطلبات قابلة للقياس لوقت استجابة واجهة المستخدم ومهمتها التبديل كما هو موضَّح في القسم 2.

8.2. أداء الوصول إلى وحدات الإدخال والإخراج من الملفات

توفير أساس مشترك لأداء ثابت للوصول إلى الملفات على تسمح مساحة تخزين البيانات الخاصة للتطبيقات (قسم /data) لمطوّري التطبيقات وضع توقع مناسب من شأنه أن يساعد في تصميم برامجهم. الجهاز عمليات التنفيذ، اعتمادًا على نوع الجهاز، قد يكون هناك متطلبات معينة كما هو موضَّح في القسم 2 للقراءة التالية: العمليات وكتابةها:

  • أداء الكتابة التسلسلية: تم القياس عن طريق كتابة ملف 256 ميغابايت باستخدام مخزن مؤقت للكتابة بسعة 10 ميغابايت
  • أداء الكتابة العشوائية: يتم القياس عن طريق كتابة ملف 256 ميغابايت باستخدام 4 كيلوبايت وكتابة المورد الاحتياطي.
  • أداء القراءة التسلسلية: تم القياس من خلال قراءة ملف 256 ميغابايت باستخدام مخزن مؤقت للكتابة بسعة 10 ميغابايت
  • أداء القراءة العشوائية: يتم القياس من خلال قراءة ملف 256 ميغابايت باستخدام 4 كيلوبايت وكتابة المورد الاحتياطي.

8.3. أوضاع توفير الطاقة

إذا كانت عمليات تنفيذ الجهاز تتضمن ميزات لتحسين إدارة طاقة الجهاز التي تكون مضمّنة في AOSP (مثل حزمة تطبيقات الاستعداد للتطبيقات أو القيلولة) أو توسيع نطاق الميزات لتطبيق قيود أقوى من حزمة وضع الاستعداد المحدود، فإنها:

  • [C-1-1] يجب ألا تنحرف عن تنفيذ AOSP في التشغيل، والصيانة وخوارزميات التنشيط واستخدام إعدادات النظام العامة أو DeviceConfig من وضعي توفير الطاقة "تطبيقات الاستعداد" و"القيلولة".
  • [C-1-2] يجب ألا تنحرف عن تنفيذ مشروع AOSP لاستخدام بروتوكول AOSP أو DeviceConfig لإدارة تقييد المهام والمنبّه الشبكة للتطبيقات في كل حزمة لوضع الاستعداد للتطبيقات.
  • [C-1-3] يجب ألا ينحرف عن تنفيذ AOSP في عدد حِزم تطبيقات وضع الاستعداد المستخدَمة للتطبيقات وضع الاستعداد.
  • [C-1-4] يجب تنفيذ حزم التطبيقات في وضع الاستعداد والقيلولة كما هو موضح في إدارة التشغيل.
  • [C-1-5] يجب عرض true للنطاق PowerManager.isPowerSaveMode() عندما يكون الجهاز قيد التشغيل على وضع توفير الطاقة.
  • [C-1-6] يجب أن تتوفر للمستخدمين إمكانية عرض جميع التطبيقات المستثناة من وضعَي توفير الطاقة (تطبيقات وضع الاستعداد) و"القيلولة" أو أي تحسينات للبطارية ويجب تنفيذ ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS في مطالبة المستخدم بالسماح لتطبيق بتجاهل البطارية التحسينات.
  • [C-SR-1] يُوصى بها بشدة لزيادة تحمُّل المستخدمين لتمكين إيقاف ميزة توفير شحن البطارية.
  • [C-SR-2] يُوصى بها بشدة لتمكين المستخدم من عرض جميع التطبيقات المستثناة من وضعَي "تطبيقات الاستعداد" و"القيلولة" لتوفير الطاقة.

في حال توسيع عمليات تنفيذ الأجهزة لميزات إدارة الطاقة المضمّنة في AOSP والتي تطبق قيودًا أكثر صرامة من حزمة تطبيقات Rare App Standby (مجموعة ميزات Rare App Standby) الفقرة 3.5.1.

بالإضافة إلى أوضاع توفير الطاقة، قد تتضمن عمليات تنفيذ أجهزة Android تنفيذ أي من حالات القوة النائمة الأربع أو جميعها كما هو محدد في "مؤشرات Google" واجهة التهيئة والطاقة (ACPI).

في حال تنفيذ عمليات تنفيذ الجهاز لحالة الطاقة S4 على النحو المحدَّد في ACPI، وهي:

  • [C-1-1] يجب ألا يتم إدخال هذه الحالة إلا بعد اتخاذ المستخدم إجراءً صريحًا لوضع الجهاز في حالة غير نشطة (مثلاً عن طريق إغلاق غطاء موضوع من الجهاز أو إطفاء مركبة أو تلفزيون) وقبل إعادة تفعيل المستخدم للجهاز (عن طريق فتح غطاء الجهاز أو تدوير المركبة مثلاً) أو التلفزيون).

في حال تنفيذ عمليات تنفيذ الجهاز لحالة الطاقة S3 على النحو المحدَّد في ACPI، وهي:

  • يجب أن يستوفي [C-2-1] C-1-1 الوارد أعلاه، أو يجب أن يدخل في حالة S3 فقط عندما يكون طرفًا ثالثًا لا تحتاج التطبيقات إلى موارد النظام (مثل الشاشة ووحدة المعالجة المركزية).

    وفي المقابل، يجب الخروج من حالة S3 عندما تحتاج تطبيقات الجهات الخارجية إلى موارد النظام، كما هو موضح في حزمة SDK هذه.

    فعلى سبيل المثال، بينما تطلب تطبيقات الجهات الخارجية الإبقاء على الشاشة مفعَّلة حتى FLAG_KEEP_SCREEN_ON أو مواصلة تشغيل وحدة المعالجة المركزية (CPU) PARTIAL_WAKE_LOCK، يجب ألا يدخل الجهاز في حالة S3 ما لم يكن، على النحو الموضَّح في C-1-1، اتخذ المستخدم إجراءً صريحًا لوضع الجهاز في حالة عدم النشاط. بالمقابل، في أي وقت عندما تتعرض له تطبيقات تابعة لجهات خارجية تنفيذها من خلال Jobscheduler أو سيتم تشغيل خدمة المراسلة عبر السحابة الإلكترونية من Firebase إلى تطبيقات تابعة لجهات خارجية، يجب أن يخرج الجهاز من حالة S3 ما لم وضع المستخدم الجهاز في حالة غير نشطة. هذه المقاييس غير شاملة وAOSP تنفيذ إشارات استيقاظ مكثفة تؤدي إلى تنشيط من هذه الولاية.

8.4. محاسبة استهلاك الطاقة

كما أن المحاسبة وإعداد التقارير الأكثر دقة لاستهلاك الطاقة توفر مطوّر التطبيقات، الحوافز والأدوات اللازمة لتحسين استخدام الطاقة نمط التطبيق.

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتوفير ملف شخصي للطاقة لكل مكوّن التي تحدّد قيمة الاستهلاك الحالية لكل مكون من مكونات الجهاز والاستنزاف التقريبي للبطارية بسبب بمرور الوقت كما هو موثق في موقع المشروع المفتوح المصدر لنظام Android.
  • [C-SR-2] يُنصح بشدة بالإبلاغ عن جميع قيم استهلاك الطاقة بالملي أمبير ساعة (mAh).
  • [C-SR-3] يُنصح بشدة بالإبلاغ عن استهلاك طاقة وحدة المعالجة المركزية (CPU) حسب المُعرّف الفريد لكل عملية. يلبي المشروع المفتوح المصدر لنظام Android المتطلبات من خلال تنفيذ وحدة نواة uid_cputime
  • [C-SR-4] يُنصح بشدة بإتاحة استخدام الطاقة هذا عبر adb shell dumpsys batterystats أمر Shell إلى مطور التطبيق.
  • يجب أن يُنسب إلى مكون الجهاز نفسه إذا لم تتمكن من إحالة استخدام الطاقة لمكوّن الجهاز إلى تطبيق ما.

8.5. الأداء المتسق

يمكن أن يتذبذب الأداء بشكل كبير بالنسبة للتطبيقات عالية الأداء طويلة الأداء، إمّا بسبب تشغيل التطبيقات الأخرى في الخلفية أو بسبب تقييد وحدة المعالجة المركزية بسبب حدود درجة الحرارة. يتضمن Android واجهات آلية بحيث عندما قدرة الجهاز على العمل، فيمكن للتطبيق الذي يعمل في المقدّمة في المقدمة أن يطلب تحسين تخصيص الموارد لمعالجة هذه التقلبات.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب الإبلاغ بدقة عن توافق "وضع الأداء المستدام" من خلال PowerManager.isSustainedPerformanceModeSupported() طريقة واجهة برمجة التطبيقات.

  • يجب أن يتوافق مع "وضع الأداء المستدام".

في حال أبلغت عمليات تنفيذ الأجهزة عن أنّها تتوافق مع "وضع الأداء المستدام"، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يوفر للتطبيقات التي تعمل في المقدّمة مستوى ثابتًا من الأداء لمدة 30 دقيقة على الأقل، عندما يطلب التطبيق ذلك.
  • [C-1-2] يجب أن يلتزم Window.setSustainedPerformanceMode() واجهة برمجة التطبيقات وواجهات برمجة التطبيقات الأخرى ذات الصلة

إذا كانت عمليات تنفيذ الأجهزة تتضمّن وحدة معالجة مركزية (CPU) واحدة أو أكثر، ينطبق ما يلي:

  • يجب توفير مجموعة أساسية واحدة حصرية على الأقل يمكن حجزها بواسطة الجزء العلوي التطبيق الذي يعمل في المقدّمة.

إذا كانت عمليات تنفيذ الأجهزة تتيح تخصيص وحدة أساسية واحدة حصرية في الأعلى في المقدمة، فإنها:

  • [C-2-1] يجب الإبلاغ من خلال Process.getExclusiveCores() طريقة واجهة برمجة التطبيقات: أرقام تعريف النوى الحصرية التي يمكن حجزها بواسطة التطبيق الذي يعمل في المقدّمة.
  • [C-2-2] يجب عدم السماح بأي عمليات لتوفير مساحة للمستخدم باستثناء برامج تشغيل الأجهزة التي يستخدمها التطبيق لتشغيله على أنوية حصرية، ولكن قد يسمح لبعضها تشغيل عمليات النواة حسب الضرورة.

في حال لم تكن عمليات تنفيذ الأجهزة متوافقة مع مجموعة أساسية حصرية، سيحدث ما يلي:

  • [C-3-1] يجب عرض قائمة فارغة من خلال Process.getExclusiveCores() طريقة واجهة برمجة التطبيقات.

9. توافق نموذج الأمان

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب تنفيذ نموذج أمان متسق مع نموذج أمان نظام Android الأساسي كما هو محدد في المستند المرجعي للأمان والأذونات في واجهات برمجة التطبيقات في وثائق مطور برامج Android.

  • [C-0-2] يجب أن يتيح تثبيت نظام التشغيل الموقَّع ذاتيًا التطبيقات دون الحاجة إلى أي أذونات/شهادات إضافية من أي والجهات الخارجية أو الجهات الخارجية

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.security.model.compatible الميزات، فهي:

  • يجب أن يستوفي [C-1-1] المتطلبات الواردة في الأقسام الفرعية التالية.

9.1. الأذونات

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتوافق مع نموذج أذونات Android نموذج أدوار Android كما هو محدد في وثائق مطوّر برامج Android. على وجه التحديد، يجب فرض كل إذن ودور محدّدَين في مستندات حزمة تطوير البرامج (SDK) لا أذونات ولا يمكن حذف الأدوار أو تغييرها أو تجاهله.

  • يمكنك إضافة أذونات إضافية، بشرط أن تكون سلاسل معرّفات الأذونات الجديدة. لا تتوفّر في مساحة الاسم android.\*.

  • [C-0-2] أذونات باستخدام protectionLevel من PROTECTION_FLAG_PRIVILEGED يجب منح هذا الإذن للتطبيقات المثبَّتة مسبقًا في المسارات المميّزة للنظام فقط. أو ضمن المجموعة الفرعية من الأذونات المُدرَجة في القائمة المسموح بها صراحةً لكل إذن التطبيق. يلبي تنفيذ AOSP هذا الشرط من خلال القراءة والاعتماد الأذونات المسموح بها لكل تطبيق من الملفات في etc/permissions/ واستخدام المسار system/priv-app باعتباره الخاص بك.

أما الأذونات التي لها مستوى حماية من الخطورة، فهي أذونات التشغيل. التطبيقات التي تستخدم targetSdkVersion > 22 طلبًا في وقت التشغيل.

عمليات تنفيذ الأجهزة:

  • [C-0-3] يجب أن يعرض واجهة مخصصة للمستخدم ليقرر ما إذا كان يجب منح أذونات وقت التشغيل المطلوبة وتقديمها واجهة للمستخدم لإدارة أذونات وقت التشغيل.
  • يجب أن يتضمّن [C-0-4] عملية تنفيذ واحدة فقط لكل من المستخدمَين. من الواجهات.
  • [C-0-5] يجب ألا يمنح أي أذونات تشغيل لتثبيتها مسبقًا ما لم:
    • يمكن الحصول على موافقة المستخدم قبل تقديم الطلب. ويستخدمها.
    • ترتبط أذونات التشغيل بنمط intent. الذي يتم فيه تعيين التطبيق المثبت مسبقًا كمعالج افتراضي.
  • [C-0-6] يجب منح إذن android.permission.RECOVER_KEYSTORE فقط لتطبيقات النظام التي تسجل وكيل استرداد آمن بشكل سليم. حاسمة يتم تعريف وكيل الاسترداد الآمن بشكل صحيح بأنه وكيل برامج على الجهاز تتزامن مع وحدة تخزين بعيدة خارج الجهاز، ومجهزة من الأجهزة الآمنة باستخدام ما يعادل مستوى الحماية أو أقوى منه موصوفة في خدمة Google Cloud Key Vault لمنع هجمات القوة الغاشمة على عامل المعرفة الخاص بشاشة القفل.

عمليات تنفيذ الأجهزة:

  • [C-0-7] يجب أن يتقيّد بخصائص إذن تحديد الموقع الجغرافي في Android عند استخدام تطبيق تطلب بيانات الموقع الجغرافي أو النشاط البدني من خلال واجهة برمجة تطبيقات Android العادية أو آلية ملكية. وتشمل هذه البيانات، على سبيل المثال لا الحصر:

    • موقع الجهاز (مثل خطوط الطول والعرض) كما هو موضح في القسم 9.8.8.
    • يشير هذا المصطلح إلى المعلومات التي يمكن استخدامها لتحديد حالة عمل الجهاز أو تقديره. الموقع (على سبيل المثال، SSID أو معرِّف مجموعة الخدمات الأساسية (BSSID) أو معرِّف الخلية أو موقع الشبكة التي جهازك).
    • النشاط البدني للمستخدم أو تصنيف النشاط البدني

وبشكل أكثر تحديدًا، عمليات تنفيذ الأجهزة:

  • [C-0-8] يجب أن يحصل على موافقة المستخدم للسماح للتطبيق بالوصول إلى الموقع أو بيانات النشاط البدني.
  • [C-0-9] يجب منح إذن وقت التشغيل فقط للتطبيق الذي يحمل الإذن الإذن الكافي كما هو موضّح في حزمة SDK. على سبيل المثال: ContactManager#getServiceState تتطلّب الميزة android.permission.ACCESS_FINE_LOCATION.

الاستثناءات الوحيدة لخصائص إذن تحديد الموقع الجغرافي في Android المذكورة أعلاه تتعلّق التطبيقات التي لا تصل إلى الموقع الجغرافي لاستنتاج الموقع الجغرافي للمستخدم أو تحديده وعلى وجه التحديد:

  • عندما تحصل التطبيقات على إذن RADIO_SCAN_WITHOUT_LOCATION.
  • لأغراض ضبط الجهاز وإعداده، حيث تحتفظ تطبيقات النظام إذن NETWORK_SETTINGS أو NETWORK_SETUP_WIZARD.

يمكن وضع علامة على الأذونات على أنّها تؤدّي إلى تغيير سلوكها.

  • [C-0-10] يجب ألا تكون الأذونات التي تم وضع علامة hardRestricted عليها ممنوح للتطبيق ما لم:

    • هناك ملف APK خاص بالتطبيق في قسم النظام.
    • يُسنَد المستخدم دورًا مرتبطًا بـ "hardRestricted". أذونات لأحد التطبيقات.
    • تمنح أداة التثبيت hardRestricted للتطبيق.
    • تم منح تطبيق "hardRestricted" على إصدار Android سابق.
  • [C-0-11] يجب أن يتم تقييد التطبيقات التي تمتلك إذن softRestricted فقط يجب ألا يحصلوا على إذن الوصول الكامل إلى أن يتم إدراجهم في القائمة المسموح بها كما هو موضّح في حزمة SDK، حيث يتم تحديد إمكانية الوصول الكامل والمحدود لكل softRestricted إذن (مثلاً، READ_EXTERNAL_STORAGE).

  • [C-0-12] يجب ألا يوفر أي وظائف أو واجهات برمجة تطبيقات مخصصة لتجاوز قيود الأذونات التي تم تحديدها في setPermissionPolicy وsetPermissionGrantState واجهات برمجة التطبيقات.

  • [C-0-13] يجب استخدام واجهات برمجة تطبيقات AppOpsManager لتسجيل وتتبع كل منها كل عملية وصول آلي إلى البيانات المحمية بأذونات خطيرة من أنشطة وخدمات Android.

  • [C-0-14] يجب أن يقوم فقط بتعيين الأدوار للتطبيقات ذات الوظائف التي وتفي بمتطلبات الدور.

  • [C-0-15] يجب ألا يحدد الأدوار المكررة أو الوظائف الشاملة للأدوار التي تحددها المنصة.

إذا أبلغت الأجهزة عن android.software.managed_users، سينطبق ما يلي:

  • [C-1-1] يجب ألا يحصل على الأذونات التالية التي يتم منحها تلقائيًا من قِبل المشرف:
    • الموقع الجغرافي (ACCESS_BACKGROUND_LOCATION، ACCESS_COARSE_LOCATION، ACCESS_FINE_LOCATION).
    • الكاميرا (CAMERA)
    • الميكروفون (RECORD_AUDIO)
    • جهاز استشعار الجسم (BODY_SENSORS)
    • النشاط البدني (ACTIVITY_RECOGNITION)

إذا كانت عمليات تنفيذ الأجهزة تتيح للمستخدم اختيار التطبيقات التي يمكنها الرسم فوق التطبيقات الأخرى بواسطة نشاط يعالج ACTION_MANAGE_OVERLAY_PERMISSION النية، فهي:

  • [C-2-1] يجب أن يتأكد من أن جميع الأنشطة التي تتضمن فلاتر الأهداف ACTION_MANAGE_OVERLAY_PERMISSION يكون لهدف عرض نفس شاشة واجهة المستخدم، بغض النظر عن تطبيق البدء أو أي المعلومات التي يقدمها.

إذا أبلغت عمليات تنفيذ الجهاز عن android.software.device_admin، سيتم:

  • [C-3-1] يجب عرض بيان إخلاء مسؤولية أثناء إعداد الجهاز المُدار بالكامل (إعداد مالك الجهاز) للإشارة إلى أنّ مشرف تكنولوجيا المعلومات سيتمكّن من إجراء ما يلي: السماح للتطبيقات بالتحكم في الإعدادات على الهاتف، بما في ذلك الميكروفون والكاميرا مع خيارات تتيح للمستخدم مواصلة الإعداد أو الخروج من الإعداد ما لم أوقف المشرف إمكانية التحكُّم في الأذونات على الجهاز.

في حال تثبيت عمليات تنفيذ على الجهاز مسبقًا لأي حِزم تحمل أيًا من أدوار System UI Intelligence أو System Ambient Audio Intelligence أو System Audio Intelligence أو System Notification Intelligence أو System Text Intelligence أو System Visual Intelligence، ستكون الحِزم:

  • يجب أن يستوفي [C-4-1] جميع المتطلبات الموضّحة لعمليات تنفيذ الأجهزة في القسم "9.8.6 تسجيل المحتوى".
  • [C-4-2] يجب ألا يكون لديه إذن android.permission.INTERNET. وأكثر صرامة من تلك المقترحة بشدة في الفقرة 9.8.6.
  • [C-4-3] يجب ألا يتم الربط بالتطبيقات الأخرى، باستثناء تطبيقات النظام التالية: البلوتوث وجهات الاتصال والوسائط والاتصال الهاتفي وSystemUI والمكونات التي توفر واجهات برمجة تطبيقات الإنترنت.وهذا أكثر صرامة من التطبيقات الموصى بها بشدة الواردة في الفقرة 9.8.6.

9.2. المعرّف الفريد وعزل العمليات

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتوافق مع تطبيق Android وضع الحماية، والذي يتم فيه تشغيل كل تطبيق كمعرّف فريد فريد لنظام Unixstyle وفي عملية منفصلة.
  • [C-0-2] يجب أن يدعم تشغيل تطبيقات متعددة برقم تعريف مستخدم Linux نفسه، بشرط أن تكون التطبيقات موقّعة بشكل صحيح وتم إنشاؤها، كما هو موضح في مرجع الأمان والأذونات

9.3. أذونات نظام الملفات

عمليات تنفيذ الأجهزة:

9.4. بيئات التنفيذ البديلة

يجب أن تحافظ عمليات تنفيذ الأجهزة على اتساق أمان Android نموذج الأذونات، حتى إذا كانت تتضمّن بيئات وقت تشغيل يتم تنفيذها التطبيقات التي تستخدم بعض البرامج أو التقنيات الأخرى بخلاف برنامج Dalvik التنفيذي التنسيق أو الرمز الأصلي معنى هذا التعديل:

  • [C-0-1] يجب أن تكون أوقات التشغيل البديلة تطبيقات Android، الالتزام بنموذج أمان Android العادي، كما هو موضّح في قسم آخر في القسم 9.

  • [C-0-2] يجب عدم منح بيئات التشغيل البديلة الإذن بالوصول إلى الموارد محمية بأذونات لم يتم طلبها في AndroidManifest.xml لبيئة التشغيل ملف عبر <uses-permission> الآلية.

  • [C-0-3] يجب ألا تسمح بيئات التشغيل البديلة للتطبيقات باستخدام الميزات المحمية بواسطة أذونات Android المقصورة على تطبيقات النظام.

  • [C-0-4] يجب أن تلتزم بيئات التشغيل البديلة بنموذج وضع الحماية في Android يجب عدم استخدام بيئة تشغيل بديلة إعادة استخدام وضع الحماية لأي تطبيق آخر مثبَّت على الجهاز، إلا من خلال آليات Android العادية الخاصة بمعرّف المستخدم المشترك وشهادة التوقيع.

  • [C-0-5] يجب عدم إطلاق بيئات التشغيل البديلة مع أو منح أو منح الدخول إلى أوضاع الحماية المقابلة لتطبيقات Android الأخرى.

  • [C-0-6] يجب عدم إطلاق بيئات التشغيل البديلة أو منحها أو منحها إلى التطبيقات الأخرى أي امتيازات للمستخدم المميز (الجذر)، أو أي امتيازات معرّف المستخدم.

  • [C-0-7] عند تضمين ملفات .apk لبيئات التشغيل البديلة في صورة النظام لتنفيذات الأجهزة، يجب توقيعها بمفتاح مختلف من المفتاح المستخدَم لتوقيع التطبيقات الأخرى المضمّنة في الجهاز وعمليات التنفيذ.

  • [C-0-8] عند تثبيت التطبيقات، يجب أن تحصل أوقات التشغيل البديلة على موافقة المستخدم على أذونات Android التي يستخدمها التطبيق.

  • [C-0-9] عندما يحتاج أحد التطبيقات إلى الاستفادة من مورد الجهاز من أجل الذي يملك إذنًا مناسبًا لنظام التشغيل Android (مثل الكاميرا أو نظام تحديد المواقع العالمي (GPS) أو غير ذلك) يجب أن يخبر بيئة التشغيل البديلة المستخدم بإمكانية أن يكون التطبيق قادرًا على للوصول إلى هذا المورد.

  • [C-0-10] عندما لا تسجّل بيئة التشغيل التطبيق والإمكانيات بهذه الطريقة، يجب أن تسرد بيئة التشغيل جميع الأذونات الاحتفاظ بها في بيئة التشغيل نفسها عند تثبيت أي تطبيق يستخدم بيئة التشغيل تلك

  • "يجب أن يتم تثبيت التطبيقات في بيئات التشغيل البديلة عبر PackageManager" وضع حماية منفصل لنظام التشغيل Android (معرّفات مستخدمي Linux، وما إلى ذلك).

  • قد توفِّر بيئات التشغيل البديلة وضع حماية واحدًا على Android يشاركه جميع المستخدمين. التطبيقات التي تستخدم بيئة التشغيل البديلة.

9.5. دعم عدة مستخدمين

يتضمّن نظام التشغيل Android إمكانية استخدام عدة مستخدمين. وتوفر الدعم لعزل المستخدم بشكل كامل ونسخ الملفات الشخصية للمستخدمين مع عزل جزئي(أي ملف شخصي إضافي واحد للمستخدم من النوع) android.os.usertype.profile.CLONE).

  • قد تتم عمليات تنفيذ الأجهزة ولكن من المفترض ألا يتم تفعيل ميزة تعدد المستخدمين في حال استخدام وسائط قابلة للإزالة كوحدة تخزين خارجية أساسية.

في حال كانت عمليات تنفيذ الأجهزة تتضمّن دعمًا لعدة مستخدمين، سيحدث ما يلي:

  • [C-1-2] يجب، لكل مستخدم، تنفيذ سياسة أمان متوافق مع نموذج أمان نظام Android الأساسي كما هو محدد في المستند المرجعي للأمان والأذونات في واجهات برمجة التطبيقات.
  • [C-1-3] يجب أن يحتوي على مساحة تخزين مشتركة منفصلة ومعزولة للتطبيقات (المعروفة أيضًا باسم /sdcard) لكل مثيل مستخدم.
  • [C-1-4] يجب أن يضمن أن التطبيقات المملوكة والتي تعمل نيابةً عنها لا يمكن لمستخدم معين إدراج الملفات التي يملكها أي مستخدم آخر أو قراءتها أو الكتابة فيها، حتى إذا كانت بيانات كلا المستخدمين مخزنة على نفس وحدة التخزين أو نظام الملفات.
  • [C-1-5] يجب تشفير محتوى بطاقة SD عند تفعيل ميزة المستخدمين المتعددين استخدام مفتاح مخزَّن فقط على وسائط غير قابلة للإزالة لا يمكن للنظام الوصول إليها إلا إذا تطبيقات الأجهزة تستخدم وسائط قابلة للإزالة لواجهات برمجة تطبيقات التخزين الخارجي. ونظرًا لأن ذلك سيجعل الوسائط غير قابلة للقراءة بواسطة كمبيوتر شخصي مضيف، فإن تنفيذات الجهاز ستكون مطلوبة للتبديل إلى بروتوكول نقل الوسائط (MTP) أو نظام مشابه لتوفير أجهزة الكمبيوتر المضيفة الوصول إلى بيانات المستخدم الحالي.

إذا كانت عمليات تنفيذ الجهاز تتضمن دعمًا لعدة مستخدمين، فعندئذ يجب جميع المستخدمين باستثناء المستخدمين الذين تم إنشاؤهم خصيصًا لتشغيل المثيلات المزدوجة من نفس التطبيق، فإنها:

  • [C-2-1] يجب أن يحتوي على مساحة تخزين مشتركة منفصلة ومعزولة للتطبيقات (المعروفة أيضًا باسم /sdcard) لكل مثيل مستخدم.
  • [C-2-2] يجب أن يضمن أن التطبيقات التي تمتلكها التطبيقات التي تعمل على لا يمكن نيابةً عن مستخدم معيّن إدراج الملفات التي يملكها أو قراءتها أو الكتابة فيها أي مستخدم آخر، حتى إذا كانت بيانات كلا المستخدمين مخزنة على أو نظام الملفات.

قد تؤدي عمليات تنفيذ الأجهزة إلى إنشاء ملف شخصي إضافي واحد للمستخدم من النوع. android.os.usertype.profile.CLONE مقابل المستخدم الأساسي (وفقط مقابل المستخدم الأساسي) بغرض تشغيل نسختين من التطبيق نفسه. تشترك هذه المثيلات المزدوجة في مساحة تخزين معزولة جزئيًا، ويتم عرضها في مستخدم نهائي في "مشغّل التطبيقات" في الوقت نفسه وتظهر في عرض التطبيقات الأخيرة نفسها. على سبيل المثال، يمكن استخدام ذلك لمساعدة المستخدم على تثبيت اثنين من أجهزة منفصلة لكل تطبيق على جهاز بشريحتَي SIM.

إذا أدت عمليات تنفيذ الأجهزة إلى إنشاء ملف شخصي إضافي للمستخدم تمت مناقشته أعلاه، فإنهم:

  • [C-3-1] يجب أن توفر فقط إمكانية الوصول إلى سعة التخزين أو البيانات المتوفرة يمكن الوصول إليها من خلال الملف الشخصي للمستخدم الرئيسي أو أن يملكها هذا المستخدم بشكل مباشر ملف شخصي إضافي للمستخدم.
  • [C-3-2] يجب ألا يحتوي هذا على ملف شخصي للعمل.
  • [C-3-3] يجب أن يعزل أدلة بيانات التطبيق الخاصة عن المجلد الرئيسي حساب مستخدم.
  • [C-3-4] يجب ألا يتم السماح بإنشاء الملف الشخصي للمستخدم الإضافي إذا كان هناك إذا كان الجهاز مُدارًا بواسطة مالك الجهاز (راجع الفقرة 3.9.1) أو السماح لمالك الجهاز بدون إزالة الملف الشخصي الإضافي للمستخدم أولاً.

9.6. تحذير بشأن الرسائل القصيرة برسوم إضافية

يتيح Android تحذير المستخدمين من أي عمليات شراء صادرة. رسالة SMS مميّزة رسالة قصيرة برسوم إضافية والرسائل النصية هي رسائل نصية يتم إرسالها إلى خدمة مسجّلة لدى مشغّل شبكة الجوّال وقد تحمل رسومًا للمستخدم.

إذا أعلنت عمليات تنفيذ الأجهزة عن توافقها مع android.hardware.telephony، وهي:

  • [C-1-1] يجب تحذير المستخدمين قبل إرسال رسالة SMS إلى الأرقام تم تحديدها من خلال التعبيرات العادية المحدّدة في /data/misc/sms/codes.xml الملف في الجهاز. يوفر المشروع المفتوح المصدر لنظام Android تنفيذ يفي بهذا المطلب.

9.7. ميزات الأمان

يجب أن تضمن عمليات تنفيذ الأجهزة الامتثال لميزات الأمان في كل من والنظام الأساسي كما هو موضح أدناه.

يتضمن "وضع الحماية لنظام Android" ميزات تستخدم نظام التشغيل Linux المعزز للأمان (SELinux) نظام التحكم الإلزامي في الوصول (MAC) ووضع الحماية seccomp وغير ذلك ميزات الأمان في نواة Linux. عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يحافظ على التوافق مع التطبيقات الحالية، حتى إذا أو SELinux أو أي ميزات أمان أخرى يتم تنفيذها أسفل نظام التشغيل إطار العمل.
  • [C-0-2] يجب ألا يكون له واجهة مستخدم مرئية عند وجود رصد انتهاك ميزة الأمان وحظره بنجاح تنفيذها أسفل إطار عمل Android، ولكن قد تحتوي على واجهة مستخدم مرئية عند حدوث انتهاك أمني غير محظور أدى إلى نجاح الاستغلال.
  • [C-0-3] يجب ألا يتم تنفيذ SELinux أو أي ميزات أمان أخرى أسفل إطار عمل Android الذي يمكن للمستخدم أو مطوّر التطبيق ضبطه
  • [C-0-4] يجب عدم السماح بتطبيق يمكن أن يؤثر على تطبيق آخر من خلال واجهة برمجة تطبيقات (مثل واجهة برمجة التطبيقات لإدارة الأجهزة) لضبط سياسة يقطع التوافق.
  • [C-0-5] يجب أن يقسم إطار عمل الوسائط إلى عمليات متعددة بحيث من الممكن منح حق الوصول بشكل أكثر تحديدًا لكل عملية موصوفة في موقع "مشروع مفتوح المصدر لنظام Android".
  • [C-0-6] يجب تنفيذ آلية وضع الحماية لتطبيق النواة والتي تسمح بتصفية طلبات النظام باستخدام سياسة قابلة للتهيئة من وبرامج متعددة السلاسل. يلبي مشروع Android المفتوح المصدر هذا من خلال تفعيل seccomp-BPF باستخدام السمةthreadgroup المزامنة (TSYNC) كما هو موضح في قسم إعداد النواة في source.android.com.

ميزات سلامة النواة والحماية الذاتية جزء لا يتجزأ من Android الأمان. عمليات تنفيذ الأجهزة:

  • [C-0-7] يجب تنفيذ آليات الحماية من تجاوز سعة المخزن المؤقت لحزمة kernel. ومن أمثلة هذه الآليات CC_STACKPROTECTOR_REGULAR CONFIG_CC_STACKPROTECTOR_STRONG
  • [C-0-8] يجب تنفيذ إجراءات حماية صارمة في الذاكرة بنواة kernel في المواضع القابلة للتنفيذ التعليمات البرمجية للقراءة فقط، والبيانات للقراءة فقط غير قابلة للتنفيذ، وغير قابلة للكتابة، البيانات القابلة للكتابة غير قابلة للتنفيذ (مثل CONFIG_DEBUG_RODATA أو CONFIG_STRICT_KERNEL_RWX).
  • [C-0-9] يجب تنفيذ حجم الكائن الثابت والديناميكي التحقق من الحدود للنسخ بين مساحة المستخدم ومساحة الكيرنل (kernel-space) (مثل CONFIG_HARDENED_USERCOPY) على الأجهزة التي يتم شحنها في الأصل بمستوى واجهة برمجة التطبيقات 28 أو أعلى.
  • [C-0-10] يجب ألا يتم تنفيذ ذاكرة مساحة المستخدم عند التنفيذ في وضع النواة (kernel، على سبيل المثال، PXN للأجهزة، أو التي تتم محاكاتها عبر CONFIG_CPU_SW_DOMAIN_PAN أو CONFIG_ARM64_SW_TTBR0_PAN) على الأجهزة الشحن في الأصل باستخدام المستوى 28 من واجهة برمجة التطبيقات أو المستويات الأحدث
  • [C-0-11] يجب ألا تتم قراءة أو كتابة ذاكرة مساحة المستخدم في kernel خارج واجهات برمجة التطبيقات للوصول العادي إلى نسخة المستخدم (مثل رقم PAN للأجهزة أو التي تمت محاكاتها عبر CONFIG_CPU_SW_DOMAIN_PAN أو CONFIG_ARM64_SW_TTBR0_PAN) على الأجهزة التي كان يتم شحنها في الأصل باستخدام المستوى 28 من واجهة برمجة التطبيقات أو المستويات الأحدث
  • [C-0-12] يجب تنفيذ عزل جدول صفحة النواة إذا كان الجهاز معرَّضة لهجمات اختراق من CVE-2017-5754 على جميع الأجهزة التي يتم شحنها في الأصل باستخدام مستوى واجهة برمجة التطبيقات 28 أو أعلى (على سبيل المثال CONFIG_PAGE_TABLE_ISOLATION أو CONFIG_UNMAP_KERNEL_AT_EL0).
  • [C-0-13] يجب تنفيذ تقوية تنبؤ الفرع إذا كان الجهاز معرَّضة لهجمات اختراق من CVE-2017-5715 على جميع الأجهزة التي يتم شحنها في الأصل باستخدام مستوى واجهة برمجة التطبيقات 28 أو أعلى (مثل CONFIG_HARDEN_BRANCH_PREDICTOR).
  • [C-SR-1] يُوصى به بشدة للاحتفاظ ببيانات النواة والذي تتم كتابته فقط أثناء التهيئة مع وضع علامة عليه للقراءة فقط بعد الإعداد (مثل __ro_after_init).
  • [C-SR-2] يُوصى بها بشدة لإجراء ترتيب عشوائي لتخطيط التعليمة البرمجية للنواة الذاكرة، وتجنب التعرض الذي قد يعرّض التوزيع العشوائي (مثل CONFIG_RANDOMIZE_BASE مع قصور برنامج الإقلاع عبر /chosen/kaslr-seed Device Tree node أو EFI_RNG_PROTOCOL).

  • [C-SR-3] يُوصى بها بشدة لتمكين سلامة تدفق التحكم (CFI) في النواة (kernel) لتوفير حماية إضافية من هجمات إعادة استخدام التعليمات البرمجية (مثل CONFIG_CFI_CLANG وCONFIG_SHADOW_CALL_STACK).

  • [C-SR-4] يُنصح بشدة بعدم إيقاف ميزة "سلامة التحكم في تدفق التحكم" (CFI)، تشغيل حزم طلبات الظل (SCS) أو Integer Overflow Sanitization (IntSan) والمكونات التي تم تفعيلها عليها.

  • [C-SR-5] يُنصَح باستخدامها بشدة لتفعيل CFI وSCS وIntSan لأي مكونات مساحة المستخدم الإضافية الحساسة للأمان كما هو موضح في CFI IntSan

  • [C-SR-6] يُنصَح باستخدامها بشدة لتفعيل إعداد تسلسل استدعاء الدوال البرمجية في النواة لمنع استخدامات المتغيرات المحلية غير المهيأة (CONFIG_INIT_STACK_ALL أو CONFIG_INIT_STACK_ALL_ZERO). كذلك، ينبغي ألا تفترض عمليات تنفيذ الجهاز القيمة التي يستخدمها برنامج التحويل البرمجي تهيئة السكان المحليين.

  • [C-SR-7] يُنصَح باستخدامها بشدة لتفعيل تهيئة الكوة في النواة وذلك بهدف منع استخدام عمليات تخصيص مخزون غير مهيأ (CONFIG_INIT_ON_ALLOC_DEFAULT_ON) وينبغي ألا تفترض القيمة التي يستخدمها بالنواة لتهيئة تلك التخصيصات.

إذا كانت عمليات تنفيذ الجهاز تستخدم نواة Linux قادرة على دعم في SELinux، وهي:

  • [C-1-1] يجب تنفيذ SELinux.
  • [C-1-2] يجب تعيين SELinux على وضع الفرض العام.
  • [C-1-3] يجب إعداد جميع النطاقات في وضع الفرض. ما مِن وضع متساهل يتم السماح بالنطاقات، بما في ذلك النطاقات الخاصة بجهاز أو مورِّد.
  • [C-1-4] يجب ألا يعدّل أو يحذف أو يستبدل القواعد الموجودة NOTallow ضمن مجلد System/sepolicy المقدَّم في الإصدار المفتوح المصدر من Android يجب أن يتم تجميع المشروع (AOSP) والسياسة مع وجود جميع قواعد "Neverallow" لكل من نطاقات SELinux المستندة إلى AOSP وكذلك النطاقات الخاصة بالجهاز/المورِّد.
  • [C-1-5] يجب تشغيل تطبيقات تابعة لجهات خارجية تستهدف المستوى 28 من واجهة برمجة التطبيقات أو مستوى أعلى في في وضع حماية SELinux لكل تطبيق مع قيود SELinux لكل تطبيق على كل تطبيق دليل البيانات الخاصة للتطبيق.
  • "ينبغي" الاحتفاظ بسياسة SELinux الافتراضية المقدمة في system/sepolicy الخاص بالمشروع المفتوح المصدر لنظام Android الأساسي وإضافة المزيد إلى هذا مضبوطة على إعداداتها الخاصة بالأجهزة.

إذا كانت عمليات تنفيذ الجهاز تستخدم نواة بخلاف Linux أو Linux بدون SELinux، وهي:

  • [C-2-1] يجب أن يستخدم نظام تحكم إلزامي في الوصول يعادل SELinux.

إذا كانت عمليات تنفيذ الأجهزة تستخدم أجهزة إدخال/إخراج متوافقة مع قانون الأسواق الرقمية، سيتم إجراء ما يلي:

  • [C-SR-8] يُنصح بشدة بعزل كل جهاز إدخال/إخراج متوافق مع قانون الأسواق الرقمية (DMA) باستخدام وحدة IOMMU (مثل ARM SMMU).

يحتوي Android على العديد من ميزات الدفاع العميق التي تشكل جزءًا لا يتجزأ من الجهاز. الأمان. بالإضافة إلى ذلك، يركّز Android على تقليل الفئات الرئيسية للأخطاء الشائعة. تساهم في ضعف الجودة والأمان.

للحد من أخطاء الذاكرة، إجراءات الأجهزة:

  • [C-SR-9] يُوصى بشدة باختبارها باستخدام خطأ في ذاكرة مساحة المستخدم أدوات رصد مثل MTE لأجهزة ARMv9 أو HWASan لأجهزة ARMv8+ أو ASan لأنواع الأجهزة الأخرى.
  • [C-SR-10] يُنصح بشدة باختبارها باستخدام خطأ في ذاكرة النواة KASAN (CONFIG_KASAN وCONFIG_KASAN_HW_TAGS) أجهزة ARMv9 أو CONFIG_KASAN_SW_TAGS لأجهزة ARMv8 أو CONFIG_KASAN_GENERIC لأنواع الأجهزة الأخرى).
  • [C-SR-11] يُوصى بشدة باستخدام أدوات اكتشاف أخطاء الذاكرة في مثل MTE وGWP-ASan وKFENCE.

في حال كانت عمليات تنفيذ الجهاز تستخدم بيئة التنفيذ الموثوقة (TEE) المستندة إلى Arm TrustZone، سيتم إجراء ما يلي:

  • [C-SR-12] يُوصى بشدة باستخدام بروتوكول قياسي للذاكرة للمشاركة بين Android وTEE، مثل "إطار عمل Arm Firmware" Armv8-A (FF-A)
  • [C-SR-13] يُوصى بها بشدة بقصر التطبيقات الموثوق بها على بالوصول إلى الذكريات التي تمت مشاركتها معهم صراحةً من خلال ما سبق والبروتوكول. إذا كان الجهاز متوافقًا مع مستوى استثناء Arm S-EL2، يُرجى تنفيذ ما يلي: يجب فرضها بواسطة مدير الأقسام الآمن. بخلاف ذلك، يجب أن يكون هذا يتم فرضه من قِبل نظام تشغيل TEE.

9.8. الخصوصية

9.8.1. سجلّ الاستخدام

يخزن Android سجل اختيارات المستخدم ويدير هذا السجل كما UsageStatsManager.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يحتفظ بفترة احتفاظ معقولة بسجلّ المستخدمين هذا.
  • [C-SR-1] يُوصى بها بشدة للحفاظ على فترة الاحتفاظ بالبيانات التي تبلغ 14 يومًا بشكل افتراضي في تنفيذ بروتوكول AOSP.

يخزِّن Android أحداث النظام باستخدام StatsLog. كما تتم إدارة هذا السجلّ عبر StatsManager IncidentManager System API:

عمليات تنفيذ الأجهزة:

  • يجب أن يحتوي [C-0-2] على الحقول الموضوع عليها علامة DEST_AUTOMATIC فقط في تقرير الحوادث الذي تم إنشاؤه بواسطة فئة واجهة برمجة تطبيقات النظام IncidentManager.
  • [C-0-3] يجب ألا يستخدم معرّفات الأحداث للنظام لتسجيل أي حدث آخر مقارنةً بما هو موضّح في StatsLog مستندات حزمة SDK. إذا تم تسجيل أحداث نظام إضافية، فمن الممكن أن تستخدم معرِّف Atom مختلف في النطاق بين 100,000 و200,000.

9.8.2. يتم التسجيل

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يتم تحميل مكونات البرنامج مسبقًا أو توزيعها بطريقة غير تقليدية إرسال معلومات المستخدم الخاصة (مثل ضغطات المفاتيح، والنص المعروض على الشاشة أو تقرير الأخطاء) عن الجهاز بدون موافقة المستخدم أو الإشعارات المستمرة.
  • [C-0-2] يجب أن يعرض ويحصل على موافقة صريحة من المستخدم تسمح بأي محتوى حساسة المعلومات التي يتم عرضها على شاشة المستخدم لالتقاطها كلما تفعيل بث الشاشة أو تسجيل الشاشة عبر MediaProjection أو واجهات برمجة تطبيقات خاصة بها. يجب ألا تتيح للمستخدمين إمكانية إيقاف الميزة في المستقبل عرض موافقة المستخدم.
  • [C-0-3] يجب إرسال إشعار مستمر للمستخدم أثناء البث المباشر للشاشة أو تسجيل الشاشة مفعّل. تستوفي "مقدّم خدمة البريد الإلكتروني من Google" (AOSP) هذا الشرط من خلال إظهار رمز إشعار مستمر في شريط الحالة.

إذا كانت عمليات تنفيذ الجهاز تتضمن وظائف في النظام إما يسجّل المحتوى المعروض على الشاشة و/أو يسجّل البث الصوتي تم تشغيله على الجهاز بخلاف عبر System API ContentCaptureService، أو وسائل الملكية الأخرى الموضحة في القسم 9.8.6 تسجيل المحتوى:

  • [C-1-1] يجب إرسال إشعار إلى المستخدم باستمرار عند حدوث ذلك تمكين الوظيفة والالتقاط/التسجيل بشكل نشط.

إذا كانت عمليات تنفيذ الجهاز تتضمن مكونًا غير مفعّل يمكن تنفيذه، تسجيل صوت في البيئة المحيطة و/أو تسجيل الصوت الذي يتم تشغيله على الجهاز لاستنتاج معلومات مفيدة حول سياق المستخدم، فإنّه:

  • [C-2-1] يجب ألا يتم تخزينها في مساحة تخزين دائمة على الجهاز أو نقلها خارج الجهاز الصوتي الأولي المسجّل أو أي تنسيق يمكن تحويله إلى الصوت الأصلي أو صورة شبه مطابقة إلا بموافقة صريحة من المستخدم.

يشير "مؤشر الميكروفون" إلى شاشة عرض على الشاشة تكون مرئية باستمرار إلى المستخدم ولا يمكن إخفاؤه، وهو ما يفهمه المستخدم بأن الميكروفون يعمل للاستخدام(من خلال نص أو لون أو رمز فريد أو مزيج من ذلك).

يشير "مؤشر الكاميرا" إلى طريقة عرض على الشاشة، والتي تكون مرئية باستمرار المستخدم ولا يمكن إخفاؤه، وهو ما يفهمه المستخدم بأن الكاميرا قيد الاستخدام (من خلال نص فريد أو لون أو رمز أو مزيج آخر).

بعد عرض الثانية الأولى، يمكن أن يتغير مؤشر بصريًا، مثل أصغر، وليس مطلوبًا أن تظهر بالشكل الأصلي ومفهومًا.

قد يتم دمج مؤشر الميكروفون مع كاميرا معروضة بشكل نشط شريطة أن يشير النص أو الأيقونات أو الألوان للمستخدم إلى بدأ استخدام الميكروفون.

قد يكون مؤشر الكاميرا مدمجًا مع ميكروفون معروض بشكل نشط. شريطة أن يشير النص أو الرموز أو الألوان للمستخدم إلى أن بدأ استخدام الكاميرا.

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.microphone، سيتم ما يلي:

  • [C-SR-1] يُوصى بها بشدة لعرض مؤشر الميكروفون عند استخدام أحد التطبيقات يصل إلى البيانات الصوتية من الميكروفون، وليس عندما يكون الميكروفون قيد التشغيل تم الوصول إليه فقط من قِبل HotwordDetectionService وSOURCE_HOTWORD ContentCaptureService أو التطبيقات التي تمتلك الأدوار الموضّحة في القسم 9.1 الأذونات التي تحمل معرّف CDD [C-3-X]. .
  • [C-SR-2] يُوصى بها بشدة لعرض قائمة "الملفات الحديثة والنشطة" التطبيقات التي تستخدم الميكروفون وفقًا لما يظهر من PermissionManager.getIndicatorAppOpUsageData()، إلى جانب أي إحالة الرسائل المرتبطة بها.
  • [C-SR-3] يُوصى بشدة بعدم إخفاء مؤشر الميكروفون تطبيقات النظام التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم

إذا كانت عمليات تنفيذ الأجهزة تشير إلى android.hardware.camera.any، سيتم ما يلي:

  • [C-SR-4] يُوصى بها بشدة لعرض مؤشر الكاميرا عند تشغيل التطبيق الوصول إلى بيانات الكاميرا المباشرة، ولكن ليس عند الوصول إلى الكاميرا فقط حسب التطبيقات التي تمتلك الأدوار المذكورة في الفقرة 9.1: الأذونات باستخدام CDD المعرّف [C-3-X].
  • [C-SR-5] يُوصى بها بشدة لعرض التطبيقات الحديثة والنشطة باستخدام الكاميرا التي تم إرجاعها من PermissionManager.getIndicatorAppOpUsageData()، إلى جانب أي رسائل تحديد مصدر مرتبطة بها.
  • [C-SR-6] يُنصح بشدة بعدم إخفاء مؤشر الكاميرا للنظام التطبيقات التي تتضمّن واجهات مستخدم مرئية أو تفاعلاً مباشرًا للمستخدم

9.8.3. إمكانية الاتصال

إذا كانت عمليات تنفيذ الأجهزة تتضمن منفذ USB متوافقًا مع وضع أجهزة USB الطرفية، وهي:

  • [C-1-1] يجب تقديم واجهة مستخدم تطلب موافقة المستخدم قبل السماح بالوصول إلى محتوى وحدة التخزين المشتركة عبر منفذ USB.

9.8.4. حركة بيانات الشبكة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب تثبيت شهادات الجذر نفسها مسبقًا للأجهزة الموثوق بها من النظام. تخزين مرجع التصديق (CA) على أنّه مقدّم في مشروع البرامج المفتوحة المصدر لنظام Android
  • [C-0-2] يجب شحنه مع متجر CA جذر مستخدم فارغ.
  • [C-0-3] يجب أن يعرض تحذيرًا للمستخدم يشير إلى حركة بيانات الشبكة قد تتم مراقبته، عند إضافة هيئة إصدار شهادات الجذر للمستخدم.

في حال توجيه حركة بيانات الأجهزة من خلال شبكة VPN، ستنطبق عمليات تنفيذ الأجهزة على ما يلي:

  • [C-1-1] يجب أن يعرض تحذيرًا للمستخدم يشير إلى:
    • قد تتم مراقبة حركة بيانات الشبكة.
    • ويتم توجيه حركة بيانات هذه الشبكة عبر شبكة VPN محددة يوفر شبكة VPN.

إذا كانت عمليات تنفيذ الجهاز لها آلية، يتم تفعيلها بشكل تلقائي بشكل افتراضي، والتي توجِّه حركة بيانات الشبكة عبر خادم وكيل أو بوابة VPN (على سبيل المثال، التحميل المُسبق لخدمة VPN مع منح إذن android.permission.CONTROL_VPN)، فإنها:

  • [C-2-1] يجب أن تطلب موافقة المستخدم قبل تفعيل هذه الآلية. ما لم يتم تفعيل شبكة VPN من خلال "وحدة التحكّم بسياسة الجهاز" عبر DevicePolicyManager.setAlwaysOnVpnPackage() ، وفي هذه الحالة لا يحتاج المستخدِم إلى تقديم موافقة منفصلة، ولكن يجب الإعلام فقط بذلك.

إذا أدت عمليات تنفيذ الأجهزة إلى قدرة المستخدم على التبديل إلى "شبكة VPN قيد التشغيل دائمًا" في تطبيق VPN تابع لجهة خارجية، فإنها:

  • [C-3-1] يجب أن توقِف قدرة هذا المستخدم على التعامل مع التطبيقات التي لا تتوافق مع التطبيق. هي خدمة VPN قيد التشغيل دائمًا في ملف AndroidManifest.xml من خلال ضبط SERVICE_META_DATA_SUPPORTS_ALWAYS_ON إلى false.

9.8.5. معرّفات الأجهزة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن تمنع الوصول إلى الرقم التسلسلي للجهاز، حيث سارٍ، IMEI/MEID، والرقم التسلسلي لشريحة SIM، ورقم الجوّال الدولي هوية المشترِك (IMSI) من أحد التطبيقات، ما لم تستوفِ أيًّا مما يلي المتطلبات:
    • هو تطبيق مشغِّل شبكة جوّال موقَّع تم التحقق منه من قِبل الشركات المصنّعة للأجهزة.
    • تم منح الإذن READ_PRIVILEGED_PHONE_STATE.
    • امتيازات مشغِّل شبكة الجوّال على النحو المحدَّد في امتيازات مشغِّل شبكة الجوّال في UICC.
    • مالك الجهاز أو مالك الملف الشخصي الحاصل على إذن READ_PHONE_STATE.
    • (بالنسبة إلى الرقم التسلسلي لشريحة SIM/ICCID فقط) تتطلب اللوائح المحلية أن التطبيق يكتشف التغييرات في هوية المشترك.

Android، من خلال System API ContentCaptureService، AugmentedAutofillService أو AppSearchGlobalManager.query أو غيرها على الإنترنت، تدعم آلية تنفيذات الأجهزة للحصول على تفاعلات بيانات التطبيقات التالية بين التطبيقات المستخدم:

  • النصوص والرسومات المعروضة على الشاشة، بما في ذلك على سبيل المثال لا الحصر، الإشعارات والبيانات الداعمة عبر AssistStructure واجهة برمجة التطبيقات.
  • بيانات الوسائط، مثل الصوت أو الفيديو، التي تم تسجيلها أو تشغيلها بواسطة الجهاز.
  • أحداث الإدخال (مثل المفتاح والماوس والإيماءات والصوت والفيديو وأدوات تسهيل الاستخدام).
  • أي أحداث أخرى يوفّرها التطبيق للنظام من خلال Content Capture واجهة برمجة التطبيقات (API) أو AppSearchManager API لنظام Android الخاصة بواجهة برمجة تطبيقات خاصة.
  • أي رسالة نصية أو بيانات أخرى يتم إرسالها عبر TextClassifier API إلى "تصنيف النص" في النظام، أي خدمة النظام لفهم معنى النص، بالإضافة إلى إنشاء إجراءات تالية متنبأ بها استنادًا إلى النص.
  • البيانات المفهرسة بواسطة النظام الأساسي AppSearch، بما في ذلك على سبيل المثال لا تقتصر على النصوص أو الرسومات أو بيانات الوسائط أو غيرها من البيانات المشابهة.

إذا كانت عمليات تنفيذ الأجهزة تجمع البيانات المذكورة أعلاه، سيتم ما يلي:

  • [C-1-1] يجب تشفير جميع هذه البيانات عند تخزينها في الجهاز. هذا النمط قد يتم تشفيرها باستخدام ميزة "التشفير المستند إلى ملفات Android" أو أي من الرموز المذكورة في الإصدار 26 من واجهة برمجة التطبيقات أو الإصدارات الأحدث الموضحة في حزمة Cipher SDK.
  • [C-1-2] يجب ألا يجري الاحتفاظ بنسخة احتياطية من البيانات الأولية أو المشفرة باستخدام طرق الاحتفاظ بنسخة احتياطية من البيانات في جهاز Android أو أي طريقة أخرى لاسترداد البيانات طرق أعلى.
  • [C-1-3] يجب فقط إرسال جميع هذه البيانات وسجلّ الجهاز باستخدام للحفاظ على الخصوصية. آلية الحفاظ على الخصوصية بأنها "تلك التي تسمح فقط بالتحليل بشكل مجمَّع وتمنع مطابقة الأحداث المسجَّلة أو النتائج المشتقة بالمستخدمين الفرديين منع أي بيانات لكل مستخدم قد تكون قابلة للتأمل (على سبيل المثال، تنفيذها باستخدام تكنولوجيا خصوصية تفاضلية، مثل RAPPOR).
  • [C-1-4] يجب ألا تربط هذه البيانات بأي هوية مستخدم (مثل باسم Account) على الجهاز، إلا في حال الحصول على موافقة صريحة من المستخدم في كل مرة يتم فيها نقل البيانات المرتبطة.
  • [C-1-5] يجب ألا تتم مشاركة هذه البيانات مع أي مكوّنات أخرى في نظام التشغيل اتباع المتطلبات الموضحة في القسم الحالي (9.8.6 تسجيل المحتوى)، باستثناء الحصول على موافقة صريحة من المستخدم في كل مرة تتم مشاركته.
  • [C-1-6] يجب أن يوفر المستخدم القدرة على محو مثل هذه البيانات التي يتم جمع البيانات من قِبل "ContentCaptureService" أو الملكية في حال تخزين البيانات بأي شكل من الأشكال على الجهاز.
  • [C-1-7] يجب أن توفر للمستخدم إمكانية إيقاف البيانات التي يتم جمعها من خلال AppSearch أو الأدوات المملوكة من قِبل المستخدمين والتي لا تظهر في نظام Android الأساسي مثلاً: المستخدم.
  • [C-SR-1] يُنصح بشدة بعدم طلب إذن INTERNET.
  • [C-SR-2] يُوصى بها بشدة للوصول إلى الإنترنت من خلال واجهات برمجة تطبيقات منظمة مدعومة بعمليات تنفيذ مفتوحة المصدر متاحة للجميع.

إذا كانت عمليات تنفيذ الجهاز تتضمن خدمة تنفِّذ System API "ContentCaptureService" أو "AppSearchManager.index" أو أي خدمة ذات ملكية خاصة تجمع البيانات كما هو موضح أعلاه، فإنها:

  • [C-2-1] يجب ألا يسمح للمستخدمين باستبدال الخدمات بـ تطبيقات أو خدمات قابلة للتثبيت من قِبل المستخدم ويجب أن تسمح فقط الخدمات المثبّتة مسبقًا لتسجيل هذه البيانات.
  • [C-2-2] يجب ألا يسمح بأي تطبيقات بخلاف الخدمات المثبَّتة مسبقًا تمكنهم من تسجيل مثل هذه البيانات.
  • [C-2-3] يجب أن تتوفر قدرة المستخدم على إيقاف الخدمات.
  • [C-2-4] يجب ألا يتم حذف قدرة المستخدم على إدارة أذونات Android التي على الخدمات وتطبيق أذونات Android كما هو موضح في الفقرة 9.1. الإذن.
  • [C-SR-3] يُنصح بشدة بفصلها عن الخدمات الأخرى مكوّنات النظام(مثل عدم ربط الخدمة أو أرقام تعريف عملية المشاركة) باستثناء ما يلي:

    • الاتصالات الهاتفية وجهات الاتصال وواجهة مستخدم النظام والوسائط

يوفّر Android حتى SpeechRecognizer#onDeviceSpeechRecognizer() إمكانية الاستفادة من الميزات. التعرف على الكلام على الجهاز، بدون الاستعانة بالشبكة. يجب أن تتوافق أي عملية تنفيذ لأداة SpeechRecognizer على الجهاز مع السياسات. الموضحة في هذا القسم.

9.8.7. الوصول إلى الحافظة

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يتم عرض بيانات مقطوعة إلى الحافظة (على سبيل المثال عن طريق ClipboardManager ما لم يكن التطبيق هو أداة IME التلقائية أو التطبيق الذي يتضمن حاليًا التركيز.

9.8.8. الموقع الجغرافي

يتضمن الموقع معلومات في فئة الموقع في Android( مثل خط العرض، خط الطول والارتفاع)، بالإضافة إلى المعرّفات التي يمكن تحويلها إلى بيانات الموقع الجغرافي. قد يكون الموقع جيدًا مثل نظام تحديد المواقع العالمي (DGPS) (نظام تحديد المواقع العالمي التفاضلي) أو تقريبية كالمواقع الجغرافية على مستوى البلد (مثل موقع رمز البلد - مركز عملائي - الجوّال رمز البلد).

في ما يلي قائمة بأنواع المواقع الجغرافية التي تستمد الموقع الجغرافي أو يمكن تحويلها إلى موقع المستخدم الجغرافي. هذه المقالة ليست شاملة ولكن يجب استخدامه كمثال على ما يمكن أن يكون الموقع مُشتقة بشكل غير مباشر من:

  • نظام تحديد المواقع العالمي (GPS)/نظام تحديد المواقع العالمي (GNSS)/نظام تحديد المواقع العالمي (DGPS)/بروتوكول PPP
    • حل تحديد المواقع العالمي أو نظام التنقل العالمي عبر الأقمار الصناعية أو حل التسويق التفاضلي العالمي
    • يشمل ذلك أيضًا قياسات GNSS الأولية وحالة GNSS.
      • يمكن استنتاج الموقع الدقيق من قياسات GNSS الأولية.
  • التكنولوجيات اللاسلكية ذات المعرّفات الفريدة، مثل:
    • نقاط وصول WiFi (MAC أو BSSID أو Name أو SSID)
    • بلوتوث/BLE (MAC أو BSSID أو الاسم أو SSID)
    • النطاق الفائق العرض (MAC) أو معرِّف مجموعة الخدمات الأساسية (BSSID) أو الاسم أو SSID)
    • رقم تعريف البرج الخلوي (3G و4G و5G... بما في ذلك جميع أجهزة المودم الخلوية المستقبلية التكنولوجيات التي لها معرّفات فريدة)

كنقطة مرجعية أساسية، يمكنك الاطلاع على واجهات برمجة تطبيقات Android التي تتطلب أذونات ACCESS_FINE_Location أو ACCESS_COARSE_Location

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يتم تفعيل/إيقاف إعداد الموقع الجغرافي للجهاز وشبكة Wi-Fi أو بلوتوث. فحص الإعدادات بدون موافقة صريحة من المستخدم أو بدء المستخدم
  • [C-0-2] يجب أن توفر للمستخدم إمكانية الوصول إلى الموقع ذي الصلة المعلومات، بما في ذلك الطلبات الأخيرة للوصول إلى الموقع الجغرافي والأذونات على مستوى التطبيق والاستخدام البحث عن شبكات Wi-Fi/البلوتوث لتحديد الموقع.
  • [C-0-3] يجب أن يتأكّد من أنّ التطبيق الذي يستخدم واجهة برمجة التطبيقات Virtual Location Bypass API [LocationRequest.setLocationSettingsSettingsd()] هي حالة طوارئ يبدأها المستخدم الجلسة (مثلاً، الاتصال برقم 911 أو إرسال رسالة نصية إلى 911). أمّا بالنسبة إلى السيارات، فيجوز أن تكون بدء جلسة طوارئ بدون تفاعل مستخدم نشط في الحالة تم رصد حادث سير أو حادث سير (لتلبية متطلبات eCall مثلاً).
  • [C-0-4] يجب الحفاظ على قدرة واجهة برمجة التطبيقات لتجاوز الموقع في حالات الطوارئ على تجاوز إعدادات الموقع الجغرافي للجهاز بدون تغيير الإعدادات.
  • [C-0-5] يجب تحديد موعد إشعار يذكّر المستخدم بعد تثبيت تطبيق ما وصول الخلفية إلى الموقع الجغرافي باستخدام إذن [ACCESS_BACKGROUND_LOCATION].

9.8.9. التطبيقات المثبّتة

لا يمكن لتطبيقات Android التي تستهدف المستوى 30 أو أعلى لواجهة برمجة التطبيقات الاطّلاع على تفاصيل حول التطبيقات المثبّتة تلقائيًا (راجِع مستوى رؤية الحِزم في نظام التشغيل Android مستندات حزمة SDK).

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب ألا يعرض أي تطبيق يستهدف المستوى 30 أو أعلى لواجهة برمجة التطبيقات. حول أي تطبيق آخر مثبَّت، ما لم يكن التطبيق قادرًا على الاطلاع على التفاصيل بالفعل عن التطبيق الآخر المثبَّت من خلال واجهات برمجة التطبيقات المُدارة. يتضمن ذلك ولكنه ولا يقتصر ذلك على التفاصيل التي تم الكشف عنها من خلال أيّ واجهات برمجة تطبيقات مخصَّصة يضيفها الجهاز. أو المُنفذ أو يمكن الوصول إليه من خلال نظام الملفات.
  • [C-0-2] يجب ألا يتم منح أي تطبيق إذنًا بالوصول للقراءة أو الكتابة إلى ملفات في أي تطبيق آخر. الدليل المخصص للتطبيق داخل وحدة التخزين الخارجية. في ما يلي الاستثناءات الوحيدة:
    • مصدر موفر مساحة التخزين الخارجية (مثل تطبيقات مثل DocumentsUI).
    • موفّر خدمة التنزيل الذي يستخدم مرجع موفّر خدمة "عمليات التنزيل" تنزيل الملفات إلى مساحة تخزين التطبيقات.
    • تطبيقات بروتوكول نقل الوسائط (MTP) الموقَّعة من النظام الأساسي والتي تستخدم إذن مميّز ACCESS_MTP لتفعيل نقل الملفات إلى على جهاز آخر.
    • التطبيقات التي تثبِّت تطبيقات أخرى وتحصل على الإذن INSTALL_PACKAGES يمكنهم الوصول إلى أدلة "obb" فقط لغرض إدارة ملفات البيانات الموسّعة الخاصة بحِزم APK

9.8.10. تقرير خطأ في الاتصال

إذا كانت عمليات تنفيذ الأجهزة تشير إلى علامة ميزة android.hardware.telephony، وهي:

  • [C-1-1] يجب أن يتيح إنشاء تقارير أخطاء الاتصال عبر BUGREPORT_MODE_TELEPHONY مع BugreportManager.
  • [C-1-2] يجب الحصول على موافقة المستخدم في كل مرة يتم فيها ضبط BUGREPORT_MODE_TELEPHONY المستخدمة لإنشاء تقرير ويجب ألا تطلب من المستخدم الموافقة على جميع الطلبات المستقبلية من التطبيق.
  • [C-1-3] يجب ألا يتم عرض التقرير الذي تم إنشاؤه إلى التطبيق صاحب الطلب بدون موافقة صريحة من المستخدم
  • [C-1-4] يجب أن تحتوي التقارير التي تم إنشاؤها باستخدام "BUGREPORT_MODE_TELEPHONY" على على الأقل المعلومات التالية:
    • تفريغ TelephonyDebugService
    • تفريغ TelephonyRegistry
    • تفريغ WifiService
    • تفريغ ConnectivityService
    • ملف تفريغ للمثيل CarrierService الخاص بحزمة الاتصال (إذا كان مرتبطًا)
    • مخزن مؤقت لسجلات الراديو
  • [C-1-5] يجب ألا يتضمن ما يلي في التقارير التي تم إنشاؤها:
    • يشير هذا المصطلح إلى أي نوع من المعلومات غير المرتبطة بشكل مباشر بالاتصال. تصحيح الأخطاء.
    • أي نوع من سجلات زيارات التطبيقات التي يثبّتها المستخدم أو الملفات الشخصية التفصيلية من التطبيقات/الحزم المثبتة من قبل المستخدم (لا بأس بالمعرّفات الفريدة، بينما لا بأس في استخدام أسماء الحزم لا).
  • قد تحتوي على معلومات إضافية غير مرتبطة بأي مستخدم. وهويّتك. (مثل سجلات المورّدين).

إذا كانت عمليات تنفيذ الجهاز تتضمن معلومات إضافية (مثل سجلات البائع) في وأن المعلومات تحتوي على خصوصية/أمان/بطارية/مساحة تخزين/ذاكرة التأثير، فإنها:

  • [C-SR-1] يُنصح بشدة بضبط إعدادات المطوّرين التلقائية على غير مفعّل. ويفي تنفيذ مرجع AOSP هذا من خلال توفير Enable verbose vendor logging. في إعدادات المطوّر لتضمين سجلات البائعين الإضافية الخاصة بالجهاز في تقارير الأخطاء.

9.8.11. مشاركة وحدات تخزين البيانات الثنائية الكبيرة

Android، من خلال BlobStoreManager يسمح للتطبيقات بالمساهمة بالملفات الثنائية الكبيرة (BLOB) في النظام لتتم مشاركتها مع مجموعة من التطبيقات.

إذا كانت عمليات تنفيذ الجهاز تتوافق مع وحدات تخزين البيانات الثنائية الكبيرة المشتركة كما هو موضح في مستندات حزمة تطوير البرامج (SDK) وهي:

  • [C-1-1] يجب عدم مشاركة وحدات ثنائية كبيرة تنتمي إلى تطبيقات خارج نطاقها المراد السماح به (أي نطاق الوصول الافتراضي وإمكانية الوصول والأوضاع التي يمكن تحديدها باستخدام BlobStoreManager.session#allowPackageAccess()، BlobStoreManager.session#allowSameSignatureAccess()، أو BlobStoreManager.session#allowPublicAccess() يجب عدم تعديله). يفي تنفيذ مرجع AOSP بالآتي: متطلبات المشروع.
  • [C-1-2] يجب ألا يتم إرسال علامات التجزئة الآمنة من الجهاز أو مشاركة علامات التجزئة الآمنة مع التطبيقات الأخرى. وحدات تخزين البيانات الثنائية الكبيرة (التي تُستخدم للتحكم في الوصول).

9.8.12. Music Recognition

يدعم Android، من خلال System API MusicRecognitionManager آلية عمليات التنفيذ على الجهاز لطلب التعرف على الموسيقى وإعطائك سجلاً صوتيًا تفويض تطبيقات التعرف على الموسيقى إلى تطبيق متميز ينفذ واجهة برمجة تطبيقات MusicRecognitionService.

إذا كانت عمليات تنفيذ الجهاز تتضمن خدمة تنفِّذ System API MusicRecognitionManager أو أي خدمة خاصة بها تقوم ببث البيانات الصوتية الموضحة أعلاه، فإنها:

  • [C-1-1] يجب أن يفرض وصول المتصل بـ MusicRecognitionManager إذن "MANAGE_MUSIC_RECOGNITION"
  • [C-1-2] يجب أن تفرض عملية التعرف على موسيقى واحدة مثبتة مسبقًا تطبيق MusicRecognitionService.
  • [C-1-3] يجب ألا يسمح للمستخدمين باستبدال MusicRecognitionManagerService أو MusicRecognitionService مع تطبيق أو خدمة يمكن للمستخدم تثبيتها.
  • [C-1-4] يجب التأكد من أنه عند وصول MusicRecognitionManagerService إلى سجل الصوت وتعيد توجيهه إلى التطبيق الذي ينفذ MusicRecognitionService، يتم تتبع الوصول إلى الصوت من خلال استدعاءات AppOpsManager.noteOp / startOp:

إذا كانت تنفيذات الجهاز لـ MusicRecognitionManagerService أو وتخزِّن خدمة MusicRecognitionService أي بيانات صوتية تم تسجيلها، وهي:

  • [C-2-1] يجب ألا يتم تخزين أي بصمات أصابع صوتية أو ملفات صوتية غير أصلية على القرص. أو في الذاكرة لمدة تزيد عن 14 يومًا.
  • [C-2-2] يجب ألا تتم مشاركة هذه البيانات خارج نطاق MusicRecognitionService، باستثناء بموافقة صريحة من المستخدم في كل مرة تتم مشاركتها.

9.8.13. مدير الخصوصية في جهاز الاستشعار

إذا كانت عمليات تنفيذ الجهاز تتيح للمستخدم إمكانية إيقاف البرامج الكاميرا و/أو الميكروفون المستخدَم لتنفيذ الجهاز:

  • [C-1-1] يجب أن يعرض بدقة "صحيح" عن supportsSensorToggle() طريقة واجهة برمجة التطبيقات.
  • [C-1-2] يجب، عندما يحاول أحد التطبيقات الوصول إلى ميكروفون أو كاميرا محظورة، تقدم للمستخدم خصائص مستخدم لا يمكن إغلاقها وتظهر بوضوح يشير إلى أنّ جهاز الاستشعار محظور ويتطلّب اختيار المتابعة الحظر أو إزالة الحظر وفقًا لتنفيذ بروتوكول AOSP الذي يستوفي هذا المتطلب.
  • [C-1-3] يجب أن يمرّر فقط إلى التطبيقات بيانات كاميرا وصوت فارغة (أو مزيّفة) وعدم الإبلاغ عن رمز خطأ لأنّ المستخدم لا يشغّل الكاميرا ولا الميكروفون عبر خصائص المستخدم المقدمة وفقًا للإرشادات [C-1-2] أعلاه.

9.9. تشفير مساحة تخزين البيانات

يجب أن تستوفي جميع الأجهزة متطلبات الفقرة 9.9.1. الأجهزة التي تم تشغيلها على مستوى واجهة برمجة تطبيقات قبل مستوى هذا المستند هي معفاة من متطلبات الفقرتين 9.9.2 و9.9.3؛ بدلاً من ذلك، يجب أن يستوفي المتطلبات الواردة في الفقرة 9.9 من نظام التوافق مع Android. مستند تعريف يتوافق مع مستوى واجهة برمجة التطبيقات الذي تم تشغيل الجهاز عليه.

9.9.1. التشغيل المباشر

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب تنفيذ واجهات برمجة تطبيقات وضع التشغيل المباشر حتى إذا إلا أنّها لا تدعم تشفير مساحة التخزين.

  • [C-0-2] ACTION_LOCKED_BOOT_COMPLETED وACTION_USER_UNLOCKED يجب أن يستمر بث الأهداف لإرسال إشارة إلى التطبيقات التي تتعرف على ميزة التمهيد المباشر. مواقع التخزين باستخدام تشفير الجهاز (DE) وتشفير بيانات الاعتماد (CE) هي متاحة للمستخدم.

9.9.2. متطلبات التشفير

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يشفّر التطبيق خاصًا البيانات (قسم /data)، بالإضافة إلى قسم مساحة التخزين المشتركة في التطبيق (قسم /sdcard) إذا كان جزءًا نهائيًا غير قابل للإزالة من الجهاز.
  • [C-0-2] يجب أن يفعّل تشفير تخزين البيانات تلقائيًا في ذلك الوقت أكمل المستخدم تجربة الإعداد الجاهزة.
  • [C-0-3] يجب أن يستوفي تشفير تخزين البيانات أعلاه من خلال تنفيذ أحد طريقتي التشفير التاليين:

9.9.3. طرق التشفير

في حال تشفير عمليات تنفيذ الأجهزة، سيتم إجراء ما يلي:

  • [C-1-1] يجب التمهيد دون تحدي المستخدم في ما يتعلق ببيانات الاعتماد السماح للتطبيقات التي تستند إلى ميزة "التشغيل المباشر" بالوصول إلى مساحة التخزين المشفَّرة على الجهاز (DE) بعد بث رسالة ACTION_LOCKED_BOOT_COMPLETED.
  • [C-1-2] يجب السماح بالوصول إلى وحدة تخزين بيانات الاعتماد المشفّرة (CE) فقط بعد فتح قفل المستخدم للجهاز من خلال تقديم بيانات الاعتماد. (مثل رمز المرور أو رقم التعريف الشخصي أو النقش أو بصمة الإصبع) وACTION_USER_UNLOCKED .
  • [C-1-13] يجب ألا يتم توفير أي طريقة لفتح قفل مساحة التخزين المحمية بموجب بروتوكول CE. بدون بيانات الاعتماد التي يوفرها المستخدم أو مفتاح الضمان المسجل أو عند تنفيذ إعادة التشغيل بما يتوافق مع المتطلبات في القسم 9.9.4.
  • [C-1-4] يجب استخدام التشغيل المتحقَّق منه.
9.9.3.1. تشفير مستند إلى الملفات باستخدام تشفير البيانات الوصفية

في حال كانت عمليات تنفيذ الأجهزة تستخدم "التشفير المستند إلى الملفات" مع "تشفير البيانات الوصفية"، وهي:

  • [C-1-5] يجب تشفير محتوى الملفات والبيانات الوصفية لنظام الملفات باستخدام AES-256-XTS أو Adiantum. ويشير AES-256-XTS إلى معيار التشفير المتقدِّم بطول مفتاح تشفير 256 بت، يعمل في وضع XTS؛ بالطول الكامل هو 512 بت. تشير سمة "Adiantum" إلى Adiantum-XChaCha12-AES، على النحو المحدَّد في https://github.com/google/adiantum بيانات التعريف لنظام الملفات عبارة عن بيانات مثل الأحجام والملكية والأوضاع والسمات الموسّعة (xattrs).
  • [C-1-6] يجب تشفير أسماء الملفات باستخدام AES-256-CBC-CTS أو Adiantum.
  • [C-1-12] إذا كان الجهاز يتضمّن معيار التشفير المتقدّم (AES) تعليمات (مثل إضافات التشفير ARMv8 على الأجهزة المستندة إلى ARM) AES-NI على الأجهزة التي تستند إلى x86) ثم الخيارات المستندة إلى AES الواردة أعلاه لاسم الملف، ومحتوى الملفات، وتشفير البيانات الوصفية لنظام الملفات، وليس Adiantum.
  • [C-1-13] يجب استخدام مفتاح تشفير قوي وغير قابل للعكس دالة الاشتقاق (مثل HKDF-SHA512) لاشتقاق أي مفاتيح فرعية مطلوبة (مثل لكل ملف) من مفتاحَي CE وDE. "القوية في التشفير غير قابل للعكس" يعني أن وظيفة الاشتقاق الرئيسية لها قوة أمان ما لا يقل عن 256 بت وتعمل كدالة عشوائية زائفة العائلة على إدخالاته.
  • [C-1-14] يجب ألا يتم استخدام مفاتيح التشفير المستنِدة إلى الملفات (FBE) أو المفاتيح الفرعية نفسها لأغراض تشفير مختلفة (على سبيل المثال، لكلٍ من التشفير والمفتاح أو اشتقاقه أو في خوارزميتَي تشفير مختلفتين).
  • [C-1-15] يجب أن يتأكّد من أنّ كل كتل المحتوى المشفَّرة التي لم يتم حذفها على مساحة التخزين الدائمة تم تشفيرها باستخدام مجموعات من مفاتيح التشفير متجه التهيئة (IV) الذي يعتمد على كل من الملف والإزاحة داخل الملف. إضافةً إلى ذلك، يجب أن تكون جميع هذه المجموعات مختلفة، إلا إذا يتم التشفير باستخدام جهاز تشفير مضمّن يتوافق فقط مع طول IV 32 بت.
  • [C-1-16] يجب أن يتأكد من أنّ جميع أسماء الملفات المشفّرة التي لم يتم حذفها على نطاقات التخزين في أدلة مميزة تم تشفيرها باستخدام مجموعات مميزة من مفتاح التشفير ومتّجه الإعداد (IV).
  • [C-1-17] يجب أن يتأكد من أن جميع عمليات حظر البيانات الوصفية لنظام الملفات المشفرة على تم تشفير مساحة التخزين الدائمة باستخدام مجموعات مختلفة من مفاتيح التشفير ومتّجه التهيئة (IV).

  • المفاتيح التي تحمي مناطق التخزين المتوفرة في أوروبا والشرق الأوسط وأفريقيا والبيانات الوصفية لنظام الملفات:

    • [C-1-7] يجب أن يكون مرتبطًا بالتشفير بوحدة تخزين مفاتيح مدعومة بالأجهزة. يجب ربط ملف تخزين المفاتيح هذا بـ "التشغيل المتحقّق منه" ومعدّات الجهاز جذور الثقة.
    • [C-1-8] يجب ربط مفاتيح CE ببيانات اعتماد شاشة القفل لدى المستخدم.
    • [C-1-9] يجب ربط مفاتيح CE برمز مرور تلقائي عندما لم يتم تحديد بيانات اعتماد لشاشة القفل.
    • [C-1-10] يجب أن يكون فريدًا ومتميزًا، بمعنى آخر، لا يجب أن يكون CE أو DE لأي مستخدم يتطابق مع أي مفتاح من مفاتيح CE أو DE لمستخدم آخر.
    • يجب أن يستخدم [C-1-11] رموز التشفير وأطوال المفاتيح وسائل النقل.
    • [C-1-12] يجب محو البيانات بأمان أثناء فتح قفل برنامج الإقلاع وقفله كما هو موضَّح هنا.
  • يجب إنشاء تطبيقات أساسية مثبَّتة مسبقًا (مثل المنبّه والهاتف وMessenger) إمكانية التشغيل المباشر

يوفر مشروع برنامج مفتوح المصدر لنظام Android التنفيذ الأمثل يشير هذا المصطلح إلى عملية تشفير قائمة على الملف استنادًا إلى طريقة "fscrypt" الخاصة بنواة Linux. الخاصة بتشفير البيانات، من تشفير البيانات الوصفية على أساس نواة Linux "dm-default-key" الجديدة.

9.9.3.2. التشفير على مستوى الحظر لكل مستخدم

إذا كانت عمليات تنفيذ الأجهزة تستخدم تشفيرًا على مستوى الحظر لكل مستخدم، سيتم إجراء ما يلي:

  • [C-1-1] يجب أن يتيح دعم المستخدمين المتعددين كما هو موضح في الفقرة 9.5.
  • [C-1-2] يجب توفير أقسام لكل مستخدم، إما باستخدام أقسام أولية أو الأحجام المنطقية.
  • [C-1-3] يجب أن يستخدم مفاتيح تشفير فريدة ومميزة لكل مستخدم لأجهزة الكتلة الأساسية.
  • [C-1-4] يجب استخدام AES-256-XTS للتشفير على مستوى الحظر للمستخدم الأقسام.

  • المفاتيح التي تحمي الأجهزة المشفَّرة على مستوى الحظر لكل مستخدم:

    • [C-1-5] يجب أن يكون مرتبطًا بالتشفير بوحدة تخزين مفاتيح مدعومة بالأجهزة. يجب ربط ملف تخزين المفاتيح هذا بـ "التشغيل المتحقّق منه" ومعدّات الجهاز جذور الثقة.
    • [C-1-6] يجب أن يكون مرتبطًا بشاشة قفل المستخدم المعني بيانات الاعتماد.

يمكن تنفيذ التشفير على مستوى الكتلة لكل مستخدم باستخدام نواة Linux "dm-crypt" عبر الأقسام لكل مستخدم.

9.9.4. الاستئناف عند إعادة التشغيل

تسمح ميزة "الاستئناف عند إعادة التشغيل" بفتح قفل مساحة تخزين CE لجميع التطبيقات، بما فيها تلك التي لا تتيح التشغيل المباشر بعد، وذلك بعد إعادة تشغيل الجهاز عبر الهواء. هذا النمط تمكّن المستخدمين من تلقّي الإشعارات من التطبيقات المثبّتة بعد إعادة التشغيل.

يجب أن يستمر تنفيذ عملية Resume-on-إعادة التشغيل لضمان أنه عند تقع في أيدي المهاجم، فمن الصعب للغاية أن يحدث ذلك المهاجم لاسترداد بيانات المستخدم المشفرة من خلال CE، حتى إذا كان الجهاز قيد التشغيل مفعَّل، تم فتح قفل وحدة تخزين CE، وفتح المستخدم قفل الجهاز بعد استلام عبر الهواء. لمقاومة الهجمات الداخلية، نفترض أيضًا أن المهاجم سيحصل على إذن الوصول لبث مفاتيح التوقيع المشفّر.

وعلى وجه التحديد:

  • [C-0-1] يجب ألا يكون تخزين CE غير قابل للقراءة حتى بالنسبة للمهاجم الذي يمتلك فعليًا الجهاز وتكون له الإمكانيات والقيود التالية:

    • يمكن استخدام مفتاح التوقيع الخاص بأي مورّد أو شركة للتوقيع على أساس عشوائي. الرسائل.
    • قد يتسبب في استلام الجهاز للتحديث الهوائي (OTA).
    • تعديل تشغيل أي جهاز (AP أو الفلاش وما إلى ذلك) باستثناء بالتفصيل أدناه، ولكن هذا التعديل يتضمن تأخيرًا ساعة ودورة طاقة تتلف محتويات ذاكرة الوصول العشوائي.
    • لا يمكن تعديل عملية تشغيل الأجهزة المقاومة للتلاعب (مثل Titan M).
    • لا يمكن قراءة ذاكرة الوصول العشوائي للجهاز المباشر.
    • تعذّر الحصول على بيانات اعتماد المستخدم (رقم التعريف الشخصي أو النقش أو كلمة المرور) أو أو تتسبب في إدخالها.

على سبيل المثال، تنفيذ الجهاز الذي ينفذ ويلتزم بجميع من الأوصاف المتوفّرة هنا سيكون متوافقًا مع [C-0-1].

9.10. سلامة الجهاز

تضمن المتطلبات التالية الشفافية في حالة سلامة الجهاز عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يتم الإبلاغ بشكل صحيح من خلال طريقة System API PersistentDataBlockManager.getFlashLockState() ما إذا كان برنامج الإقلاع تصاريح الولاية وميض صورة النظام.

  • [C-0-2] يجب أن يوفّر التشغيل المتحقّق منه لسلامة الجهاز.

إذا سبق أن بدأت عمليات تنفيذ الجهاز بدون إتاحة التشغيل المتحقّق منه على إصدار سابق من Android ولا يمكن إضافة الدعم لهذا تحديث برنامج النظام، فقد يتم إعفاؤها من المتطلب.

"التشغيل المتحقّق منه" هو ميزة تضمن سلامة الجهاز. البرامج. إذا كانت عمليات تنفيذ الأجهزة تتوافق مع هذه الميزة، سيتم إجراء ما يلي:

  • [C-1-1] يجب الإعلان عن علامة ميزة المنصة android.software.verified_boot
  • [C-1-2] يجب إجراء التحقق في كل تسلسل تمهيد.
  • [C-1-3] يجب بدء عملية إثبات الهوية من مفتاح جهاز غير قابل للتغيير إلى جذور الثقة، وصولاً إلى قسم النظام.
  • [C-1-4] يجب تنفيذ كل مرحلة من مراحل التحقّق للتحقق من السلامة. ومصداقية جميع وحدات البايت في المرحلة التالية قبل تنفيذ التعليمة البرمجية في المرحلة التالية.
  • [C-1-5] يجب استخدام خوارزميات التحقق بنفس قوة خوارزميات التحقق الحالية التوصيات من المعهد الوطني للمعايير والتكنولوجيا (NIST) بشأن خوارزميات التجزئة (SHA-256) والمفتاح العام. الأحجام (RSA-2048).
  • [C-1-6] يجب ألا يسمح بإكمال التمهيد عند إخفاق التحقق من النظام، ما لم يوافق المستخدم على محاولة التشغيل على أي حال، وفي هذه الحالة ستكون البيانات من يجب عدم استخدام أي وحدات تخزين لم يتم التحقق منها.
  • [C-1-7] يجب عدم السماح بتعديل الأقسام التي تم التحقّق منها على الجهاز ما لم يفتح المستخدم قفل برنامج الإقلاع بشكل صريح.
  • [C-SR-1] في حال وجود عدة شرائح منفصلة في الجهاز (مثل الراديو معالج صور متخصص)، فإن عملية التشغيل لكل شريحة من هذه الشرائح يُنصح بشدة بالتحقّق من كل مرحلة عند التشغيل.
  • [C-1-8] يجب استخدام مساحة تخزين يمكن التلاعب بها: لتخزين ما إذا كان إذا كان برنامج الإقلاع غير مقفَل. تعني مساحة التخزين التي تظهر التلاعب في الذاكرة أنّ برنامج الإقلاع يمكنه اكتشاف ما إذا كان قد تم التلاعب بمساحة التخزين من داخل Android أم لا.
  • [C-1-9] يجب أن يطلب من المستخدم أثناء استخدام الجهاز طلب تأكيد مادي قبل السماح بالنقل من برنامج الإقلاع وضع القفل إلى وضع فتح قفل برنامج الإقلاع.
  • [C-1-10] يجب تنفيذ الحماية من العودة إلى الحالة السابقة للأقسام التي يستخدمها Android (مثل التشغيل وأقسام النظام) واستخدام وحدة التخزين التي يمكن إثبات التلاعب بها لتخزين البيانات الوصفية المستخدمة لتحديد الحد الأدنى المسموح به لإصدار نظام التشغيل.
  • [C-1-11] يجب أن يمحو جميع بيانات المستخدم بأمان أثناء فتح قفل برنامج الإقلاع وفقًا للمعيار 9.12. حذف البيانات" (بما في ذلك قسم userdata أي مسافات NVRAM).
  • [C-SR-2] يُنصَح باستخدامها بشدة للتحقّق من جميع ملفات APK الخاصة بالتطبيقات الحاصلة على امتياز والتي تتضمن سلسلة من الثقة المتجذرة في أقسام محمية بميزة "التشغيل المتحقّق منه".
  • [C-SR-3] يُوصى بها بشدة للتحقق من أي عناصر قابلة للتنفيذ تم تحميلها بواسطة تطبيق امتياز من خارج ملف APK الخاص به (مثل الرموز البرمجية التي يتم تحميلها ديناميكيًا أو التعليمات البرمجية المجمّعة) قبل تنفيذها أو أوصي بشدة بعدم تنفيذها على الإطلاق.
  • يجب تنفيذ الحماية من العودة إلى الحالة السابقة لأي مكوّن يتضمّن قاعدة البرامج الثابتة (مثل المودم والكاميرا) والتي يجب أن تستخدم وحدة تخزين تتيح إظهار التلاعب تخزين بيانات التعريف المستخدمة لتحديد الحد الأدنى من الإصدار المسموح به.

إذا تم إطلاق عمليات تنفيذ الجهاز بالفعل بدون دعم C-1-8 من خلال C-1-11 على إصدار سابق من Android ولا يمكنه إضافة دعم هذه المتطلبات بتحديث برامج النظام، فقد يتم إعفاؤها من متطلبات المشروع.

يوفر المشروع المفتوح المصدر لنظام Android عملية تنفيذ مفضّلة هذه الميزة في external/avb/ المستودع الذي يمكن دمجه في برنامج الإقلاع المستخدَم للتحميل Android

عمليات تنفيذ الأجهزة:

  • [C-0-3] يجب أن يتيح التحقق من محتوى الملف بطريقة مشفرة مقابل المفتاح الموثوق به دون قراءة الملف بالكامل.
  • [C-0-4] يجب ألا تسمح بنجاح طلبات القراءة على ملف محمي عندما لا يتم التحقق من المحتوى المقروء مقابل مفتاح موثوق به.

إذا سبق أن تم إطلاق عمليات تنفيذ الأجهزة بدون إمكانية التحقّق ملف المحتوى مقابل مفتاح موثوق به في إصدار Android سابق ولا يمكن إضافته دعم هذه الميزة من خلال تحديث برامج النظام، فقد يتم إعفاؤها عن المطلب. يوفر مشروع برنامج مفتوح المصدر لنظام Android الأساسي التطبيق المفضّل لهذه الميزة استنادًا إلى ميزة fs-verity في نواة Linux.

عمليات تنفيذ الأجهزة:

إذا كانت عمليات تنفيذ الأجهزة تتوافق مع ميزة "التأكيد الآمن" من Android واجهة برمجة التطبيقات (API):

  • [C-3-1] يجب الإبلاغ عن true بشأن ConfirmationPrompt.isSupported() واجهة برمجة التطبيقات.

  • [C-3-2] يجب أن يضمن هذا الرمز الذي يتم تشغيله في نظام التشغيل Android، بما في ذلك لا يمكن لأي نواة (kernel) أو ضارة أو غير ذلك، إنشاء استجابة إيجابية بدون تفاعل المستخدم.

  • [C-3-3] يجب أن يتأكد من تمكّن المستخدم من مراجعة المطلوبة حتى في حالة تعطُّل نظام التشغيل Android، بما في ذلك النواة، للاختراق.

9.11. المفاتيح وبيانات الاعتماد

نظام تخزين مفاتيح Android تسمح لمطوّري التطبيقات بتخزين مفاتيح التشفير في حاوية واستخدامها في عمليات التشفير من خلال KeyChain API أو Keystore API. عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يسمح باستيراد 8192 مفتاحًا أو إنشاؤه على الأقل.
  • [C-0-2] يجب أن تنفذ مصادقة شاشة القفل فاصلاً زمنيًا بين المحاولات الفاشلة. عند استخدام n لعدد المحاولات الفاشلة، يكون الوقت الفاصل الزمني يجب أن 30 ثانية على الأقل لمدة 9 < > 30- بالنسبة إلى n > 29، يجب ألا تقل قيمة الفاصل الزمني عن 30*2^دالة((n-30)/10)) ثانية أو 24 ساعة على الأقل، أيهما أصغر.
  • يجب ألا يضع حدًا لعدد المفاتيح التي يمكن إنشاؤها.

عندما يكون تنفيذ الجهاز متوافقًا مع شاشة قفل آمنة:

  • [C-1-1] يجب الاحتفاظ بنسخة احتياطية من تنفيذ ملف تخزين المفاتيح باستخدام ملف بيئة التنفيذ.
  • [C-1-2] يجب أن يتضمن التشفير RSA وAES وECDSA وHMAC. الخوارزميات ووظائف تجزئة MD5 وSHA1 وSHA-2 العائلية للتوافق بشكل صحيح خوارزميات نظام تخزين مفاتيح Android المتوافقة في منطقة آمنة معزولة عن التعليمات البرمجية التي تعمل على النواة (kernel) وما بعدها. يجب أن يتوفر العزل الآمن حظر جميع الآليات المحتملة التي يمكن من خلالها الوصول إلى رمز النواة أو رمز مساحة المستخدم الحالة الداخلية للبيئة المعزولة، بما في ذلك قانون الأسواق الرقمية. قبل بيع المنتج يلبي "المشروع المفتوح المصدر لنظام Android" (AOSP) هذا الشرط من خلال استخدام تنفيذ موثوق به، لكن حل آخر مستنِد إلى ARM TrustZone أو حلاً آمنًا تمت مراجعته من قِبل جهة خارجية وتنفيذ عزلة مناسبة قائمة على برنامج Hypervisor (مراقب الأجهزة الظاهرية) هي خيارات بديلة.
  • [C-1-3] يجب إجراء مصادقة شاشة القفل في الجهاز بيئة التنفيذ والسماح باستخدام المفاتيح المرتبطة بالمصادقة إلا بعد نجاح المصادقة. يجب تخزين بيانات اعتماد شاشة القفل في تتيح لبيئة التنفيذ المعزولة فقط تنفيذ شاشة القفل المصادقة. يوفر المشروع المفتوح المصدر لنظام Android طبقة تجريد أجهزة البوابة (HAL) و Trusty، التي يمكن استخدامها لاستيفاء هذا الشرط.
  • [C-1-4] يجب أن يتيح مصادقة المفتاح حيث يكون مفتاح توقيع المصادقة وتتم حمايتها بواسطة أجهزة آمنة ويتم التوقيع عليها في أجهزة آمنة. تشير رسالة الأشكال البيانية يجب مشاركة مفاتيح توقيع المصادقة على عدد كبير بما يكفي من الأجهزة منع استخدام المفاتيح كمعرّفات للأجهزة. تتمثل إحدى طرق تحقيق ذلك هو مشاركة مفتاح المصادقة نفسه ما لم يكن 100,000 وحدة على الأقل يتم إنتاج أي رمز تخزين تعريفي (SKU). إذا تم إنتاج أكثر من 100,000 وحدة من رمز التخزين التعريفي، قد يتم استخدام مفتاح مختلف لكل 100000 وحدة.

يُرجى ملاحظة أنّه إذا كان قد تمّ تشغيل تنفيذ الجهاز على إصدار Android سابق يتم إعفاء هذا الجهاز من طلب توفُّر ملف تخزين مفاتيح. مدعومة ببيئة تنفيذ معزولة وتدعم المصادقة الرئيسية، ما لم يتم الإعلان عن ميزة android.hardware.fingerprint التي تتطلّب ملف تخزين مفاتيح يعتمد على بيئة تنفيذ معزولة.

  • [C-1-5] يجب أن يسمح للمستخدم باختيار مهلة السكون للانتقال من تم فتح قفله إلى حالة القفل، مع إدخال أدنى حد للمهلة المسموح بها يصل إلى 15 ثانية. أجهزة السيارات، التي تقفل الشاشة كلما كانت الوحدة الرئيسية على وضع إيقاف التشغيل أو تبديل المستخدم، فقد لا تشتمل على مهلة السكون التكوين.
  • [C-1-6] يجب أن يتيح استخدام أي مما يلي:
    • IKeymasterDevice 3.0،
    • IKeymasterDevice 4.0،
    • IKeymasterDevice 4.1، أو
    • الإصدار 1 من IKeyMintDevice.
  • [C-SR-1] يُنصح بشدة بأن يتوافق مع الإصدار 1 من IKeyMintDevice.

9.11.1. قفل الشاشة الآمنة والمصادقة

يتبع تنفيذ AOSP نموذج مصادقة متعدد المستويات حيث يمكن أن تدعم المصادقة الأساسية القائمة على مصنع المعرفة إما المقاييس الحيوية الثانوية القوية أو عن طريق وسائط ثلاثية أضعف.

عمليات تنفيذ الأجهزة:

  • [C-SR-1] يُوصى بشدة بضبط طريقة واحدة فقط مما يلي كمصادقة أساسية :
    • رقم تعريف شخصي رقمي
    • كلمة مرور أبجدية رقمية
    • نمط تمرير سريع على شبكة من نقاط 3×3 بالضبط

تجدر الإشارة إلى أنّ طرق المصادقة المذكورة أعلاه يُشار إليها بالأساليب المقترَحة التي ننصح بها طرق المصادقة الأساسية في هذا المستند.

في حال إضافة عمليات تنفيذ الجهاز إلى المصادقة الأساسية المقترَحة أو تعديلها واستخدام طريقة مصادقة جديدة كطريقة آمنة لقفل الشاشة، طريقة المصادقة الجديدة:

في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل إذا كانت تستند إلى سر معروف واستخدمت مصادقة جديدة يمكن التعامل معها كطريقة آمنة لقفل الشاشة:

  • [C-3-1] يجب أن يكون قصور أقصر طول مسموح به للمدخلات أكبر من 10 بت.
  • [C-3-2] يجب أن يكون الحد الأقصى لقصور جميع المدخلات الممكنة أكبر من 18 بت.
  • [C-3-3] يجب ألا تحل طريقة المصادقة الجديدة محل أي من طرق المصادقة الأساسية المقترَحة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) وتنفيذه وتقديمه في AOSP.
  • [C-3-4] يجب تعطيل طريقة المصادقة الجديدة عندما عيَّن تطبيق "وحدة التحكّم بسياسة الجهاز" (DPC) كلمة المرور. متطلبات المشروع من خلال DevicePolicyManager.setrequiredPasswordComplexity() ذات ثابت تعقيد أكثر تقييدًا من password_COMPLEXITY_NONE أو من خلال DevicePolicyManager.setPasswordquality() ذات ثابت أكثر تقييدًا من password_QUALITY_BIOMETRIC_WEAK.
  • [C-3-5] يجب أن تعود طرق المصادقة الجديدة إما إلى طرق المصادقة الأساسية الموصى بها (مثل رقم التعريف الشخصي والنقش كلمة المرور) مرة كل 72 ساعة أو أقل أو يتم الإفصاح عنها بوضوح للمستخدم أنه لن يتم نسخ بعض البيانات احتياطيًا للحفاظ على وخصوصية بياناتهم.

في حال إضافة عمليات تنفيذ الجهاز إلى المصادقة الأساسية المقترَحة أو تعديلها الطرق لفتح قفل الشاشة واستخدام طريقة مصادقة جديدة استنادًا إلى المقاييس الحيوية ليتم التعامل معها كوسيلة آمنة لقفل الشاشة، :

  • يجب أن يستوفي [C-4-1] جميع المتطلبات الموضّحة في القسم. 7.3.10 بالنسبة إلى الفئة 1 (المعروفة سابقًا باسم الراحة).
  • [C-4-2] يجب أن تتوفّر به آلية تراجع لاستخدام إحدى الأدوات طريقة مصادقة أولية تستند إلى سر معروف.
  • [C-4-3] يجب أن يتم إيقافها والسماح فقط بالإعلانات الأساسية المصادقة لفتح قفل الشاشة عندما تستخدم وحدة التحكّم بسياسة الجهاز (DPC) قد وضع التطبيق سياسة ميزة حماية المفاتيح من خلال استدعاء الطريقة DevicePolicyManager.setKeyguardDisabledFeatures()) مع أي من علامات المقاييس الحيوية المرتبطة بها (أي KEYGUARD_DISABLE_BIOMETRICS، KEYGUARD_DISABLE_FINGERPRINT، KEYGUARD_DISABLE_FACE أو KEYGUARD_DISABLE_IRIS).

إذا لم تستوفِ طرق المصادقة بالمقاييس الحيوية المتطلبات للفئة 3 (المعروفة سابقًا باسم قوية) كما هو موضّح في القسم 7.3.10:

  • [C-5-1] يجب إيقاف الطرق إذا كانت "وحدة التحكّم بسياسة الجهاز" (DPC) تطبيق قد عيّن سياسة الجودة لمتطلبات كلمة المرور عبر DevicePolicyManager.setrequiredPasswordComplexity(). باستخدام حزمة تعقيد أكثر تقييدًا من PASSWORD_COMPLEXITY_LOW أو باستخدام DevicePolicyManager.setPasswordquality() أكثر مع ثابت جودة أكثر تقييدًا من PASSWORD_QUALITY_BIOMETRIC_WEAK
  • [C-5-2] يجب أن يواجه المستخدم تحديًا للمشاركة في الانتخابات التمهيدية المصادقة (مثلاً: رقم التعريف الشخصي أو النقش أو كلمة المرور) كما هو موضّح في [C-1-7] [C-1-8] في القسم 7.3.10.
  • [C-5-3] يجب عدم التعامل مع هذه الطرق كشاشة قفل آمنة، استيفاء المتطلبات التي تبدأ بـ C-8 في هذا القسم أدناه.

في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل وطريقة مصادقة جديدة تستند إلى رمز مميز مادي أو الموقع:

  • [C-6-1] يجب أن تتوفر لديه آلية الرجوع لاستخدام إحدى الأدوات طرق مصادقة أولية تستند إلى سر معروف وتفي متطلبات التعامل مع التطبيق كشاشة قفل آمنة.
  • [C-6-2] يجب أن يتم تعطيل الطريقة الجديدة والسماح فقط بواحدة من طرق المصادقة الأساسية الموصى بها لإلغاء قفل الشاشة عند حدَّد تطبيق وحدة التحكّم بسياسة الجهاز (DPC) السياسة من خلال أحد الخيارَين التاليَين:
  • [C-6-3] يجب أن يواجه المستخدم أحد التحديات الأساسية الموصى بها طرق المصادقة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) مرة واحدة على الأقل كل 4 ساعات أو أقل.
  • [C-6-4] يجب عدم التعامل مع الطريقة الجديدة كشاشة قفل آمنة ويجب اتبع القيود المدرجة في C-8 أدناه.

إذا كانت عمليات تنفيذ الأجهزة تتضمن شاشة قفل آمنة وتشمل شاشة واحدة أو أكثر الوكيل المعتمد الذي يستخدم واجهة برمجة التطبيقات TrustAgentService System API، فإنّه:

  • [C-7-1] يجب أن يحتوي على مؤشر واضح في قائمة الإعدادات وعلى القفل. الشاشة عندما يتم تأجيل قفل الجهاز أو يمكن للوكلاء المعتمدين فتح قفله. على سبيل المثال، تستوفي AOSP هذا الشرط من خلال عرض وصف نصي "إعداد القفل تلقائيًا" و"يقفل زر التشغيل على الفور" في قائمة الإعدادات ورمز مميز على شاشة القفل.
  • [C-7-2] يجب أن يلتزم بجميع واجهات برمجة تطبيقات الوكيل المعتمد وينفّذها بالكامل في فئة DevicePolicyManager، مثل KEYGUARD_DISABLE_TRUST_AGENTS ثابت.
  • [C-7-3] يجب ألا يتم تنفيذ TrustAgentService.addEscrowToken() بشكل كامل على جهاز يُستخدم كجهاز شخصي أساسي (مثلاً الأجهزة المحمولة باليد) ولكن قد يتم تنفيذ الدالة بالكامل على الجهاز عمليات التنفيذ التي تتم مشاركتها عادةً (مثل Android TV أو سيارات).
  • [C-7-4] يجب أن يشفّر كل الرموز المميزة المخزنة التي أضافها TrustAgentService.addEscrowToken()
  • [C-7-5] يجب عدم تخزين مفتاح التشفير أو الرمز المميز للضمان على الجهاز نفسه الذي يُستخدَم المفتاح عليه على سبيل المثال، يُسمح مفتاح مخزَّن على الهاتف لفتح قفل حساب مستخدم على التلفزيون. بالنسبة إلى أجهزة السيارات، لا يُسمح بتخزين الرمز المميّز للضمان. على أي جزء من المركبة.
  • [C-7-6] يجب أن يخبر المستخدم بالآثار الأمنية قبل تمكين الرمز المميز للضمان لفك تشفير تخزين البيانات.
  • [C-7-7] يجب أن تتوفّر به آلية تراجع لاستخدام إحدى الأدوات طرق المصادقة الأساسية.
  • [C-7-8] يجب أن يواجه المستخدم أحد التحديات الأساسية الموصى بها طرق المصادقة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) مرة واحدة على الأقل كل 72 ساعات أو أقل إلا إذا كانت سلامة المستخدم (مثل تشتيت السائق) مصدر قلق.
  • [C-7-9] يجب أن يواجه المستخدم أحد التحديات الأساسية الموصى بها طرق المصادقة (مثل رقم التعريف الشخصي والنقش وكلمة المرور) كما هو موضح في [C-1-7] و[C-1-8] في القسم 7.3.10، ما لم حيث تكون سلامة المستخدم (مثل تشتيت السائق) مصدر قلق.
  • [C-7-10] يجب ألّا يتم التعامل معه كشاشة قفل آمنة ويجب أن يتّبع القيود المدرجة في C-8 أدناه.
  • [C-7-11] يجب عدم السماح لموظّفي الدعم الموثوق بهم على الأجهزة الشخصية الأساسية (على سبيل المثال: محمول باليد) لفتح قفل الجهاز ولا يمكن استخدامه إلا الإبقاء على الجهاز الذي سبق أن تم قفله في حالة فتح القفل لمدة تصل إلى 4 ساعات كحد أقصى. يُعد التنفيذ الافتراضي تستوفي TrustManagerService في AOSP هذا الشرط.
  • [C-7-12] يجب أن يستخدم تشفيرًا آمنًا (مثل UKEY2) قناة اتصال لتمرير رمز الضمان من مساحة التخزين الجهاز إلى الجهاز المستهدف.

في حال إضافة طرق مصادقة أو تعديلها لإلغاء القفل في عمليات تنفيذ الأجهزة شاشة القفل التي ليست شاشة قفل آمنة كما هو موضح أعلاه، واستخدام طريقة مصادقة جديدة لفتح قفل قفل المفاتيح:

  • [C-8-1] يجب إيقاف الطريقة الجديدة عند استخدام "وحدة التحكّم بسياسة الجهاز" (DPC) قد حدد سياسة جودة كلمة المرور من خلال DevicePolicyManager.setPasswordQuality() أكثر مع ثابت جودة أكثر تقييدًا من PASSWORD_QUALITY_NONE أو عن طريق DevicePolicyManager.setRequiredPasswordComplexity() ذات ثابت تعقيد أكثر تقييدًا من "password_COMPLEXITY_NONE".
  • [C-8-2] يجب ألا يعيد المستخدمون ضبط موقّتات انتهاء صلاحية كلمة المرور التي تم ضبطها DevicePolicyManager.setPasswordExpirationTimeout()
  • [C-8-3] يجب ألا تعرض واجهة برمجة التطبيقات لاستخدامها من قبل تطبيقات الجهات الخارجية إلى لتغيير حالة القفل.

إذا كانت عمليات تنفيذ الأجهزة تتيح حالات طاقة شاشة منفصلة من خلال DeviceStateManager وتتيح استخدام حالات منفصلة لقفل الشاشة من خلال KeyguardDisplayManager، وهي:

  • [C-SR-2] يُوصى بها بشدة باستخدام اجتماع بيانات الاعتماد المتطلبات المحددة في الفقرة 9.11.1 أو اجتماع المقاييس الحيوية على الأقل مواصفات الفئة 1 المحددة في الفقرة 7.3.10 للسماح بمعايير الجودة إلغاء القفل من شاشة الجهاز الافتراضية.
  • [C-SR-3] يُنصح بشدة بتقييد فتح قفل شاشة منفصلة من خلال مهلة عرض محددة
  • [C-SR-4] يُنصَح باستخدامها بشدة للسماح للمستخدم بقفل جميع الشاشات على مستوى العالم من خلال إلغاء التأمين من الجهاز المحمول الأساسي.

9.11.2. جهاز strongBox

يتيح نظام تخزين مفاتيح Android لمطوّري التطبيقات تخزين مفاتيح التشفير في معالج آمن مخصص وكذلك بيئة التنفيذ المعزولة الموضحة أعلاه. مثل والمعالج الآمن المخصص يسمى "StrongBox". المتطلبات C-1-3 من خلال C-1-11 أدناه، حدِّد المتطلبات التي يجب أن يستوفيها الجهاز مؤهل كـ StrongBox.

عمليات تنفيذ الأجهزة التي تتضمّن معالجًا مخصَّصًا وآمنًا:

  • [C-SR-1] يُنصح بها بشدة لدعم StrongBox. ستتأكد StrongBox من المحتمل أن تصبح شرطًا في إصدار مستقبلي.

في حال كانت عمليات تنفيذ الأجهزة تتوافق مع StrongBox، سيتم:

  • [C-1-1] يجب أن يذكر FEATURE_strongBOX_KEYSTORE.

  • [C-1-2] يجب أن يوفر أجهزة آمنة مخصصة تُستخدم لأغراض الدعم ملف تخزين المفاتيح ومصادقة المستخدم الآمنة. برنامج الأمان المخصّص ويمكن استخدام الأجهزة لأغراض أخرى أيضًا.

  • [C-1-3] يجب أن يحتوي على وحدة معالجة مركزية منفصلة لا تشارك أي ذاكرة تخزين مؤقت أو ذاكرة DRAM أو معالجات مساعدة أو غيرها من الموارد الأساسية من خلال معالج التطبيقات (AP).

  • [C-1-4] يجب التأكّد من أنّ أي أجهزة ملحقة تمت مشاركتها مع AP لا يمكنها تغيير معالجة StrongBox بأي شكل من الأشكال أو الحصول على أي معلومات من StrongBox. وقد تؤدي AP إلى إيقاف الوصول إلى StrongBox أو حظره.

  • [C-1-5] يجب أن تحتوي على ساعة داخلية بدقة معقولة (+-10%) والمحصّنة من التلاعب بواسطة AP.

  • [C-1-6] يجب أن يحتوي على منشئ أرقام عشوائية فعلي ناتج مخرجات موزَّعة بشكل موحّد ولا يمكن التنبؤ بها.

  • [C-1-7] يجب أن يتمتع بمقاومة العبث، بما في ذلك المقاومة ضد والاختراق المادي والأعطال.

  • [C-1-8] يجب أن يكون لديه مقاومة من قناة جانبية، بما في ذلك المقاومة ضد تسرُّب المعلومات عبر الطاقة والتوقيت والإشعاع الكهرومغناطيسي والحرارة قنوات جانب الإشعاع.

  • [C-1-9] يجب أن يحتوي على مساحة تخزين آمنة تضمن السرية وسلامة وأصالة واتساق وحداثة المحتوى. يجب ألا تكون وحدة التخزين قابلة للقراءة أو التغيير، باستثناء كما هو مسموح به من خلال واجهات برمجة تطبيقات StrongBox.

  • للتحقّق من الامتثال لمعيار [C-1-3] إلى [C-1-9]، يجب استخدام الجهاز عمليات التنفيذ:

  • [C-SR-3] يوصى بشدة بتوفير مقاومة للهجمات الداخلية (IAR)، ما يعني أنّ مستخدمًا داخليًا لديه إمكانية الوصول إلى مفاتيح توقيع البرامج الثابتة لا يمكنه إنشاء البرامج الثابتة التي تتسبب في تسرب الأسرار في StrongBox، لتجاوز الوظائف متطلبات الأمان أو تمكين الوصول إلى بيانات المستخدمين الحساسة. تشير رسالة الأشكال البيانية والطريقة المقترحة لتنفيذ IAR هو السماح بتحديثات البرامج الثابتة فقط عندما تتوفر كلمة مرور المستخدم الأساسي عبر بروتوكول HAL لـ IAuthSecret.

9.11.3. بيانات اعتماد الهوية

يتم تعريف نظام اعتماد الهوية وتحقيقه من خلال تنفيذ جميع واجهات برمجة التطبيقات في android.security.identity.* طرد. تسمح واجهات برمجة التطبيقات هذه لمطوّري التطبيقات بتخزين هوية المستخدم واستردادها المستندات. عمليات تنفيذ الأجهزة:

  • يُنصَح بشدة بأن يستخدم [C-SR-1] "بيانات اعتماد الهوية" النظام.

في حال استخدام عمليات تنفيذ الأجهزة لـ Identity Credential System، سيتم ما يلي:

  • [C-1-1] يجب عرض قيمة غير خالية لـ IdentityCredentialStore#getInstance() .

  • [C-1-2] يجب أن ينفذ نظام بيانات اعتماد الهوية (على سبيل المثال، android.security.identity.* واجهات برمجة تطبيقات) مع رمز يتواصل مع جهة موثوق بها التطبيق في منطقة معزولة بشكل آمن عن التعليمات البرمجية التي تعمل على النواة kernel وما فوقها. يجب أن يحظر العزل الآمن جميع الآليات المحتملة الذي يمكن من خلاله لشفرة kernel أو أو userspace الوصول إلى الحالة الداخلية معزولة، بما في ذلك قانون الأسواق الرقمية.

  • [C-1-3] عمليات التشفير اللازمة لتنفيذ Identity يجب أن يكون نظام بيانات الاعتماد (مثل واجهات برمجة تطبيقات android.security.identity.*) تنفيذه بالكامل في التطبيق الموثوق به ويجب أن يكون مادة المفتاح الخاص عدم مغادرة بيئة التنفيذ المعزولة مطلقًا ما لم يكن ذلك مطلوبًا تحديدًا من خلال واجهات برمجة التطبيقات ذات المستوى الأعلى (مثل createEphemeralKeypair() ).

  • [C-1-4] يجب تنفيذ التطبيق الموثوق به بطريقة تجعل لا تتأثر خصائص الأمان (على سبيل المثال، لا يتم إصدار بيانات الاعتماد ما لم يتم الوصول إلى بيانات) يتم استيفاء شروط التحكم، ولا يمكن إنشاء عناوين MAC لل البيانات) حتى إذا كان Android يعمل على نحو غير صحيح أو تم اختراقه.

9.12. حذف البيانات

جميع عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن يوفّر للمستخدمين آلية لتنفيذ "إعادة الضبط على الإعدادات الأصلية".
  • [C-0-2] يجب أن يحذف كل البيانات على نظام ملف بيانات المستخدم عند إجراء "إعادة الضبط على الإعدادات الأصلية".
  • [C-0-3] يجب أن يحذف البيانات بطريقة تفي بالغرض والمعايير القياسية في المجال مثل معيار المعهد الوطني للمعايير والتكنولوجيا (NIST) SP800-88 عند إجراء عملية "بيانات المصنع" إعادة الضبط".
  • [C-0-4] يجب تشغيل عملية "إعادة الضبط على الإعدادات الأصلية" أعلاه عند إعادة DevicePolicyManager.wipeData() يتم طلب واجهة برمجة التطبيقات من خلال تطبيق "وحدة التحكّم بسياسة الجهاز" الخاص بالمستخدم الأساسي.
  • قد يتم توفير خيار مسح البيانات بسرعة لإجراء مسح منطقي للبيانات فقط.

9.13. وضع التشغيل الآمن

يوفّر Android "وضع التشغيل الآمن"، الذي يتيح للمستخدمين بدء تشغيل وضع معيّن. الذي يتيح تشغيل تطبيقات النظام المثبَّتة مسبقًا فقط وجميع تطبيقات الجهات الخارجية إيقاف التطبيقات. وهذا الوضع، المعروف باسم "وضع التشغيل الآمن"، يوفر للمستخدم إمكانية إلغاء تثبيت تطبيقات الجهات الخارجية التي قد تتسبّب بضرر.

في ما يلي إجراءات تنفيذ الأجهزة:

  • [C-SR-1] يُنصح بشدة بتنفيذ "وضع التشغيل الآمن".

إذا كانت عمليات تنفيذ الأجهزة تفعِّل "وضع التشغيل الآمن"، سينطبق ما يلي:

  • [C-1-1] يجب أن يوفر للمستخدم خيارًا الدخول في وضع التشغيل الآمن بطريقة لا تقاطعها جهات خارجية التطبيقات المثبّتة على الجهاز، إلا إذا كان التطبيق التابع لجهة خارجية وحدة التحكم في سياسة الجهاز وتعيين UserManager.DISALLOW_SAFE_BOOT وضع علامة عليه كصواب.

  • [C-1-2] يجب أن يوفر للمستخدم القدرة على إلغاء تثبيت أي تطبيقات تابعة لجهات خارجية في الوضع الآمن.

  • يجب أن توفر للمستخدم خيارًا للدخول في وضع التشغيل الآمن من قائمة "التشغيل" باستخدام سير عمل يختلف عن سير عمل التشغيل العادي.

9.14. عزل أنظمة المركبات في السيارات

من المتوقَّع أن تتبادل أجهزة Android Automotive البيانات مع المركبات المهمة. والأنظمة الفرعية باستخدام HAL للمركبة لإرسال الرسائل وتلقيها عبر شبكات المركبات مثل حافلات كندا.

يمكن تأمين تبادل البيانات من خلال تنفيذ ميزات الأمان أسفل طبقات إطار عمل Android لمنع التفاعل الضار أو غير المقصود مع هذه الأنظمة الفرعية.

9.15. خطط الاشتراك

"خطط الاشتراك" مراجعة تفاصيل خطة علاقة الفوترة المقدّمة بواسطة مشغل شبكة الجوال من خلال SubscriptionManager.setSubscriptionPlans()

جميع عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب إرجاع خطط الاشتراك فقط إلى تطبيق مشغّل شبكة الجوّال الذي التي قدمها في الأصل.
  • [C-0-2] يجب عدم الاحتفاظ بنسخة احتياطية من خطط الاشتراك أو تحميلها عن بُعد.
  • [C-0-3] يجب أن يسمح بعمليات الإلغاء فقط، مثل SubscriptionManager.setSubscriptionOverrideCongested()، من تطبيق مشغّل شبكة الجوّال الذي يوفّر حاليًا خطط اشتراك صالحة

9.16. نقل بيانات التطبيق

إذا كانت عمليات تنفيذ الجهاز تتضمن إمكانية ترحيل البيانات من جهاز إلى على جهاز آخر، وألا تقصر بيانات التطبيق التي ينسخها على تم إعداده من قبل مطور التطبيق في البيان عبر android:fullBACKUPContent فإنهم:

  • [C-1-1] يجب ألا يبدأ عمليات نقل بيانات التطبيق من الأجهزة التي لم يضبط المستخدم مصادقة أساسية عليها موصوفة في 9.11.1 تأمين شاشة القفل والمصادقة:
  • [C-1-2] يجب تأكيد المصادقة الأساسية بشكل آمن على المصدر الجهاز والتأكيد مع نية المستخدم في نسخ البيانات إلى المصدر جهازك قبل نقل أي بيانات.
  • [C-1-3] يجب استخدام مصادقة مفتاح الأمان لضمان أن كلاً من المصدر الجهاز والجهاز المستهدف في عملية النقل من جهاز إلى آخر. أجهزة Android الشرعية وأن يكون برنامج إقلاع مُقفَلًا فيها
  • [C-1-4] يجب نقل بيانات التطبيق فقط إلى التطبيق نفسه على الجهاز المستهدف، يحمل نفس اسم الحزمة وشهادة التوقيع.
  • يجب أن يظهر [C-1-5] إشارة إلى أنّ الجهاز المصدر يحتوي على بيانات: من خلال نقل البيانات من جهاز إلى آخر في قائمة الإعدادات مستخدم "لن يكون بالإمكان إزالة هذه الإشارة".

10. اختبار توافق البرامج

يجب أن تجتاز عمليات تنفيذ الأجهزة جميع الاختبارات الموضَّحة في هذا القسم. ومع ذلك، تجدر الإشارة إلى أنّه لا تتوفّر حزمة لاختبارات البرامج شاملة تمامًا. لهذا السبب، يُستحسن بشدة من منفّذي الأجهزة لتنفيذ ما يلي: لأقل عدد ممكن من التغييرات على المرجع التي يمكن تنفيذها على نظام Android من خلال مشروع مفتوح المصدر لنظام Android. سيقلل هذا من خطر إدخال أخطاء تؤدي إلى عدم التوافق تتطلب إعادة العمل وتحديثات محتملة للجهاز.

10.1. مجموعة أدوات اختبار التوافق

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن تجتاز مجموعة اختبار التوافق مع Android (CTS) المتاحة من مشروع Android مفتوح المصدر، باستخدام نموذج الشحن البرامج على الجهاز.

  • يجب أن يضمن [C-0-2] التوافق في حالات الغموض في CTS وأي إعادة تنفيذ أجزاء من رمز المصدر المرجعي.

تم تصميم CTS للتشغيل على جهاز فعلي. مثل أي برنامج، تمكنت CTS نفسه على أخطاء. سيتم إصدار إصدار CTS بشكل مستقل عن هذا ربما يتم إصدار تعريف التوافق والمراجعات المتعددة من CTS الإصدار 12 من نظام التشغيل Android.

عمليات تنفيذ الأجهزة:

  • [C-0-3] يجب أن يجتاز أحدث إصدار من CTS متاح عند استخدام الجهاز البرنامج.

  • يجب استخدام تنفيذ المرجع في شجرة البرامج المفتوحة المصدر لنظام Android قدر الإمكان.

10.2. أداة التحقّق من CTS

أداة CTS Verifier مضمَّنة في "مجموعة أدوات اختبار التوافق" أن يتم تشغيله بواسطة مشغل بشري لاختبار الوظائف التي لا يمكن اختباره بواسطة نظام آلي، مثل الأداء الصحيح للكاميرا أجهزة الاستشعار.

عمليات تنفيذ الأجهزة:

  • [C-0-1] يجب أن ينفّذ كل الحالات المناسبة بشكل صحيح في أداة التحقّق من CTS.

تُجري أداة CTS Verifier اختبارات للعديد من أنواع الأجهزة، بما فيها بعض الأجهزة. تكون اختيارية.

عمليات تنفيذ الأجهزة:

  • [C-0-2] يجب أن يجتاز جميع اختبارات الأجهزة التي يمتلكها. على سبيل المثال، إذا كان لدى الجهاز مقياس تسارع، يجب أن ينفِّذ حالة اختبار مقياس التسارع في جهاز CTS Verifier.

حالات اختبار الميزات المُشار إليها على أنّها اختيارية في "تعريف التوافق" هذا قد يتم تخطي المستند أو حذفه.

  • [C-0-2] يجب أن يتم تشغيل أداة CTS Verifier على كل جهاز وكل إصدار بشكل صحيح كما هو موضح أعلاه. ومع ذلك، وبما أنّ العديد من الإصدارات متشابهة إلى حدّ كبير، لا لا يُتوقع من القائمين على التنفيذ تشغيل أداة CTSVerifier بشكل صريح على تختلف في الطرق البسيطة فقط. وعلى وجه التحديد، عمليات تنفيذ الأجهزة التي عن عملية التنفيذ التي اجتازت أداة التحقق من CTS مجموعة اللغات المضمّنة والعلامات التجارية وما إلى ذلك. قد يتم حذف اختبار CTS Verifier.

11. برامج قابلة للتحديث

  • [C-0-1] يجب أن تتضمن عمليات تنفيذ الأجهزة آلية لاستبدال برنامج النظام بأكمله. لا تحتاج الآلية إلى تنفيذ "منشور" الترقيات، أي أنّه قد يكون عليك إعادة تشغيل الجهاز. ويمكن استخدام أي طريقة، بشرط أن تحل محل نموذج برنامج مثبت مسبقًا على الجهاز. على سبيل المثال، أي مما يلي مختلفة هذا المطلب:

    • "عبر شبكة غير سلكيّة (OTA)" التي تم تنزيلها بدون اتصال بالإنترنت عن طريق إعادة التشغيل.
    • "Tethered" التحديثات عبر USB من جهاز كمبيوتر مضيف.
    • "بلا إنترنت" عن طريق إعادة التشغيل والتحديث من ملف على وحدة تخزين قابلة للإزالة.
  • [C-0-2] يجب أن تتيح آلية التحديث المستخدمة التحديثات بدون حجب بيانات المستخدم البيانات. أي أن آلية التحديث يجب أن تحتفظ بالبيانات الخاصة للتطبيق البيانات المشتركة للتطبيق. لاحظ أن برنامج Android الرئيسي يتضمن آلية تحديث تستوفي هذا الشرط.

  • [C-0-3] يجب توقيع التحديث بالكامل وآلية التحديث على الجهاز يجب التحقّق من التحديث والتوقيع مقابل مفتاح عام مخزَّن على الجهاز.

  • [C-SR-1] يُنصَح بشدة باستخدام آلية التوقيع لاختبار التحديث باستخدام SHA-256 والتحقق من صحة التجزئة مقابل المفتاح العام باستخدام ECDSA NIST P-256.

إذا كانت عمليات تنفيذ الأجهزة تتضمن دعمًا لبيانات لا تفرض تكلفة استخدام مثل 802.11 أو ملف شخصي للرقم PAN (شبكة المنطقة الشخصية) عبر البلوتوث، بعد ذلك، سيقومون بما يلي:

  • [C-1-1] يجب إتاحة عمليات التنزيل عبر الهواء مع التحديث بلا اتصال بالإنترنت عن طريق إعادة التشغيل.

يجب أن تتحقق عمليات تنفيذ الأجهزة من أن صورة النظام متطابقة في النظام الثنائي إلى النتيجة المتوقعة بعد التحديث عبر الهواء. التحديث عبر الهواء المستند إلى الكتل عملية التنفيذ في "المشروع المفتوح المصدر لنظام Android" الذي أُضيف منذ إطلاق نظام Android 5.1، تستوفي هذا الشرط.

يجب أيضًا أن تتوافق عمليات تنفيذ الأجهزة مع تحديثات نظام A/B. ينفذ AOSP هذه الميزة باستخدام عنصر التحكم في التشغيل HAL.

إذا تم العثور على خطأ في تنفيذ الجهاز بعد إصداره، ولكن خلال فترة بقاء المنتج المعقولة التي يتم تحديدها بالتشاور مع فريق التوافق مع Android للتأثير في توافق الجهات الخارجية التطبيقات، ثم:

  • [C-2-1] يجب على أداة تنفيذ الجهاز تصحيح الخطأ عبر أحد البرامج يتوفر تحديث يمكن تطبيقه وفقًا للآلية التي تم وصفها للتو.

يتضمّن Android ميزات تسمح لتطبيق "مالك الجهاز" (إن توفّر) التحكم في تثبيت تحديثات النظام. إذا كان النظام الفرعي لتحديث النظام في ما يتعلق بالأجهزة، يتم الإبلاغ عن android.software.device_admin بعد ذلك:

  • يجب أن ينفِّذ [C-3-1] السلوك الموضّح في SystemUpdatePolicy. الصف.

12. سجل التغييرات في المستند

للحصول على ملخص بالتغييرات التي طرأت على تعريف التوافق في هذا الإصدار:

للحصول على ملخص للتغييرات التي تطرأ على أقسام الأفراد:

  1. المقدّمة
  2. أنواع الأجهزة
  3. البرامج
  4. حزمة التطبيقات
  5. الوسائط المتعددة
  6. أدوات المطوّرين وخياراتهم
  7. توافق الأجهزة
  8. الأداء والقوة
  9. نموذج الأمان
  10. اختبار التوافق مع البرامج
  11. برامج Updatable
  12. سجلّ تغييرات المستند
  13. التواصل معنا

12.1. نصائح حول عرض سجلّ التغييرات

ويتم تمييز التغييرات على النحو التالي:

  • CDD
    تغييرات جوهرية في متطلبات التوافق:

  • مستندات Google
    إجراء تغييرات تجميلية أو إنشاء تغييرات ذات صلة.

للحصول على أفضل عرض، أضِف مَعلمتَي عنوان URL pretty=full وno-merges إلى عناوين URL لسجل التغييرات.

13. التواصل معنا

يمكنك الانضمام إلى منتدى التوافق مع Android وطلب توضيحات أو طرح أي مشكلات تعتقد أن الوثيقة لا الغلاف.