#The Android Shell
„Powłoka” jest programem, który słucha wejścia klawiatury od użytkownika i wykonuje działania zgodnie z instrukcjami użytkownika. Urządzenia z Androidem dostarczane są z prostym programem powłoki. Ten program powłoki jest w większości nieudokumentowany. Ponieważ wielu ludzi jest nim zaciekawionych, pomyślałem, że napiszę dla niego trochę dokumentacji.
Currently this documentation is incomplete, sorry!
##Wspólne problemy
Wbudowana powłoka ma bardzo ograniczoną obsługę błędów. Gdy nieprawidłowo wpiszesz nazwę polecenia, powie „odmowa pozwolenia”, nawet jeśli prawdziwym problemem jest to, że nie mogła znaleźć polecenia:
$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory
#Zmienna PATH
Powłoka Androida uruchomi każdy program, który znajdzie w swojej PATH. PATH jest oddzieloną dwukropkiem (’:’) listą katalogów. Możesz dowiedzieć się co PATH twojej powłoki jest ustawione przez użycie wbudowanego polecenia echo:
$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
W zależności od twojej powłoki, możesz zobaczyć inny wynik.
#Wbudowane polecenia
Każda powłoka ma kilka wbudowanych poleceń. Niektóre popularne wbudowane polecenia to:
- echo — wypisuje tekst na stdout.
- set — ustawia zmienne powłoki
- export — udostępnia zmienne powłoki programom wiersza poleceń
- cd — zmienia bieżący katalog.
- pwd — wypisuje nazwę bieżącego katalogu.
#Komendy Aby dowiedzieć się, jakie komendy są dostępne, użyj polecenia „ls” na każdym z katalogów w zmiennej PATH.
#Znajdowanie dokumentacji dla komend Androida.
Wiele komend Androida jest opartych na standardowych komendach Linuksa (lub bsd). Jeśli jesteś ciekaw jakiegoś polecenia, możesz czasem dowiedzieć się, jak ono działa, używając polecenia „man” na stacjonarnym komputerze z systemem Linux lub OSX (Apple Macintosh). Wersja polecenia w systemie Linux lub OSX może różnić się szczegółami, ale duża część dokumentacji nadal będzie miała zastosowanie do wersji polecenia w systemie Android.
Innym źródłem dokumentacji dla osób nieposiadających pod ręką maszyny z systemem Linux lub OSX jest użycie przeglądarki internetowej i użycie wyszukiwarki internetowej do wyszukania tekstu: „man Linux command-name”.
##Lista poleceń
Poniżej znajduje się lista poleceń, które są obecne na telefonie Nexus S z systemem Android 2.3.3 „user-debug” build. Wiele z tych poleceń nie jest obecnych na telefonie „użytkownika”. (Brakuje ich w telefonie „użytkownika”, ponieważ są specyficzne dla rozwijania lub debugowania systemu operacyjnego Android.)
$ ls /data/local/bin/data/local/bin: No such file or directory
Zauważ, że domyślnie nie ma katalogu /data/local/bin. Możesz utworzyć ten katalog za pomocą polecenia „mkdir”, jeśli chcesz.
$ ls /sbinopendir failed, Permission denied
Katalog /sbin istnieje, ale nie masz uprawnień dostępu do niego. Potrzebujesz dostępu roota. Jeśli masz telefon deweloperski lub w inny sposób masz dostęp roota do telefonu, możesz zobaczyć, co jest w tym katalogu.
$ su# ls /sbinueventdadbd# exit$
Zauważ, że znak zachęty powłoki zmienia się z '$’ na '#’, aby wskazać, że masz dostęp roota.
Zauważ także, że żadne z poleceń /sbin nie jest użyteczne dla powłoki — pliki adb i ueventd są programami 'daemon’ używanymi do implementacji programu Android Debugger „adb”, który jest używany przez deweloperów.
$ ls /vendor/bingpsdpvrsrvinit
Vendor/bin jest miejscem, gdzie producenci urządzeń mogą umieścić pliki wykonywalne specyficzne dla urządzenia. Te pliki pochodzą z Nexusa S.
$ ls /system/sbin/system/sbin: No such file or directory
Ten katalog nie istnieje w Nexusie S.
$ ls /system/binam
am to Menedżer aktywności Androida. Jest on używany do uruchamiania i zatrzymywania działań Androida (np. aplikacji) z wiersza poleceń. Wpisz am, aby uzyskać listę opcji.
amixaplay
Odtwarzacz plików audio z wiersza poleceń.
app_processapplypatch
Używany do stosowania poprawek do plików androidowych.
arec
Rejestrator audio z wiersza poleceń.
audioloopbluetoothd
BlueTooth daemon
bmgr
Menedżer kopii zapasowych – wpisz polecenie przez siebie, aby uzyskać dokumentację.
bootanimation
Rysuje animację rozruchu. Być może będziesz musiał zresetować telefon, aby się z tego wydostać.
brcm_patchram_plusbugreportcat
Kopiuje zawartość pliku na standardowe wyjście.
chmod
Zmienia tryb pliku (np. czy można go odczytać lub zapisać.)
chown
Zmień właściciela pliku.
cmp
Porównaj dwa pliki bajt po bajcie
dalvikvm
Maszyna wirtualna Dalvik. (Służy do uruchamiania aplikacji systemu Android.)
date
Wyświetla bieżącą datę i godzinę
dbus-daemondd
Konwertuje i kopiuje plik. Domyślnie kopiuje standard in do standard out.
debuggerddexoptdf
Pokazuje ilość wolnego miejsca w różnych systemach plików na urządzeniu.
dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig
Pokazuje bieżącą konfigurację interfejsów sieciowych (IP, adres MAC itp.)
iftop
Pokazuje bieżące procesy korzystające z interfejsów sieciowych (góra, ale dla sieci)
imeinputinsmodinstalldioctlioniceiptables
Zarządza zaporą sieciową
keystorekeystore_clikill
Wysyła sygnały do procesów.
linkerln
Używany do ustawiania połączenia systemu plików.
loglogcat
Wydrukowuje dziennik systemu Android runtime.
logwrapperls
Listy plików.
lsmodlsofmake_ext4fsmediaservermkdir
Tworzy katalog.
monkey
Program wysyłający losowe zdarzenia, używany do testowania aplikacji. (Jak małpa bawiąca się urządzeniem.)
mountmtpdmv
Przesuń plik z jednego katalogu do drugiego. (Tylko w tym samym systemie plików. Użyj polecenia „cat a > b”, aby skopiować plik między systemami plików.
nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps
Lista aktywnych procesów.
qemu-propsqemudracoonradiooptionsreboot
Reboot urządzenia.
recordrenicerildrm
Usuń plik.
rmdir
Usuń katalog.
rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart
Uruchamia system operacyjny Android.
stop
Zatrzymuje runtime systemu Android.
surfaceflingersvcsyncsystem_servertctestid3toolboxtop
Pokazuje, które procesy aktualnie wykorzystują najwięcej czasu procesora.
umountuptime
Wyświetla, jak długo urządzenie działało od ostatniego uruchomienia.
vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp
Program do bezpiecznego kopiowania. (Służy do kopiowania plików przez sieć.)
showmapshowslabsqlite3
Służy do administrowania bazami danych SQLite.
strace
Komenda śledzenia systemu – służy do sprawdzania, jakie wywołania systemowe wykonuje program.
su
Uruchamia powłokę z uprawnieniami roota.
#Wersje powłoki Androida
- Android 1.0 używał powłoki, która nie miała uzupełniania zakładek ani edycji historii.
- Android 2.3 dodał edycję historii. Możesz na przykład użyć strzałek góra/dół do edycji poprzednich poleceń.
#Inne powłoki
#Busybox
Busybox jest programem, który zawiera powłokę i zestaw narzędzi wiersza poleceń. Poszukaj w Android Market „Busybox” i powinieneś znaleźć kilka wersji, które możesz zainstalować. Powłoka Busybox zawiera uzupełnianie tabulatorów i edycję historii. Niektóre wersje Busybox dla Androida nie wymagają rootowania telefonu.
#Debian utilities
Możesz zainstalować pełną powłokę Debiana i narzędzia. (Debian jest popularną dystrybucją desktopowego Linuksa.) Nie znam szczegółów i może to wymagać „zrootowanego” telefonu. Spróbuj poszukać w sieci „Debian Android install”.
#Niestandardowe ROM-y
Niektóre niestandardowe ROM-y mają swoje własne powłoki i narzędzia. Jeśli używasz niestandardowego ROM-u, sprawdź jego dokumentację, aby dowiedzieć się, co jest dostępne.
.