Bluetooth

Bluetooth הוא מודול אופציונלי של Mainline החל מגרסה Android 13. המודול Bluetooth Mainline נועד לספק חוויית שימוש עקבית ואיכותית ב-Bluetooth לכל משתמשי Android.

מוטיבציה

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

  1. שחרור עדכונים מהר יותר ובתדירות גבוהה יותר, עם תכונות חדשות, תיקוני באגים, תיקוני יכולת פעולה הדדית ותיקוני אבטחה.
  2. הפחתת משימות שחוזרות על עצמן עבור השותפים
    1. הפחתת התקורה של שינוי הבסיס (rebase) של קוד הבסיס בכל שנה.
    2. הפחתת העלויות הנלוות להשקה של עדכוני OTA במכשירים מדור קודם.
  3. צמצום הפיצול ויצירת חוויה עקבית למפתחי האפליקציות ולמשתמשים
  4. שיפור האבטחה הגלובלית בסביבה העסקית של 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 שלנו.

גבול המודול

הארכיטקטורה של מודול Bluetooth ראשי

איור 1. גבולות המודול של Bluetooth

אנחנו מעבירים את כל המאגרים הקיימים שלנו למאגר אחד ב-system/bt. איור 1 מייצג את הספריות הנוכחיות שמהן מורכב המודול שלנו.

יחסי תלות

למודול ה-Bluetooth יש יחסי תלות ברכיבים הבאים:

  • שימושים נכנסים ויוצאים ב-API של @hide שיימחקו
  • הספריות הנדרשות לחבילות ה-APK של Bluetooth,‏ libbluetooth.so ו-libbluetooth_jni.so