Vous n'aurez pas besoin de Root pour cela, mais vous pouvez utiliser la fonction pm
soit sur le périphérique à partir d'un terminal, soit via la commande adb :
adb shell pm path com.google.android.gms | awk -F':' '{print $2}
vous donnera le chemin d'accès complet, y compris le nom du fichier. Vous pouvez donc l'utiliser pour transférer l'APK de votre appareil à votre ordinateur :
adb pull $(adb shell pm path com.google.android.gms | awk -F':' '{print $2})
Pour répondre aux autres parties de votre question :
- chaque application a un
*.apk
fichier. Certains peuvent même en avoir plusieurs ("split APKs").
- Trouver l'APK par le nom de l'application (localisé) n'est pas trivial. Il faudrait analyser toute la liste des applications pour obtenir les noms des paquets, les utiliser pour obtenir l'emplacement de l'APK comme décrit ci-dessus, puis utiliser la fonction
aapt
pour extraire et faire correspondre le nom localisé (je n'ai pas encore trouvé si et où Android pourrait stocker cela en dehors de l'APK). aapt
n'est généralement pas présent sur l'appareil.