Untuk perangkat Android yang di-rooting
Anda dapat mempertimbangkan menginstal aplikasi BusyBox oleh Stephen. Per Play Store, versi Android minimum yang didukung oleh aplikasi adalah Android 1.6 dan ini adalah aplikasi yang diperbarui dengan baik. Intinya, ia menginstal binary busybox ke /system/xbin
dan menempatkan symlink di direktori yang sama untuk semua utilitas yang dimilikinya.
Apa itu BusyBox (bukan aplikasi)?
BusyBox menggabungkan versi kecil dari banyak utilitas UNIX umum menjadi satu executable kecil. Ini memberikan penggantian untuk sebagian besar utilitas yang biasanya Anda temukan di GNU fileutils, shellutils, dll. Utilitas di BusyBox umumnya memiliki lebih sedikit pilihan daripada sepupu GNU berfitur lengkap mereka; namun, opsi yang disertakan menyediakan fungsionalitas yang diharapkan dan berperilaku sangat mirip dengan rekan-rekan GNU mereka. BusyBox menyediakan lingkungan yang cukup lengkap untuk sistem kecil atau tertanam.
Berikut adalah daftar utilitas resmi yang disediakannya. find
Alat dapat ditemukan di sana.
Alternatif kompeten untuk BusyBox adalah Toybox, yang telah menggantikan Toolbox dalam rilis Marshmallow.
Toybox menggabungkan banyak utilitas baris perintah Linux bersama menjadi satu executable berlisensi BSD. Ini sederhana, kecil, cepat, dan cukup sesuai standar ( POSIX-2008 dan LSB 4.1 ).
Berikut adalah daftar resmi dari utilitas toybox. BusyBox, saat ini, tampaknya mendukung lebih banyak alat daripada Toybox.
Saya tidak berpikir ada aplikasi untuk menginstal biner Toybox, jadi Anda dapat menggunakan jawaban saya di sini untuk tujuan pemasangannya. Perhatikan bahwa jawabannya dapat digunakan untuk pemasangan Toybox dan BusyBox. Hanya prasyarat yang mengunduh biner dari sumber resmi.
Tautan unduhan resmi:
Untuk perangkat Android yang tidak di-root
Saya tidak tahu apakah ada pendekatan universal untuk semua versi Android. Yang mengatakan, untuk Android 4.0 dan lebih tinggi BusyBox Install (No Root) mengaku berfungsi. Mungkin ada beberapa aplikasi terminal yang dilengkapi dengan biner BusyBox. Saya belum secara pribadi menguji aplikasi terminal semacam itu tetapi mudah untuk memahami bahwa kelemahan terbesar mereka adalah: Anda tidak dapat menggunakan atau menggunakan mereka dengan baik menggunakan adb .
Namun ada pendekatan, yang tampaknya berfungsi untuk semua versi Android di atas 4.2 (berdasarkan tes saya). /data/local/tmp
adalah direktori yang dapat diedit oleh shell
pengguna. adb shell
memberi Anda shell jarak jauh pada perangkat dan masuk sebagai pengguna yang sama.
Yang harus Anda lakukan adalah memasukkan binary BusyBox / Toybox /data/local/tmp
dan membuat symlink untuk utilitas di direktori yang sama. Anda dapat menggunakan langkah-langkah berikut untuk itu.
(Membutuhkan pengaturan adb di PC.)
adb push LOCAL_FILE / data / local / tmp / # ganti LOCAL_FILE dengan path file toybox / busybox binary di PC
adb shell
chmod 755 / data / local / tmp / FILE # mengatur izin yang sesuai pada file biner yang didorong. Ganti FILE dengan nama biner yang Anda dorong di langkah pertama. Disarankan untuk menggunakan satu kata sebagai nama dengan semua huruf kecil
box = / data / local / tmp / FILE # mengatur variabel lokal untuk penggunaan pada langkah berikutnya. Ganti FILE jika perlu
$ box | $ box sed 's / \ / \ n / g' | $ box sed '$ d' | saat membaca baris; lakukan $ box ln -sf / data / local / tmp / FILE / data / local / tmp / $ line; selesai # Kami mengeksekusi biner yang dirujuk oleh $ box untuk mendaftar semua utilitas, diikuti dengan pembuatan daftar dan kemudian untuk setiap item dalam daftar, kami membuat symlink di direktori.
Izzy merekomendasikan cara paling mudah untuk menempatkan symlink untuk biner BusyBox .
adb shell / data / local / tmp / FILE --install -s / data / local / tmp / # Ganti FILE yang sesuai. --install -s akan membuat symlink yang diinginkan untuk Anda di direktori. Jalur direktori disediakan di sebelahnya.
Semua alat itu sekarang dapat diakses menggunakan jalur absolut /data/local/tmp/TOOL
. Ganti ALAT dengan nama utilitas. Contoh penggunaan perintah find calling:
adb shell /data/local/tmp/find --help
adb shell /data/local/tmp/FILE find --help # alternative way of using a tool
Untuk sesi shell interaktif, Anda dapat menambahkan lokasi FILE ke $ PATH menggunakan perintah ekspor:
export PATH = / data / local / tmp: $ PATH # ini adalah awalan / data / lokal / tmp ke dalam nilai $ PATH yang ada. ekspor akan memastikan bahwa sub-shell melihat nilai yang sama dalam $ PATH
Selesai itu, kini Anda dapat menggunakan find atau utilitas BusyBox / Toybox lainnya dengan cara ini:
adb shell
temukan --help
Perlu dicatat bahwa perubahan dalam $ PATH hanya berlaku untuk sesi shell saat ini. Ini berarti bahwa setiap kali Anda meluncurkan shell menggunakan adb, Anda harus mengekspor $ PATH.
Oleh karena itu, tidak ada solusi Android untuk sesi shell non-interaktif selain menemukan cara untuk membuat variabel yang keberadaan dan nilainya akan bertahan di luar sesi shell saat ini di PC Anda, bukan Android . Contoh:
adb shell $lolcat # $lolcat is a temporary variable in my shell on PC and it was assigned the value /system/xbin/toybox. My bash shell is replacing $lolcat with its value and then passing it to adb shell (or you can say, it first expanded the variable and then executed the whole command)