Android Q יגן טוב יותר על הפרטיות שלך עם תכונות חדשות

ניתוח של מבנה אנדרואיד Q שדלף מראה שדרוגי פרטיות נוספים מגיעים לאנדרואיד: חסימת קריאת לוח רקע, הגנה טובה יותר על מדיה ועוד.

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

תודה מיוחדת ל-PNF Software על שסיפקה לנו רישיון שימוש Decompiler של JEB. JEB Decompiler הוא כלי הנדסה לאחור בדרגה מקצועית עבור יישומי אנדרואיד.

חסימת גישה ללוח ברקע

האם ידעת ש כל אפליקציה באנדרואיד יכולה לקרוא את הלוח שלך, ואתה לא צריך להעניק להם הרשאת זמן ריצה כדי לעשות זאת? הרבה אנשים כנראה מעתיקים מידע רגיש כמו שמות משתמש, סיסמאות, כתובות וכו'. כל הזמן, כך שיהיה קל לכל אפליקציה לגרד את הנתונים האלה ברקע. זו הסיבה שהרבה אפליקציות למנהל סיסמאות אוהבות KeePass יש להם מקלדות משלהם שתוכל להשתמש בהם כדי לעקוף את מנהל הלוח של אנדרואיד. אפליקציות מנהל סיסמאות מנקות עבורך את הלוח לעתים קרובות לאחר העתקה והדבקה של כל דבר. הסיבה שבגללה אפליקציות אנדרואיד צריכות לקרוא את הלוח היא שהם לא יכולים לקבל שום טקסט מהלוח בלעדיו, כלומר לא ניתן להדביק שום טקסט שהעתקת. אנדרואיד Q מחפשת לשנות את זה, למרבה המזל.

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

<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>

תמיכה בשדרוג לאחור של אפליקציות?

האם אי פעם התקנת עדכון לאפליקציה ב-Google Play ומיד התחרטת? לפעמים מפתח ידחף עדכון ששובר משהו שהוא לא צפה, אבל ברגע שהעדכון נדחף והותקן זה מאוחר מדי לעשות משהו בנידון. המפתח צריך להוציא במהירות תיקון חם והמשתמש צריך להפסיק להשתמש באפליקציה עד לשחרור עדכון או להסיר את התקנת האפליקציה ולהעמיס גרסה ישנה יותר. אין דרך לשדרג לאחור אפליקציה אלא אם כן יש לך מכשיר שורשי עם אפליקציה כמו גיבוי טיטניום, מכיוון שמנהל החבילות של אנדרואיד חוסם אותך מלהתקין גרסאות ישנות יותר של אפליקציות. יש סיבה טובה לעשות זאת מכיוון שהתקנת גרסה ישנה יותר של אפליקציה עלולה להוביל לשבירה אם הנתונים של האפליקציה אינם נמחקים, או שהם עלולים לחשוף את המשתמש לסכנה אם הגרסה הישנה יותר פגיעה לאבטחה פְּגָם.

אמנם אנחנו לא יודעים בוודאות אם גוגל תאפשר למשתמשים להחזיר אפליקציות לגרסה ישנה יותר, אבל מצאנו כמה הרשאות ופקודות באנדרואיד Q שמצביעות על כך שזה יהיה אפשרי. ראשית, החדש "PACKAGE_ROLLBACK_AGENT" ו"MANAGE_ROLLBACKS” ההרשאות מצביעות על כך שאפליקציית השוק המותקנת מראש יכולה לפעול כסוכן לניהול החזרה לאחור של גרסאות אפליקציה. ההרשאה הראשונה היא "חתימה" ואילו השנייה היא "מתקין" על גבי "חתימה", כך שזה אומר רק אפליקציה חתומה על פלטפורמה עם היכולת התקנת אפליקציות (בדרך כלל רק מנהל החבילות, חנות Google Play או חנויות אפליקציות אחרות של צד ראשון, בהתאם למכשיר) יכול להשתמש בהרשאות אלה. נוספו שתי כוונות שידור מוגנות חדשות: "PACKAGE_ENABLE_ROLLBACK" ו"PACKAGE_ROLLBACK EXECUTED." לא ניתן לשלוח את השידורים הללו על ידי אפליקציות צד שלישי, וסביר להניח שנועדו לאפשר לאפליקציה המושפעת לדעת מתי היא שודרגה לאחור (הרבה כמו איך אומרים לאפליקציות כשהן עודכנו, מה שנותן להן הזדמנות להציג הודעה כלשהי בהתחלה הבאה.) לבסוף, דגל חדש נוסף ל- ה "pm install" פקודת פגז. הדגל, הנקרא "--enable-rollback," עשוי לאפשר לך להחזיר אפליקציה לאחור לגרסה קודמת. אבל לא הצלחתי לגרום לזה לעבוד.

<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>

אבטחת קבצים באחסון חיצוני

אחסון נתונים באנדרואיד כולל "אחסון פנימי" (/נתונים למעט /data/media) ו"אחסון חיצוני" (/data/media וכל כרטיסי SD או כונני USB מותקן). חבילות APK והנתונים הרגישים ביותר שלהם מאוחסנים באחסון פנימי, בעוד שכל מדיה משותפת כמו מסמכים, תמונות, סרטונים וכו'. מאוחסנים באחסון חיצוני. כברירת מחדל, אפליקציות יכולות לקרוא ולכתוב רק קבצים לספרייה בודדת באחסון חיצוני: /data/media/[משתמש]/Android/data/[package_name]. (כדי ללמוד עוד על התנהגות זו, אני ממליץ לך לקרוא את שלי מאמר על sdcardfs ב-Android Oreo.) ברגע שהמשתמש מעניק לאפליקציה הרשאה כלשהי תחת קבוצת ההרשאות לאחסון חיצוני (READ_EXTERNAL_STORAGE אוֹ WRITE_EXTERNAL_STORAGE), האפליקציה תוכל לקרוא או לכתוב כל קובץ באחסון חיצוני. זה בעייתי מכיוון שאתה מעניק לאפליקציה את היכולת לקצור הרבה נתונים עליך כשרק רצית לתת לה לקרוא או לכתוב קבצים מסוימים. כדי לתקן זאת, נראה שגוגל מציגה כמה הרשאות חדשות הקשורות לאחסון חיצוני באנדרואיד Q. ההרשאות יציגו את התכונות הבאות:

  • יכולת לקרוא את המיקומים מהמדיה שלך. (ככל הנראה חסימת גישה למטא נתונים של תמונות כברירת מחדל.)
  • יכולת גישה לקבצי מוזיקה.
  • יכולת גישה לתמונות.
  • יכולת גישה לסרטונים.

עבור אפליקציות שכבר מחזיקות את READ_EXTERNAL_STORAGE אוֹ WRITE_EXTERNAL_STORAGE הרשאות לפני עדכון Android Q, הם יקבלו את החדש לקרוא הרשאות אבל לא החדש לִכתוֹב הרשאות. למשל, אפליקציה שכבר קיבלה READ_EXTERNAL_STORAGE על ידי המשתמש יינתן אוטומטית את READ_MEDIA_IMAGES רשות אבל לא את WRITE_MEDIA_IMAGES רְשׁוּת.

מחרוזות רלוונטיות מ-framework-res של Android Q

<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>



"android.permission.READ_EXTERNAL_STORAGE"

targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

קרא עוד

החזרה של גישה למיקום ברקע

Android Oreo ו- Android 9 Pie עשו צעדים גדולים קדימה בהבטחת פרטיות המשתמש, אך חלק מהמשתמשים הרגישו שגוגל לקחה את הדברים רחוק מדי. אזור אחד כזה שעשוי להיחשב רגרסיה תכונה נמצא ב גישה למיקום ברקע. הגישה למיקום ב-Android Oreo ואילך מוגבלת מאוד אם לא נהרגה על הסף עבור אפליקציות הפועלות ברקע, אז אפליקציות צריכות להיות בחזית או ששירות חזיתי פועל אם הם רוצים לבצע סקר רציף של המכשיר מקום. זה חוסם אפליקציות לרגל אחרי המיקום שלך ברקע, אבל זה גם חוסם את המשתמש מלמפות את המיקום שלו באמצעות אפליקציה ברקע. זו בעיה שבה נגענו במאמר נפרד, ונראה שגוגל מוסיפה הרשאה חדשה באנדרואיד Q כדי לתת מענה לדאגותיהם של מפתחים ומשתמשים אלה.

באנדרואיד Q, נוספה הרשאה חדשה כדי לאפשר לאפליקציה לקבל גישה ברקע למיקום המכשיר. תיאור ההרשאה למשתמש מזהיר כי "לאפליקציה תמיד תהיה גישה למיקום, גם כאשר אינך משתמש באפליקציה." רשות זו עשויה להעניק הרשאות "בנוסף למיקום המשוער או המדויק", כך שהאפליקציה "תוכל לגשת למיקום בזמן שהיא פועלת ברקע." בניגוד, הרשאת המיקום הגסה יכולה לקבל את המיקום שלך רק על סמך מקורות רשת כמו מגדלים סלולריים או רשתות Wi-Fi, אבל רק כאשר האפליקציה נמצאת ב- חֲזִית.

מחרוזות רלוונטיות מ-framework-res של Android Q

<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

קרא עוד

זיהוי פעילות גופנית

הרשאה חדשה נוספה לאנדרואיד Q המאפשרת לאפליקציה "לזהות את הפעילות הגופנית שלך". מבחינה טכנית זה לא חדש מאז זה כבר חלק משירותי Google Play, אבל זה יכול להיות ש-Google תנתק את ההרשאה משירותי Play. עם כמה אינטגרלי של שירותי Google Play באספקת תכונות ליבה של אנדרואיד, טוב לראות שחלק מהכוח שלו מוחזר ל-AOSP.

<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>

לחדשות נוספות של Android Q, בדוק את שלנו תָג עם החדשות האחרונות ממוינות לפי תאריך. לאחרונה פרסמנו מאמר עם הרבה הוכחות שמצביעות על כך שגוגל עובדת תומך בחומרת אימות פנים דמוית Face ID באנדרואיד Q. יש לנו גם א הנדסה מוקדמת של מבנה Android Q שהודלף (ויש אפילו סרטון) שכדאי לך לבדוק כאן. אנו נפרסם עוד מהממצאים שלנו מהמבנה המוקדם הזה של Android Q שהשגנו, אז הישארו מעודכנים.