Před pár měsíci jsme vám v článku Debian v chrootu na Androidu představili aplikaci pro instalaci chroot prostředí do androidích zařízení. Ukázali jsme si, jak dostat do telefonu třeba Debian a co všechno se s ním dá dělat. Dnes se podíváme na něco podobného, přeneseme se mimo chroot a upravíme si androidí systém tak, aby obsahovat nástroje, které známe z běžného linuxového systému.
K tomu použijeme aplikaci BotBrew (homepage), kterou vyvinul Jiang Yio a poskytl ji na Google Play zdarma. Aplikace do vašeho telefonu nainstaluje základní systém s balíčkovacím nástrojem opkg. Díky tomu si pak telefon můžete dovybavit dalšími programy, které jinak v základním systému nejsou. Aplikace běží pouze na architektuře ARM, takže uživatelé běžící na x86 nebo MIPS mají prozatím smůlu. Narazit mohou i uživatelé se správným hardwarem, protože pro bezproblémovou instalaci prostředí je nutné splnit dvě podmínky:
- Rootnutý telefon
- Dostatek volného místa v oblasti s daty (~16 MB)
Pokud obě podmínky splňujete, neměl by BotBrew dělat žádné problémy, ani pokud se rozhodnete nainstalovat pár menších balíčků z repositáře. Jako balíčkovací systém byl zvolen opkg (Open PacKaGe Management), který se používá třeba i ve známé distribuci OpenWRT. Jde o lehký balíčkovací systém napsaný v jazyce C, inspirovaný apt a dpkg z Debianu. Je navržen pro běh na embedded zařízeních, což váš telefon či tablet rozhodně neurazí.
Instalace
Proces instalace stojí trochu na vodě a vyžaduje program busybox. Pro jeho instalaci použijte třeba aplikaci BusyBox, případně její Pro variantu. Můžete zkusit také BusyBox Installer, ale s ním se mi prostředí nainstalovat nepodařilo. Navíc aplikace BusyBox umí busybox i odinstalovat a její vývoj je aktivnější.
Tak jako tak, pokud busybox máte, stačí nainstalovat a spustit BotBrew a kliknout na tlačítko Proceed. Než tak učiníte, zvažte, zda si neuděláte zálohu například přes recovery. BotBrew je sice otestovaný, ale jeho autor nemá šanci vyzkoušet všechny možné scénáře a během instalace může právě na vašem zařízení dojít k problémům, které znefunkční systém.
Máte-li hotovo, objeví se něco podobného jako je na screenshotu níže:
BotBrew standardně instaluje prostředí do /data/botbrew a tuto cestu „binduje“ do /botbrew. Až poté lze celé prostředí přenést na kartu. Přesun může přinést problémy v případě, že provozujete jednoho či více daemonů a rozhodnete se připojit SD kartu jako USB disk někam do počítače. V takovém případě se tyto aplikace a možná i celý systém mohou chovat nepředvídatelně. Čistá instalace nabírá kolem 6 MB, ale třeba instalace kompletního Pythonu vezme dalších 60 MB. Obecně autor doporučuje držet BotBrew prostředí v oblasti s daty, ale samozřejmě to závisí na vašem úsudku a vašich možnostech.
Emulátory terminálu
Prostředí nainstalované přes BotBrew je dostupné pouze přes emulátor terminálu, případně přes nějakého správce skriptů. Pokud chcete BotBrew využít naplno, bez emulátoru se určitě neobejdete. Možností je vícero:
ConnectBot se už pravděpodobně nevyvíjí, ale stále může na některých starších telefonech, nejlépe s hardwarovou klávesnicí, fungovat dobře. Android Terminal Emulator je zdarma a udělá vám dobrou službu i na čistě dotykových zařízeních. Je jednoduchý na ovládání i na konfiguraci. Nejlepší, ale bohužel ne dokonalý, se mi jeví Better Terminal Emulator Pro, který má podle mých zkušeností nejlépe zvládnuté ovládání na dotykovém displeji, dá se do detailu nakonfigurovat a pokud si zrovna nehrajete s BotBrew, oceníte integrovaný busybox.
Něž začnete nainstalované prostředí používat, je potřeba upravit proměnnou PATH, ve které jsou uvedeny cesty k binárkám v systému. Standardně je tam třeba /system/bin nebo /system/xbin, ale protože BotBrew nainstaloval prostředí do /botbrew, je potřeba tam doplnit cestu /botbrew/bin. V Android Terminal Emulator i Better Terminal Emulator Pro se tato proměnná nastavuje téměř shodně v nastavení pod volbou Initial command.
Máte-li emulátor, můžete se pustit do instalace balíčků a trochu si s novými funkcemi pohrát.
Využití
Prostředí BotBrew stojí na balíčcích, které jsou v jeho repositářích k dispozici. Možná chybí plnohodnotné SSH nebo webový server Nginx, ale je tu spousta jiných balíčků, které nabízejí také mnoho zábavy. Všechny programy se instalují z aplikace BotBrew a není potřeba používat opkg přímo z řádky. BotBrew se také dokáže postarat o daemony běžící na pozadí, taktéž ze svého uživatelského rozhraní. Daemony je možné jednotlivě zapínat či vypínat a nebo je možné vypnout/zapnout celý Supervisor, který se o daemony stará.
K dispozici máte třeba:
- Python, Ruby
- nmap, tcpdump. lynx, rsync
- dropbear, lighttpd
- gcc. jamvm (Java Virtual Machine)
- git, subversion
- sqlite3
- vim, nano
S takovouto výbavou spustíte většinu konzolových pythoních/ruby skriptů, kouknete se, co teče po síti, co se schovává v databázi libovolné aplikace, stáhnete si třeba repositář jádra nebo spustíte čistě javový program. Fantazii se meze nekladou a tady se můžete inspirovat:
- Synchronizace vybraných adresářů se vzdáleným serverem
- Synchronizace dat mezi dvěma telefony/tablety
- Analýza vzdálených strojů přes nmap (na toto je lepší použít třeba aplikaci Fing)
- Analýza provozu přes tcpdump
- Kompilace čehokoli co projde přes GCC a má v repositáři potřebné knihovny
- Sdílení vybraných souborů přes webový server
- Provoz dynamických webových stránek (Django, Ruby on Rails)
- Zpřístupnění zařízení přes SSH
.. a nebo třeba komplikované stažené RSS kanálu Roota.
Shrnutí
V porovnání s řešením přes chroot, jaké nabízí Linux Installer, je BotBrew pohodlnější, nezatahuje do systému zbytečné věci a jak instalace, tak použití je jednodušší. Množství programů v repositáři je omezené, ale je možné doplnit repositář vlastní nebo pokud najdete, tak komunitní, a dostat tak další software.