Wie bekomme ich die apk-Datei von einem Android-Gerät? Oder wie übertrage ich die APK-Datei vom Gerät auf das System?
Verwenden Sie adb . Mit adb pull können Sie Dateien von Ihrem Gerät auf Ihr System kopieren, wenn das Gerät über USB angeschlossen ist.
Natürlich benötigen Sie auch die richtigen Berechtigungen, um auf das Verzeichnis zuzugreifen, in dem sich Ihre Datei befindet. Wenn nicht, müssen Sie zuerst das Gerät rooten.
Wenn Sie feststellen, dass viele der APKs den Namen "base.apk" haben, können Sie mit diesem einzeiligen Befehl auch alle APKs von einem Telefon abrufen, auf das Sie zugreifen können, während Sie alle "base.apk" -Namen in den Paketnamen umbenennen. Dies behebt auch das Problem mit dem nicht gefundenen Verzeichnis für APK-Pfade mit scheinbar zufälligen Zeichen nach dem Namen:
for i in $(adb shell pm list packages | awk -F':' '{print $2}'); do adb pull "$(adb shell pm path $i | awk -F':' '{print $2}')"; mv base.apk $i.apk 2&> /dev/null ;done
Wenn Sie "adb: error: Remote-Objekt konnte nicht angegeben werden" erhalten, bedeutet dies, dass Sie nicht über die erforderlichen Berechtigungen verfügen. Ich habe dies auf einem nicht verwurzelten Moto Z2 ausgeführt und konnte ALLE APKs herunterladen, die ich nicht deinstalliert habe (siehe unten), außer Youtube.
adb shell pm uninstall --user 0 com.android.cellbroadcastreceiver <--- kills presidential alert app!
Dies ist eine Möglichkeit zum Entfernen / Deinstallieren (nicht vom Telefon, da es mit dem Zurücksetzen auf die Werkseinstellungen wiederhergestellt wird ). Fast JEDE App OHNE Root, EINSCHLIESSLICH System-Apps (Hinweis auf die nervige Update-App, die Ihr Telefon aktualisiert Linie es oder nicht kann durch Greifen nach "ccc" gefunden werden)
adb shell pm list packages
und den vollständigen Pfadadb shell pm path your.package.name
dann von Ihrem PC aus betrachten, können Sie einfachadb pull /full/path/to/your.apk
Keiner dieser Vorschläge hat bei mir funktioniert, da Android eine Sequenznummer an den Paketnamen anhängte, um den endgültigen APK-Dateinamen zu erstellen. Bei neueren Versionen von Android (Oreo und Pie) wird eine unvorhersehbare zufällige Zeichenfolge angehängt. Die folgende Befehlsfolge hat bei einem nicht gerooteten Gerät für mich funktioniert :
1) Bestimmen Sie den Paketnamen der App, z. B. "com.example.someapp". Überspringen Sie diesen Schritt, wenn Sie den Paketnamen bereits kennen.
Durchsuchen Sie die Liste der Paketnamen und versuchen Sie, eine Übereinstimmung zwischen der betreffenden App und dem Paketnamen zu finden. Dies ist normalerweise einfach, aber beachten Sie, dass der Paketname völlig unabhängig vom App-Namen sein kann. Wenn Sie die App anhand der Liste der Paketnamen nicht erkennen können, suchen Sie die App in Google Play mithilfe eines Browsers. Die URL für eine App in Google Play enthält den Paketnamen.
2) Rufen Sie den vollständigen Pfadnamen der APK-Datei für das gewünschte Paket ab.
Die Ausgabe sieht
ungefähr so aus wie das Paket: /data/app/com.example.someapp-2.apk
oder das
Paket: /data/app/com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ == / base.apk
3) Ziehen Sie unter Verwendung des vollständigen Pfadnamens aus Schritt 2 die APK-Datei vom Android-Gerät in die Entwicklungsbox.
quelle
pm list packages
unterstützt das-f
Flag, das den Speicherort der .apk für Sie auflistet, wiepackage:/data/app/com.google.android.apps.maps-1.apk=com.google.android.apps.maps
. Die integrierte pm-Hilfe ist nutzlos, aber pm kann auch Pakettypen filtern. Weitere Informationen finden Sie unter developer.android.com/studio/command-line/adb.html#pm . EDIT: habe gerade bemerkt, dass die Antwort unten dies sagt, aber diese Antwort ist bei weitem nicht so positiv wie diese.adb: error: remote object '/data/app/path.of.the.app-2/base.apk' does not exist
. Wenn ich diese Ordner mit einem Dateibrowser durchsuche, sind die Ordner leer.adb shell
und danncp PathToApk /sdcard/
und dann von der SD-Karte kopiert habe.Es ist keine Wurzel erforderlich:
Dieser Code erhält den Paketpfad von Drittanbietern mit dem Namen, sodass Sie Ihre APK leicht identifizieren können
die Ausgabe wird sein
Ziehen Sie nun das Paket mit dem folgenden Code:
Wenn Sie über cmd in ausgeführt haben
C:>\
, finden Sie das Paket dort.quelle
-f -s
anstelle von-f -3
Ich habe gesehen, dass viele Lösungen für dieses Problem entweder Sie müssen Ihr Telefon rooten oder Sie müssen eine App installieren. Dann habe ich nach langem googeln diese Lösung für nicht verwurzelte / verwurzelte Telefone bekommen.
Um aufzulisten, welche Apps Sie bisher erhalten haben.
Dann können Sie eine App auswählen, zum Beispiel Twitter
Hierbei ist es wichtig, kein Kennwort zum Verschlüsseln Ihres Backups einzurichten
Dadurch wird eine Datei mit dem Namen backup.ap erstellt, die Sie jedoch immer noch nicht öffnen können. Dazu musst du es erneut extrahieren, aber mit dem Befehl dd.
Danach müssen Sie nur noch den Teerinhalt extrahieren und fertig.
Hoffe es funktioniert für euch
quelle
Schritte zum Herunterladen von APK vom Gerät auf den Desktop
A) Stellen Sie sicher, dass Sie laufen (Emulator / echtes Gerät). Verwenden Sie diesen Befehl, um dies zu überprüfen
B) Wählen Sie alle verfügbaren Paketlisten aus, die auf Ihrem Gerät installiert sind. Mit dem Befehl grep können Sie das spezifische Paket auswählen, das Sie herunterladen möchten.
Ausgabe (Liste der verfügbaren Pakete)
C) Kopieren Sie das Paket (das Sie herunterladen möchten) über den obigen Link. Aus unserem Fall wähle ich dieses Paket (com.example.myapplication)
Ausgabe
D) Zum Schluss, um APK von Ihrem (Emulator / realen Gerät) herunterzuladen
Beispiel: Der Versuch, diese CertInstaller.apk-Datei auf Ihrem lokalen Computer (Mac) abzurufen
E) Bestätigen Sie in Ihrem lokalen Verzeichnis
quelle
quelle
Ein Liner, der für alle Android-Versionen funktioniert:
quelle
Nachdem ich die Antwort von @Yojimbo vervollständigt habe, habe ich Folgendes getan (nur Linux / Mac, funktioniert unter Windows nicht sofort ... möglicherweise in der Bash-Shell von Git):
Das ist hässlich, funktioniert aber :)
BEARBEITEN: Es funktioniert nicht mehr unter AndroidM: Alle Dateien heißen "base.apk" unter einem anderen Verzeichnis. Sollte "trivial" zu beheben sein.
quelle
Auf Unix-Systemen können Sie diese Funktion ausprobieren:
android_pull_apk com.android.contacts
adb shell pm list packages
quelle
Wie oben erwähnt, können Sie die apk mit dem Befehl pull in adb abrufen.
Da Sie über Ihre installierten Anwendungen sprechen, schauen Sie in der Datei / data / app nach Verzeichnis Ihres Android-Dateisystems nach. Dort finden Sie die APKs.
Verwenden Sie dann den Befehl adb - adb pull /data/data/appname.apk
quelle
Versuchen Sie diesen One-Liner-Bash-Befehl, um alle Ihre Apps zu sichern:
Dieser Befehl leitet sich aus dem Skript von Firelord ab . Ich habe gerade alle Apks in ihre Paketnamen umbenannt, um das Problem mit dem Skript von elcuco zu lösen , dh dasselbe
base.apk
Datei, die unter Android 6.0 "Marshmallow" und höher überschrieben wird.Beachten Sie, dass dieser Befehl nur Apps von Drittanbietern sichert, da ich nicht den Sinn sehe, integrierte Apps zu sichern. Wenn Sie jedoch auch System-Apps sichern möchten, lassen Sie die
-3
Option einfach weg .quelle
Wenn Sie den Pfad zum
.apk
(es scheint das Format/data/app/com.example.someapp-{1,2,..}.apk
zu haben ) kennen (oder wenn Sie "erraten" können) , können Sie ihn einfach kopieren/data/app
. Dies funktionierte sogar auf meinem nicht verwurzelten Android-Handy.Verwenden Sie einfach eine Terminal Emulator-App (wie diese ) und führen Sie Folgendes aus:
Dann können Sie es von der SD-Karte an einen beliebigen Ort verschieben (oder an eine E-Mail usw. anhängen). Das letzte Bit mag technisch optional sein, aber es erleichtert Ihnen das Leben erheblich, wenn Sie versuchen, etwas mit der
.apk
Datei zu tun .quelle
Die hier beschriebenen Verfahren funktionieren nicht für Android 7 (Nougat) [und möglicherweise für Android 6, aber ich kann es nicht überprüfen]. Sie können die APK-Dateien nicht direkt unter Nougat abrufen (außer im Root-Modus, dies erfordert jedoch ein gerootetes Telefon). Sie können die APK-Datei jedoch mithilfe der ADB-Shell in einen alternativen Pfad (z. B. / sdcard / Download) auf dem Telefon kopieren und anschließend einen ADB-Pull aus dem alternativen Pfad ausführen.
quelle
adb shell
Befehle aus dem Kommentar von @Isa A) funktionierte für mich unter Android 7.1.1 einwandfrei und nicht gerootet.Holen Sie sich die aktuell geöffnete App mit:
Holen Sie sich den Pfad zum Paketnamen
4.Kopieren Sie den Pfad, den Sie zum SD-Kartenverzeichnis erhalten haben
5. Ziehen Sie die apk
Bearbeiten
Wenn Schritt Nr. 2 nicht funktioniert, verwenden Sie Folgendes:
quelle
So geht's:
Laden Sie APK Extractor herunter und installieren Sie es auf Ihrem Gerät. Es ist kostenlos und mit fast allen Android-Geräten kompatibel. Ein weiterer Pluspunkt ist, dass nicht einmal root oder irgendetwas erforderlich ist, um zu funktionieren. Nachdem Sie es installiert haben, starten Sie es. Dort sehen Sie eine Liste der Apps auf Ihrem Gerät, einschließlich der später installierten Apps sowie der System-Apps. Drücken Sie lange auf eine App, die Sie extrahieren möchten (Sie können mehrere oder alle Apps gleichzeitig auswählen), und klicken Sie auf die Extraktionsoption, die oben angezeigt wird. Sie haben auch die Möglichkeit, über Bluetooth oder Messaging zu teilen. Wenn Sie fertig sind, werden die extrahierten Apps als AppName_AppPackage_AppVersionName_AppVersionCode.apk angezeigt, die standardmäßig im Pfad / sdcard / ExtractedApks / gespeichert werden.
Eine detaillierte Beschreibung zum Extrahieren von APK-Dateien in Android finden Sie unter: http://appslova.com/how-to-extract-apk-files-in-android/
quelle
Alle diese Antworten erfordern mehrere Schritte für jede vom Gerät abgerufene Apk-Datei. 1. Bestimmen Sie den Paketnamen, 2. Suchen Sie die Datei und 3. Laden Sie sie herunter. Ich habe ein einfaches
apk_grabber
Python-Skript erstellt , um dies für jede App zu tun, die einem bestimmten regulären Ausdruck entspricht, und diese Apks dann in JAR-Dateien dekompiliert.quelle
Ich habe keinen Code zum Abrufen der APK-Datei vom Handy verwendet, aber ich habe Software zum Extrahieren der APK-Datei vom Handy verwendet. Die von mir verwendete Software ist unten mit dem Google Play-Link aufgeführt:
Hoffe es hilft dir.
quelle
Willst du eine sehr, sehr komfortable 1-Minuten-Lösung?
Nur Sie diese App https://play.google.com/store/apps/details?id=com.cvinfo.filemanager (Smart File Manager von Google Play).
Tippen Sie auf "Apps", wählen Sie eine aus und tippen Sie auf "Backup". es wird auf Ihrem Dateisystem im
app_backup
Ordner landen ;)quelle
Keine Root- und keine ADB-Tools erforderlich Methode. Installieren Sie die MyAppSharer- App aus dem Play Store.
quelle
Ich bekam ein
does not exist error
So mache ich es
quelle
Noch ein Bash-Skript (dh es funktioniert für die meisten Unix-basierten Systeme). Basierend auf der Antwort von Pedro Rodrigues , ist aber etwas einfacher zu bedienen.
Verbesserungen gegenüber Pedros Version:
adb pull
beschwerte mich immer wieder,no such file or directory
während ich aufadb shell
die Datei zugreifen konnte. Daher habe ich einen anderen Ansatz mit temporärer Datei verwendet.Speichern Sie dies in einer ausführbaren Datei:
quelle
Am einfachsten ist: Installieren Sie die "ShareIt" -App auf dem Telefon. Installieren Sie jetzt die shareIt-App auf einem PC oder einem anderen Telefon. Öffnen Sie nun auf dem Telefon, auf dem die App installiert ist, ShareIt und senden Sie es. Öffnen Sie auf einem anderen Telefon oder PC ShareIt und empfangen Sie.
quelle
All diese Antworten haben mir sehr gut gefallen. Die meisten Skripte zum Exportieren und Umbenennen wurden in Bash geschrieben. Ich habe ein kleines Perl-Skript erstellt, das dasselbe tut (das sowohl in Perl für Windows als auch unter Linux funktionieren sollte und nur unter Ubuntu getestet wurde).
download-apk.pl
Die Ausgabe ist ähnlich wie:
quelle
Dies hilft jemandem, der nach einer nicht technischen Antwort sucht
Das ist ein einfacher Hack
Laden Sie die Anwendung
App Share/Send Pro
aus dem Google Play Store herunter . Wählen Sie die App aus, die Sie senden möchten, und verwenden Sie die Methode zum Senden.Normalerweise verwende ich Bluetooth, um Anwendungen an meinen PC oder ein anderes Telefon zu senden.
quelle