User Tools

Site Tools


doc:appunti:android:cli_app_backup

This is an old revision of the document!


Backup App Android da riga di comando

Un dispositivo Android generalmente installa le applicazioni accedendo al Play Store di Google oppure a store alternativi, come l'ottimo F-Droid dedicato al software libero ed open source.

La app associata allo store gestisce anche gli aggiornamenti in modo più o meno automatico. Questo significa che normalmente una app viene aggiornata disinstallando automaticamente la vecchia versione per sostituirla con quella nuova.

Ci sono molti motivi per cui è possibile pentirsi di un aggiornamento, ad esempio:

  • La nuova versione introduce qualche nuovo bug e gli sviluppatori non sono rapidi nel risolverlo.
  • Aumentano le richieste hardware della app, per cui risulta preferibile eseguire la vecchia versione se il nostro device non è abbastanza performante.
  • Lo sviluppatore ha introdotto delle anti feature che prima non erano presenti, ad esempio ha aggiunto i banner pubblicitari ad una app che ne era priva.

Purtroppo gli store non garantiscono la disponibilità delle vecchie versioni delle app (fortunatamente F-Droid è una eccezione), quindi è consigliabile fare un backup prima di un aggiornamento. Android offre il vantaggio di poter trovare sul filesystem del dispositivo uno o più file apk che contiene tutto il necessario per reinstallare l'app.

La parte complicata è scoprire il percorso del file apk e il nome dell'archivio e la versione del programma.

Le app di backup

Esistono molte app, gratuite e non, che promettono di fare il backup delle app installate in modo più o meno automatico, ma in generale hanno dei difetti, tra cui:

  • Le app gratuite sono spesso infestate da banner pubblicitari.
  • Le app di backup in genere hanno decine di altre funzioni non necessarie e non volute.
  • Non è possibile collegare la procedura di backup con altre azioni, cioè realizzare script utente con procedure di backup.

Backup da riga di comando

Viste le premesse ho cercato una soluzione semplice e da riga di comando, che abbia come unico requisito l'accesso ADB (Android Debug Bridge). Lo script presentato qui è stato provato su un PC GNU/Linux con installato il pacchetto Debian adb.

La procedura si basa in realtà su alcuni comandi eseguibili in una adb shell.

Per ottenere la lista delle app installate:

cmd package list packages -f

in alternativa, se non è presente il comando cmd, si può utilizzare pm:

pm list packages

Per sapere la versione di un pacchetto installato (ad esempio com.android.chrome) si utilizza dumpsys:

dumpsys package com.android.chrome

Per scoprire i file apk installati da una app (potrebbero essere più di uno) si utilizza pm path:

pm path com.android.chrome

Infine per scaricare il file dal dispositivo Android verso il PC si esegue sul PC il comando adb pull:

adb pull /system/app/Chrome/Chrome.apk
doc/appunti/android/cli_app_backup.1571413234.txt.gz · Last modified: 2019/10/18 17:40 by niccolo