עדכונים ב-Android 13
| עדכון | מידע נוסף |
|---|---|
| הוספנו את CrossDevice | CrossDevice |
| הוספנו מנהור מפוצל | מנהור מפוצל |
סקירה כללית
מודול שיתוף האינטרנט בין מכשירים משתף את החיבור לאינטרנט של מכשיר Android עם מכשירי לקוח מחוברים אחרים, שיכולים להתחבר למכשירים שמשתפים אינטרנט באמצעות Wi-Fi, USB, Bluetooth או אתרנט. המודול הזה כולל את רכיב ה-Tethering (חיבור לאינטרנט באמצעות USB, נקודת גישה ל-Wi-Fi, Bluetooth וכו') ואת התלות שלו (אינטראקציה עם הרשאת ה-Tethering, IpServer ו-offloadController). אפשר לעדכן את המודול הזה, כלומר הוא יכול לקבל עדכונים לפונקציונליות שלו מחוץ למחזור הרגיל של מהדורות Android.
מודול ה-Tethering מאפשר ליצרני ציוד מקורי (OEM) בכל האקוסיסטם של Android להשתמש בהטמעה סטנדרטית יחידה שמספקת את היתרונות הבאים.
משתמשי הקצה נהנים מחוויה עקבית במכשירי Android, ומתיקונים לבעיות תאימות באמצעות עדכוני מודולים.
יצרני ציוד מקורי יכולים לעמוד בדרישות של ספקי הסלולר וגם להפחית את העלויות של התאמות אישיות ספציפיות (כי הם לא צריכים ליישם את אותן דרישות בדרכים שונות).
מנהור מפוצל
כדי לתמוך בתרחישי שימוש של פיצול מנהור, נוסף ל-Android 13 API חדש שמאפשר לציין מסלולים להחרגה.
פיצול מנהור מתייחס להגדרה שבה תנועה מסוימת עוברת דרך ה-VPN, בזמן שתנועה אחרת לא עוברת דרכו. דוגמה נפוצה היא מצב שבו ארגון רוצה שגלישה כללית באינטרנט, אפליקציות שצורכות רוחב פס רב (למשל YouTube, Netflix) או אפליקציות שרגישות לזמן אחזור (למשל Office 365) יעקפו את ה-VPN. לפני שהתכונה 'פיצול מנהור' הייתה זמינה,
VpnService.Builder
אפשרה ללקוח ה-VPN לציין שרק חלק מרשתות המשנה צריכות להיות מנותבות אליו
(מסלולי include). במנהור מפוצל, אתם יכולים לציין את ההפך: לנתב את כל התנועה ל-VPN, חוץ מרשתות משנה ספציפיות (החרגת מסלולים).
החתימה של ה-API החדש של פיצול התעבורה היא:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
התכונה 'שירותים מרכזיים למכשירים שלך', שהושקה ב-Android 13, נועדה לספק טכנולוגיות תקשורת מקושרות למכשיר אחר באמצעות פרוטוקולים סטנדרטיים. הוא מספק ממשקי API ותכונות לחיפוש מכשירים, לחיבור מאומת ולחוויות שימוש אחרות במכשירים שונים.
CrossDevice motivation
- שיתוף פעולה הדוק יותר עם שותפי OEM. יצרני ציוד מקורי יכולים לשלב את מערכת מפתחות החשבון שלהם בהטמעה של CrossDevice במקום להשתמש בפתרון של Google.
- הטמעה בולטת יותר של הפרוטוקול. מודול CrossDevice הוא קוד פתוח, ולכן הוא מספק שקיפות רבה יותר לגבי פרטי ההטמעה וסיפור פרטיות טוב יותר לגבי הטמעה של טכנולוגיות CrossDevice.
CrossDevice module boundary
| CrossDevice APIs | ב-packages/modules/CrossDevice/framework
|
| שירותים למספר מכשירים | ב-packages/modules/CrossDevice/service
|
פורמט חבילה של CrossDevice
הפונקציה העיקרית של המודול הזה כלולה בחבילת APEX. המשאבים נארזים בחבילת APK.
יחסי תלות בין מכשירים
התכונה 'המשכיות בין מכשירים' תלויה בגורמים הבאים:
- Wi-Fi
- Bluetooth
- UWB
- modules-utils-preconditions
- ספריות Proto
אפשרויות להתאמה אישית בין מכשירים
אנחנו מתכננים לאפשר ליצרני ציוד מקורי (OEM) להתאים אישית את ממשק המשתמש של הדף החצי באמצעות RRO. אין תוכנית להתאמה אישית של הפונקציונליות.
אסטרטגיית בדיקה חוצה-מכשירים
אנחנו מתכננים להוסיף בדיקות של Android Compatibility Test Suite (CTS) כדי לאמת את הפונקציונליות של CrossDevice, ובדיקות בין מכשירים ל-MTS.
הפחתת עומס של שיתוף אינטרנט ב-eBPF
כדי לספק שיתוף אינטרנט מהיר בלי להסתמך על העברות נתונים בחומרה, Android 11 מספק פתרון להעברת נתונים בשיתוף אינטרנט שנקרא eBPF tethering offload for IPv6 download (התנועה זורמת למכשיר שמשתף אינטרנט).
מגרסה 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, המודול משתמש בהקצאת כתובות IP באמצעות IPv6 stateless address autoconfiguration (SLAAC).
גבולות המודול
ב-Android מגרסה 12 ואילך, כל הקבצים והתיקיות ב-packages/modules/Connectivity נמצאים בהיקף של מודול ה-Tethering.
ב-Android מגרסה 11 ומטה, למודול Tethering יש את הקבצים הבאים של Android 10 ב-packages/modules/Tethering.
frameworks/base/services/core/java/com/android/server/connectivity/Tethering.javaframeworks/base/services/core/java/com/android/server/connectivity/tethering/frameworks/base/services/core/java/com/android/server/NetworkManagementService.javaframeworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.javaframeworks/base/services/net/java/android/net/{netlink,dhcp}/*frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.javaframeworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidlframeworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.javaframeworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.javaframeworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.javaframeworks/base/core/java/android/os/INetworkManagementService.aidlframeworks/base/core/java/android/bluetooth/BluetoothPan.javaframeworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpppackages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.javapackages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java
פורמט המודול
מודול השיתוף (com.android.tethering) הוא בפורמט APEX וזמין למכשירים עם Android מגרסה 11 ומעלה.
Include ConnectivityService
החל מ-Android 12, קוד ConnectivityService שמטמיע את הרכיב המרכזי של קישוריות L3+ מתווסף ל-Tethering APEX. ההיקף של Tethering מתרחב למודול Connectivity.
יחסי תלות בין מודולים
למודול Tethering יש את יחסי התלות הבאים:
- שיטות API ציבוריות ומערכתיות בשרת המערכת
- ממשקי AIDL IPC יציבים מתקשרים עם שרת המערכת
-
tetheroffloadHIDL (מוגדר ב-hardware/interfaces/tetheroffload/) - שרת DHCP (חלק מהמודול Network Stack)
התאמה אישית
מודול שיתוף האינטרנט בין מכשירים לא תומך בהתאמה אישית.
בדיקה
חבילת הבדיקות לתאימות (CTS) של Android מאמתת את הפונקציונליות של מודול ה-Tethering.