Pembaruan di Android 13
Memperbarui | Informasi lebih lanjut |
---|---|
Memperkenalkan CrossDevice | Lintas Perangkat |
Memperkenalkan terowongan terpisah | Terowongan 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 diperbarui, artinya dapat menerima pembaruan fungsi di luar siklus rilis normal Android.
Modul Tethering memungkinkan OEM di seluruh ekosistem Android untuk menggunakan implementasi referensi standar tunggal yang memberikan manfaat berikut.
Pengguna akhir mendapatkan pengalaman yang konsisten di seluruh perangkat Android dan perbaikan terhadap masalah interoperabilitas melalui pembaruan modul.
OEM dapat memenuhi persyaratan operator sekaligus mengurangi biaya untuk penyesuaian individual (karena mereka tidak memerlukan penerapan berbeda dari persyaratan yang sama dengan cara yang berbeda).
Terowongan terpisah
Untuk mendukung kasus penggunaan terowongan terpisah, API baru ditambahkan ke Android 13 untuk menentukan rute pengecualian.
Kanalisasi terpisah mengacu pada konfigurasi di mana lalu lintas tertentu melewati VPN sementara lalu lintas lainnya tidak. Contoh umum adalah ketika sebuah organisasi menginginkan penjelajahan web secara umum, aplikasi yang membutuhkan banyak bandwidth (misalnya, YouTube, Netflix) atau aplikasi yang sensitif terhadap latensi (misalnya, Office 365 ) untuk melewati VPN. Sebelum kanalisasi terbagi tersedia, VpnService.Builder
mengizinkan klien VPN untuk menunjukkan bahwa hanya beberapa subnet yang harus dirutekan ke sana ( termasuk rute). Dengan kanalisasi terbagi, Anda memiliki kemampuan untuk menentukan kebalikannya: merutekan semua lalu lintas ke VPN, kecuali subnet tertentu ( tidak termasuk rute).
Ciri khas API terowongan 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. Ini menyediakan API dan fitur untuk penemuan perangkat, koneksi terautentikasi, dan pengalaman lintas perangkat lainnya.
Motivasi Lintas Perangkat
- Kolaborasi yang lebih erat dengan mitra OEM. OEM dapat mengintegrasikan sistem kunci akun mereka sendiri dengan penerapan CrossDevice tanpa perlu menggunakan solusi Google.
- Implementasi protokol lebih terlihat. Modul CrossDevice bersifat open source, memberikan lebih banyak visibilitas ke dalam detail implementasi dan kisah privasi yang lebih baik untuk implementasi teknologi CrossDevice.
Batas modul CrossDevice
API Lintas Perangkat | Dalam packages/modules/CrossDevice/framework
|
Layanan Lintas Perangkat | Dalam packages/modules/CrossDevice/service
|
Format paket Lintas Perangkat
Fungsi utama modul ini disertakan dalam paket APEX. Sumber daya dikemas dalam APK.
Ketergantungan lintas perangkat
CrossDevice bergantung pada hal berikut:
- Wifi
- Bluetooth
- UWB
- modul-utils-prakondisi
- Perpustakaan proto
Opsi penyesuaian Lintas Perangkat
Kami berencana mengizinkan OEM untuk menyesuaikan UI setengah lembar melalui RRO. Tidak ada rencana untuk menyesuaikan fungsinya.
Strategi pengujian CrossDevice
Kami berencana menambahkan pengujian Android Compatibility Test Suite (CTS) untuk memverifikasi fungsionalitas CrossDevice, dan pengujian lintas perangkat ke MTS.
pembongkaran penambatan eBPF
Untuk menyediakan tethering berkecepatan tinggi tanpa membalas offload perangkat keras, Android 11 menyediakan solusi offload software tethering yang disebut eBPF tethering offload untuk download IPv6 (aliran lalu lintas ke perangkat yang ditambatkan).
Mulai Android 12, fungsi ini (termasuk kode program eBPF) sepenuhnya disediakan oleh modul Tethering, yang mendukung hal berikut:
- Pengunduhan IPv6 (lalu lintas mengalir ke perangkat yang ditambatkan)
- Unggahan IPv6 (lalu lintas mengalir dari perangkat yang ditambatkan)
- Unggahan dan hilir IPv4 TCP/UDP (lalu lintas mengalir ke/dari perangkat yang ditambatkan)
- pembongkaran eBPF
Fitur ini diaktifkan secara default, pengguna dapat mengganti konfigurasi config_tether_enable_bpf_offload
menjadi false oleh RRO. Lihat Kustomisasi untuk informasi lebih lanjut.
Dukungan IPv4 dan IPv6
Modul Tethering mendukung dual stack IPv4 dan IPv6.
Untuk jaringan IPv4, modul mengatur terjemahan alamat jaringan (NAT) dan mengadopsi protokol konfigurasi host dinamis (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 lebih tinggi, semua file/folder di bawah packages/modules/Connectivity
berada dalam cakupan modul Tethering.
Untuk Android 11 dan yang lebih rendah, modul Tethering memiliki file Android 10 berikut dalam 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 lebih tinggi.
Sertakan Layanan Konektivitas
Mulai Android 12, kode ConnectivityService
yang mengimplementasikan komponen utama konektivitas L3+ ditambahkan ke Tethering APEX. Cakupan Tethering diperluas menjadi modul Konektivitas.
Ketergantungan modul
Modul Tethering memiliki dependensi berikut:
- Metode API publik dan sistem di server sistem
- Antarmuka IPC AIDL yang stabil dengan server sistem
-
tetheroffload
HIDL (didefinisikan dalamhardware/interfaces/tetheroffload/
) - Server DHCP (bagian dari modul Network Stack)
Kustomisasi
Modul Tethering tidak mendukung penyesuaian.
Pengujian
Android Compatibility Test Suite (CTS) memverifikasi fungsionalitas modul Tethering.