MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Flasheando Nexus One con CyanogenMod 6.1.0-rc1

Seguir los pasos escrupulosamente, no me responsabilizo de posibles daños en tu teléfono. Este proceso es para teléfonos nuevos, si has flasheado alguna ROM antes quizás te sobre algún paso.

 

  1. Descargar herramientas necesarias
    1. Fastboot.
    2. Android SDK (necesitamos el adb)
    3. ROM y Google APPS (ACTUALMENTE update-cm-6.1.0-RC1-N1-signed.zip y gapps-hdpi-20101025-signed.zip)
    4. Radio en versión zip FRF50-radio-4_06_00_12_7.zip
    5. Recovery 1.8.0.1 recovery-RA-nexus-v1.8.0.1-aw.img 
  2. Descomprimimos el zip del fastboot y el SDK (copiar el binario adb de la carpeta tools) y arrancamos el teléfono en modo fastboot (power+trackball)
  3. Desde consola ejecutamos

    	sudo ./fastboot devices	

    (deberá salir un número de serie HTXXXXXXXX y luego la palabra fastboot)
  4. Desbloqueamos el terminal (con esto se pierde la garantía)

    	sudo ./fastboot oem unlock	

    En el teléfono aparece (muy bien explicado lo que estamos haciendo) pulsar Vol Up y después Power para desbloquear.
  5. Ahora volvemos a arrancar en modo fastboot (Power + Trackball) para instalar el recovery

    	sudo ./fastboot flash recovery recovery-RA-nexus-v1.8.0.1-aw.img	
  6. Dejamos que reinicie y volvemos a entrar a fastboot para pasar al BOOTLOADER->RECOVERY (Vol Down y Power) (Recovery se verá en verde)
    Ahora deberíamos ver algo parecido a GRUB con varios menus, tenemos que copiar en la SDCARD la nueva radio

    		sudo ./adb devices (se tiene que ver nuestro teléfono)
    sudo ./adb push FRF50-radio-4_06_00_12_7.zip /sdcard/
    sudo ./adb shell ls /sdcard/*zip (tenemos que ver el archivo que acabamos de copiar)
  7. Desde el teléfono con el trackball bajamos hasta la opción "Flash zip from sdcard", buscamos el zip del radio y pulsamos el trackball para actualizar el radio, cuando termine reiniciamos y volvemos al recovery siguiendo los mismos pasos del punto 6.
  8. Copiamos la ROM de Cyanogen y las Google APPS.

    		sudo ./adb devices (deberíamos ver el teléfono)
    sudo ./adb push update-cm-6.1.0-RC1-N1-signed.zip /sdcard/
    sudo ./adb push gapps-hdpi-20101025-signed.zip /sdcard/
    sudo ./adb shell ls /sdcard/*zip (deben verse estos 2 archivos)
  9. Desde el teléfono vamos al menú "Flash zip from sdcard" e instalamos PRIMERO el zip update-cm-6.1.0-RC1-N1-signed.zip, cuando termine y sin reiniciar el otro gapps-hdpi-20101025-signed.zip.
  10. Antes de reiniciar hacemos wipe (volver a datos de fábrica) desde el menú del teléfono, Wipe -> Wipe data/factory reset, wipe cache, wipe dalvik-cache y reiniciamos. El primer arranque es un poco más largo de lo normal, podemos ver como se van configurando por primera vez las aplicaciones con este comando:

    	sudo ./adb logcat	

 





Mi primer app en android: RsyncDroid

Presento mi nueva aplicación (mejor no mirar el código) para android: RsyncDroid.

Es como si fuese un HolaMundo pero un poco más complejo, pero me ha servido para aprender un poco Java y sobre todo para ver su entorno de desarrollo basado en Eclipse. El debugger (ddms) es la leche y se puede estudiar muy bien lo que va haciendo nuestra aplicación mientras se ejecuta... me ha gustado.

Instalación

Lo primero es conseguir el binario de rsync, he preparado este script (necesita ser root del teléfono)

wget http://adqmisc.googlecode.com/svn/trunk/androidutils/rsync/rsync-3.0.6-arm-softfloat-linux-gnueabi.gz
zcat rsync-3.0.6-arm-softfloat-linux-gnueabi.gz > rsync

./adb push rsync /sdcard/rsyncdroid/rsync
./adb shell mount -o remount,rw /dev/block/mtdblock0 /system
./adb shell "cat /sdcard/rsyncdroid/rsync > /system/bin/rsync"
./adb shell chmod 755 /system/bin/rsync
./adb shell mount -o remount,ro /dev/block/mtdblock0 /system

Ahora instalaremos este apk: rsyncdroid.apk

./adb install -r ~/Desktop/rsyncdroid.apk
401 KB/s (18269 bytes in 0.044s)
    pkg: /data/local/tmp/rsyncdroid.apk
Success

Capturas de pantalla

El programa es muy sencillo, lo que hace es arrancar, parar y ver el estado del proceso rsync, si no existe la configuración usa una base en la que se comparte el contenido de la memoria SD. Es recomendable añadir algo como "hosts allow = xx.xx.xx.xx", para permitir el acceso sólo desde la IP que queramos (man rsyncd.conf).

La primera vez que lo ejecutemos nos pedirá el permiso de root (rsync se ejecuta en un puerto privilegiado).

Script para copia de datos

rsync -Pavz --no-g --no-p --no-numeric-ids \
    htcmagic::sdcard/ --delete /home/mario/htcmagic/backup/

Yo me he hecho un script un poco más complejo para (por la madrugada) hacer ping al teléfono y si está en la wifi de mi red hacer la copia incremental (creando enlaces duros) y borrando las copias de seguirdad que tengan más de 30 días.





Accesorios de mi HTC Magic

Después de gastarme los dineros en eBay por el móvil estuve buscando accesorios útiles ya que este móvil se «zampa» la batería si no andas con cuidado, y este es el resultado después de esperar:

El consumo de batería también se puede mejorar con aplicaciones, la mejor que he encontrado sin duda es PowerManager, de hecho he descargado la versión de pago ($0,99)