Bluetooth הוא מודול אופציונלי של Mainline החל מגרסה Android 13. המודול Bluetooth Mainline נועד לספק חוויית שימוש עקבית ואיכותית ב-Bluetooth לכל משתמשי Android.
מוטיבציה
המטרה העיקרית של מודול ה-Bluetooth היא לספק חוויה באיכות גבוהה לשותפים, למשתמשים ולמפתחי האפליקציות. אנחנו נעשה זאת בכמה דרכים מרכזיות:
- שחרור עדכונים מהר יותר ובתדירות גבוהה יותר, עם תכונות חדשות, תיקוני באגים, תיקוני יכולת פעולה הדדית ותיקוני אבטחה.
- הפחתת משימות שחוזרות על עצמן עבור השותפים
- הפחתת התקורה של שינוי הבסיס (rebase) של קוד הבסיס בכל שנה.
- הפחתת העלויות הנלוות להשקה של עדכוני OTA במכשירים מדור קודם.
- צמצום הפיצול ויצירת חוויה עקבית למפתחי האפליקציות ולמשתמשים
- שיפור האבטחה הגלובלית בסביבה העסקית של Android. חלק גדול מנקודות החולשה באבטחת Android קשור ל-Bluetooth.
פורמט החבילה
החבילה היא קובץ APEX שמכיל את קובץ ה-APK של Bluetooth (שמוגדר כרגע ב-packages/modules/Bluetooth/android/app
), את הספריות המקומיות שלנו (libbluetooth.so
ו-libbluetooth_jni.so
), את ממשקי ה-API שלנו (ב-packages/modules/Bluetooth/framework/java/android/bluetooth
) ואת ממשקי ה-HIDL שלנו.
גבול המודול
איור 1. גבולות המודול של Bluetooth
אנחנו מעבירים את כל המאגרים הקיימים שלנו למאגר אחד ב-system/bt
.
איור 1 מייצג את הספריות הנוכחיות שמהן מורכב המודול שלנו.
יחסי תלות
למודול ה-Bluetooth יש יחסי תלות ברכיבים הבאים:
- שימושים נכנסים ויוצאים ב-API של
@hide
שיימחקו - הספריות הנדרשות לחבילות ה-APK של Bluetooth,
libbluetooth.so
ו-libbluetooth_jni.so