مجوزهای اندروید

مجوزهای Android کنترل‌هایی را ارائه می‌کنند که آگاهی کاربر را افزایش می‌دهد و دسترسی برنامه به داده‌های حساس را محدود می‌کند. پیکربندی مجوزها در Android 8.0 و پایین‌تر شامل لیست سفید است که بدون آن برنامه‌های دارای امتیاز غیرفعال می‌شوند، حتی اگر در مسیر priv-app خصوصی باشند. در اندروید 9 و بالاتر، دستگاهی که سعی می‌کند از برنامه‌هایی استفاده کند که به درستی در لیست سفید قرار نگرفته‌اند، بوت نمی‌شوند.

اندروید 10 مفهوم نقش را معرفی کرد، یک نام منحصر به فرد در سیستم همراه با الزامات و امتیازات خاص. نقش‌هایی را به برنامه‌ها اختصاص دهید تا برای هدف خاصی به آنها مجوز بدهید و نقش‌های پیش‌فرض را با استفاده از منابع پیکربندی پلت فرم پیکربندی کنید.

افزایش حفاظت در برابر برنامه‌های بالقوه مضر (PHA) بهبود می‌یابد

  • شفافیت در رفتار بالقوه مضر برنامه.
  • کنترل کاربر بر رفتار برنامه
  • صلاحدید توسعه دهندگان برنامه هنگام استفاده از داده های خصوصی، با مجوز محافظت می شود.

نصب و مجوز بسته

در اندروید 9 و پایین‌تر، قابلیت‌های نصب بسته و کنترل مجوز در بسته PackageInstaller ( //packages/apps/PackageInstaller ) وجود داشت. در Android 10 و بالاتر، عملکرد کنترل مجوز در یک بسته جداگانه قرار دارد، PermissionController ( //packages/apps/PermissionController ). شکل 1 نشان می دهد که این دو بسته در Android 10 در کجا قرار دارند.

جداسازی قابلیت های نصب بسته و کنترل مجوز برای برنامه های سیستم و همانطور که توسط برنامه های نصب شده توسط کاربر استفاده می شود
شکل 1. نصب بسته و عملکردهای کنترل مجوز در اندروید 10

لیست های سفید و دسترسی

در Android نسخه 6.0 و بالاتر، برنامه‌ها درخواست دسترسی به مجوزهای خطرناک در زمان اجرا را دارند. اندروید 10 مجوزهای زمان اجرا تشخیص فعالیت (AR) را اضافه می کند که از کاربر می خواهد مجوزهای خطرناک را تغییر دهد یا اجازه دهد.

Android 8.0 شما را ملزم می‌کند که برنامه‌های دارای امتیاز را در فایل‌های XML پیکربندی سیستم در فهرست /etc/permissions فهرست سفید قرار دهید. در اندروید 9 و بالاتر، مجوزهای ممتاز باید در لیست سفید قرار گیرند یا دستگاه نمی تواند بوت شود.

برای محدود کردن دید داخلی API و جلوگیری از دسترسی تصادفی برنامه‌ها به کتابخانه‌های پلتفرم، Android 7.0 Namespaces را برای کتابخانه‌های بومی معرفی کرد. این کار کتابخانه های سیستم را از کتابخانه های برنامه جدا می کند و سازندگان دستگاه می توانند کتابخانه های بومی خود را اضافه کنند.

شروع در برنامه‌های Android 10 باید دارای مجوز امضا و رضایت کاربر برای دسترسی به محتوای صفحه دستگاه باشد . برنامه‌های ممتازی که به عملکرد ضبط بی‌صدا، مانند گرفتن اسکرین شات، متکی هستند، باید از کلاس MediaProjection استفاده کنند.

شفافیت و حریم خصوصی

در Android 6.0 و بالاتر، یک آدرس MAC کارخانه دستگاه از دسترسی ارائه دهندگان خدمات Wi-Fi و تحلیلگرهای بسته محافظت می شود. محدودیت‌های اضافی مربوط به Android 10، دسترسی برنامه‌ها به شناسه‌های دستگاه (ID) غیرقابل تغییر را محدود می‌کند، مگر اینکه برای مجوزهای ممتاز در لیست سفید قرار بگیرند. (بخش اتصال ، بحث مرتبطی در مورد شناسه‌های دستگاه ارائه می‌کند، زیرا این بر حامل‌ها تأثیر می‌گذارد.)

در اندروید 9 و پایین‌تر، کاربران هنگام اعطای دسترسی موقعیت مکانی به برنامه‌ها، انتخاب‌های مداومی انجام می‌دهند. با شروع در اندروید 10، یک ویژگی مجوزهای موقعیت مکانی سه ایالت به کاربران سه گزینه برای اجازه دسترسی برنامه به مکان دستگاه را می دهد. این الزامات مجوز برای برنامه‌های Android 10 بدون در نظر گرفتن SDK هدف اعمال می‌شود.

مجوزها را برای سایر ویژگی‌های شفافیت و حریم خصوصی از Android 10 پیکربندی کنید

تنظیمات ساده

پیکربندی مجوزها برای Android 6.0 و بالاتر ساده شده است.

  • قابلیت‌های محیطی برای سرویس‌های راه‌اندازی شده توسط init ، تمام جنبه‌های پیکربندی سرویس را در یک فایل .rc نگه می‌دارد. هنگام تنظیم قابلیت‌ها برای سرویس‌هایی که توسط init راه‌اندازی نشده‌اند، به جای آن، قابلیت‌های سیستم فایل را با استفاده از fs_config.c پیکربندی کنید.
  • Android 7.x و پایین‌تر، مکانیسم Android ID (AIDs) را گسترش می‌دهد، با استفاده از یک فایل android_filesystem_config.h مخصوص دستگاه برای مشخص کردن قابلیت‌های سیستم فایل و/یا AID‌های سفارشی سازنده دستگاه. اندروید 8.0 و بالاتر از روش جدیدی برای گسترش قابلیت‌های سیستم فایل پشتیبانی می‌کند.
  • در Android 8.0، کنترل دستورات USB از اسکریپت های اولیه مخصوص دستگاه (جایگزینی برای لایه های init ) خارج شد و به یک شبح USB بومی تبدیل شد. رابط USB HAL باید در هر دستگاهی که با Android نسخه 8.0 و بالاتر راه اندازی می شود، اجرا شود.