أذونات Android

توفر أذونات 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.

فصل وظائف تثبيت الحزمة والتحكم في الأذونات لتطبيقات النظام وكما تستخدمها التطبيقات المثبتة من قبل المستخدم
الشكل 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

تكوينات مبسطة

تم تبسيط تكوينات الأذونات لنظام 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 والإصدارات الأحدث.