#The Android Shell
Un „shell” este un program care ascultă intrările de la tastatură de la un utilizator și efectuează acțiuni conform indicațiilor utilizatorului. Dispozitivele Android vin cu un program shell simplu. Acest program shell este în mare parte nedocumentat. Deoarece mulți oameni sunt curioși în legătură cu el, m-am gândit să scriu o documentație pentru el.
Currently this documentation is incomplete, sorry!
##Common problems
Probleme comune
Programul shell încorporat are o gestionare a erorilor foarte limitată. Când tastați incorect numele unei comenzi, va spune „permission denied”, chiar dacă problema reală este că nu a putut găsi comanda:
$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory
#Variabila PATH
Arhiva Android va rula orice program pe care îl găsește în PATH-ul său. PATH este o listă de directoare separate prin două puncte (‘:’). Puteți afla la ce este setat PATH-ul shell-ului dvs. folosind comanda încorporată echo:
$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
În funcție de shell-ul dvs., este posibil să vedeți un rezultat diferit.
#Comandele încorporate
Care shell are câteva comenzi încorporate. Câteva comenzi comune încorporate sunt:
- echo — tipărește text în stdout.
- set — setează variabilele shell-ului
- export — face variabilele shell-ului disponibile pentru programele din linia de comandă
- cd — schimbă directorul curent.
- pwd — tipărește numele directorului curent.
#ComenziPentru a afla ce comenzi aveți la dispoziție, utilizați comanda „ls” pe fiecare dintre directoarele din variabila PATH.
##Finding documentation for the Android commands.
Multe dintre comenzile Android se bazează pe comenzi standard Linux (sau bsd). Dacă sunteți curioși în legătură cu o comandă, uneori puteți afla cum funcționează folosind comanda „man” pe un computer desktop Linux sau OSX (Apple Macintosh). Versiunea Linux sau OSX a comenzii poate fi diferită în detalii, dar o mare parte din documentație se va aplica în continuare la versiunea Android a comenzii.
O altă sursă de documentație pentru persoanele care nu au la îndemână un calculator Linux sau OSX este să folosească un browser web și să utilizeze un motor de căutare web pentru a căuta textul: „man Linux nume-comandă”.
##Lista de comenzi
În cele ce urmează este o listă a comenzilor care sunt prezente pe un telefon Nexus S care rulează un Android 2.3.3 „user-debug” build. Multe dintre aceste comenzi nu sunt prezente pe un telefon „user”. (Ele lipsesc de pe un telefon „user” deoarece sunt specifice dezvoltării sau depanării sistemului de operare Android.)
$ ls /data/local/bin/data/local/bin: No such file or directory
Rețineți că, în mod implicit, nu există un director /data/local/bin. Dacă doriți, puteți crea acest director folosind comanda „mkdir”.
$ ls /sbinopendir failed, Permission denied
Directorul /sbin există, dar nu aveți permisiunea de a-l accesa. Aveți nevoie de acces root. Dacă aveți un telefon de dezvoltator, sau dacă aveți altfel acces root la telefon, puteți vedea ce se află în acest director.
$ su# ls /sbinueventdadbd# exit$
Observați că promptul shell-ului se schimbă de la „$” la „#” pentru a indica faptul că aveți acces root.
Rețineți, de asemenea, că niciuna dintre comenzile /sbin nu este utilă pentru shell – fișierele adb și ueventd sunt programe „daemon” folosite pentru a implementa programul Android Debugger „adb” care este folosit de dezvoltatori.
$ ls /vendor/bingpsdpvrsrvinit
Vendor/bin este locul în care vânzătorii de dispozitive pot pune executabilele specifice dispozitivelor. Aceste fișiere provin dintr-un Nexus S.
$ ls /system/sbin/system/sbin: No such file or directory
Acest director nu există pe un Nexus S.
$ ls /system/binam
am este Android Activity Manager. Este utilizat pentru a porni și opri activitățile Android (de exemplu, aplicații) din linia de comandă. Tastați am de unul singur pentru a obține o listă de opțiuni.
amixaplay
Reproducător de fișiere audio în linie de comandă.
app_processapplypatch
Utilizat pentru a aplica patch-uri fișierelor Android.
arec
Înregistrator audio în linie de comandă.
audioloopbluetoothd
Demon BlueTooth
bmgr
Manager de backup – tastați comanda singură pentru a obține documentația.
bootanimation
Desenează animația de pornire. Este posibil să trebuiască să resetați telefonul pentru a ieși din asta.
brcm_patchram_plusbugreportcat
Copiază conținutul unui fișier pe ieșirea standard.
chmod
Schimbă modul unui fișier (de ex. dacă poate fi citit sau scris.)
chown
Schimbarea proprietarului unui fișier.
cmp
Compararea a două fișiere octet cu octet
dalvikvm
Mașina virtuală dalvik. (Folosită pentru a rula aplicații Android.)
date
Primă data și ora curentă
dbus-daemondd
Convertiți și copiați un fișier. În mod implicit, copiază standard in în standard out.
debuggerddexoptdf
Afișează cât spațiu este liber pe diferite sisteme de fișiere de pe dispozitivul dvs.
dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig
Afișează configurația curentă a interfețelor de rețea (IP, adresă MAC etc)
iftop
Afișează procesele curente care utilizează interfețele de rețea (sus, dar pentru rețele)
imeinputinsmodinstalldioctlioniceiptables
Gestionați firewall-ul
keystorekeystore_clikill
Întoarceți semnale către procese.
linkerln
Utilizat pentru a stabili o legătură între un sistem de fișiere.
loglogcat
Imprimă jurnalul de execuție Android.
logwrapperls
Întocmește fișiere.
lsmodlsofmake_ext4fsmediaservermkdir
Face un director.
monkey
Program care trimite evenimente aleatorii, folosit pentru a testa aplicații. (Ca și cum ar avea o maimuță care se joacă cu aparatul.)
mountmtpdmv
Mută un fișier dintr-un director în altul. (Numai pe același sistem de fișiere. Folosiți „cat a > b” pentru a copia un fișier între sisteme de fișiere.
nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps
Înumeră procesele active.
qemu-propsqemudracoonradiooptionsreboot
Repornește dispozitivul.
recordrenicerildrm
Îndepărtează un fișier.
rmdir
Îndepărtează un director.
rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart
Pornește runtime-ul Android.
stop
Încetează timpul de execuție Android.
surfaceflingersvcsyncsystem_servertctestid3toolboxtop
Afișează ce procese folosesc în prezent cel mai mult timp de procesare.
umountuptime
Înregistrează cât timp a funcționat dispozitivul de când a fost pornit ultima dată.
vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp
Program de copiere securizată. (Folosit pentru a copia fișiere în rețea.)
showmapshowslabsqlite3
Utilizat pentru a administra bazele de date SQLite.
strace
Comandă de urmărire a sistemului – se folosește pentru a vedea ce apeluri de sistem face un program.
su
Pornește un shell cu privilegii de root.
#Versiuni ale Android Shell
- Android 1.0 folosea un shell care nu avea completare de tabulare sau editare a istoricului.
- Android 2.3 a adăugat editarea istoricului. De exemplu, puteți folosi săgețile sus/jos pentru a edita comenzile anterioare.
#Alte shell-uri
#Busybox
Busybox este un program care conține un shell și un set de utilitare pentru linia de comandă. Căutați pe Android Market pentru „Busybox” și ar trebui să găsiți câteva versiuni pe care le puteți instala. Cochilia Busybox include completarea filelor și editarea istoricului. Unele versiuni de Busybox pentru Android nu necesită să vă faceți root pe telefon.
#Utilități Debian
Puteți instala shell-ul și utilitățile Debian complete. (Debian este o distribuție populară de Linux pentru desktop.) Nu cunosc detaliile și este posibil să fie nevoie de un telefon „înrădăcinat”. Încercați o căutare pe internet pentru „Debian Android install”.
#Custom ROMs
Câteva ROM-uri personalizate vin cu propriile lor shell-uri și utilități. Dacă folosiți un ROM personalizat, verificați documentația acestuia pentru a afla ce este disponibil.
.