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