Update di Android 13
Update | Informasi selengkapnya |
---|---|
Memperkenalkan CrossDevice | CrossDevice |
Memperkenalkan tunneling terpisah | Tunnel terpisah |
Ringkasan
Modul Tethering membagikan koneksi internet perangkat Android ke perangkat klien terhubung lainnya, yang dapat terhubung ke perangkat tethering melalui Wi-Fi, USB, Bluetooth, atau Ethernet. Modul ini mencakup komponen tethering (USB,
hotspot Wi-Fi, Bluetooth, dll.) dan dependensinya (interaksi dengan
hak tethering, IpServer
, dan offloadController
). Modul ini dapat
diupdate, yang berarti modul ini dapat menerima update fungsi di luar siklus rilis
Android normal.
Modul Tethering memungkinkan OEM di seluruh ekosistem Android menggunakan satu implementasi referensi standar yang memberikan manfaat berikut.
Pengguna akhir mendapatkan pengalaman yang konsisten di seluruh perangkat Android dan perbaikan masalah interoperabilitas melalui update modul.
OEM dapat memenuhi persyaratan operator sekaligus mengurangi biaya untuk penyesuaian individual (karena mereka tidak memerlukan penerapan persyaratan yang sama dengan cara yang berbeda).
Tunnel terpisah
Untuk mendukung kasus penggunaan tunneling terpisah, API baru ditambahkan ke Android 13 untuk menentukan rute yang dikecualikan.
Tunnel terpisah mengacu pada konfigurasi saat traffic tertentu melewati VPN, sedangkan traffic lainnya tidak. Contoh umumnya adalah saat organisasi ingin aplikasi yang digunakan untuk menjelajahi web secara umum, aplikasi yang menggunakan bandwidth besar (misalnya, YouTube, Netflix), atau aplikasi yang sensitif terhadap latensi (misalnya, Office 365) melewati VPN. Sebelum tunneling terpisah tersedia,
VpnService.Builder
memungkinkan klien VPN menunjukkan bahwa hanya beberapa subnet yang harus dirutekan ke klien tersebut
(rute sertakan). Dengan tunneling terpisah, Anda dapat menentukan kebalikannya: untuk merutekan semua traffic ke VPN, kecuali untuk subnet tertentu (rute pengecualian).
Tanda tangan API split tunneling baru adalah:
public Builder excludeRoute(@NonNull IpPrefix prefix)
CrossDevice
CrossDevice, yang diperkenalkan di Android 13, bertujuan untuk menyediakan teknologi komunikasi lintas perangkat menggunakan protokol standar. SDK ini menyediakan API dan fitur untuk penemuan perangkat, koneksi yang diautentikasi, dan pengalaman lintas perangkat lainnya.
Motivasi CrossDevice
- Kolaborasi yang lebih erat dengan partner OEM. OEM dapat mengintegrasikan sistem kunci akun mereka sendiri dengan penerapan CrossDevice, alih-alih harus menggunakan solusi Google.
- Penerapan protokol yang lebih terlihat. Modul CrossDevice bersifat open source, sehingga memberikan visibilitas yang lebih besar ke detail penerapan dan kisah privasi yang lebih baik untuk penerapan teknologi CrossDevice.
Batas modul CrossDevice
CrossDevice API | Di packages/modules/CrossDevice/framework
|
Layanan CrossDevice | Di packages/modules/CrossDevice/service
|
Format paket CrossDevice
Fungsi utama modul ini disertakan dalam paket APEX. Resource dikemas dalam APK.
Dependensi CrossDevice
CrossDevice bergantung pada hal berikut:
- Wi-Fi
- Bluetooth
- UWB
- modules-utils-preconditions
- Library proto
Opsi penyesuaian CrossDevice
Kami berencana mengizinkan OEM menyesuaikan UI untuk setengah halaman melalui RRO. Tidak ada rencana untuk menyesuaikan fungsi.
Strategi pengujian CrossDevice
Kami berencana menambahkan pengujian Android Compatibility Test Suite (CTS) untuk memverifikasi fungsi Lintas Perangkat, dan pengujian lintas perangkat ke MTS.
Pengurangan beban tethering eBPF
Untuk menyediakan penambatan berkecepatan tinggi tanpa mengandalkan offload hardware, Android 11 menyediakan solusi offload software penambatan yang disebut offload penambatan eBPF untuk download IPv6 (traffic yang mengalir ke perangkat yang ditambatkan).
Mulai Android 12, fungsi ini (termasuk kode program eBPF) sepenuhnya disediakan oleh modul Tethering, yang mendukung hal berikut:
- Download IPv6 (traffic mengalir ke perangkat yang di-tether)
- Upload IPv6 (traffic mengalir dari perangkat yang di-tether)
- Upload dan downstream TCP/UDP IPv4 (traffic yang mengalir ke/dari perangkat yang di-tether)
- eBPF offload
Fitur ini diaktifkan secara default, pengguna
dapat mengganti konfigurasi config_tether_enable_bpf_offload
ke salah (false) dengan RRO.
Lihat Penyesuaian untuk mengetahui informasi selengkapnya.
Dukungan IPv4 dan IPv6
Modul Tethering mendukung dual stack IPv4 dan IPv6.
Untuk jaringan IPv4, modul ini menyiapkan network address translation (NAT) dan mengadopsi dynamic host configuration protocol (DHCP) untuk penetapan alamat IP.
Untuk jaringan IPv6, modul ini mengadopsi konfigurasi otomatis alamat stateless IPv6 (SLAAC) untuk penetapan alamat IP.
Batas modul
Untuk Android 12 dan yang lebih tinggi, semua file/folder
di bawah packages/modules/Connectivity
berada dalam cakupan modul Tethering.
Untuk Android 11 dan yang lebih lama, modul Tethering memiliki
file Android 10 berikut di 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
Format modul
Modul Tethering (com.android.tethering
) dalam format APEX dan tersedia untuk perangkat yang menjalankan Android 11 atau yang lebih tinggi.
Sertakan ConnectivityService
Mulai Android 12, kode ConnectivityService
yang menerapkan komponen pusat konektivitas L3+ ditambahkan ke Tethering APEX. Cakupan Penambatan diperluas ke dalam modul Konektivitas.
Dependensi modul
Modul Tethering memiliki dependensi berikut:
- Metode API publik dan sistem di server sistem
- IPC AIDL stabil berinteraksi dengan server sistem
tetheroffload
HIDL (ditentukan dalamhardware/interfaces/tetheroffload/
)- Server DHCP (bagian dari modul Network Stack)
Penyesuaian
Modul Tethering tidak mendukung penyesuaian.
Pengujian
Android Compatibility Test Suite (CTS) memverifikasi fungsi modul Tethering.