עדכונים ב-Android 13
עדכון | מידע נוסף |
---|---|
השקנו את CrossDevice | במכשירים שונים |
הוספת תמיכה במנהור מפוצל | מנהור מפוצל |
סקירה כללית
המודול של שיתוף האינטרנט בין מכשירים משתף את חיבור האינטרנט של מכשיר Android עם מכשירי לקוח מחוברים אחרים, שיכולים להתחבר למכשירי שיתוף האינטרנט דרך Wi-Fi, USB, Bluetooth או אתרנט. המודול הזה כולל את רכיב הקישור (USB, נקודת Wi-Fi, Bluetooth וכו') ואת יחסי התלות שלו (אינטראקציה עם ההרשאה לקישור, IpServer
ו-offloadController
). אפשר לעדכן את המודול הזה, כלומר הוא יכול לקבל עדכונים לפונקציונליות מחוץ למחזור ההשקות הרגיל של Android.
המודול של הקישור מאפשר ליצרני ציוד מקורי (OEM) בסביבת Android להשתמש בהטמעת עזרה רגילה אחת, שמציעה את היתרונות הבאים.
משתמשי הקצה מקבלים חוויה עקבית במכשירי Android ותיקונים לבעיות של יכולת פעולה הדדית באמצעות עדכוני המודולים.
יצרני ציוד מקורי יכולים לעמוד בדרישות של ספקי הסלולר, תוך הפחתת העלויות של התאמות אישיות ספציפיות (כי הם לא צריכים להטמיע את אותן הדרישות בדרכים שונות).
מנהור מפוצל
כדי לתמוך בתרחישי שימוש של מנהרה מפוצלת, נוספה ל-Android 13 ממשק API חדש לציון מסלולים להחרגה.
מנהור מפוצל מתייחס להגדרה שבה תנועה מסוימת עוברת דרך ה-VPN, בעוד שתנועה אחרת לא עוברת דרכו. דוגמה נפוצה היא ארגון שרוצה שגלישה כללית באינטרנט, אפליקציות עם רוחב פס גבוה (למשל, YouTube, Netflix) או אפליקציות רגישות לזמן אחזור (למשל, Office 365) יעקפו את ה-VPN. לפני שאפשר היה להשתמש בתעלות מנהרה מפוצלות, הערך VpnService.Builder
איפשר ללקוח ה-VPN לציין שרק חלק מרשתות המשנה צריכות לעבור דרכו (include routes). באמצעות מנהרה מפוצלת, אפשר לציין את ההיפך: לנתב את כל התנועה ל-VPN, מלבד תת-רשתות ספציפיות (מסלולים להחרגה).
החתימה של ממשק ה-API החדש למנהור נתונים מפוצל היא:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
התכונה CrossDevice, שהוצגה ב-Android 13, נועדה לספק טכנולוגיות תקשורת במכשירים שונים באמצעות פרוטוקולים רגילים. הוא מספק ממשקי API ותכונות לגילוי מכשירים, לחיבור מאומת ולחוויות אחרות במכשירים שונים.
מוטיבציה במכשירים שונים
- שיתוף פעולה הדוק יותר עם שותפי OEM. יצרני ציוד מקורי יכולים לשלב את מערכת מפתחות החשבון שלהם עם הטמעה במכשירים שונים, במקום להשתמש בפתרון של Google.
- הטמעה גלויה יותר של הפרוטוקול. המודול 'מעקב בכמה מכשירים' הוא קוד פתוח, שמספק יותר שקיפות לגבי פרטי ההטמעה ותובנות טובות יותר לגבי פרטיות בהטמעת טכנולוגיות למעקב בכמה מכשירים.
גבול המודול CrossDevice
ממשקי API למכשירים שונים | ב-packages/modules/CrossDevice/framework
|
שירותים במכשירים שונים | ב-packages/modules/CrossDevice/service
|
פורמט החבילה של CrossDevice
הפונקציה העיקרית של המודול הזה כלולה בחבילת APEX. המשאבים נארזים בחבילת APK.
יחסי תלות בין מכשירים
התכונה 'צפייה במכשירים שונים' תלויה בגורמים הבאים:
- Wi-Fi
- Bluetooth
- UWB
- modules-utils-preconditions
- ספריות Proto
אפשרויות התאמה אישית במכשירים שונים
אנחנו מתכננים לאפשר ליצרני ציוד מקורי להתאים אישית את ממשק המשתמש של חצי הדף באמצעות RRO. אין תוכנית להתאמה אישית של הפונקציונליות.
אסטרטגיית בדיקה במכשירים שונים
אנחנו מתכננים להוסיף בדיקות של חבילה לבדיקות תאימות (CTS) של Android כדי לאמת את הפונקציונליות במכשירים שונים, ובדיקות במכשירים שונים ל-MTS.
הפחתת עומס ב-eBPF בחיבור לשיתוף אינטרנט
כדי לספק חיבור מהיר ל-Wi-Fi בלי להסתמך על העברת עומסים בחומרה, ב-Android 11 יש פתרון להעברת עומסים בתוכנה שנקרא eBPF tethering offload להורדת IPv6 (תנועה זורמת למכשיר המחובר).
החל מ-Android 12, הפונקציונליות הזו (כולל קוד התוכנית של eBPF) מסופקת במלואה על ידי מודול הקישור, שתומך באפשרויות הבאות:
- הורדה ב-IPv6 (תנועה זורמת למכשיר המחובר)
- העלאה ב-IPv6 (תנועה שמגיעה ממכשיר המחובר)
- העלאה ותנועה ב-downstream של IPv4 TCP/UDP (תנועה זורמת אל/מהמכשיר המחובר)
- הורדת עומס מ-eBPF
התכונה הזו מופעלת כברירת מחדל, והמשתמשים יכולים לשנות את ההגדרה של config_tether_enable_bpf_offload
ל-false באמצעות RRO.
מידע נוסף זמין במאמר התאמה אישית.
תמיכה ב-IPv4 וב-IPv6
המודול של הקישור (tethering) תומך בשכבת IPv4 ובשכבת IPv6 כפולה.
ברשתות IPv4, המודול מגדיר תרגום של כתובות רשת (NAT) ומשתמש בפרוטוקול תצורת מארח דינמי (DHCP) להקצאת כתובות IP.
ברשתות IPv6, המודול משתמש בהגדרה אוטומטית של כתובות ללא מצב (SLAAC) של IPv6 להקצאת כתובות IP.
גבול המודול
ב-Android מגרסה 12 ואילך, כל הקבצים או התיקיות שמופיעים ב-packages/modules/Connectivity
נמצאים בהיקף המודול של הקישור.
ב-Android מגרסה 11 ואילך, המודול של שיתוף האינטרנט בין מכשירים מכיל את הקבצים הבאים של 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
פורמט המודול
המודול של הקישור (com.android.tethering
) נמצא בפורמט APEX והוא זמין במכשירים עם Android מגרסה 11 ואילך.
הוספת ConnectivityService
החל מ-Android 12, הקוד ConnectivityService
שמטמיע את הרכיב המרכזי של קישוריות L3+ מתווסף ל-APEX של הקישור. היקף הקישור מתרחב למודול קישוריות.
יחסי תלות בין מודולים
למודול הקישור יש את יחסי התלות הבאים:
- שיטות API ציבוריות ושיטות API של המערכת בשרת המערכת
- ממשק יציב של AIDL IPC עם שרת המערכת
tetheroffload
HIDL (מוגדר ב-hardware/interfaces/tetheroffload/
)- שרת DHCP (חלק מהמודול של סטאק הרשת)
התאמה אישית
המודול של שיתוף האינטרנט לא תומך בהתאמה אישית.
בדיקה
חבילה לבדיקות תאימות (CTS) של Android מאמתת את הפונקציונליות של מודול הקישור.