توفّر أذونات 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 أذونات وقت التشغيل لميزة "التعرّف على الأنشطة" (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 وأدوات تحليل الحِزم. تحدّ القيود الإضافية في Android 10 من وصول التطبيقات إلى معرّفات الأجهزة غير القابلة للتغيير ما لم تتم إضافتها إلى القائمة المسموح بها للحصول على الأذونات المميّزة. (يقدّم قسم الاتصال بالإنترنت مناقشة ذات صلة بشأن معرّفات الأجهزة، لأنّ ذلك يؤثر في مشغّلي شبكات الجوّال).
على الإصدار 9 من نظام Android والإصدارات الأقدم، يتّخذ المستخدمون خيارات دائمة عند منح التطبيقات إذن الوصول إلى الموقع الجغرافي. بدءًا من نظام التشغيل Android 10، توفّر ميزة أذونات تحديد الموقع الجغرافي بثلاثة حالات للمستخدمين ثلاثة خيارات للسماح للتطبيق بالوصول إلى الموقع الجغرافي للجهاز. تسري متطلبات الأذونات هذه على التطبيقات في Android 10 بغض النظر عن حزمة تطوير البرامج (SDK) المستهدَفة.
ضبط الأذونات لميزات الشفافية والخصوصية الأخرى اعتبارًا من Android 10
- يعرض تذكير
الوصول إلى الموقع الجغرافي في الخلفية للمستخدمين عندما يصل تطبيق إلى
الموقع الجغرافي لجهازهم باستخدام
إذن
ACCESS_FINE_LOCATION
في الخلفية. - يتم الوصول إلى البيانات ذات الصلة بجهات الاتصال، والتي يديرها مكوّن "موفِّر جهات الاتصال"، بطريقة مختلفة: لا يمكن للتطبيقات الكتابة في بيانات تشابهات جهات الاتصال أو قراءتها من قاعدة البيانات. ويؤثّر ذلك في واجهات برمجة التطبيقات ذات الصلة بالمتصل.
الإعدادات المبسّطة
تم تبسيط إعدادات الأذونات لنظام التشغيل 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 أو إصدار أحدث.