Update di Android 13
Update | Informasi selengkapnya |
---|---|
Memperkenalkan CrossDevice | CrossDevice |
Memperkenalkan tunneling terpisah | Tunneling terpisah |
Ringkasan
Modul Tethering membagikan koneksi internet perangkat Android dengan
perangkat klien lain yang terhubung, yang dapat terhubung ke perangkat tethering melalui Wi-Fi,
USB, Bluetooth, atau Ethernet. Modul ini mencakup komponen tethering (USB,
titik akses Wi-Fi, Bluetooth, dll.) dan dependensinya (interaksi dengan
hak tethering, IpServer
, dan offloadController
). Modul ini
dapat diupdate, yang berarti dapat menerima update pada 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 untuk masalah interoperabilitas melalui update modul.
OEM dapat memenuhi persyaratan operator sekaligus mengurangi biaya untuk penyesuaian individual (karena mereka tidak memerlukan implementasi yang berbeda dari persyaratan yang sama dengan cara yang berbeda).
Tunneling terpisah
Untuk mendukung kasus penggunaan split tunneling, 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 umum adalah saat organisasi
ingin menjelajahi web secara umum, aplikasi yang menggunakan bandwidth besar (misalnya, YouTube, Netflix), atau
aplikasi yang sensitif terhadap latensi (misalnya, Office 365) untuk mengabaikan VPN. Sebelum tunneling terpisah tersedia,
VpnService.Builder
memungkinkan klien VPN untuk menunjukkan bahwa hanya beberapa subnet yang harus dirutekan ke subnet tersebut
(rute include). Dengan split tunneling, Anda dapat menentukan
kebalikannya: untuk merutekan semua traffic ke VPN, kecuali untuk subnet tertentu
(rute exclude).
Tanda tangan API tunneling terpisah yang baru adalah:
public Builder excludeRoute(@NonNull IpPrefix prefix)
Lintas-Perangkat
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 terautentikasi, 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, bukan harus menggunakan solusi Google.
- Implementasi protokol yang lebih terlihat. Modul CrossDevice bersifat open source, sehingga memberikan visibilitas yang lebih baik ke detail penerapan dan kisah privasi yang lebih baik untuk penerapan teknologi CrossDevice.
Batas modul CrossDevice
CrossDevice API | Dalam packages/modules/CrossDevice/framework
|
Layanan Lintas Perangkat | 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 sheet melalui RRO. Tidak ada rencana untuk menyesuaikan fungsi tersebut.
Strategi pengujian CrossDevice
Kami berencana menambahkan pengujian Android Compatibility Test Suite (CTS) untuk memverifikasi fungsi CrossDevice, dan pengujian lintas perangkat ke MTS.
Mengurangi beban tethering eBPF
Untuk menyediakan tethering berkecepatan tinggi tanpa mengandalkan offload hardware, Android 11 menyediakan solusi offload software tethering yang disebut offload tethering eBPF untuk download IPv6 (traffic yang mengalir ke perangkat yang di-tether).
Mulai Android 12, fungsi ini (termasuk kode program eBPF) sepenuhnya disediakan oleh modul Tethering, yang mendukung hal berikut:
- Download IPv6 (traffic yang mengalir ke perangkat yang di-tethering)
- Upload IPv6 (traffic yang mengalir dari perangkat yang disambungkan)
- Upload dan downstream TCP/UDP IPv4 (traffic yang mengalir ke/dari perangkat yang disambungkan)
- Offload eBPF
Fitur ini diaktifkan secara default, pengguna
dapat mengganti konfigurasi config_tether_enable_bpf_offload
menjadi salah (false) oleh RRO.
Lihat Penyesuaian untuk mengetahui informasi selengkapnya.
Dukungan IPv4 dan IPv6
Modul Tethering mendukung stack ganda IPv4 dan IPv6.
Untuk jaringan IPv4, modul menyiapkan penafsiran alamat jaringan (NAT) dan menggunakan 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 bagian 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.
Menyertakan ConnectivityService
Dari Android 12, kode ConnectivityService
yang
menerapkan komponen pusat konektivitas L3+ ditambahkan ke APEX
Tethering. Cakupan Tethering diperluas ke modul Konektivitas.
Dependensi modul
Modul Tethering memiliki dependensi berikut:
- Metode API publik dan sistem di server sistem
- Antarmuka IPC AIDL yang stabil dengan server sistem
tetheroffload
HIDL (ditentukan dihardware/interfaces/tetheroffload/
)- Server DHCP (bagian dari modul Stack Jaringan)
Penyesuaian
Modul Tethering tidak mendukung penyesuaian.
Pengujian
Android Compatibility Test Suite (CTS) memverifikasi fungsi modul Tethering.