Đang dùng làm điểm truy cập Internet

Nội dung cập nhật trong Android 13

Cập nhật Thông tin khác
Ra mắt CrossDevice CrossDevice
Ra mắt tính năng phân tách đường hầm Đường hầm phân tách

Tổng quan

Mô-đun Chia sẻ Internet chia sẻ kết nối Internet của thiết bị Android với các thiết bị khách được kết nối khác. Các thiết bị này có thể kết nối với thiết bị chia sẻ Internet qua Wi-Fi, USB, Bluetooth hoặc Ethernet. Mô-đun này bao gồm thành phần chia sẻ Internet (USB, điểm truy cập Wi-Fi, Bluetooth, v.v.) và các phần phụ thuộc của thành phần đó (tương tác với quyền chia sẻ Internet, IpServeroffloadController). Mô-đun này có thể cập nhật, tức là có thể nhận các bản cập nhật cho chức năng bên ngoài chu kỳ phát hành Android thông thường.

Mô-đun Chia sẻ Internet cho phép các OEM trong toàn bộ hệ sinh thái Android sử dụng một cách triển khai tham chiếu tiêu chuẩn duy nhất mang lại những lợi ích sau.

  • Người dùng cuối sẽ có được trải nghiệm nhất quán trên các thiết bị Android và các bản sửa lỗi về vấn đề tương tác thông qua các bản cập nhật mô-đun.

  • Các OEM có thể đáp ứng các yêu cầu của nhà mạng, đồng thời giảm chi phí cho từng hoạt động tuỳ chỉnh (vì họ không cần triển khai các yêu cầu giống nhau theo nhiều cách).

Phân tách đường hầm

Để hỗ trợ các trường hợp sử dụng tính năng phân chia đường hầm, một API mới sẽ được thêm vào Android 13 để chỉ định các tuyến đường loại trừ.

Đường hầm phân tách là cấu hình trong đó một số lưu lượng truy cập đi qua VPN trong khi lưu lượng truy cập khác thì không. Một ví dụ phổ biến là trường hợp một tổ chức muốn các ứng dụng lướt web thông thường, sử dụng nhiều băng thông (ví dụ: YouTube, Netflix) hoặc có độ trễ thấp (ví dụ: Office 365) bỏ qua VPN. Trước khi có tính năng phân chia đường hầm, VpnService.Builder cho phép ứng dụng VPN cho biết chỉ một số mạng con được định tuyến đến ứng dụng này (các tuyến đường include). Với tính năng phân chia đường hầm, bạn có thể chỉ định điều ngược lại: định tuyến tất cả lưu lượng truy cập đến VPN, ngoại trừ các mạng con cụ thể (định tuyến loại trừ).

Chữ ký của API đường hầm phân chia mới là:

public Builder excludeRoute(@NonNull IpPrefix prefix)

CrossDevice

CrossDevice, ra mắt trong Android 13, hướng đến việc cung cấp các công nghệ giao tiếp trên nhiều thiết bị bằng cách sử dụng các giao thức tiêu chuẩn. Thư viện này cung cấp các API và tính năng để khám phá thiết bị, kết nối đã xác thực và các trải nghiệm khác trên nhiều thiết bị.

Động lực trên nhiều thiết bị

  • Hợp tác chặt chẽ hơn với các đối tác OEM. Các OEM có thể tích hợp hệ thống khoá tài khoản của riêng họ với việc triển khai CrossDevice thay vì cần sử dụng giải pháp của Google.
  • Triển khai giao thức một cách dễ thấy hơn. Mô-đun CrossDevice là mô-đun mã nguồn mở, cung cấp thông tin chi tiết hơn về việc triển khai và câu chuyện hay hơn về quyền riêng tư cho việc triển khai các công nghệ CrossDevice.

Ranh giới mô-đun CrossDevice

CrossDevice APIs Trong packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
CrossDevice Services Trong packages/modules/CrossDevice/service
  • NearbyService – API quét

Định dạng gói CrossDevice

Chức năng chính của mô-đun này có trong một gói APEX. Các tài nguyên được đóng gói trong một tệp APK.

Các phần phụ thuộc CrossDevice

CrossDevice phụ thuộc vào những yếu tố sau:

  • Wi-Fi
  • Bluetooth
  • UWB (băng tần siêu rộng)
  • modules-utils-preconditions
  • Thư viện Proto

Các lựa chọn tuỳ chỉnh CrossDevice

Chúng tôi dự định cho phép OEM tuỳ chỉnh giao diện người dùng cho chế độ xem nửa màn hình thông qua RRO. Chúng tôi không có kế hoạch tuỳ chỉnh chức năng này.

Chiến lược kiểm thử trên nhiều thiết bị

Chúng tôi dự định thêm các kiểm thử Bộ kiểm thử tính tương thích (CTS) với Android để xác minh chức năng CrossDevice và kiểm thử trên nhiều thiết bị vào MTS.

Giảm tải hoạt động chia sẻ Internet qua eBPF

Để cung cấp tính năng chia sẻ Internet tốc độ cao mà không cần dựa vào tính năng chuyển tải phần cứng, Android 11 cung cấp một giải pháp chuyển tải phần mềm chia sẻ Internet có tên là chuyển tải chia sẻ Internet eBPF để tải IPv6 xuống (lưu lượng truy cập chuyển đến thiết bị được chia sẻ Internet).

Kể từ Android 12, chức năng này (bao gồm cả mã chương trình eBPF) hoàn toàn do mô-đun Chia sẻ Internet cung cấp, hỗ trợ những nội dung sau:

  • Tải xuống qua IPv6 (lưu lượng truy cập truyền đến thiết bị được chia sẻ Internet)
  • Tải lên qua IPv6 (lưu lượng truy cập từ thiết bị được chia sẻ Internet)
  • Tải lên và tải xuống TCP/UDP IPv4 (lưu lượng truy cập đến/từ thiết bị được chia sẻ Internet)
  • Giảm tải eBPF

Tính năng này được bật theo mặc định, người dùng có thể ghi đè cấu hình config_tether_enable_bpf_offload thành false bằng RRO. Hãy xem phần Tuỳ chỉnh để biết thêm thông tin.

Hỗ trợ IPv4 và IPv6

Mô-đun Chia sẻ Internet hỗ trợ ngăn xếp kép IPv4 và IPv6.

  • Đối với mạng IPv4, mô-đun này thiết lập tính năng dịch địa chỉ mạng (NAT) và áp dụng giao thức cấu hình máy chủ lưu trữ động (DHCP) để chỉ định địa chỉ IP.

  • Đối với mạng IPv6, mô-đun này sử dụng tính năng tự động định cấu hình địa chỉ không trạng thái IPv6 (SLAAC) để chỉ định địa chỉ IP.

Ranh giới mô-đun

Đối với Android 12 trở lên, tất cả tệp/thư mục trong packages/modules/Connectivity đều nằm trong phạm vi của mô-đun Chia sẻ Internet.

Đối với Android 11 trở xuống, mô-đun Chia sẻ Internet có các tệp Android 10 sau đây trong 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

Định dạng mô-đun

Mô-đun Chia sẻ Internet (com.android.tethering) ở định dạng APEX và có sẵn cho các thiết bị chạy Android 11 trở lên.

Bao gồm ConnectivityService

Kể từ Android 12, mã ConnectivityService triển khai thành phần trung tâm của chế độ kết nối L3+ sẽ được thêm vào Tethering APEX. Phạm vi của tính năng Chia sẻ Internet mở rộng thành một mô-đun Kết nối.

Phần phụ thuộc của mô-đun

Mô-đun Chia sẻ Internet có các phần phụ thuộc sau:

  • Các phương thức API công khai và API hệ thống trong máy chủ hệ thống
  • Các IPC AIDL ổn định giao tiếp với máy chủ hệ thống
  • tetheroffload HIDL (được xác định trong hardware/interfaces/tetheroffload/)
  • Máy chủ DHCP (một phần của mô-đun Network Stack)

Tuỳ chỉnh

Bạn không thể tuỳ chỉnh mô-đun Chia sẻ Internet.

Thử nghiệm

Bộ kiểm tra tính tương thích (CTS) với Android xác minh chức năng của mô-đun Chia sẻ Internet.