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