adb comandos.pdf
Short Description
Download adb comandos.pdf...
Description
| FOROS | Coméntame algo | Qué es esto | Inicio Elastix
B4A (Basic4Android) Cosas de Windows
App inventor 2 Webs interesantes
Arduino Telecomunicaciones
Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.
B4A en español Juan Antonio Villalpando (BASIC4Android)
Tutorial de B4A Volver al índice del tutorial Return to index tutorial
____________________________ Basic4Android.
10. LINUX en Android.
Tutorial de LINUX en Android Presentación Android es un sistema operativo para teléfonos inteligentes (smartphone), tabletas,... desarrollado inicialmente por Android Inc., esta compañía fue comprada por Google en julio de 2005, de tal manera que Android ahora pertenece a Google. Android está basado en el sistema operativo LINUX. Aquí vamos a ver algunos comandos de LINUX actuando en el Android. A los nuevos usuarios les parecerá antiguo el trabajo con comandos, les recordará a los años 80 y el MSDOS, sin embargo los expertos informáticos de Windows, Linux, CISCO siguen utilizando la configuración del sistema mediante órdenes en el terminal, ya que así logran mayor control sobre el sistema. Vamos a ver, de manera sencilla el resultado de la aplicación de algunos comandos. (Recordamos que estos tutoriales son de iniciación) Primero entramos en el programa Basic4Android / Tools / Run AVD Manager Luego en el Android SDK Manager / Tools / Manage AVDs... Marcamos un AVD Name / y pulsamos Start y luego Launch para abrir un emulador El ejecutable que lanza al terminal (shell) de LINUX es el adb.exe (Android Debug Bridge ) que se encuentra en Windows: C:\Android\androidsdk\platformtools\adb.exe
Para lanzarlo debemos entrar en el Símbolo de sistema de Windows, escribimos: cmd
Nos posicionamos en la carpeta donde de encuentra adb.exe y lanzamos el shell. cd C:\Android\androidsdk\platformtools adb e shell
Sería conveniente poner la ruta en el PATH de Windows C:\Android\androidsdk\platformtools, para poder lanzar el shell de LINUX desde cualquier directorio. Para ello, pulsamos con el botón derecho del ratón Equipo / Propiedades / Configuración avanzada del sistema / Opciones avanzadas / Variables de entorno... / Marcamos donde pone Path y luego pulsamos en Editar... En Valor de variable, al final, añadimos ;C:\Android\androidsdk\platformtools (poner ante de la C punto y coma ;)
Establecer un PATH en Windows
A partir de ahora, cuando entremos en el Símbolo de sistema (cmd) de Windows, solo con escribir adb e shell ya entraríamos en el shell del Android.
___________________________ Ya estamos en el shell de Android, vamos a ver algunos comandos
Comandos del shell de Android ls
Muestra un listado de los archivos y directorios de la carpeta donde te encuentres
ls l
Listado en formato largo
Si comienza por d es un directorio Si comienza por es un archivo Si comienza por l es un enlace blando rwxrwxrwx son los permisos root es el propietario de ese archivo o directorio 12995 es el tamaño en byte que ocupa el archivo.
Fecha y nombre de archivo o directorio. etc > /system/etc significa que etc es un enlace blando (acceso directo) que va a /system/etc
ls R
Listado Recursivo, muestra los archivos y directorios que hay en los subdirectorios. Muestra todo.
cd cd .. cd /
Cambia de directorio Va al directorio anterior Va al directorio raíz
cd /data pwd ls l
Vamos a posicionarnos en el directorio /data Para ver en qué directorio estamos (/data) Vamos a realizar un listado largo para ver lo que hay en data
cd /data mkdir mkdir juanito cd juanito pwd ls l
Estamos en /data mkdir es para crear un directorio. Vamos a crear un directorio dentro de /data llamado juanito Entramos en juanito Veo que estoy en el directorio juanito (/data/juanito) Listamos el interior de juanito
echo Hola echo "Me llamo Juan" > nombre.txt ls l
Repite Hola Creo un archivo llamado nombre.txt y dentro está el texto "Me llamo Juan" Vuelvo a listar para comprobar que se ha creado el archivo nombre.txt
cat nombre.txt
Veo el contenido del archivo nombre.txt (cat es para ver el contenido de un archivo)
ls l > milistado.txt ls l cat milistado.txt
Otra vez hago un listado, pero esta vez no aparece en pantalla, sino que se guarda en el archivo milistado.txt Compruebo que se ha creado milistado.txt Veo el contenido del archivo milistado.txt
cat milistado.txt > /data/listadito
Copio milistado.txt en el directorio /data con el nuevo nombre listadito.
pwd ls l mv nombre.txt yomismo.txt ls l rm yomismo.txt ls l cd .. pwd ls l rm r juanito ls l
Compruebo que estoy en el directorio /data/juanito Otra vez hago un listado largo mv se utiliza cambiar el nombre de un archivo y para mover un archivo de un directorio a otro rm se utiliza para borrar un archivo Vuelvo al directorio /data Compruebo que estoy en /data Hago un listado de /data Borro el directorio juanito ( rm r, se utiliza para borrar directorios)
cp fuente destino
cp se utiliza para copiar un archivo o directorio
cp /system/app/juego.apk /sdcard/juego.apk
ls l /system/app
Listado de los archivos .apk que tenemos en este directorio.
cd / ls lR
Listado de todos los archivos del sistema
ls lR > todo.txt
El listado de todos los archivos del sistema se guarda en el archivo todo.txt
ls lR > /mnt/sdcard/todo.txt
Lo guardamos en la SdCard.
ps kill top
Para ver los procesos que se están ejecutando Mata un proceso que se esté ejecutando, debemos escribir kill y el número PID de proceso. El PID lo vemos con ps Si nos quedamos bloqueados pulsamos las teclas CTRL C y saldremos del adb
df /data df /etc
df muestra el tamaño de un directorio.
date
Para ver la fecha y la hora.
date s aaaaMMdd.hhmmss
Cambiar la fecha date s 20120304.164020 Año 2012, Mes 03, Día 04, Hora 16, Minuto 40, Segundo 20
id sleep 4; date
Identificador, número de usuario. El root es el Administrador, su id=0 Para la ejecución durante 4 segundos y después hace un date.
chown root archivo
Cambia el propietario de un archivo.
alias fechalista='date; ls l'
alias es para hacer macros. Una macro es una palabra que cuando se escribe en el terminal, ejecuta una o varias órdenes. En nuestro caso cuando escribamos fechalista, mostrará la fecha actual y luego realiza un listado largo. El ; es el separador de órdenes.
chmod 777 archivo.txt
Cambia los permisos a un archivo. r permiso de lectura w permiso de escritura x permiso de ejecución para los archivos y de paso para los directorios. Se distingen tres tipos El propietario del archivo El grupo del propietario Todos los demás r w x r w x r w x 4 2 1 4 2 1 4 2 1 La r vale 4 La w vale 2 La x vale 1 Quiero estos permisos rwx rw r Quiero estos permisos 421 42 4 Sumamos 7 6 4 Luego chmod 764 archivo.txt
chmod 777 archivo.txt le pone todos los permisos al archivo.txt > archivo.txt es una forma rápida de crear un archivo vacío. ls l archivo.txt lista solamente el archivo.txt mount
Para ver los dispositivos montados Montar significa asociar un disposito con un directorio En LINUX los dispositivos disponibles están en el directorio /dev mount /dev/dispositivo directorio umount directorio (Para desmontar) A veces queremos hacer unos cambios en un directorio y no se puede conseguir porque está montado en "solo lectura" Para montarlo en "escritura y lectura", escribimos (en este caso es el directorio /system) adb shell mount o remount,rw t yaffs2 /dev/block/mtdblock0 /system En LINUX hay un archivo importante, llamado fstab, en donde están indicados los dispositivos montados y la forma en que se pueden montar. En Android ese archivo se llama vold.fstab y está en el directorio /system/etc, consúltalo para ver donde está montada la SD Card cat /system/etc/vold.fstab
cd /data echo "Soy un dinosaurio" > antiguo.txt ln
ls s
Enlace duro (Un enlace duro es un archivo que puede tener distintos nombres y estar en distitintos directorios, pero sigue siendo el mismo archivo, cuando modificamos uno de ellos estamos modificando todos, porque son el mismo. (En este ejemplo el archivo antiguo.txt y nuevo.txt son el mismo archivo ) ln antiguo.txt nuevo.txt Enlace blando. Es como un acceso directo de Windows. Es otro archivo que cuando lo ejecuto voy al original. (En este ejemplo el archivo nuevos.txt va al antiguo.txt, pero son distintos archivos) ln s antiguo.txt nuevos.txt
ifconfig eth0
Ver la IP y la máscara de red NOTA: conwifi debes escribir ifconfig wlan0
ifconfig wlan0 netstat
Ver qué IPs están conectadas a mi sistema.
ping 127.0.0.1 ping www.google.com
Para ver si tengo conexión conmigo mismo en red. Para ver si tengo conexión con google.com En caso que no puedas salir pulsa CTRL C.
export
Muestra las variables de entorno declaradas
set
Muestra las variables de entorno definidas
type mkdir type cat type rm
Mediante type podemos ver donde se encuentran los comandos, La mayoría se encuentra en: /system/bin/
Las aplicaciones .apk se encuentran en cd /data/app ls l cd /system/app ls l
exit
Salir
Nota importante: Podemos trabajar directamente desde el root si ejecutamos el shell de esta manera: C:\>Users\juan> adb e shell # # mkdir /data/holaamigo o bien podemos poner los comando directamente sin entrar en el prompt del root de esta otra manera: C:\>Users\juan> adb shell mkdir /data/holaamigo
¿Como puedo crear un archivo o un directorio desde Windows al Android? Vamos al Simbolo de sistema de Windows y escribimos: adb e shell mkdir /data/holaamigo
Borrar directorio adb e shell rm r /data/holaamigo Borrar archivo adb e shell rm /data/archivo ¿Cómo puedo pasar un archivo desde Windows al Android? Suponemos en que tenemos C:\hola.txt en Windows y queremos pasarlo al directorio /data del Android. adb e push "C:\hola.txt" "/data" ¿Cómo puedo pasar un archivo desde el Android a Windows? Suponemos en que tenemos /data/hola.txt y queremos pasarlo a nuestros Windows, y además cuando pase el hola.txt se convierta en adios.txt adb e pull "/data/hola.txt" "adios.txt"
¿Cómo instalar una aplicación.apk desde Windows a Android? adb install C:\tetris.apk (para instalarla) o bien adb install r C:\tetris.apk (para reinstalarla) adb uninstall C:\tetris.apk (para desinstalarla) Ayuda C:\Users\juan> adb d 1 shell Para que podamos poner permisos en algunos directorios, por ejemplo el /system hay que remontar la partición y hacerla de lectura y escritura adb remount remonta la partición /system como de escritura (o de solo lectura si anteriormente era de escritura) Montar una partición como lectura y escritura adb shell mount o remount,rw t yaffs2 /dev/block/mtdblock0 /system Remontar una partición como lectura y escritura adb shell remount o remount,rw t yaffs2 /dev/block/mtdblock0 /system Ver Rooting Android http://androiddls.com/wiki/index.php?title=Rooting_Android
Notas: LINUX distingue entre mayúsculas y minúsculas, no es lo mismo carta.txt que Carta.txt En LINUX los archivos no suelen tener extensiones, por ejemplo lo normal sería carta
Si el prompt de LINUX es $ signifca que estamos trabajando como usuario limitado. Si el prompt de LINUX es # signifca que estamos trabajando como root (Administrador). cat archivo1 > archivo2 # Otra forma de copiar Cambiar el prompt PS1='juan> ' Prompt del root PS1='# ' Añadir un nuevo PATH export PATH=/data/busybox:$PATH;
Comandos disponibles Como he comentado anteriormente podemos ver los comandos disponibles... cd /system/bin ls l Observamos que muchos comandos son enlaces a toolbox, es decir, cuando estamos ejecutando el comando date, en realidad date "está dentro" del toolbox. date > toolbox
busybox Hay otra herramienta muy utilizada para ampliar el número de comandos que podemos disponer, esa herramienta se llama busybox. Vamos a instalar busybox (install busybox) Estamos en Windows 1. Entramos en la web de busybox.net Lo normal sería bajar un código fuente (source), descomprimirlo, subirlo al SDK y luego compilarlo con make, pero como podemos tener problemas con el make, así que vamos a bajar el binario. 2. Entramos en la página http://busybox.net/downloads/binaries/1.19.0/ La versión "busyboxi686" funciona en los sistemas operativos de ordenadores de 32bit y 64bit x86. La versión "armv4tl" funciona en la mayoría de los móviles. Esta es la que vamos a utilizar. Así que bajamos la versión armv4tl 3. Supongamos que se ha bajado en nuestra carpeta de Windows C:\Users\juan\Downloads\armv4tl 4. Ahora lo tenemos que subir a nuestro emulador SDK mediante el shell adb. Vamos al Símbolo del sistema de Windows y escribimos: C:\Users\juan>adb e push "C:\Users\juan\Downloads\busyboxarmv4tl" "/data/busybox" Símbolo del sistema de Windows
C:\Users\juan>adb e push "C:\Users\juan\Downloads\busyboxarmv4tl" "/data/busybox"
Esta orden copiará el archivo busyboxarmv4tl en el directorio del SDK /data/busybox (no es necesario crear el directorio busybox, se crea al copiarlo) 5. Entramos en el terminal del SDK mediante adb e shell y escribimos esta órdenes cd /data/busybox pwd ls l chmod 777 busyboxarmv4tl Ahora probamos si funciona ./busyboxarm4tl date Esto lo que hace es ejecutar el comando date que "se encuentra dentro" del busybox ¡Funciona!
¿Qué comandos hemos conseguido al instalar el busybox? Escribes ./busyboxarmv4tl
Hemos ampliado el número de comandos que podemos utilizar. Truco. Vamos a arreglarlo un poco. En principio es un poco latoso tener que escribir un nombre tan largo busyboxarmv4tl así que vamos a cambiarlo por bb alias bb=/data/busybox/busyboxarmv4tl Ahora vamos a poner la dirección /data/busybox en el PATH, para poder ejecutar el busybox fácilmente desde cualquier directorio. export PATH=/data/busybox:$PATH (Esto no hace falta, ya que estoy realizando mediante alias) A partir de ahora podemos utilizar los comando del busybox de esta manera # bb ls l # bb whoami # bb date # bb cd / # bb mkdir midirectorio # bb echo "Hola amigo Juan" > hola.txt
# bb uptime (Tiempo que lleva el sistema encendido) # bb uptime help (Mediante help podemos ver la ayuda del comando) # bb route # bb ls lR | bb more (more se utiliza para parar la salida de información en la pantalla cuando ésta muestra muchas líneas. Es este caso mostrariá Recursivamente en formato largo todos los archivos y directorios contenidos en los subdirectorios y haría paradas cuando se complete la pantalla)(CTRL C para salir) ....... Cada vez que iniciemos el shell mediante adb e shell, debemos escribir: alias bb=/data/busybox/busyboxarmv4tl Esta herramienta Busybox también se puede instalar en nuestro móvil para disponer de más comandos. Comando wget del Busybox Uno de los comandos importante que nos aporta el Busybox es el wget, con él podemos bajar un archivo de Internet, aunque para ello debemos saber la IP del sitio. La IP del sitio la podemos conocer haciendo un ping. Vamos ver... # ping www.iesromerovargas.com Nos saldrá esta es nuestra IP. Ahora vamos a bajar el archivo index.htm que se encuentra en ese sitio. # bb wget "http://92.43.17.39/index.htm" Ya tenemos el archivo index.htm bajado a nuestro ordenador.
Terminal del Android
También podemos llegar al Terminal mediante el menú del móvil. En este caso solo tenemos privilegio de usuario limitado, por eso sale el $ en vez del #
¿Qué es rootear el Android?
Rootear es la posibilidad de utilizar tu Android como # root (Administrador), para poder borrar aplicaciones, instalarlas y tener un mejor control del sistema. Consulta este vídeo
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio. Si continúa navegando consideramos que acepta su uso. Acepto Más información
Rootear el Terminal Emulator del SDK del Android Como acabamos de ver, cuando vamos al Terminal Emulador de nuestro SDK, entramos mediante una cuenta de usuario, esto lo vemos porque el promt es un $. Si escribo un comando restringido como ifconfig eth0 , me saldrá un error indicando que no tengo permiso para ejecutarlo. (NOTA: en wifi sería ifconfig wlan0)
Vamos a rootearlo para poder escribir ese tipo de comandos. (Debe estar funcionando el Emulador SDK) Vamos al Símbolo de sistema de Windows, escribimos adb e shell y entramos en el shell del Android. Una vez dentro escribimos los siguientes comandos: (puedes copiar línea a línea desde aquí, y luego pegarlas en el shell) mount o remount,rw /dev/block/mtdblock1 /data cat /system/bin/sh > /data/su chmod 7755 /data/su
Ahora vamos al Terminal Emulador de nuestro SDK y escribimos: /data/su
Fijate como al escribir /data/su el prompt ha cambiado a # Esto significa que estamos como root. Ahora sí podemos ejecutar eficientemente el comando ifconfig eth0 (NOTA: en wifi sería ifconfig wlan0)
Ejecutar un comando desde el código ' Desde el código de B4A podemos ejecutar comandos del shell ' Este ejemplo necesita la librería Phone Dim Command, Runner As String Dim StdOut, StdErr As StringBuilder Dim Result As Int Dim Ph As Phone StdOut.Initialize StdErr.Initialize Runner = File.Combine(File.DirInternalCache, "runner") Command = File.Combine(File.DirInternalCache, "command") File.WriteString(File.DirInternalCache, "runner", "su
View more...
Comments