מזהי מכשיר בלתי ניתנים לשינוי

ב-Android 6 ומעלה, ספקי שירותי Wi-Fi ומנתחי מנות הוגבלו מלשחזר את כתובת ה-MAC של מכשיר היצרן דרך ערימת ה-Wi-Fi מבקשות רשת. החל מ-Android 10, מגבלות נוספות מגבילות את הגישה למזהי מכשירים (מזהים) לאפליקציות בעלות רמת ההרשאה המוסמכת . זה מגן על מזהי מכשירים כגון

  • טלפוניה מספרי IMEI, MEID, ESN ו-IMSI.
  • מספרים סידוריים של build, SIM או USB.

מי יכול לגשת למזהי מכשיר

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

גישה לחבילות מועדפות

חבילה חייבת לקבל הרשאה כדי לגשת למזהי מכשיר. עליו להיות בעל הרשאת READ_PRIVILEGED_PHONE_STATE במחלקה Manifest.permission , ולהיות ברשימת ההיתרים בקובץ privapp-permission.xml . למידע על תהליך הרשימה הלבנה , ראה רשימת היתרים מורשים.

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

מזהי מכשירים מוגבלים וכתובות MAC אקראיות

כדי להגביל עוד יותר מזהי מכשיר, כל המכשירים ב-Android 10 משדרים כברירת מחדל כתובות MAC אקראיות הן עבור בקשות בדיקה והן עבור בקשות הקשורות, וחייבים להיות בעלי כתובת MAC אקראית שונה עבור כל SSID. אל תשתמש בכתובת ה-MAC של היצרן של המכשיר במצב לקוח, נקודת גישה רכה (AP) או מקרי שימוש ב-Wi-Fi Direct. זה חייב להישאר מוסתר מממשקי API נגישים לציבור שאינם אפליקציות מורשות. אפליקציות מורשות הדורשות החזרת כתובת ה-MAC של היצרן נדרשות לקבל הרשאת LOCAL_MAC_ADDRESS .

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

Screen shows if device ID uses a randomized MAC address for privacy
איור 1. כתובת MAC מוצגת באקראי תחת פרטיות בפרטי רשת

אפליקציות המפעילות ממשקי API של מזהה מכשיר

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

  • אפליקציות ממוקדות לאנדרואיד 10
    • חריגת SecurityException נזרק מממשקי ה-API של מזהה המכשיר.
  • אפליקציות הממוקדות ל-Android 9 או גרסה קודמת יותר
    • אם יש להם הרשאת READ_PHONE_STATE , מוחזרים תגובת null או נתוני מיקום.
    • אם הם לא עושים זאת, ממשקי ה-API של מזהה המכשיר זורקים SecurityException שמכיל את שם השיטה שנקראה, וציון שהאפליקציה המתקשרת לא עומדת בדרישות לגישה למזהה המבוקש.

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

בדיקה

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