jackpal / Android-Terminal-Emulator

author
5 minutes, 49 seconds Read

#The Android Shell

Ett ”skal” är ett program som lyssnar på tangentbordsinmatning från en användare och utför åtgärder enligt användarens anvisningar. Android-enheter levereras med ett enkelt skalprogram. Detta skalprogram är mestadels odokumenterat. Eftersom många är nyfikna på det tänkte jag skriva lite dokumentation för det.

Currently this documentation is incomplete, sorry!

##Gemensamma problem

Det inbyggda skalet har mycket begränsad felhantering. När du skriver ett kommandonamn felaktigt kommer det att säga ”permission denied”, även om det verkliga problemet är att det inte kunde hitta kommandot:

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

#PATH-variabeln

Android-skalet kommer att köra alla program som finns i dess PATH. PATH är en lista med kataloger separerade med kolon (’:’). Du kan ta reda på vad ditt skals PATH är inställt på genom att använda det inbyggda kommandot echo:

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

Beroende på ditt skal kan du få ett annat resultat.

#Inbyggda kommandon

Varje skal har några få inbyggda kommandon. Några vanliga inbyggda kommandon är:

  • echo — skriver ut text till stdout.
  • set — ställer in skalvariabler
  • export — gör skalvariabler tillgängliga för kommandoradsprogram
  • cd — ändrar den aktuella katalogen.
  • pwd — skriver ut namnet på den aktuella katalogen.

#KommandonFör att ta reda på vilka kommandon du har tillgång till använder du kommandot ”ls” på varje katalog i PATH-variabeln.

###Finnande av dokumentation för Android-kommandon.

Många av Android-kommandona är baserade på standardkommandon i Linux (eller bsd). Om du är nyfiken på ett kommando kan du ibland lära dig hur det fungerar genom att använda kommandot ”man” på en stationär Linux- eller OSX-dator (Apple Macintosh). Linux- eller OSX-versionen av kommandot kan skilja sig i detaljer, men mycket av dokumentationen gäller fortfarande för Android-versionen av kommandot.

En annan källa till dokumentation för personer som inte har en Linux- eller OSX-maskin till hands är att använda en webbläsare och använda en webbsökmotor för att söka efter texten: ”man Linux command-name”.

##Lista över kommandon

Nedan följer en lista över de kommandon som finns på en Nexus S-telefon som kör Android 2.3.3.3 ”user-debug” build. Många av dessa kommandon finns inte på en ”user”-telefon. (De saknas på en ”user”-telefon eftersom de är specifika för utveckling eller felsökning av operativsystemet Android.)

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

Bemärk att det som standard inte finns någon /data/local/bin-katalog. Du kan skapa denna katalog med kommandot ”mkdir” om du vill.

$ ls /sbinopendir failed, Permission denied

Katalogen /sbin finns, men du har inte behörighet att komma åt den. Du behöver root-åtkomst. Om du har en utvecklartelefon eller på annat sätt har rotåtkomst till din telefon kan du se vad som finns i den här katalogen.

$ su# ls /sbinueventdadbd# exit$ 

Bemärk att skalprompten ändras från ett ”$” till ett ”#” för att indikera att du har rotåtkomst.

Bemärk också att ingen av kommandona /sbin är användbara för skalet – filerna adb och ueventd är ”daemon”-program som används för att implementera programmet Android Debugger ”adb” som används av utvecklare.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin är den plats där enhetsleverantörer kan lägga enhetsspecifika körbara program. Dessa filer kommer från en Nexus S.

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

Denna katalog finns inte på en Nexus S.

$ ls /system/binam

am är Android Activity Manager. Den används för att starta och stoppa Android-aktiviteter (t.ex. program) från kommandoraden. Skriv am för sig själv för att få en lista med alternativ.

amixaplay

Kommandoradspelare för ljudfiler.

app_processapplypatch

Används för att tillämpa patchar på androidfiler.

arec

Kommandoradspelare för ljudfiler.

audioloopbluetoothd

BlueTooth daemon

bmgr

Backup manager – skriv kommandot självt för att få fram dokumentation.

bootanimation

Ritar upp startanimationen. Du kan behöva nollställa telefonen för att komma ur detta.

brcm_patchram_plusbugreportcat

Kopiera innehållet i en fil till standardutgången.

chmod

Ändra läget för en fil (t.ex. om den kan läsas eller skrivas.)

chown

Ändra ägaren till en fil.

cmp

Genom att jämföra två filer byte för byte

dalvikvm

Dalvik virtual machine. (Används för att köra Android-program.)

date

Utskrift av aktuellt datum och tid

dbus-daemondd

Konvertera och kopiera en fil. Kopierar som standard standard in till standard out.

debuggerddexoptdf

Visar hur mycket utrymme som är ledigt i olika filsystem på enheten.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Visar aktuell konfiguration av nätverksgränssnitt (IP, MAC-adress etc)

iftop

Visar aktuella processer som använder nätverksgränssnitten (överst, men för nätverk)

imeinputinsmodinstalldioctlioniceiptables

Hantera brandväggen

keystorekeystore_clikill

Sänd signaler till processer.

linkerln

Används för att upprätta en filsystemlänk.

loglogcat

Utskrift av Androids körtidslogg.

logwrapperls

Listar upp filer.

lsmodlsofmake_ext4fsmediaservermkdir

Skapa en katalog.

monkey

Ett program som skickar slumpmässiga händelser, används för att testa program. (Som att ha en apa som leker med enheten.)

mountmtpdmv

Förflyttar en fil från en katalog till en annan. (Endast på samma filsystem. Använd ”cat a > b” för att kopiera en fil mellan filsystem.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Lista över aktiva processer.

qemu-propsqemudracoonradiooptionsreboot

Reboota enheten.

recordrenicerildrm

Släpp en fil.

rmdir

Släpp en katalog.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Startar Android-körtiden.

stop

Stoppar Android-körtiden.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Visar vilka processer som för närvarande använder mest CPU-tid.

umountuptime

Utskrift av hur länge enheten har körts sedan den senast startades upp.

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

Säkert kopieringsprogram. (Används för att kopiera filer över nätverket.)

showmapshowslabsqlite3

Används för att administrera SQLite-databaser.

strace

Systemspårningskommando – används för att se vilka systemanrop ett program gör.

su

Starta ett skal med rootprivilegier.

#Versioner av Android Shell

  • Android 1.0 använde ett skal som inte hade någon tabkomplettering eller historieredigering.
  • Android 2.3 lade till historieredigering. Du kan till exempel använda pilarna uppåt/nedåt för att redigera tidigare kommandon.

#Andra skal

#Busybox

Busybox är ett program som innehåller ett skal och en uppsättning kommandoradsverktyg. Sök på Android Market efter ”Busybox” så bör du hitta några versioner som du kan installera. Busybox skal innehåller tabkomplettering och redigering av historik. Vissa versioner av Busybox för Android kräver inte att du rootar telefonen.

#Debians verktyg

Du kan installera hela Debians skal och verktyg. (Debian är en populär Linuxdistribution för skrivbordssystem.) Jag känner inte till detaljerna, och det kan kräva en ”rotad” telefon. Försök att söka på webben efter ”Debian Android install”.

#Anpassade ROMs

En del anpassade ROMs kommer med egna skal och verktyg. Om du använder ett anpassat ROM, kontrollera dess dokumentation för att ta reda på vad som finns tillgängligt.

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.