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