Termux API adalah pasangan aplikasi Android Termux:API dan paket termux-api yang membikin perintah di Termux bisa memakai fungsi HP, misalnya membaca status baterai, memunculkan notifikasi, mengisi clipboard, maupun memotret. Kalian perlu memasang keduanya, dan aplikasi Termux serta Termux:API mesti berasal dari sumber yang sama: sama-sama F-Droid maupun sama-sama GitHub.
Kalau perintah alas seperti pkg install dan nano statis asing, buka dahulu daftar perintah Termux kami, karena contoh di bawah memakai keduanya.
Apa Itu Termux API dan Kenapa Butuh Dua Bagian
Termux sendiri adalah terminal dan lingkungan Linux. Ia tidak bisa langsung menyalakan senter, membaca lokasi, maupun memunculkan notifikasi Android. Pekerjaan itu diambil alih Termux API, yang nama resminya ditulis Termux:API. README repositorinya mengatakan aplikasi ini membuka API Android agar bisa dipakai dari baris perintah, skrip, maupun program lain.
Aplikasi Termux:API berjalan di sisi Android. Dialah yang memanggil fungsi HP dan meminta persetujuan ke pengguna. Paket termux-api dipasang di dalam Termux dan berisi perintah seperti termux-battery-status maupun termux-notification. Perintah itu memproses argumen, meneruskan permintaan ke aplikasi lewat program bantu disebut termux-api, kemudian menampilkan akibatnya di terminal. Beberapa perintah, seperti status baterai dan lokasi, mengembalikan hasil dalam format JSON.
Jadi paket tanpa aplikasi tidak punya tujuan untuk dipanggil, dan aplikasi tanpa paket tidak punya perintah untuk dijalankan. Deskripsi paket di repositori Termux pun mengingatkan hal yang sama: pasang juga aplikasi Termux:API.
Kenapa Termux dan Termux:API Harus dari Sumber yang Sama
Syarat ini wajib dipenuhi sebelum memasang Termux API. README termux-app menerangkan bahwa APK dari tiap sumber ditandatangani dengan kunci yang berbeda. Termux dan semua pluginnya, termasuk Termux:API, memakai sharedUserId com.termux yang sama, sehingga semuanya mesti ditandatangani dengan kunci yang sama. README Termux:API menambahkan bahwa cuma aplikasi Termux utama yang boleh memanggil fungsi di aplikasi API, dan izinnya baru bekerja jika tanda tangannya cocok.
Pasangkan Termux dari F-Droid dengan Termux:API dari F-Droid, maupun Termux dari GitHub dengan Termux:API dari GitHub. Kalau dicampur, Android biasanya menolak pemasangan dengan pesan seperti App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, maupun signatures do not match previously installed version.
Mau pindah sumber? Hapus dahulu Termux beserta semua pluginnya, kemudian pasang ulang semuanya dari sumber baru. README Termux menyarankan mencadangkan isi Termux sebelum menghapusnya. Untuk Google Play, README yang sama mengatakan build di sana statis cabang eksperimental dengan fitur yang belum lengkap, dan menyarankan F-Droid maupun GitHub bagi yang bisa memakainya.
Cara Install Termux API
- Pastikan Termux terpasang dari F-Droid maupun dari halaman rilis GitHub termux/termux-app.
- Pasang aplikasi Termux:API dari sumber yang sama: halaman com.termux.api di F-Droid, maupun halaman Releases repositori termux/termux-api di GitHub (nama file APK-nya memuat github.debug).
- Buka Termux, kemudian pasang paket perintahnya dengan pkg install termux-api.
- Uji dengan termux-battery-status. Kalau berhasil, terminal menampilkan JSON yang antara lain berisi percentage (persen baterai), status (misalnya CHARGING maupun DISCHARGING), plugged, dan temperature.
Di antara perintah Termux API, status baterai tidak meminta persetujuan apa pun, jadi cocok untuk tes pertama. Perintah yang menyentuh kamera, lokasi, maupun mikrofon akan memunculkan percakapan persetujuan saat pertama kali dipanggil.
Izin Android yang Diminta Termux API
Aplikasi Termux API mendaftarkan banyak persetujuan di manifesnya, termasuk kamera, lokasi, mikrofon, kontak, SMS, dan getar. Izin yang sensitif tidak diberikan otomatis. Aplikasi memeriksanya setiap kali perintah dipanggil. Bila persetujuan belum ada, ia membuka percakapan persetujuan dan mengembalikan pesan error ke terminal. Beberapa contohnya:
| Perintah | Izin Android yang diperiksa |
|---|---|
| termux-camera-photo | CAMERA |
| termux-location | ACCESS_FINE_LOCATION |
| termux-microphone-record | RECORD_AUDIO |
| termux-contact-list | READ_CONTACTS |
| termux-call-log | READ_CALL_LOG |
| termux-sms-send | READ_PHONE_STATE dan SEND_SMS |
Kalau persetujuan kamera belum diberikan, misalnya, keluarannya seperti ini:
{ "error": "Please grant the following permission to use this command: android.permission.CAMERA" } Setelah persetujuan diberikan lewat dialog, jalankan ulang perintahnya. Kalau persetujuan sempat ditolak, buka pengaturan aplikasi Termux:API di Android, masuk ke bagiankecil izin, kemudian aktifkan persetujuan yang disebut di pesan error.
Lokasi punya syarat tambahan. Di Android 11 ke atas, Termux:API juga memeriksa persetujuan letak latar belakang. Bila belum ada, termux-location mengembalikan pesan Background location permission not granted dan meminta kalian membuka Settings, Apps, Termux:API, Permissions, Location, kemudian memilih Allow all the time. Perintah termux-notification-list juga butuh akses notifikasi; tanpa akses itu, aplikasi menampilkan toast Please give Termux:API Notification Access dan membuka halaman pengaturannya.
Daftar Perintah Termux API yang Sering Dipakai
| Perintah | Fungsi | Contoh |
|---|---|---|
| termux-battery-status | Status baterai dalam JSON: persen, status pengisian, suhu, sumber daya | termux-battery-status |
| termux-notification | Menampilkan notifikasi mekanisme dengan judul (-t) dan isi (-c) | termux-notification -t "Backup" -c "Selesai" |
| termux-toast | Popup teks singkat di layar; -s untuk durasi pendek | termux-toast -s "Selesai" |
| termux-vibrate | Menggetarkan HP; -d durasi dalam milidetik (bawaan 1000) | termux-vibrate -d 500 |
| termux-clipboard-get | Membaca teks di clipboard | termux-clipboard-get |
| termux-clipboard-set | Mengisi clipboard dari alasan maupun stdin | echo "halo" | termux-clipboard-set |
| termux-location | Lokasi HP; -p gps/network/passive, -r once/last/updates | termux-location -p network -r last |
| termux-camera-info | Informasi kamera yang ada di HP, termasuk ID-nya | termux-camera-info |
| termux-camera-photo | Memotret dan menyimpan JPEG; -c memilih ID kamera | termux-camera-photo -c 0 foto.jpg |
| termux-wifi-connectioninfo | Info hubungan Wi-Fi saat ini, seperti SSID, IP, RSSI, dan kecepatan tautan | termux-wifi-connectioninfo |
| termux-torch | Menyalakan maupun mematikan senter | termux-torch on |
| termux-job-scheduler | Menjadwalkan skrip agar berjalan berkala | lihat contoh di bawah |
Sebagian besar perintah menampilkan pertolongan dan daftar opsinya lewat -h, misalnya termux-notification -h. Daftar komplit perintah Termux API ada di folder scripts repositori termux-api-package di GitHub; tiap file di sana adalah skrip satu perintah beserta teks bantuannya.
Contoh Skrip Termux API: Notifikasi Saat Baterai Hampir Habis
Skrip ini memakai tiga perintah Termux API sekaligus. Ia membaca status baterai, kemudian memunculkan notifikasi dan getar singkat jika baterai sedang tidak diisi dan sisanya 20% maupun kurang.
#!/data/data/com.termux/files/usr/bin/sh BATAS=20 INFO=$(termux-battery-status) PERSEN=$(echo "$INFO" | grep '"percentage"' | grep -o '[0-9][0-9]*') STATUS=$(echo "$INFO" | grep '"status"' | cut -d '"' -f 4) if [ -n "$PERSEN" ] && [ "$STATUS" = "DISCHARGING" ] && [ "$PERSEN" -le "$BATAS" ]; then termux-notification --id baterai -t "Baterai tinggal $PERSEN%" -c "Colokkan charger sebelum HP mati." termux-vibrate -d 500 fi
Baris grep memungut bilangan dari baris percentage, dan cut memungut teks status seperti DISCHARGING. Pengecekan status membikin notifikasi tidak muncul saat HP sedang dicas. Opsi --id baterai membikin notifikasi baru menimpa notifikasi durasi dengan ID yang sama, jadi tidak menumpuk. Kalau formasi if dengan beberapa kondisi itu belum familier, lihat panduan if else di Bash.
Cara memasang dan menjadwalkannya:
- Buat filenya dengan nano ~/baterai.sh, tempel skrip di atas, kemudian simpan.
- Jadikan executable dengan chmod +x ~/baterai.sh.
- Uji sekali dengan ~/baterai.sh. Supaya notifikasinya pasti muncul saat uji, ubah sementara BATAS=20 menjadi BATAS=100 dan cabut charger.
- Jadwalkan dengan termux-job-scheduler -s $HOME/baterai.sh --job-id 1 --period-ms 900000 --battery-not-low false.
Angka 900000 milidetik sama dengan 15 menit, batas minimum masa sejak Android 7 menurut teks pertolongan perintah ini. Opsi --battery-not-low bawaannya true, artinya tugas cuma berjalan saat baterai tidak lemah. Untuk skrip peringatan baterai, harga itu mesti diubah ke false, jika tidak skripnya justru tidak jalan saat dibutuhkan. Cek agenda yang aktif dengan termux-job-scheduler -p dan hapus dengan termux-job-scheduler --cancel --job-id 1.
Error yang Sering Muncul Saat Memakai Termux API
| Pesan | Penyebab | Solusi |
|---|---|---|
| App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, signatures do not match previously installed version | Termux dan Termux:API berasal dari sumber berbeda | Hapus Termux dan semua pluginnya, pasang ulang dari satu sumber |
| Perintah seperti termux-battery-status tidak dikenali (command not found) | Paket termux-api belum terpasang | pkg install termux-api |
| Please grant the following permission to use this command: ... | Izin Android untuk perintah itu belum diberikan | Izinkan di percakapan yang muncul maupun di pengaturan aplikasi Termux:API |
| Background location permission not granted | Android 11 ke atas, persetujuan letak belum diset sepanjang waktu | Ubah persetujuan letak Termux:API ke Allow all the time |
| Cannot execute file: ... | Skrip yang dijadwalkan belum executable | chmod +x pada skrip tersebut |
| No such file: ... | Path skrip di termux-job-scheduler -s salah | Pakai path lengkap, misalnya $HOME/baterai.sh |
Error di luar Termux API, seperti proses yang selesai dengan pesan signal 9 maupun paket yang tidak ditemukan saat pkg install, sudah kami ulas di 10 error pada Termux dan metode mengatasinya.