Holen Sie sich APK der installierten App

Ich suche nach einer Möglichkeit, die APK-Datei einer installierten Android App OHNE Root-Berechtigung zu extrahieren.

Ich dachte, dass dies unmöglich war, denn alle APK-Dateien für Nicht-System-Apps befinden sich in / data / app, und der Zugriff auf diesen Ordner erfordert root-Berechtigung. Dann habe ich gefunden, dass es zahlreiche Apps in Google Play gibt, die auch auf nicht verwurzelten Geräten Zugriff auf die APK-Dateien haben.

  • Gradle Android Abhängigkeit Produkt Aromen
  • Dichte-spezifische Layouts vs. Größen-spezifische Layouts in Android
  • Problem beim Importieren von Android-Projektarchiven in Eclipse
  • Android-Gerät ID Verwirrung
  • IP-Adresse Textfeld in Android?
  • Leerer Bildschirm kommt vor dem Spritzen
  • Kann mir jemand sagen, wie das möglich ist? Gibt es keine Backup-Apps, die die APK-Dateien ohne Root sichern?

  • Wie man Android Soft KeyBoard programmgesteuert schließt?
  • Wie kann ich einen Countdown-Timer in der Ansicht der Benachrichtigung machen?
  • Float oder Double?
  • Wie bekommt man Android-App für beide Tabletten und pre 11 sdk?
  • Programmieren Sie eine Gruppe in ExpandableListView programmgesteuert
  • "Android Create" -Anruf fehlschlägt in Windows 7 - fehlende JDK
  • 10 Solutions collect form web for “Holen Sie sich APK der installierten App”

    Der Zugriff auf / data / app ist ohne root-Berechtigung möglich. Die Berechtigungen für dieses Verzeichnis sind rwxrwx – x. Berechtigung in einem Verzeichnis ausführen bedeutet, dass Sie darauf zugreifen können, aber es fehlt die Leseberechtigung, so dass Sie keine Auflistung des Inhalts erhalten können – also, um darauf zugreifen zu können, müssen Sie den Namen der Datei kennen, auf die Sie zugreifen werden. Android-Paket-Manager wird Ihnen sagen, den Namen der gespeicherten apk für ein bestimmtes Paket.

    Um dies aus der Befehlszeile zu tun, verwenden Sie die adb shell pm list packages , um die Liste der installierten Pakete zu erhalten und das gewünschte Paket zu finden.

    Mit dem Paketnamen können wir den tatsächlichen Dateinamen und den Standort der APK mit dem adb shell pm path your-package-name .

    Und wenn ich das komplette Verzeichnis adb pull full/directory/of/the.apk , können wir endlich den Adb mit adb pull full/directory/of/the.apk

    Kredit zu @tarn für das Zeigen, dass unter Lollipop, wird der Apk-Pfad /data/app/your-package-name-1/base.apk

    Android hängt eine Sequenznummer an den Paketnamen an, um den endgültigen APK-Dateinamen zu erzeugen (es ist möglich, dass dies mit der Version von Android OS variiert). Die folgende Befehlsfolge arbeitet auf einem nicht verwurzelten Gerät :

    1. Holen Sie sich den vollständigen Pfadnamen der APK-Datei für das gewünschte Paket.

       adb shell pm path com.example.someapp 

      Dies gibt die Ausgabe als: package:/data/app/com.example.someapp-2.apk .

    2. Ziehen Sie die APK-Datei aus dem Android-Gerät in die Entwicklungsbox.

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

    Sie brauchen keine ROOT-Berechtigungen, um die Liste der installierten Apps zu erhalten.

    Sie können es mit android PackageManager machen.

    Unten ist ein kleines Code-Snippet.

     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); } 

    Es gibt eine App auf Google Play Store namens "Apk Extracter". Bei dieser App kannst du die .apk-Datei der installierten App erhalten. Holen Sie sich und genießen Sie!

    Wenn Sie Eclipse für Android-Entwicklung installiert haben:

    • Verwenden Sie Ihr Gerät als Debugging-Gerät. Auf deinem Telefon: Einstellungen> Anwendungen> Entwicklung und Aktivierung von USB-Debugging finden Sie unter http://developer.android.com/tools/device.html
    • In Eclipse öffnen Sie DDMS-Fenster: Fenster> Perspektive öffnen> Andere …> DDMS, siehe http://developer.android.com/tools/debugging/ddms.html
    • Wenn Sie Ihr Gerät nicht sehen können, installieren Sie den USB-Treiber für Ihr Gerät
    • Im mittleren Bereich wählen Sie die Registerkarte "Datei-Explorer" und gehen Sie zu System> app
    • Jetzt können Sie eine oder mehrere Dateien auswählen und dann auf das Symbol "Datei aus dem Gerät ziehen" oben (rechts auf die Registerkarten) klicken.
    • Zielordner auswählen – tada!
    1. Überprüfen Sie die Liste der installierten apk's (nachfolgende Befehl auch den Pfad, wo es installiert ist und Paketname). Adb shell pm list pakete -f
    2. Nennen Sie den Adb-Pull / package_path / Paketname / path_in_pc ( Paketpfad und Paketname kann man von oben Befehl 1)

    Oder du kannst 'Bluetooth File Transfer' von Google Play bekommen und den Home-Ordner auf /system/ einstellen. Dann kannst du sogar zu / gehen.

    Ich habe eine Lösung, Kürzlich habe ich versucht. Aber ich habe festgestellt, dass, wenn Sie apps mit zapya teilen, speichert es .apk Erweiterungen der gleichen Datei im App-Ordner des zapya-Verzeichnisses in Ihrem Gerät, wo Sie die Apk-Datei der App in Ihrem Gerät installiert bekommen können

    List PackageManager.getInstalledApplications () gibt Ihnen eine Liste der installierten Anwendungen und ApplicationInfo.sourceDir ist der Pfad zur .apk-Datei.

     // in oncreate PackageManager pm = getPackageManager(); for (ApplicationInfo app : pm.getInstalledApplications(0)) { Log.d("PackageList", "package: " + app.packageName + ", sourceDir: " + app.sourceDir); } //output is something like D/PackageList(5010): package: com.example.xmlparse, sourceDir: /data/app /com.example.xmlparse-2.apk D/PackageList(5010): package: com.examples.android.calendar, sourceDir: /data/app/com.examples.android.calendar-2.apk D/PackageList(5010): package: com.facebook.katana, sourceDir: /data/app/com.facebook.katana-1.apk D/PackageList(5010): package: com.facebook.samples.profilepicture, sourceDir: /data/app/com.facebook.samples.profilepicture-1.apk D/PackageList(5010): package: com.facebook.samples.sessionlogin, sourceDir: /data/app/com.facebook.samples.sessionlogin-1.apk D/PackageList(5010): package: com.fitworld, sourceDir: /data/app/com.fitworld-2.apk D/PackageList(5010): package: com.flipkart.android, sourceDir: /data/app/com.flipkart.android-1.apk D/PackageList(5010): package: com.fmm.dm, sourceDir: /system/app/FmmDM.apk D/PackageList(5010): package: com.fmm.ds, sourceDir: /system/app/FmmDS.apk 

    Ich habe einen Weg gefunden, den APK-Paketnamen in einem Nicht-Root-Gerät zu erhalten. Es ist nicht so elegant, aber arbeitet die ganze Zeit.

    Schritt 1 : Auf deinem Gerät öffne das Ziel APK

    Schritt 2 : Im PC-cmd-Fenster geben Sie diese Befehle ein:

      adb shell dumpsys activity a > dump.txt 

    Da die Ausgabe dieses Befehls zahlreich ist, wird eine Weiterleitung zu einer Datei empfohlen.

    Schritt 3 : öffne diese dump.txt-Datei mit jedem Editor.

    Für das Gerät befor Android 4.4:
    Der Anfang der Datei würde so aussehen:

     ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Main stack: * TaskRecord{41aa9ed0 #4 A com.tencent.mm U 0} numActivities=1 rootWasReset=true userId=0 affinity=com.tencent.mm intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10600000 cmp=com.tencent.mm/.ui.LauncherUI} realActivity=com.tencent.mm/.ui.LauncherUI askedCompatMode=false lastThumbnail=null lastDescription=null lastActiveTime=19915965 (inactive for 10s) * Hist #9: ActivityRecord{41ba1a30 u0 com.tencent.mm/.ui.LauncherUI} packageName=com.tencent.mm processName=com.tencent.mm 

    Der Paketname ist in der 3. Zeile, com.tencent.mm für dieses Beispiel.

    Für Android 4.4 und höher:
    Der Dumpsys-Ausgang hat sich ein wenig verändert. Versuchen Sie die Suche "Stack # 1", der Paketname wäre sehr dicht unter ihm.

    Auch die Suche "baseDir", finden Sie den vollständigen Pfad der apk-Datei!

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.