أذونات Android

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

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

تعمل ميزات الحماية المحسَّنة من التطبيقات التي قد تتسبّب بضرر على تحسين ما يلي:

  • شفافية السلوك في التطبيقات التي قد تتسبّب بضرر
  • قدرة المستخدم على التحكّم في سلوك التطبيق
  • تقدير مطوّري التطبيقات عند استخدام البيانات الخاصة المحمية بالأذونات

تثبيت الحزمة والإذن

في الإصدار 9 من Android والإصدارات الأقدم، كانت وظيفتا تثبيت الحزمة والتحكّم في الأذونات تتضمّنان حزمة PackageInstaller (//packages/apps/PackageInstaller). في الإصدار 10 من Android والإصدارات الأحدث، يتم تضمين وظيفة التحكّم في الأذونات في حزمة منفصلة، وهي PermissionController (//packages/apps/PermissionController). يوضّح الشكل 1 مكان توفّر الحزمتَين في الإصدار 10 من Android.

فصل وظائف تثبيت الحِزم
ووظائف التحكّم في الأذونات لتطبيقات النظام وتلك المستخدَمة من قِبل التطبيقات التي المثبَّتة
من قِبل المستخدم

الشكل 1: وظائف تثبيت الحِزم و التحكّم في الأذونات في Android 10

القوائم المسموح بها وإمكانية الوصول

في الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، تطلب التطبيقات الوصول إلى الأذونات الخطيرة في أثناء وقت التشغيل. يضيف نظام التشغيل Android 10 أذونات وقت التشغيل لميزة "التعرّف على الأنشطة" (AR)، والتي تطلب من المستخدم تعديل أذونات الخطيرة أو السماح بها.

في نظام التشغيل Android 8.0، عليك إضافة التطبيقات المميّزة إلى القائمة المسموح بها صراحةً فيملفّات XML الخاصة بإعدادات النظام في الدليل /etc/permissions. في الإصدار 9 من نظام التشغيل Android والإصدارات الأحدث، يجب أن تكون الأذونات المميّزة مدرَجة في القائمة المسموح بها وإلا لن يتم تشغيل الجهاز.

لتقييد مستوى الوصول إلى واجهات برمجة التطبيقات الداخلية ومنع التطبيقات من الوصول إلى مكتبات النظام الأساسي بدون قصد، وفّر الإصدار 7.0 من Android نطاقات имен للمكتبات الأصلية. ويؤدي ذلك إلى فصل مكتبات النظام عن مكتبات التطبيقات، ويمكن لصنّاع الأجهزة إضافة مكتباتهم الأصلية.

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

يتطلّب نظام التشغيل Android 15 منك تحديدًا قائمة المسموح به لأذونات توقيع النظام التي تطلبها التطبيقات غير المضمّنة في النظام أو التي تطلبها التحديثات حديثًا لتطبيقات النظام، وذلك في ملفات XML الخاصة بإعدادات النظام في الدليل /etc/permissions.

الشفافية والخصوصية

في الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، يتم حماية عنوان MAC التلقائي للجهاز من الوصول إليه من قِبل مقدّمي خدمة Wi-Fi وأدوات تحليل الحِزم. فرض قيود إضافية في الإصدار 10 من Android على التطبيقات للوصول إلى معرّفات الجهاز (المعرّفات) غير القابلة للتغيير ما لم تكن مدرَجة في القائمة المسموح بها للحصول على أذونات مميّزة (يقدّم قسم الاتصال بالإنترنت مناقشة ذات صلة بشأن معرّفات الأجهزة، لأنّ ذلك يؤثر في مشغّلي شبكات الجوّال).

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

ضبط الأذونات لميزات الشفافية والخصوصية الأخرى اعتبارًا من Android 10

الإعدادات المبسّطة

تم تبسيط إعدادات الأذونات لنظام التشغيل Android 6.0 والإصدارات الأحدث.

  • تحافظ إمكانات التشغيل للخدمات التي تطلقها init على جميع جوانب إعدادات الخدمة في ملف .rc واحد. عند ضبط الإمكانات للخدمات التي لا يبدأها init، يمكنك ضبط إمكانات نظام الملفات باستخدام fs_config.c بدلاً من ذلك.
  • يضيف الإصدار 7.x من Android والإصدارات الأقدم آلية معرّفات Android (AID) باستخدام ملف android_filesystem_config.h خاص بالجهاز لتحديد ميزات نظام الملفات و/أو معرّفات AID المخصّصة لجهة تصنيع الجهاز. يتيح الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث طريقة جديدة لتوسيع إمكانات نظام الملفات.
  • في الإصدار 8.0 من Android، تم نقل معالجة أوامر USB من النصوص البرمجية الخاصة بالجهاز init (بديل لطبقات HAL) إلى معالج خدمات خلفي natif لـ USB. يجب تنفيذ واجهة HAL لبروتوكول USB على كل جهاز يعمل بالإصدار 8.0 من نظام التشغيل Android أو إصدار أحدث.