אינדיקטורים של פרטיות

מערכת Android מספקת למשתמשים שקיפות על ידי הצגת אינדיקטורים לפרטיות עבור סוגי הגישה הבאים:

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

  • גישה למיקום האינדיקטור מופיע כשבאפליקציה יש גישה למיקום של המכשיר. הדרישה הרלוונטית ב-CDD מופיעה בקטע 9.8.8. מיקום.

המשתמשים מקישים על אינדיקטור כדי לראות לאילו אפליקציות הייתה גישה לנתונים שלהם.

שימוש פעיל ושימוש מהזמן האחרון

ממשק המשתמש של Android מבחין בין שימושים פעילים לבין שימושים אחרונים:

  • ב-Android 17 ומעלה, השימוש במיקום נחשב פעיל אם המערכת מסמנת אותו כפעיל, או אם הוא בוצע לפני פחות מ-10 שניות. הגישה לנקודת המיקום נחשבת פעילה אם האפליקציה שאינה אפליקציית מערכת פועלת במצב חזית.

  • ב-Android 12 ומעלה, השימוש במיקרופון ובמצלמה נחשב פעיל אם המערכת מסמנת אותם כפועלים, או אם הם בני פחות מחמש שניות.

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

אינדיקטורים שמציגים גישה פעילה

איור 1. אינדיקטורים לשימוש שמראים גישה פעילה (בפינה השמאלית העליונה).

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

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

אינדיקטורים לגישה פעילה ולגישה מהזמן האחרון ולמקור

איור 2. אינדיקטורים של גישה פעילה וגישה מהזמן האחרון.

האינדיקטורים של גישה מהזמן האחרון מראים שאפליקציה ניגשה לנתונים ב-15 השניות האחרונות (או ב-20 השניות האחרונות לנתוני מיקום), אבל האפליקציה לא פעילה. כל האפליקציות הפעילות מוצגות בתיבת הדו-שיח, אבל רק אפליקציה אחת מוצגת כמקור של הגישה האחרונה, גם אם יותר מאפליקציה אחת ניגשו לנתונים בפרק זמן של 15 או 20 שניות לפני כן. בתיבת הדו-שיח מוצגות כל האפליקציות שניגשו לנתוני המיקום בחלון הזמן הפעיל או האחרון. תצוגת הגישה נשארת עד שהמשתמש סוגר את תיבת הדו-שיח של ההתראה.

שליחה והפעלה

המחלקות PermissionManager מספקות שיטה לאכלוס תיבת הדו-שיח (שנמצאת בממשק המשתמש של המערכת). ממשק המשתמש של המערכת מגיב למתג privacy/mic_camera_indicators_enabled של הגדרת המכשיר. המתג הזה נחוץ כי יש שני אמצעי מסירה נפרדים: (1) מסירה, ואז (2) הפעלה.

זרימת התהליך

הפונקציונליות של מחוון ההרשאות מחולקת לשלושה חלקים עיקריים:

  • האפליקציות
  • האינדיקטורים (מטופלים על ידי ממשק המשתמש של המערכת)
  • דרך לקבוע אילו אפליקציות משתמשות בנתונים

PermissionController מספק את המנגנון לקביעה אילו אפליקציות משתמשות בנתונים. ממשק המשתמש של המערכת מאזין לאפליקציות שמשתמשות בנתונים פרטיים. בממשק המשתמש של המערכת מוצג סמל בסרגל הניווט העליון שמתאים להרשאות שנעשה בהן שימוש. PermissionController מציג נתונים על שימושים כשמשתמש לוחץ על סמל.

תהליך העבודה של פונקציות של אינדיקטור הרשאות

איור 3. רכיבי המערכת והמעברים (בממשק המשתמש).

  • 1 אפליקציה מבקשת נתונים פרטיים מהמערכת.

  • 2 המערכת בודקת את ההרשאות. אם ההרשאות מאושרות, המערכת שולחת הודעה לספק הנתונים ומתעדת את השימוש בהרשאות בכלי 'פעולות אפליקציה'.

  • 3 ספק הנתונים מעביר נתונים לאפליקציה.

  • 4-5 המשתמש לוחץ על הסמלים. ממשק המשתמש של המערכת מבקש נתונים מה-PermissionManager ומציג את תיבת הדו-שיח למשתמש.

פרטי התהליך

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

  1. אפליקציות משתמשות במיקרופון, במצלמה או במיקום על ידי קריאה ל-AppOpsManager.startOp, stopOp או noteOp. כך נוצרים רשומות של פעולות באפליקציה בשרת המערכת. בגרסה 17 ואילך, גם אינדיקטור המיקום משתמש ברשומות האופטימיזציה של האפליקציה.

  2. ממשק המשתמש של המערכת מאזין לפעולות חדשות של אפליקציות באמצעות AppOpsManager.OnOpActiveChangedInternalListener וOnOpNotedListener מאזינים. כשמתקבל שימוש חדש (דרך קריאה ל-startOp או ל-noteOp), ממשק המשתמש של המערכת מאמת שהשימוש הוא על ידי אפליקציית מערכת:

    • אם ממשק המשתמש של המערכת מאמת את השימוש באפליקציית המערכת, והשימוש הוא במיקרופון, ממשק המשתמש של המערכת בודק אם המיקרופון מושתק.

    • אם ממשק המשתמש של המערכת מאמת את השימוש באפליקציה שאינה אפליקציית מערכת (ובמקרה של שימוש במיקרופון, שהמיקרופון לא מושתק; במקרה של שימוש במצלמה, שהמצלמה מופעלת), מוצג סמל שמשקף את השימוש הזה.

    • אם ממשק המשתמש של המערכת מאמת שימוש באפליקציה שאינה אפליקציית מערכת, הוא מציג סמל שמשקף את השימוש הזה, בתנאי שהמתגים הרלוונטיים פעילים:

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

אם ממשק המשתמש של המערכת מקבל noteOp ללא משך, הוא מציג את הסמל למשך 5 שניות לפחות (10 שניות למיקום). אחרת, הסמל מוצג עד שהוא מקבל את הערך stopOp, או למשך משך הזמן המינימלי של 5 או 10 שניות, לפי הארוך מביניהם. המשתמש לוחץ על סמל כדי ליצור כוונה שמגיעה אל PermissionController כדי להתחיל את תיבת הדו-שיח.

PermissionController טוען את כל השימושים האחרונים במיקרופון, במצלמה ובמיקום. הוא בודק אם אחת מהאפליקציות האלה פועלת או פעלה בפרק הזמן שהוגדר בממשק המשתמש של המערכת (15 שניות למיקרופון או למצלמה, 20 שניות למיקום). אם נמצאת התאמה, מוצג שם האפליקציה וההרשאות שבהן נעשה שימוש.

מערכת הטלפוניה צריכה להטמיע שימוש בהרשאות (כדי להתחשב במערך המיקרופון הנפרד שמשמש לשיחות טלפון), בזמן העבודה עם אפליקציית חיפוש Google ל-Android‏ (AGSA) ועם GMS.