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