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