228 votes

Obtenez de l'APK de l'application installée

Je suis à la recherche d'une possibilité d'extraire les fichiers apk de une fois installé, l'application android SANS root autorisation. Jusqu'à ce que 5 min et il y a, je pensais que ce n'est pas possible, puisque tous les app apk sont situés dans /data/app (système et applications) et l'accès à ce dossier est seulement possible avec de la racine de l'autorisation.

Ensuite, j'ai trouvé le virus.total de l'application Android dans le google play store (https://play.google.com/store/apps/details?id=com.virustotal) et ils semblent avoir accès à la apk non enraciné appareils.

Quelqu'un peut-il me dire comment est-ce possible ? Ne sont pas là, les applications de sauvegarde qui sauvegarde les apk sans racine ???

Merci beaucoup

434voto

mah Points 21457

Accès /data/app est possible sans la racine de l'autorisation; les autorisations sur le répertoire sont rwxrwx-x. Autorisation d'exécution sur un répertoire signifie que vous pouvez accéder, mais le manque de l'autorisation de lecture signifie que vous ne pouvez pas obtenir une liste de son contenu -- alors, pour y accéder, vous devez connaître le nom du fichier que vous aurez accès. Android package manager va vous dire le nom de la stockées apk pour un paquet donné.

Pour ce faire, à partir de la ligne de commande, utilisez adb shell pm list packages pour obtenir la liste des paquets installés, choisissez le forfait désiré, ajouter -1.apk , et retirez - /data/app. Exemple: Si le nom du package est - org.mozilla.firefox, utilisez adb pull /data/app/org.mozilla.firefox-1.apk.

61voto

Yojimbo Points 3819

Android ajoute un numéro de séquence pour le nom du paquet à produire la version finale du fichier APK nom (il est possible que cela varie en fonction de la version de l'OS Android). La séquence de commandes suivante est ce qui a fonctionné pour moi sur un non-dispositif enracinée:

1) Obtenir le chemin d'accès complet vers le fichier APK pour le forfait désiré.

adb shell pm path com.example.someapp

la sortie a été: paquet:/data/app/com.exemple.someapp-2.apk

2) Tirez le fichier APK de l'appareil Android pour le développement de la zone.

adb pull /data/app/com.example.someapp-2.apk

24voto

Sagar Waghmare Points 2150

Vous n'avez pas besoin de permissions ROOT pour obtenir la liste des Applications Installées.

Vous pouvez le faire avec android PackageManager.

Ci-dessous, un petit extrait de code.

final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages =  pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package :" + packageInfo.packageName);
    Log.d(TAG, "Apk file path:" + packageInfo.sourceDir);
}

6voto

anon Points 61

Lorsque vous avez Eclipse pour Android de développement installé:

  • Utiliser votre appareil comme le débogage de l'appareil. Sur votre téléphone: Paramètres > Applications > Développement et activer le débogage USB, voir http://developer.android.com/tools/device.html
  • Dans Eclipse, ouvrez DDMS-fenêtre: fenêtre > Ouvrir la Perspective > Autres... > DDMS, voir http://developer.android.com/tools/debugging/ddms.html
  • Si vous ne pouvez pas voir votre appareil, essayez de (ré)installation de USB-Pilote pour votre appareil
  • Dans le volet du milieu sélectionnez l'onglet "Explorateur de Fichiers" et allez à système > app
  • Maintenant, vous pouvez sélectionner un ou plusieurs fichiers, puis cliquez sur "Extraire un fichier à partir de l'appareil" icône en haut (à droite pour les onglets)
  • Sélectionnez le dossier cible, tada!

5voto

Faizan hussain Points 21

Il y a une appli sur le play store de Google nommé "Apk extracter". Par cette application, vous pouvez obtenir .fichier apk de l'application installée. Obtenir et profitez-en!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X