#Android Shell
The Android Shell
Kuorella tarkoitetaan ohjelmaa, joka kuuntelee käyttäjän näppäimistösyötteitä ja suorittaa käyttäjän ohjeiden mukaisia toimia. Android-laitteiden mukana tulee yksinkertainen shell-ohjelma. Tämä shell-ohjelma on enimmäkseen dokumentoimaton. Koska monet ovat siitä uteliaita, ajattelin kirjoittaa sille dokumentaatiota.
Currently this documentation is incomplete, sorry!
##Yleisiä ongelmia
Sisäänrakennetussa komentotulkkiohjelmassa on hyvin rajallinen virheenkäsittely. Kun kirjoitat komennon nimen väärin, se sanoo ”permission denied”, vaikka todellinen ongelma on se, että se ei löytänyt komentoa:
$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory
#PATH-muuttuja
Androidin komentotulkki ajaa minkä tahansa ohjelman, jonka se löytää PATH-muuttujasta. PATH on kaksoispisteellä (’:’) erotettu luettelo hakemistoista. Voit selvittää, mikä on komentotulkkisi PATH-asetus, käyttämällä sisäänrakennettua echo-komentoa:
$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
Komennostasi riippuen tulos voi olla erilainen.
#Sisäänrakennetut komennot
Jokaiseen komentotulkkiin on sisäänrakennettu muutamia komentoja. Joitakin yleisiä sisäänrakennettuja komentoja ovat:
- echo — tulostaa tekstiä stdoutiin.
- set — asettaa komentotulkin muuttujia
- export — asettaa komentotulkin muuttujat komentorivillä toimivien ohjelmien käyttöön
- cd — vaihtaa nykyisen hakemiston.
- pwd — tulostaa nykyisen hakemiston nimen.
#KomennotTietääksesi, mitä komentoja sinulla on käytettävissäsi, käytä komentoa ”ls” jokaiselle PATH-muuttujan sisältämälle hakemistolle.
##Dokumentaation löytäminen Android-komennoille.
Monet Android-komennot perustuvat tavallisiin Linux- (tai bsd-) komentoihin. Jos olet utelias jostakin komennosta, voit joskus oppia, miten se toimii käyttämällä ”man”-komentoa Linux- tai OSX-tietokoneen (Apple Macintosh) pöytäkoneessa. Komennon Linux- tai OSX-versio voi olla yksityiskohdiltaan erilainen, mutta suuri osa dokumentaatiosta pätee silti komennon Android-versioon.
Toinen dokumentaatiolähde niille, joilla ei ole Linux- tai OSX-konetta käden ulottuvilla, on käyttää web-selainta ja etsiä tekstiä web-hakukoneella: ”man Linux command-name”.
##Luettelo komennoista
Seuraavassa on luettelo komennoista, jotka ovat läsnä Nexus S -puhelimessa, jossa on Android 2.3.3 ”user-debug” -rakennus. Monet näistä komennoista eivät esiinny ”user”-puhelimessa. (Ne puuttuvat ”user”-puhelimesta, koska ne ovat erityisiä Android-käyttöjärjestelmän kehittämiseen tai virheenkorjaukseen liittyviä.)
$ ls /data/local/bin/data/local/bin: No such file or directory
Huomaa, että oletusarvoisesti /data/local/bin-hakemistoa ei ole. Voit halutessasi luoda tämän hakemiston komennolla ”mkdir”.
$ ls /sbinopendir failed, Permission denied
Hakemisto /sbin on olemassa, mutta sinulla ei ole oikeuksia käyttää sitä. Tarvitset pääkäyttäjän oikeudet. Jos sinulla on kehittäjäpuhelin tai jos sinulla on muuten pääkäyttäjäoikeudet puhelimeesi, voit nähdä, mitä tässä hakemistossa on.
$ su# ls /sbinueventdadbd# exit$
Huomaa, että komentotulkin kehote muuttuu ’$’-merkistä ’#’-merkiksi osoituksena siitä, että sinulla on pääkäyttäjäoikeudet.
Huomaa myös, että kumpikaan /sbin-komennoista ei ole hyödyllinen komentotulkille — adb- ja ueventd-tiedostot ovat ”daemon”-ohjelmia, joita käytetään kehittäjien käyttämän Android Debugger ”adb”-ohjelman toteuttamiseen.
$ ls /vendor/bingpsdpvrsrvinit
Vendor/bin on paikka, johon laitevalmistajat voivat laittaa laitekohtaisia suoritettavia tiedostoja. Nämä tiedostot ovat Nexus S:stä.
$ ls /system/sbin/system/sbin: No such file or directory
Tätä hakemistoa ei ole Nexus S:ssä.
$ ls /system/binam
am on Android Activity Manager. Sitä käytetään Android-toimintojen (esim. sovellusten) käynnistämiseen ja pysäyttämiseen komentoriviltä. Kirjoita am itsessään saadaksesi luettelon vaihtoehdoista.
amixaplay
Komentorivin äänitiedostosoitin.
app_processapplypatch
Käytetään korjausten levittämiseen android-tiedostoihin.
arec
Komentorivin ääninauhuri.
audioloopbluetoothd
BlueTooth daemon
bmgr
Backup manager – kirjoita komento itsestään saadaksesi dokumentaation.
bootanimation
Piirrä käynnistysanimaatio. Saatat joutua nollaamaan puhelimen päästäksesi pois tästä.
brcm_patchram_plusbugreportcat
Kopioi tiedoston sisällön vakiotulosteeseen.
chmod
Vaihda tiedoston tilaa (esim. voiko sitä lukea vai kirjoittaa.)
chown
Muuttaa tiedoston omistajaa.
cmp
Vertailla kahta tiedostoa tavu kerrallaan
dalvikvm
Dalvik-virtuaalikone. (Käytetään Android-sovellusten suorittamiseen.)
date
Tulostaa nykyisen päivämäärän ja kellonajan
dbus-daemondd
Muunntaa ja kopioi tiedoston. Kopioi oletusarvoisesti standard in standard out.
debuggerddexoptdf
Näyttää, kuinka paljon tilaa on vapaana laitteen eri tiedostojärjestelmissä.
dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig
Näyttää verkkoliitäntöjen nykyisen kokoonpanon (IP, MAC-osoite jne.)
iftop
Näyttää nykyiset prosessit, jotka käyttävät verkkoliitäntöjä (ylhäältä, mutta verkoille)
imeinputinsmodinstalldioctlioniceiptables
Palomuurin hallinta
keystorekeystore_clikill
Signaalien lähettäminen prosesseille.
linkerln
Käytetään tiedostojärjestelmän linkin asettamiseen.
loglogcat
Tulostaa Androidin ajolokin.
logwrapperls
Luettelee tiedostoja.
lsmodlsofmake_ext4fsmediaservermkdir
Tee hakemiston.
monkey
Ohjelma, joka lähettää satunnaistapahtumia, käytetään sovellusten testaamiseen. (Kuin apina leikkisi laitteella.)
mountmtpdmv
Siirrä tiedosto hakemistosta toiseen. (Vain samassa tiedostojärjestelmässä. Käytä ”cat a > b” kopioidaksesi tiedoston tiedostojärjestelmien välillä.
nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps
Lista aktiivisista prosesseista.
qemu-propsqemudracoonradiooptionsreboot
Käynnistä laite uudelleen.
recordrenicerildrm
Poista tiedosto.
rmdir
Poista hakemisto.
rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart
Käynnistää Androidin suoritusajan.
stop
Keskeyttää Android-käyttöjärjestelmän.
surfaceflingersvcsyncsystem_servertctestid3toolboxtop
Näyttää, mitkä prosessit käyttävät tällä hetkellä eniten suorittimiaikaa.
umountuptime
Tulostaa, kuinka kauan laite on ollut käynnissä sen viimeisimmän käynnistyksen jälkeen.
vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp
Turvakopiointiohjelma. (Käytetään tiedostojen kopioimiseen verkon yli.)
showmapshowslabsqlite3
Käytetään SQLite-tietokantojen hallinnointiin.
strace
System trace -komento – käyttää nähdäksesi, mitä järjestelmäpuheluita ohjelma tekee.
su
Käynnistää komentotulkin pääkäyttäjän oikeuksilla.
#Androidin komentotulkin versiot
- Android 1.0 käytti komentotulkkia, jossa ei ollut välilehtien täydennystä tai historian muokkausta.
- Android 2.3 lisäsi historian muokkauksen. Voit esimerkiksi käyttää ylös/alas-nuolia edellisten komentojen muokkaamiseen.
#Muut kuoret
#Busybox
Busybox on ohjelma, joka sisältää kuoren ja joukon komentorivin apuohjelmia. Etsi Android Marketista hakusanalla ”Busybox” ja sinun pitäisi löytää joitakin versioita, jotka voit asentaa. Busyboxin komentotulkki sisältää välilehtien täydennyksen ja historian muokkauksen. Jotkin versiot Busyboxista Androidille eivät vaadi puhelimen roottaamista.
#Debianin apuohjelmat
Voit asentaa koko Debianin komentotulkin ja apuohjelmat. (Debian on suosittu työpöytä-Linux-jakelu.) En tiedä yksityiskohtia, ja se saattaa vaatia ”rootatun” puhelimen. Kokeile nettihakua ”Debian Android install”.
#Custom ROMs
Joidenkin custom ROMien mukana tulee omat kuoret ja apuohjelmat. Jos käytät mukautettua ROM:ia, tarkista sen dokumentaatiosta, mitä on saatavilla.