Catatan rilis Android 10

Halaman ini merangkum fitur utama dalam rilis Android 10, dan memberikan link ke informasi tambahan. Ringkasan fitur ini disusun sesuai dengan lokasi dokumentasi fitur di situs ini.

Build

java_sdk_library

Android 10 memperkenalkan java_sdk_library, aturan build baru untuk memperbaiki masalah kompatibilitas untuk library Java bersama. Produsen perangkat dapat menggunakan mekanisme ini untuk library Java bersama mereka sendiri guna mempertahankan kompatibilitas mundur untuk API mereka.

Arsitektur

Komponen sistem modular

Android 10 membuat modular beberapa komponen sistem Android dan memungkinkannya diupdate di luar siklus rilis Android normal. Beberapa modul meliputi:

Hardware abstraction layer (HAL)

Android 10 menambahkan dukungan untuk HAL agar dinonaktifkan secara otomatis saat tidak memiliki klien.

Biji Jagung Meletup

ABI

Android 10 menyertakan dukungan untuk utilitas pemantauan ABI baru untuk membantu membandingkan, melacak, dan mengurangi perubahan ABI kernel yang memengaruhi kompatibilitas dengan modul kernel.

Android 10 juga memperkenalkan pemeriksa penggunaan ABI berbasis simbol. Pemeriksa dapat mendeteksi biner bawaan yang sudah tidak berlaku pada waktu build, sehingga developer library bersama dapat mengetahui biner bawaan mana yang mungkin rusak oleh perubahannya dan biner bawaan mana yang harus dibuat ulang.

Android Live-Lock Daemon

Android 10 menyertakan Android Live-Lock Daemon (llkd), yang dirancang untuk menangkap dan mengurangi deadlock kernel.

vDSO32 di ARM64

Android 10 mendukung penggunaan vDSO32 pada kernel 64-bit, yang memberikan peningkatan masa pakai baterai sebesar 0,4 persen dan peningkatan performa lainnya.

Entri fstab untuk partisi yang dipasang lebih awal

Android 10 mewajibkan perangkat untuk menentukan entri fstab untuk partisi yang dipasang lebih awal menggunakan file fstab di ramdisk tahap pertama.

HIDL

Men-offload BroadcastQueue

Android 10 menyertakan BroadcastQueue offload baru ke antrean latar belakang dan latar depan yang ada. Antrean offload memiliki prioritas dan perilaku waktu tunggu yang sama dengan antrean latar belakang. Untuk mencegah pemblokiran antrean latar belakang, tempat siaran yang lebih menarik atau terlihat pengguna dapat terjadi, antrean offload menangani siaran BOOT_COMPLETED, yang diproses oleh banyak aplikasi dan dapat memerlukan waktu lama untuk diselesaikan. Antrean offload saat ini hanya menangani siaran BOOT_COMPLETED, tetapi berpotensi dapat menangani siaran panjang lainnya.

Layanan SystemSuspend

Android 10 mengganti thread di libsuspend yang bertanggung jawab untuk memulai penangguhan sistem dengan layanan HIDL SystemSuspend. Implementasi ini menawarkan fungsi yang setara dengan versi sebelumnya sekaligus memanfaatkan manfaat dari infrastruktur Android HIDL.

safe_union di HIDL

Android 10 memperkenalkan safe_union, jenis union yang diberi tag secara eksplisit, di HIDL.

Konfigurasi

ConfigStore HAL

Android 10 menghentikan penggunaan ConfigStore HAL karena konsumsi memori yang tinggi dan penggunaan yang sulit, serta mengganti HAL dengan properti sistem.

Config File Schema API

Platform Android berisi banyak file XML untuk menyimpan data konfigurasi. Banyak file XML berada di partisi vendor, tetapi dibaca di partisi system. Dalam hal ini, skema file XML berfungsi sebagai antarmuka di kedua partisi, sehingga skema harus ditentukan secara eksplisit dan harus berkembang dengan cara yang kompatibel dengan versi sebelumnya. Sebelum Android 10, platform ini tidak menyediakan mekanisme untuk mewajibkan penentuan dan penggunaan skema XML, atau untuk mencegah perubahan yang tidak kompatibel dalam skema. Android 10 menyediakan mekanisme ini, yang disebut Config File Schema API.

Properti sistem sebagai API

Properti sistem yang diakses di seluruh partisi dipetakan ke dalam file deskripsi sysprop, dan API untuk mengakses properti dihasilkan sebagai fungsi konkret untuk C++ dan class untuk Java.

Objek antarmuka vendor (VINTF)

VINTF

Perubahan pada VINTF di Android 10 meliputi:

  • Menghentikan penggunaan tag versi AVB
  • Menambahkan informasi kernel dalam paket OTA
  • Mem-build manifes ODM secara resmi
  • Menambahkan matriks kompatibilitas produk
  • Mengaitkan entri manifes dengan modul HAL dalam sistem build

Bootloader

Ramdisk

Di Android 10, sistem file root tidak lagi disertakan dalam ramdisk.img, tetapi digabungkan ke dalam system.img.

Membuat partisi ODM

Android 10 menyertakan dukungan untuk mem-build partisi odm menggunakan sistem build Android. Anda dapat menggunakan partisi /odm terpisah untuk penyesuaian, yang memungkinkan Anda menggunakan satu image vendor untuk beberapa SKU hardware. Hal ini memungkinkan produsen desain asli (ODM) menyesuaikan paket dukungan board (BSP) vendor sistem-di-chip (SoC) ke perangkat tertentu (board mereka). Mereka dapat menerapkan modul kernel untuk komponen khusus board, daemon khusus board, atau fitur mereka sendiri di lapisan abstraksi hardware (HAL). Mereka juga dapat mengganti atau menyesuaikan komponen SoC.

Pembuatan versi header image booting

Android 10 mengupdate header image booting ke versi 2, yang menyertakan bagian untuk menyimpan image blob hierarki perangkat (DTB). Pengujian VTS Android 10 memverifikasi bahwa semua perangkat yang diluncurkan dengan Android 10 menggunakan header image booting versi 2 dan menyertakan image DTB yang valid sebagai bagian dari image booting/pemulihan.

Image pemulihan untuk perangkat non-A/B

Di Android 9 dan yang lebih baru, image pemulihan perangkat harus berisi informasi dari image overlay. Produsen perangkat dapat menggunakan DeviceTree atau Advanced Configuration and Power Interface (ACPI) untuk mendeskripsikan semua perangkat yang tidak dapat ditemukan. Android 10 dan yang lebih tinggi menyertakan dukungan untuk arsitektur yang menggunakan ACPI, bukan blob DeviceTree untuk overlay (DTBO).

AIDL Stabil

Android 10 menambahkan dukungan untuk Android Interface Definition Language (AIDL) yang stabil, cara baru untuk melacak antarmuka program aplikasi (API)/antarmuka biner aplikasi (ABI) yang disediakan oleh antarmuka AIDL.

Memindahkan fastboot ke ruang pengguna

Android 10 menambahkan dukungan untuk partisi yang dapat diubah ukurannya dengan memindahkan implementasi fastboot dari bootloader ke ruang pengguna.

Tampilan

Pemutaran video HDR

Android 10 mendukung pemutaran HDR10, VP9, dan HDR10+.

Klasifikasi teks

Klasifikasi teks menggunakan teknik machine learning untuk membantu developer mengklasifikasikan teks. Android 10 memperkenalkan dua metode ke TextClassifier API: suggestConversationActions dan detectLanguage. Metode suggestConversationActions menghasilkan balasan dan tindakan yang disarankan dari percakapan tertentu dan metode detectLanguage mendeteksi bahasa teks.

Dukungan untuk rendering font Zawgyi

Zawgyi adalah font yang paling populer di Myanmar. Android 9 dan yang lebih lama tidak mendukung rendering Zawgyi karena tidak mematuhi Unicode. Android 10 mengatasi hal ini dengan menyertakan font Unicode yang dapat merender Unicode Burma dan Zawgyi secara bersamaan. Tidak ada pekerjaan implementasi yang diperlukan untuk mendukung rendering font Zawgyi di perangkat yang diluncurkan dengan Android 10. Jika perangkat Anda memiliki implementasi kustom untuk mendukung Zawgyi, Anda dapat:

  • Kembalikan perubahan tersebut dan gunakan metode yang didukung platform.
  • Simpan font Zawgyi umum di sistem Anda dan gunakan kode lokalitas my-qaag di fonts.xml. Untuk informasi selengkapnya, lihat catatan rilis Unicode CLDR di Zawgyi (Qaag).

Batasan untuk menyembunyikan ikon aplikasi

Android 10 membatasi kemampuan aplikasi untuk menyembunyikan ikon peluncurnya. Jika aplikasi tidak mengaktifkan aktivitas peluncur, sistem akan menampilkan aktivitas gabungan di peluncur; aktivitas gabungan ini mewakili halaman detail aplikasi dalam setelan sistem.

Untuk informasi selengkapnya tentang logika yang digunakan untuk menampilkan ikon aplikasi, termasuk jenis aplikasi yang ikon aplikasinya tidak ditampilkan, lihat dokumentasi untuk getActivityList() dalam referensi API.

Setelan

Untuk meningkatkan aksesibilitas, Android 10 menyertakan setelan waktu tunggu yang dapat disesuaikan pengguna. Perubahan API dan Setelan disertakan dengan Android 10. Jika Anda menyesuaikan Setelan, pastikan fitur ini didukung. Jika Anda memiliki elemen UI yang waktu tunggunya habis di perangkat, gunakan API waktu tunggu pada elemen tersebut. Untuk informasi selengkapnya, lihat Panduan aksesibilitas developer Android.

Kompatibilitas

Android Compatibility Definition Document (CDD)

Dokumen Definisi Kompatibilitas Android 10 melakukan iterasi pada versi sebelumnya dengan update untuk fitur baru dan perubahan pada persyaratan untuk fungsi yang dirilis sebelumnya.

Pengujian

Compatibility Test Suite (CTS)

Android CTS memiliki halaman catatan rilis terpisah yang mencantumkan banyak perubahan penting untuk Android 10.

Download CTS

Paket CTS yang mendukung Android 10 tersedia di halaman Download CTS. Kode sumber untuk pengujian yang disertakan dapat disinkronkan dengan tag android-cts-10_r1 di hierarki open source.

CTS shim APEX

Android 10 memperkenalkan paket bernama CtsShimApex, yang harus diprainstal di perangkat untuk menulis pengujian CTS untuk pengelolaan APEX.

Mode tes otomatis

Mode harness pengujian CTS membantu developer mengotomatiskan pengujian untuk perangkat atau kumpulan perangkat.

Mode Aplikasi Instan

Mulai Android 10, CTS berjalan dalam mode Aplikasi Instan, yang berarti menginstal APK pengujian sebagai Aplikasi Instan dan menjalankan pengujian.

Selain mode CTS untuk Aplikasi Instan, Android 10 menyertakan Pemverifikasi CTS untuk Aplikasi Instan

Pengujian audio CTS Verifier pro

Android 10 menambahkan pengujian CTS Verifier untuk kepatuhan Pro Audio.

Pengujian MIDI CTS Verifier

Di Android 10, pengujian MIDI Verifier CTS menguji fungsi MIDI dengan antarmuka MIDI USB, antarmuka MIDI Bluetooth, dan jalur perangkat MIDI virtual.

Penafsiran pengujian CTS

Android 10 memperbarui mekanisme untuk menafsirkan hasil CTS.

Vendor Test Suite (VTS)

Pengujian VTS dengan ramdisk debug

Di Android 10, image sistem generik (GSI) yang digunakan untuk menjalankan perubahan pengujian kepatuhan CTS-on-GSI/VTS dari userdebug ke jenis build pengguna, karena GSI ditandatangani rilis. Namun, perintah adb root yang memberikan izin root host ke perangkat Android yang sedang diuji tidak tersedia dalam build pengguna. Hal ini menjadi masalah karena VTS memerlukan adb root untuk dijalankan.

Ramdisk debug diperkenalkan untuk memungkinkan adb root, jika perangkat tidak terkunci. Hal ini menyederhanakan alur pengujian dengan menggunakan kembali system.img build pengguna yang sama (GSI atau OEM system.img).

Validasi Hardware Composer

Android 10 menambahkan class pengujian VTS baru untuk validasi Hardware Composer melalui antarmuka readback di IComposerClient.hal. Jika vendor tidak menerapkan readback, pengujian akan otomatis lulus.

Proses Debug

Memuat library bersama dengan loader class yang berbeda

Di Android 9 dan yang lebih lama, aplikasi memuat library bersama Java tertaut di loader class aplikasi. Di Android 10, framework menggunakan loader class yang berbeda dengan loader class aplikasi untuk memuat library bersama Java yang ditautkan melalui uses-library atau uses-static-library.

Secara umum, aplikasi tidak boleh mengandalkan penggunaan loader class tertentu, sehingga perubahan ini tidak akan merusak perilaku aplikasi. Namun, jika aplikasi mengandalkan penggunaan loader class tunggal, perilaku tersebut akan rusak. Selain itu, visibilitas pribadi paket class dalam paket yang sama masih didukung, tetapi tidak didukung di library bersama.

Produsen perangkat mungkin melihat masalah kompatibilitas aplikasi saat menguji perangkat yang menjalankan Android 10.

Fitur keamanan

Untuk mengetahui daftar peningkatan yang lebih lengkap terkait keamanan dan privasi saja, lihat halaman Peningkatan keamanan dan privasi Android 10.

Autentikasi wajah

Autentikasi wajah memungkinkan pengguna membuka kunci perangkat hanya dengan melihat bagian depan perangkat. Android 10 menambahkan dukungan untuk stack autentikasi wajah baru yang dapat memproses frame kamera dengan aman, menjaga keamanan dan privasi selama autentikasi wajah di hardware yang didukung. Android 10 juga menyediakan cara mudah untuk implementasi yang mematuhi keamanan guna mengaktifkan integrasi aplikasi untuk transaksi seperti perbankan online atau layanan lainnya.

Akses yang diperluas

Agen tepercaya, mekanisme yang mendasari yang digunakan oleh mekanisme autentikasi tertier seperti Smart Lock, hanya dapat memperpanjang buka kunci di Android 10. Agen tepercaya tidak dapat lagi membuka kunci perangkat yang terkunci dan hanya dapat membuat perangkat tetap tidak terkunci selama maksimal empat jam.

Enkripsi

OEMCrypto

Android 10 menggunakan OEMCrypto API versi 15.

Pengujian

BoundsSanitizer

Android 10 men-deploy BoundsSanitizer (BoundSan) di Bluetooth dan codec. BoundSan menggunakan sanitizer batas UBSan. Mitigasi ini diaktifkan pada tingkat per modul. Hal ini membantu menjaga komponen penting Android tetap aman dan tidak boleh dinonaktifkan. BoundSan diaktifkan di codec berikut:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

Sanitasi Integer Overflow

Android 10 mengaktifkan Integer Overflow Sanitization (IntSan) di codec software. Pastikan performa pemutaran dapat diterima untuk codec yang tidak didukung di hardware perangkat. IntSan diaktifkan di codec berikut:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

Memori execute-only

Secara default, bagian kode yang dapat dieksekusi untuk biner sistem AArch64 ditandai sebagai khusus eksekusi (tidak dapat dibaca) sebagai mitigasi hardening terhadap serangan penggunaan kembali kode just-in-time. Kode yang menggabungkan data dan kode serta kode yang sengaja memeriksa bagian ini (tanpa memetakan ulang segmen memori terlebih dahulu sebagai dapat dibaca) tidak lagi berfungsi. Aplikasi dengan target SDK Android 10 (API level 29 atau yang lebih tinggi) akan terpengaruh jika aplikasi mencoba membaca bagian kode library sistem yang mengaktifkan memori khusus eksekusi (XOM) di memori tanpa menandai bagian tersebut sebagai dapat dibaca terlebih dahulu.

Scudo

Scudo adalah alokator memori mode pengguna dinamis yang dirancang agar lebih tahan terhadap kerentanan terkait heap. Library ini menyediakan primitif alokasi dan dealokasi C standar, serta primitif C++.

ShadowCallStack

ShadowCallStack (SCS) adalah mode instrumentasi LLVM yang melindungi dari penimpaan alamat return (seperti overflow buffer stack) dengan menyimpan alamat return fungsi ke instance ShadowCallStack yang dialokasikan secara terpisah dalam prolog fungsi dari fungsi non-leaf dan memuat alamat return dari instance ShadowCallStack dalam epilog fungsi.

Audio

HAL Audio

Android 10 menyertakan kemampuan baru berikut untuk HAL audio.

  • AudioSource
  • AudioFormat
  • AudioChannelMask

Persyaratan tambahan ditambahkan untuk penerapan HAL dan subsistem audio.

Efek prapemrosesan

Android menyediakan efek pra-pemrosesan, seperti pengurangan gema akustik, kontrol penguatan otomatis, dan peredam bising. Android 10 menyertakan persyaratan baru untuk pengambilan dengan VOICE_COMMUNICATION.

Pengelola kebijakan audio

Android 10 menyertakan pemfaktoran ulang pengelola kebijakan audio yang signifikan untuk memberikan lebih banyak fleksibilitas guna mendukung kasus penggunaan otomotif yang kompleks.

Audio beresolusi tinggi

Android 10 menyertakan peningkatan berikut untuk audio beresolusi tinggi.

  • Dukungan float
  • Dukungan frekuensi 192 KHz
  • Dukungan delapan saluran
  • Penyertaan informasi pengaturan waktu

Perekaman serentak

Android 10 meningkatkan pengalaman pengguna perekaman serentak yang memerlukan lebih dari satu perekaman audio aktif untuk terjadi secara bersamaan.

AudioPlaybackCapture

Android 10 berisi API baru yang disebut AudioPlaybackCapture, yang memberi aplikasi kemampuan untuk menyalin audio yang diputar oleh aplikasi lain. Fitur ini mirip dengan tangkapan layar, tetapi untuk audio. Kasus penggunaan utamanya adalah untuk memungkinkan aplikasi streaming merekam audio yang diputar oleh game.

API perekaman tidak memengaruhi latensi aplikasi yang audionya sedang direkam.

MIDI

Android 10 mempermudah porting aplikasi audio profesional menggunakan MIDI ke platform Android menggunakan AMidi NDK API.

Kamera

Untuk ringkasan perubahan pada API kamera, HAL kamera, dan modul kamera yang diperkenalkan di Android 10, lihat Update kamera Android 10.

Peningkatan privasi framework kamera

Android 10 memperkenalkan peningkatan privasi pada framework kamera. Untuk menghindari pengungkapan informasi kamera statis yang berpotensi sensitif di CameraCharacteristics tanpa izin pengguna, aplikasi harus mendapatkan izin CAMERA untuk mengambil metadata statis dengan tag sensitif privasi menggunakan metode getCameraCharacteristics.

Untuk mendapatkan daftar kunci karakteristik kamera yang memerlukan izin CAMERA, panggil metode getKeysNeedingPermission.

Kueri konfigurasi ulang sesi

Android 10 menambahkan fitur kueri konfigurasi ulang sesi, yang memungkinkan peningkatan performa melalui kontrol yang lebih besar atas logika konfigurasi ulang parameter sesi internal.

API pengelolaan buffer HAL3 kamera

Android 10 memperkenalkan API pengelolaan buffering HAL3 kamera opsional yang memungkinkan Anda menerapkan logika pengelolaan buffering untuk mencapai berbagai kompromi latensi memori dan pengambilan dalam implementasi HAL kamera.

Tombol kamera fisik dinamis HAL Kamera

Android 10 memperkenalkan tag metadata dinamis, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID, yang menunjukkan kamera fisik dasar yang aktif dari perangkat kamera logis. Untuk informasi selengkapnya, lihat Dukungan Multi-Kamera.

Dukungan untuk menyembunyikan kamera fisik

Di Android 10, HAL kamera dapat mengurangi jumlah kamera fisik yang dapat dibuka langsung oleh aplikasi. Untuk detail selengkapnya, lihat Dukungan Multi-Kamera.

Camera2 VNDK API

Di Android 10, modul vendor dapat mengakses dan mengontrol perangkat kamera melalui dua antarmuka HIDL standar baru, android.frameworks.cameraservice.service@2.0 dan android.frameworks.cameraservice.device@2.0. Agar penggunaan antarmuka HIDL lebih praktis, Android 10 juga memperkenalkan library yang tersedia dari vendor, libcamera2_vendor. Library ini mirip dengan library NDK Kamera, dengan beberapa modifikasi kecil.

Konfigurasi streaming

Android 10 menambahkan fitur yang memungkinkan vendor kamera mengumumkan streaming kamera yang direkomendasikan ke klien kamera dan mendukung API untuk membuat kueri kombinasi streaming.

Persyaratan kombinasi streaming kamera

Perangkat yang menjalankan Android 10 tidak lagi diwajibkan untuk mendukung kombinasi streaming dengan streaming subkamera fisik. Namun, perangkat yang menjalankan Android 10 dengan versi perangkat HAL kamera 3.5 harus mendukung isStreamCombinationSupported() untuk memungkinkan aplikasi mengkueri apakah kombinasi streaming yang berisi streaming fisik didukung.

Untuk informasi selengkapnya, lihat Dukungan Multi-Kamera.

Pencitraan HEIF

Android 10 menyediakan dukungan kamera native untuk gambar format file gambar efisiensi tinggi (HEIF), yang menawarkan kualitas gambar yang lebih baik dan ukuran yang lebih kecil dibandingkan gambar JPEG. Perangkat harus memiliki encoder HEIC atau HEVC untuk mendukung gambar HEIF.

Kamera monokrom

Android 10 memberikan dukungan tambahan untuk format streaming Y8, metadata statis array filter warna monokrom dan inframerah dekat (NIR), serta fungsi DngCreator untuk kamera monokrom.

Konektivitas

Panggilan telepon dan pesan

Nomor darurat dan panggilan darurat

Android 10 memberikan dukungan yang lebih baik untuk panggilan darurat. Dalam keadaan darurat, perangkat dengan dukungan untuk IRadio HAL v1.4 dapat memulai panggilan darurat menggunakan nomor darurat yang diambil dari sumber seperti kartu SIM, sinyal jaringan, atau database Android. Nomor dapat dikategorikan berdasarkan kategori layanan darurat seperti polisi, pemadam kebakaran, dan ambulans.

API panggilan grup

API panggilan grup adalah ekstensi dari eMBMS API yang ditambahkan di Android 9. API baru menentukan standar bagi aplikasi untuk bergabung dan menyiarkan pada panggilan grup siaran sel dengan berinteraksi dengan paket middleware eMBMS. Panggilan grup memerlukan dukungan dari vendor chipset, vendor middleware, dan operator seluler agar berfungsi dengan baik. Dokumentasi developer terletak di developer.google.com.

Kemampuan SIM jarak jauh

Android 10 memperkenalkan kemampuan SIM jarak jauh yang memungkinkan aplikasi pesan di perangkat host Android mengirim pesan SMS melalui ponsel menggunakan mekanisme seperti Bluetooth. Untuk informasi selengkapnya, lihat dokumentasi referensi untuk metode getSubscriptionType dan konstanta SUBSCRIPTION_TYPE_REMOTE_SIM.

Beberapa eSIM

Di Android 10, class EuiccManager mendukung perangkat dengan beberapa SIM tersemat (eSIM), atau eUICC.

update eSIM

Untuk perangkat yang menjalankan Android 10 yang mendukung eSIM, array ID slot eUICC yang tidak dapat dilepas harus ditentukan. Perangkat juga harus mendukung IRadio HAL v1.4 dan IRadioConfig HAL v1.2. Untuk informasi selengkapnya, lihat Menerapkan eSIM dan Persyaratan HAL.

5G Non-Standalone (NSA)

Android 10 menambahkan dukungan untuk 5G non-standalone (NSA). 5G NSA adalah solusi untuk jaringan 5G yang didukung oleh infrastruktur 4G yang ada. Di Android 10, perangkat dapat menampilkan ikon 5G di status bar saat perangkat terhubung ke jaringan 5G.

Saran akun telepon

Android 10 memperkenalkan layanan saran akun telepon, yang memungkinkan saran untuk akun telepon ditampilkan kepada pengguna saat melakukan panggilan.

Operator

Memigrasikan setelan Jaringan Seluler

Android 10 mendesain ulang kode UI setelan Jaringan Seluler dan memindahkannya dari stack Telepon ke stack Setelan. Untuk mendukung kode yang dimigrasikan, ubah nilai konfigurasi setelan Jaringan Seluler berikut dari resource Android ke resource CarrierConfig:

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

ID perangkat

ID perangkat yang persisten (IMEI/MEID, IMSI, dan nomor seri build) dilindungi oleh izin dengan hak istimewa dengan akses yang juga diberikan ke aplikasi pemilik perangkat dan profil. Karena IMSI dan nomor seri SIM disediakan oleh operator, akses ke ID ini diberikan ke paket dengan hak istimewa operator.

Wi-Fi

Pilihan jaringan

Android terus mengevaluasi kualitas jaringan yang terhubung dan menilai kualitas jaringan yang tersedia. Android 10 telah memperbarui algoritma dan prosedur untuk memilih dan beralih antar-jaringan Wi-Fi.

Pemindaian offload jaringan pilihan Wi-Fi

Android 10 memperkenalkan metode API opsional bernama setDeviceMobilityState() di WifiManager yang meningkatkan interval antara pemindaian preferred network offload (PNO) saat perangkat tidak bergerak untuk mengurangi penggunaan daya.

Wi-Fi Operator

Di Android 10, perangkat dengan fitur Wi-Fi operator akan otomatis terhubung ke jaringan Wi-Fi operator yang dikonfigurasi (jaringan dengan sertifikat kunci publik).

Wi-Fi Easy Connect

Di Android 10, perangkat dapat menggunakan Wi-Fi Easy Connect, yang menggunakan protokol penyediaan perangkat (DPP) yang diperkenalkan oleh Wi-Fi Alliance (WFA), untuk menyediakan dan mengonfigurasi perangkat Wi-Fi.

Mode latensi rendah Wi-Fi

Android 10 memperkenalkan mode latensi rendah Wi-Fi, yang mengonfigurasi chip Wi-Fi untuk mengurangi latensi.

Server DHCP yang diperbarui

Sebagai bagian dari pembentukan payung layanan "Server IP", dnsmasq dihapus. Android 10 mengganti penggunaan fungsional server DHCPv4 dengan komponen terpisah, yang terutama ditulis dalam Java untuk lebih terintegrasi dengan bidang kontrol framework Java. Hal ini meningkatkan keamanan dan kemampuan update untuk server DHCP. Untuk detail selengkapnya, lihat packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java.

Tidak ada tindakan yang diperlukan untuk menerapkan perubahan ini: semua perangkat yang merilis dan mengupgrade ke Android 10 menggunakan DhcpServer secara default. Jika memiliki penyesuaian pada server DHCP, Anda dapat kembali ke perilaku Android 9 dengan menetapkan setelan global tether_enable_legacy_dhcp_server=1. DhcpServer baru disertakan dalam modul komponen jaringan, sehingga penyesuaian apa pun pada fungsi server DHCP harus di-upstream.

WPA3 dan Wi-Fi Enhanced Open

Android 10 menambahkan dukungan untuk standar keamanan Wi-Fi Protected Access 3 (WPA3) dan Wi-Fi Enhanced Open untuk memberikan privasi dan ketahanan yang lebih baik terhadap serangan yang diketahui.

Wi-Fi Direct

Wi-Fi Direct, juga dikenal sebagai Wi-Fi P2P, memungkinkan perangkat pendukung menemukan dan terhubung satu sama lain secara langsung menggunakan protokol Wi-Fi Direct tanpa akses internet atau jaringan seluler.

Peningkatan pengacakan MAC

Mulai Android 10, pengacakan MAC diaktifkan secara default untuk mode klien, SoftAp, dan Wi-Fi Direct. Perangkat harus menyediakan opsi untuk mengaktifkan atau menonaktifkan pengacakan MAC untuk setiap SSID di UI sistem.

Passpoint R2

Android 10 memperkenalkan dukungan untuk fitur Passpoint R2. Passpoint R2 menerapkan pendaftaran online (OSU), metode standar untuk menyediakan profil Passpoint baru. Android 10 mendukung penyediaan profil EAP-TTLS menggunakan SOAP-XML.

NFC

Amankan NFC

NFC Aman memungkinkan emulasi kartu NFC di luar host diaktifkan hanya saat layar perangkat tidak terkunci. Dengan menerapkan fitur ini, pengguna memiliki opsi untuk mengaktifkan NFC Aman guna meningkatkan keamanan.

Android Beam tidak digunakan lagi

Di Android 10, Android Beam tidak lagi diperlukan dan antarmuka dan metode berikut tidak digunakan lagi.

Antarmuka:

Metode:

Untuk menggunakan Android Beam, laporkan konstanta fitur android.sofware.nfc.beam.

Grafik

ASurfaceControl

Android 10 menambahkan ASurfaceControl, cara baru bagi SurfaceFlinger untuk menerima buffering.

Implementasi grafis

Lapisan OpenGL ES

Android 10 memperkenalkan sistem pelapisan untuk GLES.

EGL 1.5

Android 10 mengimplementasikan antarmuka EGL 1.5. Untuk informasi tentang fitur baru di EGL 1.5, lihat Spesifikasi EGL 1.5 Rilis Khronos.

Vulkan

Android 10 menyertakan dukungan untuk grafis Vulkan 1.1. Platform ini juga mendukung VK_KHR_swapchain v70, sehingga aplikasi Vulkan dapat membuat VkImage yang didukung oleh memori swapchain.

Kecepatan refresh performa

Android 10 menambahkan dukungan untuk kecepatan refresh performa. Fitur ini dinonaktifkan secara default.

Interaksi

Otomotif

Audio otomotif

Di Android 10, konteks Audio HAL dipetakan ke AudioAttributes.usage untuk mengidentifikasi suara. Android mendukung satu instance AUDIO_DEVICE_OUT_BUS per konteks. HAL IAudioControl menyediakan ekstensi khusus kendaraan ke HAL Audio.

Navigasi gestur

Android 10 memperkenalkan opsi untuk sepenuhnya menggunakan navigasi sistem gestur. Untuk informasi tentang cara menyiapkan aplikasi agar dapat menggunakan fitur ini, lihat halaman Navigasi gestur di situs Android Developer.

Jaringan neural

Android 10 memperkenalkan update pada Neural Networks API dan Neural Networks HAL. Untuk ringkasan perubahan, lihat Jaringan neural.

Dokumentasi Jaringan Neural baru dan yang diperbarui untuk Android 10:

Sensor

Sensors HAL 2.0

Sensor HAL 2.0 mendukung penggunaan antrean pesan cepat (FMQ) untuk mengirim peristiwa sensor dari HAL ke Framework Sensor Android.

Sensor nonaktif

Android 10 menyertakan setelan developer untuk menonaktifkan semua sensor di perangkat. Fitur ini membantu developer menguji fungsi aplikasi mereka dalam situasi saat sensor tersebut tidak tersedia, dan juga memberi pengguna cara untuk mengontrol sensor di perangkat mereka.

Jika perangkat Anda menggunakan implementasi default SensorService, CameraService, dan AudioPolicyService, tidak diperlukan penyesuaian tambahan untuk desain referensi. Jika Anda memiliki sensor lain, lihat Penyesuaian untuk mengetahui detail selengkapnya tentang dukungan fitur ini.

Media

Komponen media yang dapat diupdate

Android 10 menyediakan komponen media yang dapat diupdate yang memungkinkan update komponen sistem modular terkait media melalui infrastruktur Google Play Store atau melalui mekanisme over-the-air (OTA) yang disediakan partner.

Media DRM

Android 10 meningkatkan utilitas dan kegunaan MediaDrm Java dan NDK API.

Dekode

Android 10 mendukung dekode SW AV1.

Izin

Android 10 menyediakan konfigurasi izin tambahan untuk transparansi dan privasi pengguna.

Informasi penyedia kontak dan afinitas

Mulai Android 10, data terkait afinitas kontak, yang dikelola oleh komponen Penyedia Kontak, diakses secara berbeda dengan di Android 9 dan yang lebih lama. Perubahan ini terkait aksesibilitas data meningkatkan privasi pengguna di semua perangkat Android 10 yang menggunakan komponen Penyedia Kontak. Database pokok tidak lagi berisi data afinitas kontak. Oleh karena itu, aplikasi tidak dapat menulis ke atau membaca darinya.

Perubahan di Android 10 diperkirakan akan memiliki dampak besar pada API. Jika aplikasi Anda mengandalkan fitur yang tidak digunakan lagi yang disebutkan dalam Penyedia Kontak dan Informasi Afinitas, sebaiknya update aplikasi untuk mengimbangi perubahan apa pun. Selain itu, jika Anda menggunakan versi fork Penyedia Kontak, Anda harus mengupdate Penyedia Kontak.

Izin akses lokasi tiga status

Izin akses lokasi tiga status di Android 10 memberi pengguna kontrol lebih besar atas cara aplikasi mengakses lokasi perangkat mereka.

Pengingat akses lokasi latar belakang

Android 10 menampilkan pengingat lokasi akses latar belakang, yang meningkatkan transparansi tentang jumlah akses yang dimiliki aplikasi ke lokasi perangkat dan membantu pengguna mempertahankan kontrol atas akses tersebut.

Membatasi lokasi oportunistik

Saat aplikasi meminta lokasi perangkat, aplikasi dapat menunggu respons permintaan atau, dengan menggunakan pemroses lokasi aktif, mendapatkan update lokasi oportunistik. Mulai Android 10, untuk mendapatkan pembaruan lokasi oportunistik, developer harus menentukan bahwa mereka memerlukan pembaruan lokasi pasif dari class FusedLocationProviderClient.

Peluncuran aplikasi latar belakang

Di Android 10, aplikasi tanpa hak istimewa tanpa jendela yang terlihat tidak dapat diluncurkan secara otomatis ke latar depan. Perubahan ini akan menyembunyikan pop-up iklan dan pengambilalihan berbahaya. Anda tidak perlu melakukan tindakan apa pun untuk mengaktifkannya.

Sandboxing aplikasi

Di Android 10, aplikasi memiliki tampilan mentah terbatas dari sistem file, tanpa akses langsung ke jalur seperti /sdcard/DCIM. Namun, aplikasi tetap mempertahankan akses mentah penuh ke jalur khusus paketnya, seperti yang ditampilkan oleh metode yang berlaku seperti Context.getExternalFilesDir(). Aplikasi masih memiliki akses mentah penuh ke jalur khusus paketnya.

Gunakan panduan sandbox aplikasi untuk berbagi file guna memberikan tingkat perincian berbagi data yang sesuai.

Membatasi akses papan klip aplikasi

Di Android 10, akses papan klip telah berubah sehingga konten papan klip tidak dapat ditonton dengan memanggil ClipboardManager.getPrimaryClip atau dengan menambahkan pemroses onPrimaryClipChangedListener untuk notifikasi saat papan klip berubah. Hal ini meningkatkan privasi pengguna dan menonaktifkan aplikasi malvertising agar tidak mengubah papan klip.

Di Android 10, akses baca hanya diizinkan untuk aplikasi saat ini dengan fokus input, atau untuk keyboard saat ini. Panggilan pemroses ClipboardManager.onPrimaryClipChanged() kini hanya diaktifkan untuk aplikasi yang memenuhi batasan tersebut. ClipboardManager.getPrimaryClip dan ClipboardManager.getPrimaryClipDescription menampilkan null jika aplikasi yang meminta bukan editor metode masukan (IME) default, atau tidak memiliki fokus input.

Izin runtime mencakup pengenalan aktivitas

Pengguna kini melihat dialog pengenalan aktivitas saat aplikasi mengakses lokasi perangkat di latar belakang. Izin runtime yang dibatasi secara ketat harus diizinkan dengan benar di Android 10.

Izin MANAGE_DEVICE_ADMINS

Android 10 mengubah izin MANAGE_DEVICE_ADMINS dari tanda tangan atau hak istimewa menjadi hanya tanda tangan. Artinya, hanya aplikasi yang ditandatangani platform yang dapat menetapkan aplikasi lain sebagai admin perangkat.

Peningkatan Sharing API

Android 10 menyediakan sejumlah fitur Android Platform API baru yang terkait dengan berbagi. Jika Anda telah mengubah kode Sheet Berbagi dalam implementasi, pastikan implementasi Anda mendukung fitur baru ini. Jika belum mengubah kode Sheet Berbagi dalam implementasi, Anda tidak perlu melakukan apa pun untuk mendukung fitur baru ini.

Android Runtime (ART)

Konfigurasi Bertanda Tangan

Fitur Signed Config memungkinkan penyematan konfigurasi pembatasan antarmuka non-SDK dalam APK. Hal ini memungkinkan penghapusan antarmuka non-SDK tertentu dari daftar hitam, sehingga AndroidX dapat menggunakannya dengan aman. Dengan perubahan ini, AndroidX dapat menambahkan dukungan untuk fitur baru di versi Android yang lebih lama.

Performa

Lapisan abstraksi Cgroup

Android 10 menyertakan lapisan abstraksi cgroup dan profil tugas, yang dapat digunakan developer untuk mendeskripsikan serangkaian batasan yang akan diterapkan ke thread atau proses.

Low Memory Killer Daemon (lmkd)

Android 10 mendukung mode lmkd baru yang menggunakan monitor informasi stall tekanan kernel (PSI) untuk deteksi tekanan memori.

Daya

Pengelolaan daya platform

Di Android 10, mode Istirahat dapat diaktifkan di perangkat yang selalu aktif serta di perangkat yang menggunakan daya baterai.

Penghemat baterai rutin

Android 10 memperkenalkan opsi jadwal penghemat baterai baru yang disebut berdasarkan rutinitas. Penghemat baterai rutin memungkinkan aplikasi yang dipilih oleh OEM untuk memberikan sinyal ke sistem guna penjadwalan penghemat baterai yang lebih cerdas. Opsi ini memerlukan konfigurasi, dan bersifat opsional untuk diterapkan.

HAL statistik daya

Di Android 10, IPowerStats.hal menggantikan API pengumpulan statistik daya di IPower.hal. Meskipun HAL daya masih mendukung API, API tersebut akan dimigrasikan secara eksklusif ke HAL statistik daya pada masa mendatang.

HAL statistik daya menyertakan API baru untuk mendukung pengumpulan data dari pengukuran daya di perangkat, untuk perangkat yang didukung. API pengumpulan statistik daya yang ada juga diupdate untuk meningkatkan fleksibilitas. API petunjuk daya tetap berada di HAL daya dan tidak berubah.

Mitigasi termal

Framework termal di Android 10 memisahkan antarmuka perangkat untuk sensor suhu subsistem termal, termasuk CPU, GPU, baterai, kulit, dan perangkat pendingin. Framework ini memperkenalkan antarmuka polling untuk mengkueri status termal guna memulai throttling, dan antarmuka callback untuk mengirim pesan kepada pengguna saat nilai minimum terlampaui.

Android 10 menyediakan jenis data baru melalui antarmuka IThermalService menggunakan tiga metode baru berikut:

Aplikasi menambahkan dan menghapus pemroses serta mengakses status suhu di class PowerManager. Hanya layanan sistem tepercaya seperti Android API atau API produsen perangkat yang dapat mengakses informasi tentang peristiwa kausal terkait. Produsen perangkat atau pembuat SoC harus menerapkan thermal HAL 2.0 untuk mengaktifkan fungsi lengkap framework termal baru.

Untuk contoh penerapan mitigasi termal, lihat Implementasi referensi.

Update

Format file APEX

Android Pony EXpress (APEX) adalah format penampung baru yang digunakan dalam alur penginstalan untuk komponen sistem modular.

Partisi dinamis

Partisi dinamis memperkenalkan sistem partisi ruang pengguna ke Android, yang memungkinkan partisi dibuat, diubah ukurannya, atau dihancurkan selama update OTA. Produsen perangkat tidak perlu mengkhawatirkan ukuran partisi individual, seperti system, vendor, dan product. Sebagai gantinya, satu partisi super besar dialokasikan, dan subpartisi dapat diukur secara dinamis di dalamnya.

Update sistem dinamis

Dynamic system updates (DSU) memungkinkan Anda membuat image sistem Android yang dapat didownload pengguna dari internet dan dicoba tanpa risiko merusak image sistem saat ini.

Pencadangan dan pemulihan multipengguna

Android 10 mendukung fungsi pencadangan dan pemulihan untuk semua pengguna di perangkat. Sebelumnya, pencadangan dan pemulihan hanya tersedia untuk pengguna sistem. Pencadangan dan pemulihan untuk pengguna non-sistem dinonaktifkan secara default karena hanya memiliki cakupan sebagian untuk setelan, wallpaper, dan komponen sistem.

Overlayfs

Pengguna yang menggunakan build userdebug atau eng berharap dapat memasang ulang partisi sistem secara efisien sebagai read-write, lalu menambahkan atau mengubah jumlah file tanpa mem-flash ulang image sistem. Anda dapat menggunakan Overlayfs, yang otomatis menyiapkan penyimpanan pendukung untuk sistem file yang dapat ditulis sebagai referensi atas, dan dipasang di atas yang lebih rendah. Tindakan ini terjadi dalam permintaan adb disable-verity dan adb remount. Untuk mengetahui detail selengkapnya, lihat README Overlayfs di AOSP.

Dukungan library bersama dalam mode pemulihan

Di Android 10, library bersama tersedia di partisi pemulihan, sehingga semua file yang dapat dieksekusi dalam mode pemulihan tidak perlu bersifat statis. Library bersama terletak di direktori /system/lib (atau /system/lib64 untuk perangkat 64-bit) di partisi.

Untuk menambahkan library bersama baru ke partisi pemulihan, tambahkan recovery_available: true atau recovery: true ke Android.bp library bersama. Yang pertama menginstal library ke partisi sistem dan pemulihan, sedangkan yang kedua hanya menginstalnya ke partisi pemulihan.

Dukungan library bersama tidak dapat dibuat dengan sistem build berbasis make Android. Untuk mengonversi file yang dapat dieksekusi statis yang ada untuk mode pemulihan menjadi dinamis, hapus LOCAL_FORCE_STATIC_EXECUTABLE := true di Android.mk atau static_executable: true (di Android.bp).

Checkpoint Data Pengguna (UDC)

Android 10 memperkenalkan fitur User Data Checkpoint (UDC), yang memungkinkan Android melakukan rollback ke status sebelumnya saat update over-the-air (OTA) Android gagal.