AppInstaller 1.0

Hola a todos y bienvenidos de nuevo a Átomos y bits. Parece que estamos en la racha de los scripts, y es que, tras el MataProcesos 1.0 hoy quisiera mostraros otro script,  al que he llamado AppInstaller 1.0, que podéis usar todos aquellos que uséis Android (del que ya hemos hablado en una entrada anterior), y que podéis descargar aquí.

No quiero entrar en detalles, pero para aquellos que no lo conozcáis Android es un Sistema Operativo para móviles (en realidad smartphones). En estos móviles podemos instalar infinidad de aplicaciones, por ejemplo desde el Market. Pero claro, todos aquellos a los que nos gusta enredar bastante con nuestros terminales, modificar cosas, probar nuevas configuraciones, nuevas roms… nos encontramos con que el sistema puede volverse inestable y nos toca restaurarlo a sus valores iniciales (lo que comúnmente se denomina hacer un “wipe”). Esto puede resultarnos muy pesado, porque muchas veces el número de aplicaciones que tenemos instaladas es muy elevado y, sobre todo, no queremos perder sus datos ni sus configuraciones. Para ello hay algunas opciones en el Market, como por ejemplo Titanium Backup, una gran aplicación que nos hace copias de seguridad tanto de las aplicaciones como de sus datos.

Sin embargo, puede que a alguno de vosotros os haya pasado, como a mí, que no siempre funciona correctamente. Los backups los crea correctamente, pero a la hora de restaurarlos últimamente no me encuentra ningún backup que restaurar, lo que es curioso, pues he comprobado que las copias se han hecho y están donde deben estar. Me planteé la posibilidad de volver a descargarlas e instalarlas todas una a una, pero enseguida deseché la idea dado su elevado número. Después intenté simplemente instalarlas manualmente, extrayendo las aplicaciones del backup de Titanium Backup, pero tampoco me agradó la idea. Seguía siendo demasiado pesado.  Finalmente, como me gusta automatizar cosas, decidí hacer un proceso automático que cogiese todas las aplicaciones de una carpeta concreta definida por mí y las instalase una a una él solito. Además, si en esa misma carpeta hubiese una subcarpeta con el mismo nombre que la aplicación (su configuración y datos) debería restaurarlos también.

También es conveniente saber que Titanium Backup tiene dos versiones, una gratis y otra de pago. Las dos realizan los backups correctamente. La diferencia está a la hora de restaurar las aplicaciones, pues, mientras que en la de pago el proceso es completamente automático, en la versión gratis debemos ir aceptando manualmente una a una todas las aplicaciones a restaurar, y bueno, ya sabemos lo aburrido y cansado que eso puede llegar a ser…

Por todo ello, he tenido esto en cuenta para que AppInstaller 1.0 sea compatible con los backups resultantes de Titanium Backup, o al menos en parte. Hablaremos de ello más tarde. Posiblemente no sea el proceso de backup más completo, pero a mí me funciona perfectamente y me automatiza todo el proceso. Con una ROM limpita, como recién salida de fábrica, lo ejecuto y… Voilà! Vuelvo a tener todas mis aplicaciones y mis datos (Como he hecho esta misma mañana).

Quiero repetir de nuevo, que esto también lo hace Titanium Backup (la versión de pago), y hasta hace un tiempo a mí me funcionaba correctamente, así que puede que a vosotros no os sirva en absoluto. También quiero aclarar que para que este script funcione se necesita hacer uso de las herramientas “adb” del kit de desarrollo de Android (Android SDK), que es la manera en la que el ordenador puede conectarse al móvil y ejecutar comandos sobre su sistema. Si no sabéis como instalarlo, echadle un ojo a la era del androide 2.0.

Es posible que esta no sea la versión definitiva, ya que una vez puestos intenté, además, que el propio script tuviera la capacidad de realizar él mismo los backups. Y en principio, también lo hace (la versión 2.0), pero no funciona bien en algunos casos y debo dedicarle algo más de atención, por lo que sólo publico la parte que realiza la restauración.

El programa consta principalmente de tres partes, un fichero de líneas de comandos (AppInstaller1.0.cmd), un script en Visual Basic Script (..binAppInstaller.vbs) y la carpeta “Apps” donde pondremos las aplicaciones a restaurar. Adicionalmente se crea un fichero de texto (“..binresultados.txt”) en el que se introducen datos auxiliares intermedios. Este fichero se borra automáticamente al finalizar la ejecución del programa.

Para que todo funcione correctamente, en el fichero “..binAppInstaller.vbs” deberemos configurar algunos parámetros.

DIR=”Apps”

SDK=”C:SDKplatform-tools”

VISIBLE=”NO”

Estos parámetros son:

DIR: es la ruta de la carpeta “Apps” relativa a la carpeta donde se encuentra “AppInstaller1.0.cmd”.

SDK: es la ruta dónde hemos instalado el SDK de Android, en concreto la ruta donde se encuentra el ejecutable “adb.exe”.

VISIBLE: esta opción permite configurar si queremos que se vean o no, los procesos que el programa lleva a cabo en cada caso. Personalmente, recomiendo la opción “NO” , pues en caso contrario se abrirá una ventana por cada proceso de cada aplicación, que, aunque se cerrará también por sí sola, nos impedirá seguir haciendo otras tareas en nuestro ordenador con tranquilidad. En cualquier caso está disponible por si queremos observar con más detalle lo que la aplicación está realizando en cada momento.

Con todo esto, ya podremos ejecutar AppInstaller1.0.cmd. Si lo hacemos veremos la siguiente pantalla:

Pantalla principal de AppInstaller 1.0

Como podemos observar el funcionamiento es bastante simple. Tan sólo deberemos introducir el número correspondiente a la opción deseada. Con la primera opción tan sólo se intentarán instalar las aplicaciones encontradas en “Apps”. Con la segunda opción tan sólo se intentarán restaurar sus datos.  Sobra decir que esta opción es útil únicamente si las aplicaciones estaban instaladas con anterioridad. La tercera opción nos permitirá instalar las aplicaciones a la vez que se restauran sus datos, en el caso de que los tenga.

Es importante destacar que para que todas las aplicaciones de las que se han restaurado datos funcionen correctamente el script necesita restaurar sus permisos necesarios. Para ello se ayuda de un script conocido como “fix_permissions”, que algunos ya conoceréis. En mi caso tengo instalada una rom de Cyanogen (CM 6.1) que lleva incorporado dicho script. Si vuestra rom no lo lleva incluido de serie, supongo que no hay ningún problema en modificar AppInstaller 1.0 para indicarle manualmente dónde se encuentra “fix_permissions” (deberíais incluir dicho script a mano en vuestro terminal).

Al finalizar, el programa nos mostrará un resumen de las acciones realizadas.

Resumen de las acciones realizadas por AppInstaller 1.0

Por último, dado que se necesitan restaurar los permisos (mediante “fix_permissions”) será necesario reiniciar el terminal. Una vez hecho esto ya dispondremos de nuestras aplicaciones tal  y como estaban cuando realizamos el último backup.

Como he dicho anteriormente, mi idea fue hacerlo compatible con Titanium Backup, de manera que se pudieran restaurar cómodamente los backups hechos con esta aplicación.  Pero para poder restaurarlos necesitaremos reorganizar un poco estos backups. Veamos cómo.

Lo primero que haremos será copiar en la carpeta Apps de nuestro ordenador el contenido de la carpeta “TitaniumBackup” que encontraremos en la SD de nuestro terminal. A continuación borraremos los ficheros *.properties, que no necesitaremos. Seguidamente seleccionaremos todos los ficheros *.apk.gz (Organizar -> Seleccionar todo) y (con winrar instalado) mediante botón derecho del ratón seleccionaremos “Extraer aquí”.

Selección de ficheros APK

Por último, y de la misma forma, seleccionaremos todos los ficheros *.tar.gz y mediante botón derecho del ratón seleccionaremos “Extraer cada archivo en carpetas separadas”. De esta manera tendremos, dentro de la carpeta Apps, todos los ficheros *.apk (instaladores de los programas)  y una subcarpeta por cada aplicación con su mismo nombre (datos de los programas).

Selección de los datos de las aplicaciones.

Como último apunte os diré que también es posible utilizarlo para instalar aplicaciones sin que provengan de Titanium Backup, tan sólo necesitamos tener sus correspondientes .apks y seguir el mismo procedimiento (sin tener en cuenta sus datos, por supuesto).

Al comienzo lo utilizaba creando “lotes” de carpetas categorizando por contenido. En concreto, la idea principal era hacer una carpeta de aplicaciones básicas o indispensables que pudiera ejecutar tras hacer wipe. Puede seguir siendo buena idea, tan sólo habría que ir modificando los nombres de las carpetas.

Pues nada, ahí lo tenéis, quizá nadie lo use nunca (yo ya lo he usado unas cuantas veces) pero si puede serle de alguna utilidad a alguien en algún momento habrá merecido la pena publicarlo.  Por supuesto está a vuestra libre disposición, podéis descargarlo e incluso modificarlo según vuestros intereses, pero si que me gustaría pediros que siempre nos hagáis referencia, citando al autor original y la web o bien con un enlace para que otros lo puedan descargar desde aquí.

¡Hasta pronto!

2 Comments

  • ÓsQar dice:

    Muy interesante, pero tengo una pregunta… ¿Restaura únicamente aplicación y datos o, igual que hace (o debería hacer Titanium), restaura también el enlace con el Market?
    Esto me interesa bastante, ya que me gusta que el Market me avise de las actualizaciones de las aplicaciones que tengo y si al restaurar el backup no se restaura el link, lo pierdo.
    Gracias

  • Sheldon dice:

    OsQar,

    disculpa que no haya contestado antes, pero por alguna razón tu comentario se fue a la bandeja de spam y no lo había visto… En cuanto a tu pregunta, no está implementada la restauración de los enlaces del Market. Por lo que yo sé, al actualizar alguna de las aplicaciones del market (instalar, actualizar o desinstalar) tu terminal debería automáticamente refrescar la lista de aplicaciones instaladas, aunque creo que puede tardar un tiempo en refrescarla. No te lo puedo asegurar porque intento reproducirlo y no lo hace inmediatamente, pero estoy bastante convencido de que me ha pasado más veces.

    Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.