jackpal / Android-Terminal-Emulator

author
6 minutes, 20 seconds Read

#The Android Shell

„Shell“ je program, který naslouchá vstupu z klávesnice od uživatele a provádí akce podle jeho pokynů. Zařízení se systémem Android jsou dodávána s jednoduchým programem shell. Tento program shell je většinou nedokumentovaný. Protože se o něj mnoho lidí zajímá, napadlo mě sepsat k němu dokumentaci.

Currently this documentation is incomplete, sorry!

##Obvyklé problémy

Vestavěný shell má velmi omezené zpracování chyb. Když špatně zadáte název příkazu, řekne „oprávnění odepřeno“, i když skutečný problém spočívá v tom, že příkaz nemohl najít:

$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory

#Proměnná PATH

Povrch Androidu spustí jakýkoli program, který najde ve svém PATH. PATH je seznam adresářů oddělených dvojtečkou (‚:‘). Nastavení PATH vašeho shellu můžete zjistit pomocí vestavěného příkazu echo:

$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

V závislosti na vašem shellu se může zobrazit jiný výsledek.

#Vestavěné příkazy

Každý shell má několik vestavěných příkazů. Některé běžné vestavěné příkazy jsou:

  • echo — vypíše text na stdout.
  • set — nastaví proměnné shellu
  • export — zpřístupní proměnné shellu programům příkazového řádku
  • cd — změní aktuální adresář.
  • pwd — vypíše název aktuálního adresáře.

#PříkazyChcete-li zjistit, jaké příkazy máte k dispozici, použijte příkaz „ls“ pro každý z adresářů v proměnné PATH.

##Nalezení dokumentace k příkazům systému Android.

Mnoho příkazů systému Android vychází ze standardních příkazů systému Linux (nebo bsd). Pokud vás nějaký příkaz zajímá, můžete se někdy dozvědět, jak funguje, pomocí příkazu „man“ na stolním počítači se systémem Linux nebo OSX (Apple Macintosh). Verze příkazu pro Linux nebo OSX se může v detailech lišit, ale většina dokumentace bude stále platit pro verzi příkazu pro Android.

Dalším zdrojem dokumentace pro lidi, kteří nemají po ruce počítač s Linuxem nebo OSX, je použití webového prohlížeče a vyhledání textu pomocí webového vyhledávače: „

##Seznam příkazů

Následující text je seznam příkazů, které jsou přítomny v telefonu Nexus S se systémem Android 2.3.3 „user-debug“. Mnoho z těchto příkazů není v „uživatelském“ telefonu přítomno. (V „uživatelském“ telefonu chybí, protože jsou specifické pro vývoj nebo ladění operačního systému Android.)

$ ls /data/local/bin/data/local/bin: No such file or directory

Všimněte si, že ve výchozím nastavení není adresář /data/local/bin. Pokud chcete, můžete tento adresář vytvořit pomocí příkazu „mkdir“.

$ ls /sbinopendir failed, Permission denied

Adresář /sbin existuje, ale nemáte k němu přístupová práva. Potřebujete práva roota. Pokud máte telefon pro vývojáře nebo jinak máte k telefonu přístup root, můžete se podívat, co je v tomto adresáři.

$ su# ls /sbinueventdadbd# exit$ 

Všimněte si, že se výzva shellu změní z „$“ na „#“, což znamená, že máte přístup root.

Všimněte si také, že ani jeden z příkazů /sbin není pro shell užitečný – soubory adb a ueventd jsou „démonské“ programy používané k implementaci programu Android Debugger „adb“, který používají vývojáři.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin je místo, kam mohou výrobci zařízení umístit spustitelné soubory specifické pro dané zařízení. Tyto soubory pocházejí ze zařízení Nexus S.

$ ls /system/sbin/system/sbin: No such file or directory

Tento adresář v zařízení Nexus S neexistuje.

$ ls /system/binam

am je správce aktivit systému Android. Slouží ke spouštění a ukončování aktivit systému Android (např. aplikací) zpříkazového řádku. Samotným zadáním am získáte seznam možností.

amixaplay

Přehrávač zvukových souborů z příkazového řádku.

app_processapplypatch

Slouží k aplikaci záplat na soubory Android.

arec

Záznamník zvuku z příkazového řádku.

audioloopbluetoothd

Démon BlueTooth

bmgr

Správce zálohování – zadáním příkazu sám získá dokumentaci.

bootanimation

Kreslí bootovací animaci. Možná budete muset telefon resetovat, abyste se z toho dostali.

brcm_patchram_plusbugreportcat

Kopírování obsahu souboru na standardní výstup.

chmod

Změna režimu souboru (např. zda jej lze číst nebo zapisovat).

chown

Změnit vlastníka souboru.

cmp

Porovnat dva soubory bajt po bajtu

dalvikvm

Virtuální stroj dalvik. (Slouží ke spouštění aplikací pro systém Android.)

date

Vytiskne aktuální datum a čas

dbus-daemondd

Konvertuje a kopíruje soubor. Ve výchozím nastavení kopíruje standardní vstup do standardního výstupu.

debuggerddexoptdf

Zobrazuje, kolik místa je volného v různých souborových systémech v zařízení.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Zobrazuje aktuální konfiguraci síťových rozhraní (IP, MAC adresa atd.)

iftop

Zobrazuje aktuální procesy používající síťová rozhraní (nahoře, ale pro sítě)

imeinputinsmodinstalldioctlioniceiptables

Správa firewallu

keystorekeystore_clikill

Posílání signálů procesům.

linkerln

Slouží k nastavení propojení souborového systému.

loglogcat

Vytiskne protokol běhu systému Android.

logwrapperls

Seznam souborů.

lsmodlsofmake_ext4fsmediaservermkdir

Vytvoří adresář.

monkey

Program, který odesílá náhodné události, slouží k testování aplikací. (Jako když si se zařízením hraje opice.)

mountmtpdmv

Přesun souboru z jednoho adresáře do druhého. (Pouze ve stejném souborovém systému. Pro kopírování souboru mezi souborovými systémy použijte příkaz „cat a > b“.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Seznam aktivních procesů.

qemu-propsqemudracoonradiooptionsreboot

Spuštění zařízení.

recordrenicerildrm

Odstranění souboru.

rmdir

Odstranění adresáře.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Spuštění běhu systému Android.

stop

Zastaví běh systému Android.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Zobrazí, které procesy aktuálně využívají nejvíce času procesoru.

umountuptime

Vypíše, jak dlouho je zařízení spuštěno od posledního spuštění.

vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp

Zabezpečení kopírování programu. (Slouží ke kopírování souborů po síti.)

showmapshowslabsqlite3

Slouží ke správě databází SQLite.

strace

Příkaz pro sledování systému – slouží k zjištění, jaká systémová volání program provádí.

su

Spustit shell s právy roota.

#Verze shellu Androidu

  • Android 1.0 používal shell, který neměl doplňování karet ani editaci historie.
  • Android 2.3 přidal editaci historie. Pomocí šipek nahoru/dolů můžete například upravovat předchozí příkazy.

#Další shelly

#Busybox

Busybox je program, který obsahuje shell a sadu nástrojů příkazového řádku. Vyhledejte na Android Marketu „Busybox“ a měli byste najít několik verzí, které si můžete nainstalovat. Součástí shellu Busybox je doplňování karet a editace historie. Některé verze programu Busybox pro Android nevyžadují root telefonu.

#Utility Debianu

Můžete si nainstalovat kompletní shell a utility Debianu. (Debian je populární desktopová distribuce Linuxu.) Podrobnosti neznám a možná to vyžaduje „rootnutý“ telefon. Zkuste na webu vyhledat „Debian Android install“.

#Vlastní ROM

Některé vlastní ROM přicházejí s vlastním shellem a utilitami. Pokud používáte vlastní ROM, podívejte se do její dokumentace a zjistěte, co je k dispozici.

Similar Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.