קשירה

עדכונים באנדרואיד 13

עדכון עוד מידע
הציג את CrossDevice CrossDevice
הציג מנהור מפוצל מנהור מפוצל

סקירה כללית

מודול ה-Tethering משתף חיבור לאינטרנט של מכשיר אנדרואיד עם התקני לקוח מחוברים אחרים, שיכולים להתחבר להתקני שיתוף אינטרנט דרך Wi-Fi, USB, Bluetooth או Ethernet. מודול זה כולל את רכיב שיתוף האינטרנט (USB, נקודת גישה ל-Wi-Fi, Bluetooth וכו') ואת התלות שלו (אינטראקציה עם זכאות שיתוף אינטרנט בין ניידים, IpServer ו- offloadController ). מודול זה ניתן לעדכון, כלומר הוא יכול לקבל עדכונים לפונקציונליות מחוץ למחזור השחרור הרגיל של אנדרואיד.

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

  • משתמשי קצה מקבלים חוויה עקבית בכל מכשירי Android ותיקונים לבעיות יכולת פעולה הדדית באמצעות עדכוני מודול.

  • יצרני ציוד מקורי יכולים למלא את דרישות הספק תוך הפחתת עלויות עבור התאמות אישיות בודדות (כיוון שהם לא צריכים יישומים שונים של אותן דרישות בדרכים שונות).

מנהור מפוצל

כדי לתמוך במקרים של שימוש במנהור מפוצלת, API חדש נוסף ל-Android 13 כדי לציין מסלולי אי הכללה.

מנהור מפוצל מתייחס לתצורה שבה תנועה מסוימת עוברת דרך ה-VPN בעוד שתנועה אחרת לא. דוגמה נפוצה היא היכן ארגון מעוניין בגלישה כללית באינטרנט, כבדי רוחב פס (לדוגמה, YouTube, Netflix) או אפליקציות רגישות לאחזור (לדוגמה, Office 365 ) כדי לעקוף את ה-VPN. לפני שמנהור מפוצל היה זמין, VpnService.Builder אפשר ללקוח ה-VPN לציין שרק חלק מרשתות המשנה צריכות להיות מנותבות אליו ( כולל מסלולים). עם מנהור מפוצל, יש לך את היכולת לציין את ההיפך: לנתב את כל התעבורה ל-VPN, למעט רשתות משנה ספציפיות ( אל תכלול מסלולים).

החתימה של ממשק ה-API החדש של מנהור מפוצל היא:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

CrossDevice, שהוצג באנדרואיד 13, שואף לספק טכנולוגיות תקשורת חוצות-מכשירים תוך שימוש בפרוטוקולים סטנדרטיים. הוא מספק ממשקי API ותכונות לגילוי מכשירים, חיבור מאומת וחוויות אחרות בין מכשירים.

מוטיבציה בין מכשירים

  • שיתוף פעולה הדוק יותר עם שותפי OEM. יצרני OEM יכולים לשלב מערכת מפתחות חשבון משלהם עם יישום CrossDevice במקום צורך להשתמש בפתרון של Google.
  • יישום גלוי יותר של הפרוטוקול. מודול CrossDevice הוא קוד פתוח, ומספק יותר נראות לפרטי היישום וסיפור פרטיות טוב יותר עבור הטמעת טכנולוגיות CrossDevice.

גבול מודול CrossDevice

ממשקי API של CrossDevice packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
שירותי CrossDevice packages/modules/CrossDevice/service
  • NearbyService - API לסריקה

פורמט חבילת CrossDevice

הפונקציה העיקרית של מודול זה כלולה בחבילת APEX. המשאבים ארוזים ב-APK.

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

CrossDevice תלוי בדברים הבאים:

  • וויי - פיי
  • בלוטות
  • UWB
  • מודולים-שימושים-תנאים מוקדמים
  • ספריות פרוטו

אפשרויות התאמה אישית של CrossDevice

אנו מתכננים לאפשר ל-OEM להתאים אישית את ממשק המשתמש עבור חצי גיליון דרך RRO. אין תוכנית להתאים אישית את הפונקציונליות.

אסטרטגיית בדיקות CrossDevice

אנו מתכננים להוסיף בדיקות Android Compatibility Test Suite (CTS) כדי לאמת את הפונקציונליות של CrossDevice, ובדיקות חוצות מכשירים לתוך MTS.

הורדת שיתוף אינטרנט בין eBPF

כדי לספק שיתוף אינטרנט בין רשתות במהירות גבוהה מבלי להגיב על הורדות חומרה, אנדרואיד 11 מספקת פתרון ביטול שיתוף של תוכנת קשירה בשם eBPF ביטול שיתוף אינטרנט בין קשר להורדה של IPv6 (תנועה זורמת למכשיר קשור).

מ-Android 12, פונקציונליות זו (כולל קוד תוכנית eBPF) מסופקת כולה על ידי מודול Tethering, התומך בדברים הבאים:

  • הורדת IPv6 (תנועה זורמת למכשיר קשור)
  • העלאת IPv6 (תנועה זורמת ממכשיר קשור)
  • IPv4 TCP/UDP העלאה ומורד הזרם (תנועה זורמת אל/ממכשיר קשור)
  • הורדה של eBPF

תכונה זו מופעלת כברירת מחדל, משתמשים יכולים לעקוף את תצורת config_tether_enable_bpf_offload ל-false על ידי RRO. ראה התאמה אישית למידע נוסף.

תמיכה ב-IPv4 ו-IPv6

מודול ה-Tethering תומך בערימה כפולה של IPv4 ו-IPv6.

  • עבור רשתות IPv4, המודול מגדיר תרגום כתובות רשת (NAT) ומאמץ פרוטוקול תצורת מארח דינמי (DHCP) להקצאת כתובות IP.

  • עבור רשתות IPv6, המודול מאמץ תצורה אוטומטית של כתובת חסרת מצב IPv6 (SLAAC) להקצאת כתובות IP.

גבול מודול

עבור אנדרואיד 12 ומעלה, כל הקבצים/תיקיות תחת packages/modules/Connectivity נמצאים בהיקף מודול ה-Tethering.

עבור Android 11 ומטה, למודול Tethering יש את קבצי Android 10 הבאים packages/modules/Tethering .

  • frameworks/base/services/core/java/com/android/server/connectivity/Tethering.java
  • frameworks/base/services/core/java/com/android/server/connectivity/tethering/
  • frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
  • frameworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.java
  • frameworks/base/services/net/java/android/net/{netlink,dhcp}/*
  • frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.java
  • frameworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidl
  • frameworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.java
  • frameworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.java
  • frameworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.java
  • frameworks/base/core/java/android/os/INetworkManagementService.aidl
  • frameworks/base/core/java/android/bluetooth/BluetoothPan.java
  • frameworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
  • packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java
  • packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java

פורמט מודול

מודול ה-Tethering ( com.android.tethering ) הוא בפורמט APEX וזמין עבור מכשירים עם אנדרואיד 11 ומעלה.

כלול ConnectivityService

מאנדרואיד 12, קוד ConnectivityService שמיישם את הרכיב המרכזי של קישוריות L3+ מתווסף ל-Tethering APEX. ההיקף של Tethering מתרחב למודול קישוריות.

תלות במודול

למודול Tethering יש את התלות הבאות:

  • שיטות API ציבוריות ומערכתיות בשרת המערכת
  • ממשק AIDL IPC יציב עם שרת המערכת
  • tetheroffload HIDL (מוגדר hardware/interfaces/tetheroffload/ )
  • שרת DHCP (חלק ממודול ה-Network Stack)

התאמה אישית

מודול Tethering אינו תומך בהתאמה אישית.

בדיקה

ה-Android Compatibility Test Suite (CTS) מאמת את הפונקציונליות של מודול Tethering.