توفّر أذونات Android عناصر تحكّم تزيد من وعي المستخدمين وتحدّ من وصول التطبيق إلى البيانات الحسّاسة. يتضمّن ضبط الأذونات على الإصدار 8.0 من نظام التشغيل Android والإصدارات الأقدم إضافة التطبيقات إلى القائمة المسموح بها، وبدون ذلك، يتم إيقاف التطبيقات التي تتطلّب امتيازات، حتى إذا كانت في المسار priv-app
. على الإصدار 9 من نظام التشغيل Android والإصدارات الأحدث، لن يتم تشغيل أي جهاز يحاول استخدام تطبيقات لم تتم إضافتها إلى القائمة المسموح بها بشكل صحيح.
قدّم نظام التشغيل Android 10 مفهوم الدور، وهو اسم فريد ضمن النظام مرتبط بمتطلبات وأذونات معيّنة. يمكنك تعيين أدوار للتطبيقات لمنحها أذونات لغرض محدّد، وإعداد الأدوار التلقائية باستخدام موارد إعدادات النظام الأساسي.
تساهم إجراءات الحماية المحسَّنة من التطبيقات التي قد تتسبّب بضرر (PHA) في تحسين ما يلي:
- الشفافية بشأن سلوك التطبيقات التي قد تتسبّب بضرر
- تحكُّم المستخدم في سلوك التطبيق
- تقدير مطوّري التطبيقات عند استخدام البيانات الخاصة المحمية بموجب الأذونات
تثبيت الحِزم والأذونات
في الإصدار 9 من نظام التشغيل Android والإصدارات الأقدم، كانت وظائف تثبيت الحِزم والتحكّم في الأذونات مضمّنة في حزمة PackageInstaller
(//packages/apps/PackageInstaller
). أما في الإصدار 10 من نظام التشغيل Android والإصدارات الأحدث، فتتوفّر وظيفة التحكّم في الأذونات في حزمة منفصلة، وهي PermissionController
(//packages/apps/PermissionController
). يوضّح الشكل 1 مكان توفّر الحزمتَين في الإصدار 10 من نظام التشغيل Android.

الشكل 1. وظائف تثبيت الحِزم والتحكّم في الأذونات في Android 10
قوائم السماح وإمكانية الوصول
في الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، تطلب التطبيقات الوصول إلى الأذونات الخطيرة في وقت التشغيل. يضيف نظام التشغيل Android 10 أذونات وقت التشغيل الخاصة بميزة "التعرّف على النشاط"، والتي تطلب من المستخدم تعديل الأذونات الخطيرة أو السماح بها.
في نظام التشغيل Android 8.0، كان عليك إدراج التطبيقات ذات الامتيازات في القائمة المسموح بها بشكل صريح في ملفات XML الخاصة بإعدادات النظام في الدليل /etc/permissions
.
في الإصدار 9 من نظام التشغيل Android والإصدارات الأحدث، يجب إدراج الأذونات المميزة في القائمة المسموح بها، وإلا لن يتمكّن الجهاز من بدء التشغيل.
للحدّ من إمكانية الوصول إلى واجهات برمجة التطبيقات الداخلية ومنع التطبيقات من الوصول إلى مكتبات النظام الأساسي عن طريق الخطأ، قدّمت الإصدار 7.0 من نظام التشغيل Android ميزة مساحات الأسماء للمكتبات الأصلية. ويؤدي ذلك إلى فصل مكتبات النظام عن مكتبات التطبيقات، كما يمكن لمصنّعي الأجهزة إضافة مكتباتهم الأصلية.
بدءًا من نظام التشغيل Android 10، يجب أن تحصل التطبيقات على أذونات التوقيع وموافقة المستخدم للوصول إلى محتوى شاشة الجهاز. يجب أن تستخدم التطبيقات ذات الأذونات المميزة التي تعتمد على وظيفة الالتقاط بدون صوت فئة MediaProjection بدلاً من ذلك، مثل التقاط لقطة شاشة.
يتطلّب الإصدار 15 من نظام التشغيل Android منك أن
تضيف إلى القائمة المسموح بها
أذونات توقيع النظام التي تطلبها التطبيقات غير التابعة للنظام أو التي تطلبها التحديثات
حديثًا للتطبيقات التابعة للنظام، وذلك في ملفات XML الخاصة بإعدادات النظام في الدليل /etc/permissions
.
الشفافية والخصوصية
في الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث، تتم حماية عنوان MAC الخاص بضبط المصنع للجهاز من الوصول إليه من قِبل مقدّمي خدمات Wi-Fi ومحلّلي الحِزم. تفرض قيود إضافية بدءًا من Android 10 تحدّ من إمكانية وصول التطبيقات إلى معرّفات الأجهزة الثابتة ما لم يتم إدراجها في القائمة المسموح بها للحصول على أذونات مميّزة. (يقدّم قسم الاتصال مناقشة ذات صلة حول معرّفات الأجهزة، لأنّ ذلك يؤثّر في شركات النقل).
على أجهزة Android 9 والإصدارات الأقدم، يتّخذ المستخدمون خيارات دائمة عند منح التطبيقات إذن الوصول إلى الموقع الجغرافي. بدءًا من نظام التشغيل Android 10، تتيح ميزة أذونات تحديد الموقع الجغرافي الثلاثية الحالة للمستخدمين ثلاثة خيارات للسماح للتطبيق بالوصول إلى الموقع الجغرافي للجهاز. يتم تطبيق متطلبات الأذونات هذه على التطبيقات التي تعمل بالإصدار 10 من نظام التشغيل Android بغض النظر عن الإصدار المستهدف من حزمة تطوير البرامج (SDK).
ضبط أذونات ميزات الشفافية والخصوصية الأخرى بدءًا من Android 10
- يعرض التذكير
بإذن الوصول إلى الموقع الجغرافي في الخلفية للمستخدمين الوقت الذي يصل فيه تطبيق إلى الموقع الجغرافي لجهازهم باستخدام إذن
ACCESS_FINE_LOCATION
في الخلفية. - يتم الوصول إلى البيانات ذات الصلة بجهات الاتصال المفضّلة، والتي يديرها مكوّن "موفر جهات الاتصال"، بطريقة مختلفة: لا يمكن للتطبيقات الكتابة إلى بيانات جهات الاتصال المفضّلة أو القراءة منها في قاعدة البيانات. ويؤثّر ذلك في واجهات برمجة التطبيقات ذات الصلة بالمتصل.
عمليات ضبط مبسّطة
تم تبسيط إعدادات الأذونات في الإصدار Android 6.0 والإصدارات الأحدث.
- تحتفظ إمكانات
الخلفية للخدمات التي يتم تشغيلها من خلال
init
بجميع جوانب إعدادات الخدمة في ملف.rc
واحد. عند ضبط إمكانات للخدمات التي لا يتم تشغيلها من خلالinit
، اضبط إمكانات نظام الملفات باستخدامfs_config.c
بدلاً من ذلك. - توسّع الإصدارات 7.x من نظام التشغيل Android والإصدارات الأقدم آلية أرقام تعريف Android (AID)، وذلك باستخدام ملف
android_filesystem_config.h
خاص بالجهاز لتحديد إمكانات نظام الملفات و/أو أرقام تعريف Android المخصّصة من الشركة المصنّعة للجهاز. يتيح الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث طريقة جديدة لتوسيع إمكانات نظام الملفات. - في الإصدار 8.0 من نظام التشغيل Android، تم نقل عملية معالجة أوامر USB من البرامج النصية الخاصة بالجهاز (وهي بديل لطبقات HAL) إلى برنامج خفي أصلي خاص بمنفذ USB.
init
يجب تنفيذ واجهة USB HAL على كل جهاز يعمل بنظام التشغيل Android 8.0 والإصدارات الأحدث.