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