توفر أذونات Android عناصر تحكم تزيد من وعي المستخدم وتحد من وصول التطبيق إلى البيانات الحساسة. تتضمن تهيئة الأذونات على Android 8.0 والإصدارات الأقل السماح بالقائمة ، والتي بدونها يتم تعطيل التطبيقات المميزة ، حتى لو كانت في مسار priv-app
. في نظام Android 9 والإصدارات الأحدث ، لن يتم تشغيل الجهاز الذي يحاول استخدام التطبيقات غير المسموح بها بشكل صحيح.
قدم Android 10 مفهوم الدور ، وهو اسم فريد داخل النظام مرتبط بمتطلبات وامتيازات معينة. قم بتعيين الأدوار للتطبيقات لمنحها أذونات لغرض معين ، وتكوين الأدوار الافتراضية باستخدام موارد تكوين النظام الأساسي.
تحسين الحماية المتزايدة ضد التطبيقات التي يُحتمل أن تكون ضارة (PHA)
- الشفافية في سلوك التطبيق المحتمل أن يكون ضارًا.
- تحكم المستخدم في سلوك التطبيق.
- تقدير مطوري التطبيقات عند استخدام البيانات الخاصة ، محمية بالأذونات.
تثبيت الحزمة والإذن
في 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 Namespaces للمكتبات الأصلية . يؤدي هذا إلى فصل مكتبات النظام عن مكتبات التطبيقات ، ويمكن للشركات المصنّعة للأجهزة إضافة مكتبات أصلية خاصة بهم.
بدءًا من Android 10 ، يجب أن يكون لدى تطبيقات Android 10 أذونات التوقيع وموافقة المستخدم للوصول إلى محتوى شاشة الجهاز . يجب أن تستخدم التطبيقات المميزة التي تعتمد على وظيفة الالتقاط الصامت ، مثل التقاط لقطة شاشة ، فئة MediaProject بدلاً من ذلك.
الشفافية والخصوصية
في 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
بدلاً من ذلك. - يعمل الإصدار 7.x من نظام التشغيل Android والإصدارات الأقل على توسيع آلية معرّفات Android (AIDs) ، باستخدام ملف
android_filesystem_config.h
خاص بالجهاز لتحديد إمكانيات نظام الملفات و / أو معرّفات AID الخاصة بالشركة المصنعة للجهاز. يدعم Android 8.0 والإصدارات الأحدث طريقة جديدة لتوسيع إمكانيات نظام الملفات . - في Android 8.0 ، انتقل التعامل مع أوامر USB من البرامج النصية الخاصة
init
(بديل لطبقات HAL) إلى برنامج خفي USB أصلي. يجب تنفيذ واجهة USB HAL على كل جهاز يتم تشغيله على Android 8.0 والإصدارات الأحدث.