Sauvegarde des applications en ligne de commande

Dernière mise à jour : LineageOs15 - Android 9

Ce document indique comment sauvegarder et restaurer, en ligne de commande, les applications installées sur un périphérique Android.

Sommaire


Note : les applications situées dans /data/app peuvent être copiées avec les droits utilisateur, mais les applications sauvegardées sur la carte SD montée en stockage étendu /mnt/expand/UUID/app/ nécessitent les droits root

1 - Sauvegarde & restauration sur PC

$ mkdir bu_apk
$ cd bu_apk

$ adb shell cmd package list packages -3 -f |grep "/data/app"|while read i; do { \
apk_file=$(echo $i |cut -d: -f2 |cut -d= -f1-3); \
apk_name=$(echo $i |cut -d= -f4) ; \
adb pull $apk_file ${apk_name}.apk; }; done
$ for i in $(echo *.apk |sed 's/.apk//g'); do adb uninstall $i;done
$ for i in *.apk; do { echo $i; adb install $i; }; done

Note : si la version que l'on tente de réinstaller et plus ancienne qu'une version présente plus récente, l'installation ne sera pas effectuée

2 - Sauvegarde & restauration sur le périphérique

$ adb shell
$ mkdir /storage/emulated/0/bu_apk
$ cd /storage/emulated/0/apk_bu

$ su
# cmd package list packages -3 -f |while read i; do { \
apk_file=$(echo $i |cut -d: -f2 |cut -d= -f1-3); \
apk_name=$(echo $i |cut -d= -f4); \
cp $apk_file ${apk_name}.apk ; echo "$apk_name recopiée"; }; done

$ ls
com.artifex.mupdf.viewer.app.apk flar2.devcheck.apk
com.aurora.adroid.apk fr.neamar.kiss.apk
com.aurora.store.apk game.puzzle.blockpuzzle.apk
com.booking.apk io.yuka.android.apk
com.flinkapps.safteynet.apk it.pinenuts.linuxnews.apk
....
$ for i in $(echo *.apk |sed 's/.apk//g'); do pm uninstall $i;done
$ pm install *.apk