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

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

ב-Android 12, המשתמשים מקבלים שקיפות באמצעות הצגת אינדיקטורים כשמצלמות ומיקרופון משמשים אפליקציה לגישה למקור נתונים פרטי דרך הרשאות הפעולה של האפליקציה. הכלי App-ops מתעד גישות לממשקי API שמוגנים על ידי הרשאות זמן ריצה.

הכלי App-op עוקב אחרי סטטוס הפעילות ומספר הקריאות הבודדות ל-API, ופועל בשילוב עם האינדיקטורים של המיקרופון והמצלמה ב-Android 12 כדי להראות למשתמשים מתי אפליקציות ניגשו לנתוני אודיו ולמצלמה במכשירים שלהם. כשמשתמשים לוחצים על האינדיקטורים של המיקרופון או המצלמה, הם יכולים לראות לאילו אפליקציות הייתה גישה לנתונים שלהם. התכונה הזו היא חובה לכל יצרני הציוד המקורי (OEM).

דרישות לגבי נראות האינדיקטור

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

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

שימוש ותכונות

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

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

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

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

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

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

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

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

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

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

שליחה והפעלה

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

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

זרימת התהליך

הפונקציונליות של אינדיקטור ההרשאות כוללת שלושה חלקים עיקריים:

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

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

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

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

המעברים הממוספרים באיור 3 מתוארים בהמשך:

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

2- המערכת בודקת את ההרשאות. אם ההרשאות מותרות, המערכת מודיעה לספק הנתונים ומתעדת את השימוש ב-app-ops.

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

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

פרטי התהליך

  1. האפליקציות משתמשות במיקרופון ובמצלמה, בשיחותAppOpsManager.startOp, stopOp וגם ב-noteOp. כך נוצרות רשומות של פעולות באפליקציה בשרת המערכת.
  2. ממשק המשתמש של המערכת מאזין לפעולות חדשות של אפליקציות באמצעות המאזינים AppOpsManager.OnOpActiveChangedInternalListener ו-OnOpNotedListener. כשמתקבל נתון חדש של שימוש (דרך קריאה ל-startOp או ל-noteOp), ממשק המשתמש של המערכת מאמת שהשימוש הוא על ידי אפליקציית מערכת.
  3. אם ממשק המשתמש של המערכת מאמת את השימוש באפליקציית המערכת, ואם השימוש הוא במיקרופון, ממשק המשתמש של המערכת בודק אם המיקרופון מושתק.
  4. אם ממשק המשתמש של המערכת מאמת את השימוש באפליקציה שאינה אפליקציית מערכת (ובשימוש במיקרופון, שהמיקרופון לא מושתק; בשימוש במצלמה, שהמצלמה מופעלת), מוצג סמל שמשקף את השימוש הזה.

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

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

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

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