ปล่อยสัญญาณ

การอัปเดตใน 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
  • NearbyManager
  • AccountProviderBase
บริการข้ามอุปกรณ์ ใน packages/modules/CrossDevice/service
  • NearbyService - สแกน API

รูปแบบแพ็คเกจข้ามอุปกรณ์

ฟังก์ชันหลักของโมดูลนี้รวมอยู่ในแพ็คเกจ 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