שירות המצלמה של Android (ACS) כולל את מערך המצלמה שמשמש במכשירים לרכב, וגם במכשירים אחרים כמו טלפונים ניידים, טאבלטים וטלוויזיות. כדי לראות את הארכיטקטורה הכוללת של המצלמה, אפשר לעיין במאמר בנושא מצלמה. בדף הזה נתמקד בנושאים שספציפיים למכשירים לרכב, ובעבודה עם Android Camera API.
הפעלת שירות המצלמה של Android
כדי להפעיל את שירות המצלמה של Android בפלטפורמת הרכב, צריך לציין בקובץ ה-makefile של המוצר ENABLE_CAMERA_SERVICE כ-true.
מאפייני מצלמה ספציפיים לרכב
בהקשר של מכשירים לרכב, ה-HAL של המצלמה צריך לכלול שתי תכונות ייחודיות שספציפיות לגורם הצורה של הרכב:
| פריט | תיאור |
|---|---|
android.automotive.location |
המאפיין מציין את המיקום של המצלמות ביחס למסגרת המרכב של הרכב. |
android.automotive.lens.facing |
המאפיין מציין את הכיוון שאליו מכוונת עדשת המצלמה ביחס למסגרת של גוף הרכב ולמושבי הנוסעים. |
במצבים שבהם המצלמות לא ממוקמות בדיוק במיקום ספציפי או לא מכוונות לכיוון ספציפי (כפי שמצוין בנוכחות של *_OTHER במאפיינים android.automotive.location או android.automotive.lens.facing), או כשיש כמה מצלמות באותו מיקום ובאותו כיוון, ה-HAL של המצלמה צריך לספק מאפיינים נוספים כדי לאפשר לאפליקציות לקבוע את מיקום המצלמה בצורה מדויקת. המאפיינים האלה כוללים:
הענקת גישה למשתמש באפליקציית מערכת ללא ממשק גרפי
אפליקציות מסוימות של המערכת ושל צד ראשון (1P) יכולות לגשת למצלמה כמשתמש באפליקציית מערכת ללא ממשק גרפי, שנקרא גם משתמש 0. כך אפשר לוודא שאפליקציות קריטיות לבטיחות, כמו מצלמת הרוורס, יכולות להמשיך להזרים נתונים מהמצלמה ללא הפרעה, בלי קשר למעבר בין משתמשים בחזית. רק אפליקציות שחתומות על הפלטפורמה ומחזיקות בהרשאה החדשה android.permission.CAMERA_HEADLESS_SYSTEM_USER יכולות לגשת למצלמה בתור משתמש 0.
באפליקציות שמשתמשות במצלמות בתור משתמש 0, חובה להשתמש בנתוני המצלמה באופן מקומי, ואסור לשדר אותם מהמכשיר, כולל נתונים שנגזרים מנתוני המצלמה. באפליקציות האלה נדרשת android.permission.CAMERAהרשאה שניתנת מראש, והן צריכות לפעול בהתאם למדיניות בנושא הרשאות שניתנות מראש, כפי שמפורט בדרישות של שירותי Google מובנים בנושא עיצוב לנהיגה.
הגדרת רשימת היתרים לפרטיות המצלמה
יצרני ציוד מקורי (OEM) יכולים עכשיו להגדיר אפליקציות מצלמה ספציפיות שייכללו ברשימת ההיתרים שמעניקה גישה למצלמה בלי קשר למצב של המתג להפעלת מצלמת הפרטיות. התכונה הזו מאפשרת למשתמשים להשבית את הגישה למצלמה באפליקציות בידור, כמו רשתות חברתיות ושיחות וידאו, ובמקביל לאפשר גישה למצלמה באפליקציות מסוימות ברשימת ההיתרים.
רק אפליקציות מערכת ואפליקציות עם הרשאות מיוחדות שקיבלו את ההרשאה android.permission.CAMERA_PRIVACY_ALLOWLIST יכולות להשתמש בתכונה הזו.
שותפים ב-Google Automotive Services (GAS) צריכים לשלוח את האפליקציות שלהם לרשימת ההיתרים לבדיקה ולעמוד בדרישות של מדיניות רשימת ההיתרים בנושא פרטיות. מידע נוסף זמין במאמר בנושא Android למכוניות.
הוספת אפליקציה לרשימת ההיתרים
בספרייה etc/sysconfig:
מוסיפים את שם החבילה של האפליקציה בקובץ XML של הגדרות המערכת:
<!-- In an xml file under etc/sysconfig -> <!-- Allowlisted packages for the camera privacy toggle. Users can't turn on privacy for these packages as OEM requires camera access for these packages to preserve user safety. --> <config> <camera-privacy-allowlisted-app package="package_name" /> </config>מוסיפים את כתובת ה-URL של מדיניות הפרטיות של האפליקציה אל
AndroidManifest.xml. השם שלmeta-dataצריך להיותprivacy_policy.<meta-data android:name="privacy_policy" android:value= privacy policy URL/>
כברירת מחדל, המתג להפעלת הפרטיות של המצלמה באפליקציות ברשימת ההיתרים או באפליקציות הנדרשות מוסתר בממשק המשתמש של הגדרות הפרטיות. עם זאת, יצרני ציוד מקורי יכולים לשנות את ההתנהגות הזו על ידי הגדרת הדגל הבא ל-true. כך יצרני ציוד מקורי יכולים להתאים אישית את החשיפה של מתג הפרטיות של המצלמה לאפליקציות הנדרשות בהתאם להעדפות שלהם.
<!-- Whether to show the toggle to turn on the camera privacy for required apps -->
<bool name="config_show_camera_required_apps_toggle">false</bool>
קבלת גישה מוקדמת למצלמה
לאפליקציות ספציפיות שקשורות לבטיחות ושדורשות גישה מיידית למצלמה, יש גישה למצלמה לפני שתהליך האתחול של Android מסתיים. עם זאת, הגישה הזו ניתנת באופן בלעדי ללקוחות עם הרשאות מיוחדות שמשתמשים ב-UID AID_AUTOMOTIVE_EVS. למידע נוסף על הקצאת UID ספציפי לאפליקציית מערכת, אפשר לעיין במאמר בקרת גישה לפי שיקול דעת (DAC). הגישה המוקדמת למצלמה מוגבלת למצלמות המערכת שממוקמות בחלק החיצוני של מרכב הרכב.