Como instalar un entorno de desarrollo Android en Fedora Linux (Eclipse, Android ADT y MOTODEV Studio)

Ya hace un tiempo quería escribir un How-To sobre como instalar el entorno de desarrollo Android en Fedora. ¿Que es lo que vamos a instalar? El IDE Eclipse, ADT plugin y el MOTODEV  Studio para agilizar el desarrollo de aplicaciones móviles. Comencemos…

Primero debemos instalar Eclipse en su versión Java Development Tool

yum install eclipse-jdt

Ahora descargamos el Android SDK desde aqui https://developer.android.com/sdk/index.html

Una vez descargado extraemos el contenido del archivo, en nuestro caso lo hacemos en /home/usuario/android-sdk-linux

tar xzf android-sdk.version-linux.tgz

Agregamos el SDK al path del sistema en nuestro profile de Bash para que sea permanente ~/.bash_profile

PATH=$PATH:$HOME/android-sdk-linux:$HOME/android-sdk-linux/tools
export PATH

Si el sistema que estan trabajando es de 64bits antes de continuar instalar los siguientes paquetes de 32bits

yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686

Próximo paso es abrir Eclipse para instalar el plugin ADT. Una vez abierto abrimos el menú Ayuda->Instalar Software. En la nueva ventana hacemos un click en el botón “Añadir…”

Ventana para agregar nuevo software

En el cuadro de dialogo agregamos en nombre “ADT Plugin” en ubicación https://dl-ssl.google.com/android/eclipse/

Antes de continuar es aconsejable tener una cuenta de http://developer.motorola.com/ para poder instalar las imagenes de los dispositivos Motorola y posteriormente instalar el MOTODEV Studio. A continuacion, en Eclipse desplegamos el menú que esta al lado del botón Añadir y seleccionamos el ADT para que empiece el proceso de instalación. Elijan todos los paquetes, acepten las licencias y a esperar la descarga. Cuando termine de descargar e instalar Eclipse pedirá reiniciar para aplicar los cambios. Reiniciamos y continuamos…

Si no hubo ningun problema ya deberian ver en la barra de herramientas los iconos de Android, por lo que ahora hagan un click sobre el icono de Android SDK Manager e instalen los paquetes e imágenes para las versiones de Android que desean programar.

En el caso de que no se encontrar el Android SDK manager ir a Ventana->Preferencias->Android y ahi seleccionar el directorio donde esta el SDK.

El ultimo paso es instalar el MOTODEV Studio. Nos logueamos en http://developer.motorola.com/, nos dirigimos al sitio de descarga de MOTODEV Studio y copiamos el repositorio para poder instalarlo como plugin de Eclipse (al momento de escribir esta entrada la direccion es la siguiente)

https://studio-android.motodevupdate.com/android/4.1/studio

A continuación seguimos los mismos pasos que hicimos para instalar el ADT plugin con la diferencia que en nombre le ponemos MOTODEV Studio y en ubicación la dirección que copiamos recien. Aceptamos y desplegamos el menú seleccionando el repositorio creado. Continuamos con todos los pasos, reiniciamos y deberia estar todo listo!.

En el caso de que encuentre algun error en la instalación del MOTODEV Studio normalmente es por los permisos de algún directorio. En mi caso fallaba la instalación en el directorio /usr/lib64/eclipse/. Esto se soluciona cambiandolos

chmod 777 /usr/lib64/eclipse/

Una vez que esta lista la instalación y antes de reiniciar cambiar los permisos a su estado original

chmod 755 /usr/lib64/eclipse/

Ya con eso estaria todo listo para desarrollar aplicaciones moviles! Cualquier cosa dejen sus opiniones y dudas en los comentarios. Espero que les sirva.

Deja un comentario

Archivado bajo Android, Linux, Tecnología

Linux shell script: Abrir archivos ISOs desde la linea de comando

Con este pequeño script podemos montar una imagen de ISO, BIN, IMG o alguna imagen creada con DD. El script esta bastante comentado por lo que esta demas decir algo aqui.

#!/bin/bash

# mountISO.sh
# Autor Alejandro Amaral - Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License
#---------------------------------------------------------------------------
# Monta una imagen de CD/DVD automaticamente
#---------------------------------------------------------------------------
# Uso: mountISO.sh /home/MiCD.iso

# Nombre del punto de montaje al azar
MOUNT_POINT=$RANDOM

if ! (mount | grep "$1"); then                        #Si la imagen de disco no esta montada

   if [ ! -d /media/$MOUNT_POINT ]; then                 #Si no existe el directorio
      mkdir /media/$MOUNT_POINT                             #crear el punto de montaje
   fi
   echo -n "Montando "
   echo "/media/$MOUNT_POINT"
   mount -t iso9660 -o ro "$1" /media/$MOUNT_POINT       #Montar la imagen
else #La imagen ya esta montada
   echo "El dispositivo ya esta montado!"                #Mostrar mensaje de error
fi

Como siempre, cualquier duda dejen sus comentarios mas abajo.

Deja un comentario

Archivado bajo Comandos, Linux, Tecnología

Programa para evitar el robo de componentes de PCs y notebooks

Diseñamos un programa gratuito que le va a permitir detectar si le cambiaron o robaron componentes de su PC, notebook o netbook cuando la lleva al servicio técnico. Debido a un larga lista de irregularidades que hemos visto por parte de particulares y empresas con muy poca ética decidimos lanzar la primera versión de este programa que le permite conocer información básica de los dispositivos internos mas caros (discos rígidos, memorias, motherboard, placa de vídeo y procesador) y que la gente normalmente no sabe como identificarlos inequivocamente.
¿Como funciona?
Solamente hacer doble click en el icono del programa para iniciarlo y automáticamente muestra en la parte derecha la lista de dispositivos, cada uno con su respectivo tamaño de almacenamiento, su nombre de componente y su numero de serie.
Luego con un click en el icono de guardar (segundo icono parte inferior izquierda) se guarda la configuración actual. Lo ideal es guardar el archivo en un mail o en un pendrive u otro lugar para no ser modificado. Hecho esto se lleva al servicio técnico. Cuando tiene nuevamente su PC, vuelve a abrir el programa y luego hace un click en la lupa para abrir el archivo guardado anteriormente. El programa automáticamente le reporta el estado del sistema. Si usted llevo su PC por un mantenimiento y el técnico no reporto cambio de dispositivos ahora es fácil saber si se cambio la pieza por otra mas vieja o de menor capacidad o directamente si fue robada.
Como todo, el programa no es la panacea, si se informa que el sistema cambio seria sabio pedir una segunda opinión a otro técnico para terminar de confirmar o dar por tierra cualquier sospecha.
Esperamos por el bien suyo y de su bolsillo que el programa sea de utilidad.
El link en MS Skydrive
https://skydrive.live.com/redir?resid=31D776C348599810!415
Descargar el archivo zip, descomprimirlo y hacer doble click en el setup para instalarlo.
Si no lo quieren instalar pueden descargar la carpeta “zerouno” y hacer el click sobre el ejecutable.
Este programa utiliza las librerías .NET Framework 4 que se pueden descargar de https://www.microsoft.com/es-es/download/details.aspx?id=17851
El código del programa es Copyright © 2012 Atribución 2.5 Argentina (CC BY 2.5) de Zerouno.
Pueden copiarlo, modificarlo, venderlo y distribuirlo siempre y cuando de crédito al creador.

Deja un comentario

Archivado bajo Legal, Seguridad, Tecnología

Linux shell script: Conocer el fabricante de la interfaz de red utilizando la dirección MAC

Tiempo que no teniamos una entrada. Pero aqui estamos.

Esta vez traigo un simple script que permite conocer el nombre del fabricante de la interfaz de red ingresando su dirección MAC. El propio script esta comentado por lo que no quiero ser redundante añadiendole mas palabrerio

#!/bin/bash

# mac-id.sh
# Autor Alejandro Amaral - Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License
#---------------------------------------------------------------------------------------------
# Ingresada una direccion MAC devuelve el nombre del fabricante de la interfaz de red
#---------------------------------------------------------------------------------------------
# El script primero chequea que se haya ingresado una direccion MAC con el formato 00-00-00-00-00-00
# o 00:00:00:00:00:00. Si se llama sin ningun argumento sale inmediatamente informando al usuario del
# del error. Una vez hecha la comprobacion del formato, si es incorrecta sale inmediatamente, sino
# se verifica que el archivo con los nombres de los fabricantes este presente (/tmp/oui.txt). En el
# caso de no encontrarse, el archivo es descargado de internet.
# Ya con el archivo guardado localmente se procede a buscar la linea que coincida con los primeros
# 3 bloques hexadecimales. Se informa el resultado en el caso de ser (o no) encontrado el fabricante.
#
# Uso: ./mac-id.sh 00:00:00:00:00:00 

if [ -z $1 ]; then
	echo "Debe ingresar una direccion MAC"
	exit 1
fi

MAC=`echo "$1" | tr '[:lower:]' '[:upper:]' | tr ':' '-' | grep -E "((([0-9]|[A-F]){2})-){5}([0-9]|[A-F]){2}"` > /dev/null 2>&1	#Convierte toda la cadena a mayusculas y chequea que el formato es correcto

if [ -z $MAC ]; then						# Si la variable MAC esta vacia es que el formato es incorreto
	echo "La direccion MAC tiene formato incorrecto"
	exit 1
else								# El formato de la direccion MAC es correcto
	MAC=`echo $MAC | cut -c -8` > /dev/null 2>&1		# Se extraen los primeros 3 bloques hexadecimales (que identifican al fabricante)
	if [ ! -f /tmp/oui.txt ]; then				# Si el archivo con los fabricantes no existe entonces se descarga
		wget -qO - 'http://standards.ieee.org/develop/regauth/oui/oui.txt' > /tmp/oui.txt
	fi

	FABRICANTE=`cat /tmp/oui.txt | grep $MAC | cut -f 3`	# Extraemos la linea donde esta la MAC del archivo de fabricantes

	if [ -z "$FABRICANTE" ]; then				# Informar si no se encontro al fabricante en el archivo
		echo -n $MAC
		echo " no se encontro ningun fabricante"
	else							# Informar cual es el fabricante
		echo -n $MAC " "
		echo $FABRICANTE
	fi
fi

Cualquier problema no duden en preguntar. El script esta bajo una licencia Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License. Pueden hacer lo que quieran siempre que den crédito.

1 comentario

Archivado bajo Linux

Configurar un servidor DHCP en OpenBSD

En unos sencillos pasos podremos tener nuestro robusto servidor OpenBSD corriendo el daemon DHCPD para que nos configure automáticamente los demás dispositivos de nuestra red. Primero que nada ¿que es DHCP?

DHCP (sigla en inglés de Dynamic Host Configuration Protocol – Protocolo de configuración dinámica de host) es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente

OpenBSD por defecto trae instalado el daemon, pero no esta ni activado ni configurado. Para hacerlo primero tenemos que loguearnos como root y luego editar el archivo /etc/dhcpd.conf.

vi /etc/dhcp.conf

Dentro de este archivo vamos a editarlo para que quede mas o menos asi

# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
#

# Network:              192.168.1.0/255.255.255.0
# Domain name:          midominio.com
# Name servers:         8.8.8.8 and 8.8.4.4 (Google Public DNSs)
# Default router:       192.168.1.1
# Addresses:            192.168.1.32 - 192.168.3.127
#
option  domain-name "midominio.com";
option  domain-name-servers 8.8.8.8, 8.8.4.4;

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;

        range 192.168.1.32 192.168.1.127;

Pasemos a explicar un poco el archivo…
option domain-name
Nombre del dominio dentro de la red.
option domain-name-servers
Direcciones de los servidores DNS a utilizar por lo clientes, en este caso usamos los servidores DNS públicos de Google
Por ultimo
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;

range 192.168.1.32 192.168.1.127;

Esto indica que los clientes que están en la red 192.168.1.0/24 van a recibir una dirección de IP entre 192.168.1.32 y 192.168.1.127 y una puerta de enlace predeterminada (default gateway) en 192.168.1.1
Seguidamente debemos editar el archivo /etc/rc.conf.local y agregarle las interfaces de red que van a estar escuchando las solicitudes de configuración de los clientes. El formato es dhcpd_flags=”interfaz”. En nuestro caso la interfaz es nombrada como dc0

echo 'dhcpd_flags="dc0"' >> /etc/rc.conf.local

Solo falta editar /etc/rc.conf para que el daemon se autoinicie en tiempo de booteo, cambiando la linea que dice dhcpd_flags=NO a dhcpd_flags=""
Por ultimo, si se desea iniciar el daemon desde la linea de comando primero hay que crear el archivo /var/db/dhcpd.leases

touch /var/db/dhcpd.leases

y con

dhcpd dc0

iniciamos el daemon.

1 comentario

Archivado bajo OpenBSD

Linux shell script: Enviar el número de IP externa y estado del sistema a una cuenta de email

Seguramente si alguna vez usaste Secure Shell (ssh) te abras encontrado con el inconveniente de saber cual es tu número de IP externa cuando tu ISP te asigna uno dinamicamente. Si el modem se reinicia o se corta el suministro eléctrico o cualquier otro inconveniente es altamente probable que se adquiera otro IP. Con otras tecnologías se utilizan servidores a los cuales se conectan los programas clientes y asi se conoce la dirección. ¿Que pasa cuando no tenemos estos servidores?. ¡Linux/Unix al rescate!. Con este script podremos saber enviar nuestra dirección de IP a una cuenta de email externa hotmail, gmail u otra (teniendo postfix o sendmail debidamente configurado). A continuación el script.

#!/bin/sh

# ip-trace.sh
# Autor Alejandro Amaral - Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License
#---------------------------------------------------------------------------
# Envia el numero de ip externa y un reporte de uso a una casilla de email.
#---------------------------------------------------------------------------
# La función reporte() se encarga de generar un reporte con los datos mas
# relevantes (uso de cpu, quien esta loggeado y las ultimas lineas del
# log de sistema). El script pide al sitio www.showmyip.com la dirección
# externa de ip y el sitio devuelve una pagina de donde es extraída
# para ser almacenada en la variable MYIP. Luego si el archivo REPORT
# no existe entonces es creado y se envía el reporte vía mail. En caso
# de que exista se compara con la ultima dirección solicitada y si son
# iguales no se manda el reporte y así evitar una saturación de mails
# en la casilla. Si no fueran iguales se envía la nueva dirección de ip
# y el reporte. Cada vez que se corre el script se genera una nueva
# entrada en el log del sistema indicando el resultado de la operación.

REPORT=/tmp/report.txt

reporte()
{
  echo $MYIP > $REPORT
  uptime >> $REPORT
  echo -e "\n=========== Logged in ============" >> $REPORT
  last -n 5 >> $REPORT
  echo -e "\n============ last log ============" >> $REPORT
  tail -n 10 /var/log/messages >> $REPORT
  mail -s "$MYIP Report" tu_direccion_de_mail@hotmail.com < $REPORT
  logger iptrace enviado con exito
  return
}
# Adquirir la direccion de IP desde una consulta a www.showmyip.com
MYIP=`wget -qO - www.showmyip.com.ar | grep -Eo -m 1 "[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}"`

if [ ! -f $REPORT ]
then
  touch $REPORT
  reporte
else
  LASTIP=`head -n 1 $REPORT`
  if [ $LASTIP == $MYIP ]
  then
    logger iptrace ip sin cambios
  else
    reporte
  fi
fi

Copiamos el script y lo pegamos en nuestro editor favorito y lo guardamos como ip-trace.sh. Luego le damos los atributos

chmod 754 ip-trace.sh

Ahora solamente necesitamos hacer un trabajo para cron así lo ejecuta regularmente. En este caso que se ejecute cada hora todos los días.

0 0-23 * * * /home/trace-ip.sh

Copiamos y pegamos la linea anterior en tu editor y lo guardamos como trace-ip.cron. Solo tenemos que agregarlo a cron

su -c "cron /home/trace-ip.cron"

Una vez hecho esto y si tenemos postfix o sendmail correctamente configurado podremos recibir la dirección de IP a nuestra casilla de email. Obviamente se puede mejorar, pero como esta, hace bien su trabajo.
Ante cualquier duda no dudes comunicarte (no sin antes revisar los manuales correspondientes :D). Pueden distribuirlo, modificarlo, usarlo de manera comercial o hacer lo que quieran siempre que se le de crédito al autor

Licencia de Creative Commons
ip-trace.sh by Alejandro Amaral is licensed under a Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License.

2 comentarios

Archivado bajo Linux

Command Line Ninja: Como generar un diccionario de passwords

command line ninja

Mediante una serie de comandos y un par de libros descargados de internet podemos generar nuestro propio diccionario de passwords en el idioma que queramos. Como primera medida hay que descargar libros de alguna pagina, en mi caso, baje unos libros en formato txt del sitio http://www.formarse.com.ar/libros_gratis/. En caso de bajarlo en otro formato, copiar todo el texto y pegarlo en cualquier editor de texto y guardarlo como texto plano. Ahora si, vayamos a lo nuestro:

cat libro1.txt libro2.txt libro3.txt | sed -e "s/ /\n/g;s/[[:punct:]]//g" | sort -f | uniq -i > diccionario.txt

La explicación:

con el comando cat concatenamos todos los libros que tengamos a disposición (en este caso 3 pero pueden ser todos los que quieras)

la salida de cat es enviada al editor sed que reemplaza los espacios por saltos de linea y los signos de puntuación por caracteres nulos

luego la salida de sed es direccionada a sort que ordena la lista ignorando mayúsculas y minúsculas

el resultado es procesado por uniq que omite las lineas repetidas también ignorando mayúsculas. Finalmente el resultado es escrito en el archivo diccionario.txt

Deja un comentario

Archivado bajo Comandos, Linux

VMware: Como crear un disco rígido virtual y agregarlo a una maquina desde la linea de comando en Linux

vmware

Continuamos con el uso de VMware desde la linea de comandos en Linux, esta vez, creando un disco rígido virtual y luego agregándolo a una maquina creada anteriormente. El procedimiento es muy fácil.

Primero que nada debemos crear el disco rígido con el comando

vmware-vdiskmanager -c -t 0 -s 50GB -a ide nombre_disco_vmdk

Veamos el comando por partes

-c     Instruye a vmware-vdiskmanager  que cree un disco virtual
-t    Indica que tipo archivo de disco rígido va a crear (0 = expansible (1 solo archivo), 1 = expansible (archivos de 2 GB), 2 = espacio pre-asignado, 3 = espacio pre-asignado (archivos de 2 GB))
-s     Tamaño del disco en MB, GB o TB
-a    Tipo de interfaz del disco (IDE, SCSI, etc)
nombre_disco_vmdk    Nombre del disco rígido

Una vez ejecutado esto, es momento de agregarlo a una maquina virtual. Como primer paso debemos detener las maquinas que estén corriendo con el comando visto anteriormente

vmrun -T ws stop /maquina_virtual.vmx

Ahora solo queda editar el archivo maquina_virtual.vmx. Como medida de precaución hacemos un backup del archivo por si algo sale mal

cp /maquina_virtual.vmx{,.bak}

Listo, ahora comencemos con la edición. Bien podemos hacerlo con tu editor favorito (nano, vi, emacs…) o anexandole 2 lineas al archivo. En nuestro caso vamos a anexarle al archivo

echo -e {"ide1:1.present = \"TRUE\"","\nide1:1.filename = \"nombre_disco_vmdk\""} >> maquina_virtual.vmx

Prestar atención en el caso de los discos IDE, de la posición donde se conecta el dispositivo. En mi caso en el canal 1 (ide1:0) se encuentra el cd-rom por lo que procedí a conectar el disco en el segundo conector del mismo canal(ide1:1).

Deja un comentario

Archivado bajo Comandos, Linux

Como cambiar los passwords desde la linea de comando en Linux/Unix: passwd

¿Queriendo cambiar las contraseñas?. ¡Muy buena idea!. Cambiar los passwords a menudo ayuda a mantener la seguridad del sistema y para esta tarea hay un comando Linux/Unix disponible: su nombre es passwd.

Uso

passwd [opciones] nombre_de_la_cuenta

Este comando es muy fácil de usar, si queremos cambiar la contraseña de la cuenta actual se debe ingresar

passwd

y listo!. Se pide la contraseña antigua, una vez verificada, se pide la contraseña nueva con su verificación correspondiente (el ingreso de contraseñas no tiene eco).

Con respecto a las opciones aquí están

  -k       mantener los tokens de autenticación no vencidos
  -d       borrar la clave para la cuenta named (sólo root)
  -l       bloquear la cuenta named (sólo root)
  -u       desbloquear la cuenta named (sólo root)
  -f      forzar la operación
  -x, --maximum=DIAS      tiempo de vida máximo de la contraseña (sólo root)
  -n, --minimum=DIAS      tiempo mínimo de vida de la contraseña (sólo root)
  -w, --warning=DIAS      número de días antes del vencimiento de la contraseña en que los usuarios reciben las advertencias de vencimiento (sólo root)
  -i, --inactive=DIAS     número de días después de que venció la contraseña en que se deshabilitará la cuenta (sólo root)
  -S, --status            informar el estado de la contraseña en la cuenta named (sólo root)

Ejemplos

passwd -l pepe

Siendo root, bloquea la cuenta “pepe”

passwd -u pepe

Siendo root, desbloquea la cuenta “pepe”

passwd --warning=3 --maximun=60 spiderman

Siendo root, fuerza que el password de la cuenta spiderman venza cada 60 dias y que a su vez 3 dias antes del vencimiento el usuario sea notificado del vencimiento

Deja un comentario

Archivado bajo Comandos, Linux

Comando de Linux/Unix: ls

Este comando sirve para poder listar (ayuda memoria :p) el contenido de los directorios. Seria como el hermano mayor del comando “dir” de DOS/Windows. Su uso es muy sencillo

ls [opciones] [directorio]

Un par de ejemplos:

ls /home/

Muestra el contenido del directorio /home

ls

Muestra el contenido del directorio actual

Bastante simple ¿no?. Ok, veamos algunas opciones:

-a  Muestra archivos ocultos (archivos que comienzan con “.”)

-l  Muestra los archivos en columnas con permisos, dueños, tamaño, etc…

-h  Muestra los tamaños de archivos en formato de lectura mas comprensible añadiéndole una letra, M en caso de megabytes, G gigabytes, etc.

-R  Muestra los archivos en forma recursiva (ingresa a los subdirectorios y muestra también su contenido)

-r  Invierte el orden de listado de archivos

-t  Muestra los archivos ordenados por fecha de modificación

-s  Muestra los archivos ordenados por tamaño

Un par de ejemplos mas

ls -alRhs /home/

Muestra el contenido de todos los archivos, incluidos los ocultos, presentes en /home y sus subdirectorios, ordenados por tamaño y mostrados de forma de fácil lectura

ls -ltr /var/log

Muestra el contenido del directorio /var/log en forma de lista ordenado de manera inversa por fecha de modificación (de mas viejo a mas nuevo)

Deja un comentario

Archivado bajo Comandos, Linux