อัปเดตใน Android 13
อัปเดต | ข้อมูลมากกว่านี้ |
---|---|
เปิดตัว CrossDevice | ครอสดีไวซ์ |
แนะนำการขุดอุโมงค์แบบแยก | อุโมงค์แยก |
ภาพรวม
โมดูล Tethering แชร์การเชื่อมต่ออินเทอร์เน็ตของอุปกรณ์ Android กับอุปกรณ์ไคลเอนต์ที่เชื่อมต่ออื่นๆ ซึ่งสามารถเชื่อมต่อกับอุปกรณ์ Tethering ผ่าน Wi-Fi, USB, บลูทูธ หรืออีเธอร์เน็ต โมดูลนี้ประกอบด้วยส่วนประกอบการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ (USB, จุดเชื่อมต่อ Wi-Fi, บลูทูธ ฯลฯ) และการพึ่งพา (การโต้ตอบกับสิทธิ์การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ, IpServer
และ offloadController
) โมดูลนี้สามารถอัปเดตได้ ซึ่งหมายความว่าสามารถรับอัปเดตฟังก์ชันการทำงานนอกรอบการเปิดตัว Android ปกติได้
โมดูล Tethering ช่วยให้ OEM ทั่วทั้งระบบนิเวศของ Android สามารถใช้การใช้งานอ้างอิงมาตรฐานเดียวซึ่งให้ประโยชน์ดังต่อไปนี้
ผู้ใช้จะได้รับประสบการณ์ที่สอดคล้องกันบนอุปกรณ์ Android และแก้ไขปัญหาการทำงานร่วมกันผ่านการอัปเดตโมดูล
OEM สามารถตอบสนองความต้องการของผู้ให้บริการในขณะเดียวกันก็ลดต้นทุนสำหรับการปรับแต่งเฉพาะบุคคล (เนื่องจากไม่จำเป็นต้องมีการใช้งานข้อกำหนดเดียวกันที่แตกต่างกันในรูปแบบที่แตกต่างกัน)
อุโมงค์แยก
เพื่อรองรับกรณีการใช้งาน Split Tunneling API ใหม่จะถูกเพิ่มลงใน Android 13 เพื่อระบุเส้นทางที่ยกเว้น
การแยกช่องสัญญาณหมายถึงการกำหนดค่าที่การรับส่งข้อมูลบางอย่างผ่าน VPN ในขณะที่การรับส่งข้อมูลอื่นไม่ผ่าน ตัวอย่างทั่วไปคือกรณีที่องค์กรต้องการให้การท่องเว็บทั่วไป แบนด์วิดท์สูง (เช่น YouTube, Netflix) หรือแอปพลิเคชันที่ไวต่อความหน่วง (เช่น Office 365 ) เพื่อเลี่ยงผ่าน VPN ก่อนที่การแยกช่องสัญญาณจะพร้อมใช้งาน VpnService.Builder
อนุญาตให้ไคลเอ็นต์ VPN ระบุว่าควรกำหนดเส้นทางเครือข่ายย่อยบางส่วนเท่านั้น ( รวม เส้นทาง) ด้วยการแยกช่องสัญญาณ คุณจะสามารถระบุสิ่งที่ตรงกันข้ามได้: เพื่อกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดไปยัง VPN ยกเว้นเครือข่ายย่อยเฉพาะ ( ไม่รวม เส้นทาง)
ลายเซ็นของ API การแยกช่องสัญญาณใหม่คือ:
public Builder excludeRoute(@NonNull IpPrefix prefix)
ครอสดีไวซ์
CrossDevice ซึ่งเปิดตัวใน Android 13 มีเป้าหมายเพื่อมอบเทคโนโลยีการสื่อสารข้ามอุปกรณ์โดยใช้โปรโตคอลมาตรฐาน โดยมี API และคุณสมบัติสำหรับการค้นหาอุปกรณ์ การเชื่อมต่อที่ได้รับการรับรองความถูกต้อง และประสบการณ์ข้ามอุปกรณ์อื่นๆ
แรงจูงใจข้ามอุปกรณ์
- การทำงานร่วมกันอย่างใกล้ชิดกับพันธมิตร OEM OEM สามารถผสานรวมระบบคีย์บัญชีของตนเองเข้ากับการใช้งาน CrossDevice แทนที่จะต้องใช้โซลูชันของ Google
- การใช้งานโปรโตคอลที่มองเห็นได้ชัดเจนยิ่งขึ้น โมดูล CrossDevice เป็นโอเพ่นซอร์ส ช่วยให้มองเห็นรายละเอียดการใช้งานได้มากขึ้น และเรื่องราวความเป็นส่วนตัวที่ดีขึ้นสำหรับการนำเทคโนโลยี CrossDevice ไปใช้
ขอบเขตโมดูล CrossDevice
CrossDevice API | ใน packages/modules/CrossDevice/framework
|
บริการข้ามอุปกรณ์ | ใน packages/modules/CrossDevice/service
|
รูปแบบแพ็คเกจ CrossDevice
ฟังก์ชันหลักของโมดูลนี้รวมอยู่ในแพ็คเกจ APEX ทรัพยากรได้รับการบรรจุเป็น APK
การพึ่งพา CrossDevice
CrossDevice ขึ้นอยู่กับสิ่งต่อไปนี้:
- อินเตอร์เน็ตไร้สาย
- บลูทู ธ
- UWB
- โมดูล-utils-เงื่อนไขเบื้องต้น
- ไลบรารีโปรโต
ตัวเลือกการปรับแต่ง CrossDevice
เราวางแผนที่จะอนุญาตให้ OEMS ปรับแต่ง UI สำหรับครึ่งชีตผ่าน RRO ไม่มีแผนที่จะปรับแต่งฟังก์ชันการทำงาน
กลยุทธ์การทดสอบ CrossDevice
เราวางแผนที่จะเพิ่มการทดสอบชุดทดสอบความเข้ากันได้ของ Android (CTS) เพื่อตรวจสอบฟังก์ชันการทำงานของ CrossDevice และการทดสอบข้ามอุปกรณ์ใน MTS
ออฟโหลดการเชื่อมต่ออินเทอร์เน็ตผ่าน eBPF
เพื่อให้การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือด้วยความเร็วสูงโดยไม่ต้องตอบกลับการออฟโหลดฮาร์ดแวร์ Android 11 จึงมีโซลูชันการถ่ายโอนข้อมูลซอฟต์แวร์เชื่อมต่ออินเทอร์เน็ตผ่านเครือข่ายที่เรียกว่า eBPF tethering offload สำหรับการดาวน์โหลด IPv6 (การรับส่งข้อมูลที่ไหลไปยังอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต)
ตั้งแต่ Android 12 ฟังก์ชันนี้ (รวมถึงโค้ดโปรแกรม eBPF) มาจากโมดูล Tethering ทั้งหมด ซึ่งรองรับสิ่งต่อไปนี้:
- ดาวน์โหลด IPv6 (การรับส่งข้อมูลไหลไปยังอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต)
- การอัปโหลด IPv6 (การรับส่งข้อมูลที่ไหลจากอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต)
- IPv4 TCP/UDP อัปโหลดและดาวน์สตรีม (การรับส่งข้อมูลที่ไหลไปยัง/จากอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต)
- ออฟโหลด eBPF
คุณลักษณะนี้เปิดใช้งานตามค่าเริ่มต้น ผู้ใช้สามารถแทนที่การกำหนดค่า config_tether_enable_bpf_offload
เป็นเท็จโดย RRO ดู การปรับแต่ง สำหรับข้อมูลเพิ่มเติม
รองรับ IPv4 และ IPv6
โมดูล Tethering รองรับ IPv4 และ IPv6 dual stack
สำหรับเครือข่าย IPv4 โมดูลจะตั้งค่าการแปลที่อยู่เครือข่าย (NAT) และใช้โปรโตคอลการกำหนดค่าโฮสต์แบบไดนามิก (DHCP) สำหรับการกำหนดที่อยู่ IP
สำหรับเครือข่าย IPv6 โมดูลจะใช้การกำหนดค่าอัตโนมัติที่อยู่ไร้สถานะ IPv6 (SLAAC) สำหรับการกำหนดที่อยู่ IP
ขอบเขตโมดูล
สำหรับ Android 12 ขึ้นไป ไฟล์/โฟลเดอร์ทั้งหมดภายใต้ packages/modules/Connectivity
จะอยู่ในขอบเขตโมดูลการปล่อยสัญญาณ
สำหรับ 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 และพร้อมใช้งานสำหรับอุปกรณ์ที่ใช้ Android 11 ขึ้นไป
รวมบริการการเชื่อมต่อ
ตั้งแต่ Android 12 เป็นต้นไป รหัส ConnectivityService
ที่ใช้องค์ประกอบส่วนกลางของการเชื่อมต่อ L3+ จะถูกเพิ่มลงใน Tethering APEX ขอบเขตของการปล่อยสัญญาณจะขยายไปสู่โมดูลการเชื่อมต่อ
การพึ่งพาโมดูล
โมดูล Tethering มีการขึ้นต่อกันดังต่อไปนี้:
- วิธีการ API สาธารณะและระบบในเซิร์ฟเวอร์ระบบ
- อินเทอร์เฟซ AIDL IPC ที่เสถียรกับเซิร์ฟเวอร์ระบบ
-
tetheroffload
HIDL (กำหนดไว้ในhardware/interfaces/tetheroffload/
) - เซิร์ฟเวอร์ DHCP (ส่วนหนึ่งของโมดูล Network Stack)
การปรับแต่ง
โมดูล Tethering ไม่รองรับการปรับแต่ง
การทดสอบ
ชุดทดสอบความเข้ากันได้ของ Android (CTS) ตรวจสอบการทำงานของโมดูล Tethering