הרשאות אנדרואיד

הרשאות אנדרואיד מספקות בקרות שמגבירות את מודעות המשתמש ומגבילות את הגישה של אפליקציה לנתונים רגישים. הגדרת הרשאות ב-Android 8.0 ומטה כוללת רשימת היתרים, שבלעדיה אפליקציות מורשות מושבתות, גם אם הן נמצאות בנתיב priv-app . ב-Android 9 ומעלה, מכשיר שמנסה להשתמש באפליקציות שאינן ברשימת ההיתרים כהלכה לא יאתחל.

אנדרואיד 10 הציגה את הרעיון של תפקיד , שם ייחודי בתוך המערכת הקשור לדרישות והרשאות מסוימות. הקצה תפקידים לאפליקציות כדי להעניק להם הרשאות למטרה מסוימת, והגדר תפקידי ברירת מחדל באמצעות משאבי תצורת הפלטפורמה.

ההגנות המוגברות מפני אפליקציות פוטנציאליות מזיקות (PHA) משתפרות

  • שקיפות לגבי התנהגות אפליקציה שעלולה להזיק.
  • שליטה של ​​המשתמש על התנהגות האפליקציה.
  • שיקול הדעת של מפתחי אפליקציות בעת שימוש בנתונים פרטיים, מוגן על ידי הרשאות.

התקנה והרשאה של חבילה

באנדרואיד 9 ומטה, פונקציות התקנת החבילה ובקרת ההרשאות נכללו בחבילת PackageInstaller ( //packages/apps/PackageInstaller ). באנדרואיד 10 ומעלה, פונקציונליות בקרת ההרשאות נמצאת בחבילה נפרדת, PermissionController ( //packages/apps/PermissionController ). איור 1 ממחיש היכן שתי החבילות נמצאות באנדרואיד 10.

הפרדה בין פונקציונליות התקנת חבילה ובקרת הרשאות עבור אפליקציות מערכת וכפי שהן משתמשות באפליקציות המותקנות על ידי המשתמש
איור 1. פונקציות התקנת חבילה ובקרת הרשאות ב-Android 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

תצורות יעילות

תצורות ההרשאות יועלו עבור אנדרואיד 6.0 ומעלה.

  • יכולות סביבה עבור שירותים שהושקו על ידי init שומרות את כל ההיבטים של תצורת השירות בקובץ .rc יחיד. בעת הגדרת יכולות עבור שירותים שלא הופעלו על ידי init , הגדר את יכולות מערכת הקבצים באמצעות fs_config.c במקום זאת.
  • אנדרואיד 7.x ומטה מרחיב את מנגנון מזהי אנדרואיד (AIDs), תוך שימוש בקובץ android_filesystem_config.h ספציפי למכשיר כדי לציין יכולות של מערכת הקבצים ו/או איי.די.איי מותאמים אישית של יצרן מכשירים. אנדרואיד 8.0 ואילך תומך בשיטה חדשה להרחבת יכולות מערכת הקבצים .
  • באנדרואיד 8.0, הטיפול בפקודות USB עבר מתוך סקריפטים ספציפיים למכשיר (תחליף לשכבות HAL) init USB מקורי. יש ליישם את ממשק ה- USB HAL בכל מכשיר המופעל ב-Android 8.0 ואילך.