Start Magazin BusyBox: Was es ist und wie der GNU-Werkzeugkasten auf dein Handy kommt

BusyBox: Was es ist und wie der GNU-Werkzeugkasten auf dein Handy kommt

Bei der Recherche nach einem Beitrag ist mir aufgefallen, dass es viele Artikel auf Android User gibt, die BusyBox einfach so am Rande erwähnen.  Aber einen Grundlagenartikel, der erklärt, was BusyBox überhaupt ist und wie man die App installiert, haben wir bis jetzt nicht veröffentlicht. Das holen wir hiermit nach!

BusyBox oder umgangssprachlich auch „die BusyBox“ ist der Oberbegriff für eine Software, die viele kleine Programme in sich vereint. Meistens wird BusyBox dabei als Embedded-Linux-Lösung oder ähnlich beschrieben, mit Linux hat das Tool aber eigentlich nichts zu tun. Vielmehr handelt es sich bei den integrierten Werkzeugen um alte UNIX- und neuere Linux-Befehle, von denen viele im Zuge der Free-Software-Bewegung entstanden sind. Deshalb werden die Miniprogramme auch als GNU-Utilities oder GNU-Tools bezeichnet. BusyBox ist allerdings nicht mit den GNU Core Utilities komplett identisch.

Wie alles begann…

Falls dich die Story hinter BusyBox, GNU und Linux interessiert, hier ein Crashkurs in Linux-Geschichte, sonst lies einfach beim nächsten Abschnitt weiter. Als Linus Torvalds zur Uni ging, gab es noch (fast) keine PCs. An den meisten Universitäten standen große Computer von Sun, IBM und anderen Firmen auf denen eine bestimmte Version von Unix lief. Unix bedeutete damals in den meisten Fällen „System V“, viele Unis hatten aber auch ihre eigene Unix-Version, sodass es bereits früh zu Kompatibilitätsproblemen und Rechtstreitigkeiten kam. Als Lösung für dieses Problem stellte sich im Nachhinein die Free Software Bewegung heraus. Sie setzte sich dafür ein, freie Programme zu schreiben, und weil es in den frühen 80er Jahren noch keine/kaum Klickibunti-Oberflächen gab, bedeutet hier „Freie Software“ Kommandozeilentools. Allen voran muss hier Richard Stallman erwähnt werden, der mit dem GNU Compiler und dem Editor Emacs zwei Open-Source-Tools entwickelte, über die sich weitere freie Programme entwickeln ließen. Das GNU-Projekt feiert dieses Jahr seinen 30. Geburtstag!

Richard Stallman am Fête de l'Humanité 2014. Foto von Thesupermat, wikimedia.org CC BY-SA 3.0 via Wikimedia Commons
Richard Stallman am Fête de l’Humanité 2014. Foto von Thesupermat, wikimedia.org CC BY-SA 3.0 via Wikimedia Commons

So entstand in den 80er Jahren an den Unis eine Mege nützlicher Software, die quasi nur noch darauf wartete, dass es endlich auch ein freies Betriebssystem gibt. Parallel damit entwickelte sich auch das Internet, so dass das Teilen und Verbreiten von Software(aber auch das Stehlen von Quellcode) immer einfacher wurde. Linus Torvalds programmierte Linux also einfach zur richtigen Zeit, denn genau der Kernel fehlte der GNU-Bewegung von Richard Stallman noch, um ein komplettes freies Betriebssystem entwickeln zu können.  Aus diesem Grund bestehen viele Open-Source-Verfechter bis heute darauf, dass es nicht einfach nur Linux sondern GNU Linux heißt. Neben Stallman gab es aber auch noch viele weitere Programmierer, die an den GNU Utils und freier Software arbeiteten, bevor Linux entstand. Viele von Ihnen beteiligten sich später auch an der Kernel-Entwicklung aktiv.

Worum handelt es sich bei BusyBox?

BusyBox (Projekt Homepage) ist eine Sammlung dieser praktischer UNIX/GNU/Linux-Kommandozeilentools, von denen vielen aus den besten Jahren von Unix und den Anfängen von Linux stammen. Diese kleinen Werkzeuge erlauben den bequemen Zugriff auf Kernfunktionen des Betriebssystems. Jeder, der schon einmal auf der Kommandozeile gearbeitet hat (oder sich noch an das gute alte DOS erinnern kann, wobei die Möglichkeiten von DOS weit hinter denen von BusyBox zurückbleiben), kennt solche Befehle. Zum Beispiel find (nach Dateien suchen), grep (sucht nach Text in Textdateien), gzip (komprimiert Dateien), mkfs (erstellt ein Dateisystem) und viele mehr. Natürlich stammen diese Tools nicht alle aus den Unix-Zeiten, inzwischen gibt es zum Beispiel für das Komprimieren auch bzip, lzma und viele weitere Tools.

Wozu die Sammlung? Unter Unix und Linux ist jeder Befehl für sich quasi ein Programm. Als solches belegt das Programm selbst Speicher und es verfügt auch über eine umfangreiche Dokumentation. Das sind zwar in den meisten Fällen nur ein paar Kilobyte pro Tool, aber da es inzwischen mehrere Hundert solcher praktischer Kommandozeilentools gibt, kommt da schon etwas zusammen (vor allem entpackt auf dem Dateisystem).

In vielen Linux-Basierten Routern kommt eine spezielle Version von BusyBox  zum Einsatz. Symbolfoto, Copyright: ASUS
In vielen Linux-Basierten Routern kommt eine spezielle Version von BusyBox zum Einsatz. Symbolfoto, Copyright: ASUS

Hier setzt BusyBox an: Das Werkzeug vereinigt viele (nicht alle) GNU/UNIX/Linux-Kommandozeilentools in einem einzigen Programm (ein Binary für alle Befehle) und spart somit gerade auf Embedded Geräten mächtig viel Speicherplatz (die komplette BusyBox-Sammlung ist gerade mal rund 1 MByte groß, je nach Architektur plusminus ein paar Kilobyte). Und da Android quasi auch nur eine ganz besondere Art eines Embedded-Linux-Systems ist, gibt es BusyBox natürlich auch für Android. BusyBox besteht zu 100 Prozent aus freier Software, steht somit auch unter einer freien Lizenz (GPLv2). Das bedeutet, dass jeder, der Änderungen an BusyBox vornimmt, diese wieder unter der GPLv2 öffentlich machen muss. Die Lizent verhindert somit, dass sich jemand der freien Software bedient, um daraus ein Closed-Source-System zu machen.

BusyBox ist auf sehr vielen Routern installiert, die auf einem Linux-System basieren. Die Chancen, dass du das Tool benutzt, ohne davon zu wissen, stehen also gar nicht mal so gering…

Wozu kann ich BusyBox benutzen?

Wenn du den Artikel bis hierher gelesen hast, dann hast du vermutlich schon einmal mit der Kommandozeile gearbeitet und verstehst, wie mächtig ein einzelnes Tool für eine bestimmte Aufgabe sein kann. Zum Beispiel kannst du damit alle deine Fotos auf der MicroSD-Karte oder im internen Speicher per Script so umbennen, das sich im Dateinamen auch die aus den EXIF-Informationen gezogenen Geolokationsinfos befinden. Oder du kannst dir im Nu eine Liste aller Dateien anzeigen lassen, die zwischen dem 28. Februar und dem 1. März 2015 verändert wurden und vieles mehr.

Dazu musst du nicht in jedem Fall auf der Kommandozeile arbeiten: Wie unter Linux gibt es auch für Android grafische Oberflächen, die das Potential der BusyBox-Tools auf eine leicht verdauliche Art präsentieren. Wenn du also das nächste Mal über eine App stolperst, die die BusyBox voraussetzt, dann weißt du nun — hoffentlich — warum diese benötigt wird. Die Möglichkeiten sind wirklich endlos, nur deiner Fantasie sind Grenzen gesetzt.

Mit oder ohne root – ja was nun? BusyBox selbst braucht keine Root-Rechte, das Tool ist ja lediglich eine Android-App, die Befehle ausführt. Die meisten Android-Apps, die von BusyBox bzw. einem der vorhandenen Befehle Gebrauch machen, setzen hingegen Root-Rechte und eine BusyBox-Installation mit Root-Rechten voraus. Du kannst BusyBox also entweder systemweit installieren, dann braucht das Tool Root-Rechte, oder lediglich als eigenständige App im Terminalfenster benutzen. Dann bleiben die Möglichkeiten von BusyBox aber recht beschränkt.

Welche App wählen?

Eine Suche nach BusyBox im Play Store liefert ein halbes Dutzend Treffer. Bei allen Apps außer dem BusyBox-Checker handelt es sich um BusyBox-Installationsprogramme. Die App selbst hat also nur den Zweck, das Busybox-Binary auf dein Handy herunterzulanden und an die richtige Stelle im System zu kopieren. Die einzelnen Apps verfügen aber über unterschiedliche Zusatzfähigkeiten. So benötigt die am meisten benutzte App BusyBox Pro von Stephen (Stericson) zwingend Root-Rechte, liefert dafür (in der Pro-Version) ein anzeigenfreies BusyBox-Erlebnis und verfügt auch über die mit Abstand besten Bewertungen und wenige Rechte. Wenn du dir sicher bist, dass du BusyBox willst, dann solltest du diese App wählen und die 1,45 Euro investieren.

Komplett ohne Root-Rechte kommt die App BusyBox Install (No Root) von Burrows Apps aus. Die App setzt aber zusätzlich den Android Terminal Emulator voraus und das Kopieren von Befehlen ist nicht jedermanns Sache. Diese App solltest du nur dann wählen, wenn du BusyBox nur für eine ganz bestimmte Aufgabe einsetzen möchtest, bei der dir das verfügbare Terminal genügt.

BusyBox Install führt das BusyBox-Binary nicht systemweit sondern als Nutzer in einem Terminal aus.
BusyBox Install führt das BusyBox-Binary nicht systemweit sondern als Nutzer in einem Terminal aus.

Etwas in die Jahre gekommen ist der BusyBox Installer von JRummy Apps, der ebenfalls Root-Rechte voraussetzt. Die Anwendung hat seit Juli 2013 kein Update mehr erhalten. Wenn es also keinen bestimmten Grund gibt, warum du genau diese App für die Installation von BusyBox benutzen möchtest, solltest du eine andere wählen.

Der BusyBox-Installer ist schon etwas in die Jahre gekommen, verrichtet seinen Dienst aber weiterhin problemlos.
Der BusyBox-Installer ist schon etwas in die Jahre gekommen, verrichtet seinen Dienst aber weiterhin problemlos.

Mit und ohne Root funktioniert die App BusyBox X  von Robert Nediyakalaparambil. Hier kannst du dich beim Start der App entscheiden, ob du ein Terminal mit den Möglichkeiten der BusyBox-Tools startest oder die UNIX-Werkzeuge systemweit installierst.  Die App ist werbefrei und finanziert sich über Spenden (deshalb die In-App-Kauf-Option). Falls du auf der Suche nach einer Alternative für die App von Stephen bist oder BusyBox ohne Root einsetzen möchtest, dann ist BusyBox X die beste Wahl.

BusyBox X bietet sowohl die Installation mit Root-Rechten als auch ohne.
BusyBox X bietet sowohl die Installation mit Root-Rechten als auch ohne.

Last but not least gibt es noch die Apps Neo BusyBox von Polarbear Software und  BusyBox on Rails von Team Trickser. Erstere sieht zwar dank Material Design toll aus, verlangt aber mehr Rechte als wirklich notwendig und möchte gleich nach der Installation Root-Rechte erhalten. Auch die App-Beschreibung von wegen bester und „most trusted“ BusyBox-Installer ruft alles andere als Vertrauen hervor. Wir empfehlen dir deshalb, um Neo BusyBox einen Bogen zu machen.

Den Newcomer Neo BusyBox können wir nicht unbedingt empfehlen.
Den Newcomer Neo BusyBox können wir nicht unbedingt empfehlen.

BusyBox on Rails ist dann empfehlenswert, wenn du ein Handy mit schreibgeschützter /system Partition benutzt und die BusyBox-Installation über ein Custom Recovery vorgenommen werden muss.

Für welche der Apps du dich entscheidet, liegt an dir. Versuche am besten zuerst mal den bewährten BusyBox-Installer von Stephen (Stericson). Ob BusyBox richtig installiert ist, erfährst du spätestens dann, wenn eine App, die BusyBox benötigt, nicht richtig arbeitet. Alternativ loggst du dich via adb shell auf deinem Smartphone ein und testest die Befehle wie find, grep oder cat. Und wie bei den Root-Apps gibt es auch für BusyBox eine App, die für dich testet, ob mit der Installation alles geklappt hat, den BusyBox-Checker.

Fazit

Bei BusyBox handelt es sich um eine Sammlung von Kommandozeilentools, die ihren Ursprung in der Unix-Zeit haben und über die sich sehr viele spannende Dinge auf dem Android-System anstellen lassen. Wie spannend die Dinge wirklich sind, hängt auch davon ab, ob das eigene Handy/Tablet gerootet ist. Bei den BusyBox-App im Play Store handelt es sich um Apps, die das BusyBox-Binary automatisch herunterladen und installieren. BusyBox selbst ist freie Software und steht unter der GPLv2.

Kommentiere den Artikel

Please enter your comment!
Please enter your name here