Lors des changements de téléphones (ou bien uniquement de ROM) il est très pénible de devoir re-générer des secrets pour les OTP de chacun de vos comptes, comme ceux qui pourraient être présents dans les données de votre application Google Authenticator.
Le support de chez Google nous indique gentiment que désactiver et réactiver la double authentification pour chaque compte concerné est la seule méthode; C’est effectivement faux.
La technique que je vais vous présenter ci-dessous permet de récupérer ces données (sauf si l’appareil concerné est chiffré), pour les placer dans un autre (ou dans le même mais restauré par exemple).
Commençons donc par récupérer cette base de données directement sur l’appareil.
Vous aurez besoin d’un terminal, de l’utilitaire ADB, et d’avoir votre téléphone branché et autorisé au debuggage USB sur votre ordinateur.
$ adb root
$ adb pull /data/data/com.google.android.apps.authenticator2/databases/databases
À cet instant, vous pouvez faire un dump de cette base de données et récupérer directement en clair les secrets (pour les recopier à la main sur votre nouvel appareil bien sûr ) !
$ echo "select * from accounts" | sqlite3 databases
Si vous avez retouché au démon ADB concernant votre flashage ou bien pour une autre raison, relancez-le en mode root, et maintenant poussez cette base de données sur votre appareil, APRÈS AVOIR DÉMARRÉ AU MOINS UNE FOIS L’APPLICATION GOOGLE AUTHENTICATOR.
$ adb root
$ adb push databases /data/data/com.google.android.apps.authenticator2/databases/
Une fois ces opérations terminées, veillez à bien supprimer le fichier précédemment récupéré: les données à l’intérieur DOIVENT ÊTRE PROTÉGÉES.