הרשאות אנדרואיד מספקות בקרות שמגבירות את מודעות המשתמש ומגבילות את הגישה של אפליקציה לנתונים רגישים. הגדרת הרשאות ב-Android 8.0 ומטה כוללת רישום היתרים, שבלעדיו אפליקציות מורשות מושבתות, גם אם הן נמצאות בנתיב priv-app
. ב-Android 9 ומעלה, מכשיר שמנסה להשתמש באפליקציות שאינן רשומות כראוי לא יאתחל.
אנדרואיד 10 הציגה את הרעיון של תפקיד , שם ייחודי בתוך המערכת הקשור לדרישות והרשאות מסוימות. הקצה תפקידים לאפליקציות כדי להעניק להם הרשאות למטרה מסוימת, והגדר תפקידי ברירת מחדל באמצעות משאבי תצורת הפלטפורמה.
ההגנות המוגברות מפני אפליקציות פוטנציאליות מזיקות (PHA) משתפרות
- שקיפות לגבי התנהגות אפליקציה שעלולה להזיק.
- שליטה של המשתמש על התנהגות האפליקציה.
- שיקול הדעת של מפתחי אפליקציות בעת שימוש בנתונים פרטיים, מוגן על ידי הרשאות.
התקנה והרשאה של חבילה
באנדרואיד 9 ומטה, פונקציות התקנת החבילה ובקרת ההרשאות נכללו בחבילת PackageInstaller
( //packages/apps/PackageInstaller
). באנדרואיד 10 ומעלה, פונקציונליות בקרת ההרשאות נמצאת בחבילה נפרדת, PermissionController
( //packages/apps/PermissionController
). איור 1 ממחיש היכן שתי החבילות שוכנות באנדרואיד 10.
רשימות הרשאות וגישה
ב-Android 6.0 ומעלה, אפליקציות מבקשות גישה להרשאות מסוכנות בזמן ריצה . אנדרואיד 10 מוסיף הרשאות זמן ריצה לזיהוי פעילות (AR), שמבקשות מהמשתמש לשנות או לאפשר הרשאות מסוכנות.
אנדרואיד 8.0 דרש ממך לרשום באופן מפורש אפליקציות מורשות בקובצי ה-XML של תצורת המערכת בספריית /etc/permissions
. ב-Android 9 ומעלה, יש לרשום הרשאות מורשות או שהמכשיר לא יכול לאתחל.
כדי להגביל את הנראות הפנימית של ממשק API ולמנוע מאפליקציות לגשת בטעות לספריות פלטפורמה, אנדרואיד 7.0 הציגה מרחבי שמות לספריות מקוריות . זה מפריד בין ספריות מערכת מספריות יישומים, ויצרני מכשירים יכולים להוסיף ספריות מקוריות משלהם.
החל מאפליקציות Android 10 חייבות להיות גם הרשאות חתימה וגם הסכמת משתמש כדי לגשת לתוכן המסך של המכשיר . אפליקציות מועדפות המסתמכות על פונקציונליות הלכידה השקטה, כגון צילום מסך, צריכות להשתמש במחלקה MediaProjection במקום זאת.
שקיפות ופרטיות
באנדרואיד 6.0 ואילך, כתובת MAC של היצרן של מכשיר מוגנת מפני גישה של ספקי שירותי Wi-Fi ומנתחי מנות. הגבלות נוספות החל מ-Android 10 מגבילות לאפליקציות גישה למזהי המכשירים הניתנים לשינוי (מזהים), אלא אם כן הם רשומים ברשימה מורשות . (הקטע קישוריות מספק דיון בנושא מזהי התקנים , שכן זה משפיע על הספקים).
ב-Android 9 ומטה, משתמשים מבצעים בחירות מתמשכות כאשר הם מעניקים גישה למיקום לאפליקציות. החל באנדרואיד 10, תכונת הרשאות מיקום משולשת מעניקה למשתמשים שלוש אפשרויות לאפשר גישה לאפליקציה למיקום המכשיר. דרישות ההרשאה האלה מוחלות על אפליקציות ב-Android 10 ללא קשר ל-SDK היעד.
הגדר הרשאות עבור תכונות שקיפות ופרטיות אחרות החל מ-Android 10
- תזכורת הגישה לרקע מראה למשתמשים כאשר אפליקציה ניגשת למיקום המכשיר שלהם באמצעות הרשאת
ACCESS_FINE_LOCATION
ברקע. - גישה שונה לנתונים הקשורים לאנשי קשר, המנוהלים על ידי רכיב ספק אנשי הקשר: אפליקציות אינן יכולות לכתוב או לקרוא מנתוני זיקה לאנשי קשר במסד הנתונים. זה משפיע על ממשקי API הקשורים למתקשר .
תצורות יעילות
תצורות ההרשאות יועלו עבור אנדרואיד 6.0 ומעלה.
- יכולות סביבה עבור שירותים שהושקו על ידי
init
שומרות את כל ההיבטים של תצורת השירות בקובץ.rc
יחיד. בעת הגדרת יכולות עבור שירותים שלא הופעלו על ידיinit
, הגדר את יכולות מערכת הקבצים באמצעותfs_config.c
במקום זאת. - אנדרואיד 7.x ומטה מרחיב את מנגנון מזהי אנדרואיד (AIDs), תוך שימוש בקובץ
android_filesystem_config.h
ספציפי למכשיר כדי לציין יכולות של מערכת הקבצים ו/או איי.די.איי מותאמים אישית של יצרן מכשירים. אנדרואיד 8.0 ואילך תומך בשיטה חדשה להרחבת יכולות מערכת הקבצים . - באנדרואיד 8.0, הטיפול בפקודות USB עבר מתוך
init
ספציפיים למכשיר (תחליף לשכבות HAL) ולדמון USB מקורי. יש ליישם את ממשק ה- USB HAL בכל מכשיר המופעל ב-Android 8.0 ואילך.