Köklü Android cihazlar için
Stephen tarafından BusyBox uygulamasını yüklemeyi düşünebilirsiniz . Play Store başına, uygulamanın desteklediği minimum Android sürümü Android 1.6'dır ve iyi güncellenmiş bir uygulamadır. Özünde, yükler busybox içine ikili /system/xbin
ve yerleştirir sembolik sahip olduğu tüm kamu hizmetleri için aynı dizine.
BusyBox nedir (uygulama değil)?
BusyBox, birçok yaygın UNIX yardımcı programının küçük sürümlerini tek bir küçük yürütülebilir dosyada birleştirir. Genellikle GNU dosya klasörlerinde, kabuk klasörlerinde vb. Bulduğunuz yardımcı programların çoğunun yerini alır. BusyBox'taki yardımcı programların tam özellikli GNU kuzenlerinden genellikle daha az seçeneği vardır; ancak, içerilen seçenekler beklenen işlevselliği sağlar ve GNU muadillerine çok benzer davranır. BusyBox herhangi bir küçük veya gömülü sistem için oldukça eksiksiz bir ortam sağlar.
İşte sağladığı hizmetlerin resmi listesi. find
aracı burada bulabilirsiniz.
BusyBox'ın yetkili bir alternatifi Marshmallow sürümünde Toolbox'ın yerini alan Toybox'tur.
Toybox, birçok ortak Linux komut satırı yardımcı programını tek bir BSD lisanslı yürütülebilir dosyada birleştirir. Basit, küçük, hızlı ve makul standartlara uygundur ( POSIX-2008 ve LSB 4.1 ).
İşte toybox'ın desteklediği yardımcı programların resmi listesi. Şu anda BusyBox, Toybox'tan daha fazla aracı destekliyor gibi görünüyor.
Bir uygulamanın Toybox ikili dosyasını yüklemek için var olduğunu düşünmüyorum, bu yüzden cevabımı burada yükleme amacıyla kullanabilirsiniz . Cevabın hem Toybox hem de BusyBox kurulumu için kullanılabileceğini unutmayın . Yalnızca ön koşul ikili dosyaları resmi kaynaklardan indirmektir.
Resmi indirme bağlantıları:
Köklendirilmemiş Android cihazlar için
Tüm Android sürümleri için evrensel bir yaklaşım olup olmadığını bilmiyorum. Bununla birlikte, Android 4.0 ve üstü için BusyBox Install (Root) çalıştığını iddia ediyor. BusyBox ikili ile birlikte gelen bazı terminal uygulamaları olabilir. Şahsen böyle bir terminal uygulamasını test etmedim, ancak en büyük dezavantajı olduğunu anlamak kolaydır: bunları kullanarak herhangi bir veya çok iyi kullanamazsınızadb.
Bununla birlikte, 4.2'nin üzerindeki herhangi bir Android sürümü için (testlerime dayanarak) işe yarayan bir yaklaşım var. kullanıcı /data/local/tmp
tarafından düzenlenebilen bir dizindir shell
. adb shell
cihazdaki uzak kabuğu verir ve aynı kullanıcıyla giriş yapar.
Tek yapmanız gereken BusyBox / Toybox ikili dosyasına koymak /data/local/tmp
ve aynı dizindeki yardımcı programlar için semboller oluşturmaktır. Bunun için aşağıdaki adımları kullanabilirsiniz.
(gerektirir adb PC'de kurulum.)
adb push LOCAL_FILE / data / local / tmp / # LOCAL_FILE dosyasını PC'de toybox / busybox ikili dosyası ile değiştirir
adb kabuğu
chmod 755 / data / local / tmp / FILE # ayarlanan ikili dosyada uygun izni ayarlama. DOSYA'yı ilk adımda ittiğiniz ikili dosyanın adıyla değiştirin. Tek bir kelimeyi tüm küçük harflerle isim olarak kullanmaktır
box = / data / local / tmp / FILE # sonraki adımda kullanım için yerel bir değişken ayarlama. FILE dosyasını uygun şekilde değiştirin
$ kutu | $ box sed 's / \ / \ n / g' | $ box sed '$ d' | okunurken satır; $ box ln -sf / data / local / tmp / FILE / data / local / tmp / $ satırı; done # Tüm yardımcı programları listelemek için $ box tarafından başvurulan ikili dosyayı yürütüyoruz, ardından bir liste oluşturuyoruz ve ardından listedeki her öğe için bir dizinde bir sembolik bağlantı oluşturuyoruz.
Izzy, BusyBox ikili dosyaları için sembolik bağlantılar eklemenin en kolay yolunu önerdi .
adb shell / data / local / tmp / FILE --install -s / data / local / tmp / # FILE dosyasını uygun şekilde değiştirin. --install -s bir dizinde sizin için istenen simgeleri oluşturacaktır. Directory'nin yolu yanındadır.
Tüm bu araçlara artık mutlak yol kullanılarak erişilebilir /data/local/tmp/TOOL
. TOOL'u yardımcı program adıyla değiştirin. Find find komutunun örnek kullanımı:
adb shell /data/local/tmp/find --help
adb shell /data/local/tmp/FILE find --help # alternative way of using a tool
Etkileşimli kabuk oturumları için, export komutunu kullanarak FILE konumunu $ PATH klasörüne ekleyebilirsiniz:
export PATH = / data / local / tmp: $ PATH #, mevcut $ PATH değerine / data / local / tmp önekidir. dışa aktarma, alt kabukların $ PATH değerinde aynı değeri görmesini sağlar
Bunu yaptığınızda, artık find veya başka bir BusyBox / Toybox yardımcı programını şu şekilde kullanabilirsiniz:
adb kabuğu
yardım bulmak
Bu etmektir belirtmek $ PATH değişiklikler yalnızca geçerli kabuk oturumu için geçerlidir. Bu, adb kullanarak her kabuk başlattığınızda $ PATH dışa aktarmanız gerektiği anlamına gelir.
Bununla birlikte, etkileşimi olmayan kabuk oturumları için, varlığı ve değeri Android'de değil, PC'nizdeki geçerli kabuk oturumunun ötesinde kalacak bir değişken oluşturmanın bir yolunu bulmaktan başka, yalnızca Android çözümü yoktur . Misal:
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)