doc:appunti:android:cli_app_backup
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| doc:appunti:android:cli_app_backup [2019/10/18 16:49] – created niccolo | doc:appunti:android:cli_app_backup [2019/10/18 19:02] (current) – niccolo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Backup App Android da riga di comando ====== | ====== Backup App Android da riga di comando ====== | ||
| + | |||
| + | Lo script Python **[[https:// | ||
| + | |||
| + | ===== Perché fare il backup di una app ===== | ||
| + | |||
| + | Un dispositivo Android generalmente installa le applicazioni accedendo al **Play Store di Google** oppure a store alternativi, | ||
| + | |||
| + | Inoltre 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, | ||
| + | |||
| + | * 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' | ||
| + | |||
| + | ===== 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' | ||
| + | |||
| + | Vedi e scarica lo script Python: **[[https:// | ||
| + | |||
| + | La procedura (richiede **Python 3**) si basa in realtà su alcuni comandi eseguibili in una **sessione terminale Android**. Per stabilire la connessione con il dispositivo Android si deve collegare il cavetto USB, abilitare l' | ||
| + | |||
| + | Per ottenere la lista delle **app installate**: | ||
| + | |||
| + | < | ||
| + | cmd package list packages -f | ||
| + | </ | ||
| + | |||
| + | in alternativa, | ||
| + | |||
| + | < | ||
| + | pm list packages | ||
| + | </ | ||
| + | |||
| + | Per sapere la **versione** di un pacchetto installato (ad esempio // | ||
| + | |||
| + | < | ||
| + | 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 / | ||
| + | </ | ||
| + | |||
| + | In generale **non sono richiesti i privilegi di root**. Tuttavia alcune app mettono i file apk in directory non accessibili all' | ||
| + | |||
| + | ===== Web References ===== | ||
| + | |||
| + | * **[[https:// | ||
doc/appunti/android/cli_app_backup.1571410158.txt.gz · Last modified: by niccolo
