การอัปเดตใน Android 13
อัปเดต | ข้อมูลเพิ่มเติม |
---|---|
เปิดตัว CrossDevice | CrossDevice |
เปิดตัวการแยกอุโมงค์ | การแยกอุโมงค์ |
ภาพรวม
โมดูลการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือจะแชร์การเชื่อมต่ออินเทอร์เน็ตของอุปกรณ์ Android กับอุปกรณ์ไคลเอ็นต์อื่นๆ ที่เชื่อมต่อ ซึ่งสามารถเชื่อมต่อกับอุปกรณ์การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือผ่าน Wi-Fi, USB, บลูทูธ หรืออีเทอร์เน็ต โมดูลนี้ประกอบด้วยคอมโพเนนต์การแชร์อินเทอร์เน็ต (USB,
ฮอตสปอต Wi-Fi, บลูทูธ ฯลฯ) และการอ้างอิง (การโต้ตอบกับ
สิทธิ์การแชร์อินเทอร์เน็ต IpServer
และ offloadController
) โมดูลนี้
อัปเดตได้ ซึ่งหมายความว่าสามารถรับการอัปเดตฟังก์ชันการทำงานภายนอกวงจรการเปิดตัว Android ปกติได้
โมดูลการแชร์อินเทอร์เน็ตช่วยให้ 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.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+ ลงใน Tethering
APEX ขอบเขตของการแชร์อินเทอร์เน็ตจะขยายไปสู่โมดูลการเชื่อมต่อ
ทรัพยากร Dependency ของโมดูล
โมดูลการแชร์อินเทอร์เน็ตมีทรัพยากร Dependency ดังนี้
- เมธอด API สาธารณะและระบบในเซิร์ฟเวอร์ระบบ
- อินเทอร์เฟซ IPC ของ AIDL ที่เสถียรจะสื่อสารกับเซิร์ฟเวอร์ระบบ
tetheroffload
HIDL (กำหนดไว้ในhardware/interfaces/tetheroffload/
)- เซิร์ฟเวอร์ DHCP (ส่วนหนึ่งของโมดูลสแต็กเครือข่าย)
การปรับแต่ง
โมดูลการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือไม่รองรับการปรับแต่ง
การทดสอบ
ชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) จะตรวจสอบฟังก์ชันการทำงานของ โมดูลการแชร์อินเทอร์เน็ต