Wie bekomme ich eine APK-Datei von einem Android-Gerät?

484

Wie bekomme ich die apk-Datei von einem Android-Gerät? Oder wie übertrage ich die APK-Datei vom Gerät auf das System?

Finder
quelle

Antworten:

118

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)

Maurits Rijk
quelle
1
Danke Maurits Rijk. Bitte helfen Sie mir. Ich möchte die Datei iTwips.apk vom Gerät auf das System kopieren. Ich benutze den folgenden Befehl. ist es richtig ? Ich habe die Fehlermeldung "Android2.2Froyo / sdcard / iTwips.apk" wird nicht beendet ... / Users / bbb / Android / android-sdk-mac_86 / tools / adb ziehen Sie Android2.2Froyo / sdcard / iTwips.apk / Users / bbb Danke ist voraus .......
Finder
Auf meinem Gerät (Android 2.1) lautet der Befehl "adb pull /sdcard/test.jpg", um test.jpg von meiner SD-Karte in das aktuelle Verzeichnis zu kopieren. Bitte suchen Sie zuerst Ihre iTwips.apk-Datei mit "adb shell". Dadurch wird eine Shell auf Ihrem Gerät gestartet, und Sie können die Standard-Unix-Befehle wie ls und cd verwenden, um Ihre Verzeichnisse zu durchsuchen.
Maurits Rijk
Hallo, eigentlich ist die iTwips.apk im internen Speicher des Gerätes gespeichert. Wie kann ich die Shell für diese verwenden? Ich benutze den folgenden Befehl adp -d <devicenumber> shell .. Aber es funktioniert nicht .. bitte helfen Sie mir .. Danke im Voraus.
Finder
Hallo, vielen Dank. Ich kann die Bilder jetzt von SD-Karte bekommen. aber ich möchte die apk-datei vom gerät ziehen (managementApplication ordner). Das iTwips apk wird im Anwendungsordner gespeichert. Bitte helfen Sie mir.
Finder
16
@Finder @Maurits Rijk Eigentlich musst du das Gerät nicht rooten, nur um die apk zu ziehen. Solange du den vollen Weg dieser apk kennst. Wenn die apk installiert ist, finden Sie den vollständigen Pfad, indem Sie zuerst den Paketnamen mit adb shell pm list packagesund den vollständigen Pfad adb shell pm path your.package.namedann von Ihrem PC aus betrachten, können Sie einfachadb pull /full/path/to/your.apk
Isa A
1550

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.

adb shell pm list packages

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.

adb shell pm path com.example.someapp

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.

adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination
Yojimbo
quelle
65
Dies ist die beste Antwort, Sie müssen das Gerät nicht verrotten !!
Vielen
14
Dies funktionierte auf allen meinen Android-Geräten und sollte die akzeptierte Antwort sein.
b.mcewan
8
pm list packagesunterstützt das -fFlag, das den Speicherort der .apk für Sie auflistet, wie package:/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.
Hitechcomputergeek
9
Funktioniert bei mir nicht Ich erhalte folgende Fehlermeldung : 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.
Bevor
8
Ich hatte ein ähnliches Problem wie @Bevor, beim Ziehen bekam ich den Fehler, dass die apk "nicht existiert". Ich habe es behoben, indem ich adb shellund dann cp PathToApk /sdcard/und dann von der SD-Karte kopiert habe.
Colin
124

Es ist keine Wurzel erforderlich:

Dieser Code erhält den Paketpfad von Drittanbietern mit dem Namen, sodass Sie Ihre APK leicht identifizieren können

adb shell pm list packages -f -3

die Ausgabe wird sein

Paket: /data/app/XX.XX.XX.apk=YY.YY.YY

Ziehen Sie nun das Paket mit dem folgenden Code:

adb pull /data/app/XX.XX.XX.apk

Wenn Sie über cmd in ausgeführt haben C:>\, finden Sie das Paket dort.

Faris Al-Abed
quelle
1
Das ist eine großartige Antwort! Vielen Dank :)
Drag0
1
Aus irgendeinem Grund kann ich APKs nicht in meinem Verzeichnis / data / app / finden . Dort gibt es immer ein Unterverzeichnis.
IgorGanapolsky
für System-Apps verwenden Sie -f -sanstelle von-f -3
palindrom
57

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.

adb shell pm list packages

Dann können Sie eine App auswählen, zum Beispiel Twitter

adb backup -apk com.twitter.android

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.

dd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar

Danach müssen Sie nur noch den Teerinhalt extrahieren und fertig.

Hoffe es funktioniert für euch

Paulo Miguel Almeida
quelle
7
In blog.shvetsov.com/2013/02/… könnte dies funktionieren , wenn Ihr openssl keine zlib hat: dd if = backup.ab bs = 1 skip = 24 | python -c "importiere zlib, sys; sys.stdout.write (zlib.decompress (sys.stdin.read ()))" | tar -xvf -
kodi
1
Dies hat bei mir funktioniert, nicht das Verfahren in der akzeptierten Antwort. Und es hat mir heute wirklich geholfen, als ich APK für eine meiner alten Apps brauchte, aber es war nur für mein Telefon verfügbar.
Zeeshan
1
Hier sind weitere Informationen, wenn Ihr openssl keine zlib-Unterstützung bietet
Nico Wiedemann
19

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

adb devices

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.

adb shell pm list packages
adb shell pm list packages -f -3

Ausgabe (Liste der verfügbaren Pakete)

package:/data/app/com.example.mytestapplication-sOzKi5USzfbYLPNDmaaK6g==/base.apk=com.example.mytestapplication
package:/data/app/com.example.myapplication-nd1I4FGnTZnQ9PyRbPDHhw==/base.apk=com.example.myapplication

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)

Syntax : adb shell pm path [your_package_name]
Command: adb shell pm path com.example.myapplication

Ausgabe

package:/data/app/com.example.myapplication-nd1I4FGnTZnQ9PyRbPDHhw==/base.apk

D) Zum Schluss, um APK von Ihrem (Emulator / realen Gerät) herunterzuladen

Syntax : adb pull /data/app/[your_package_name]-1/base.apk  [your_destination_path]
Command: adb pull /data/app/com.example.myapplication-3j4CVk0Tb2gysElgjz5O6A==/base.apk /Users/$(whoami)/Documents/your_apk.apk

Beispiel: Der Versuch, diese CertInstaller.apk-Datei auf Ihrem lokalen Computer (Mac) abzurufen

adb pull /system/app/CertInstaller/CertInstaller.apk /Users/$(whoami)/Documents/APK/download_apk/

E) Bestätigen Sie in Ihrem lokalen Verzeichnis

ls -la /Users/$(whoami)/Documents/
Farid Haq
quelle
Das Ziel ist es, eine einzelne apk zu extrahieren. In Schritt 4 ziehen Sie jedoch zwei zusätzliche Dateien ohne Erklärung oder vorherige Referenz.
Carles Alcolea
Ich habe diesen Beitrag geändert, indem ich jeden Schritt geklärt habe. Ich hoffe, diese Änderung ist hilfreich und leicht zu verstehen.
Farid Haq
18
C:\Users\xyz>adb shell pm list packages -f | findstr whatsapp
package:/data/app/com.whatsapp-1/base.apk=com.whatsapp

C:\Users\xyz>adb pull /data/app/com.whatsapp-1/base.apk Desktop
/data/app/com.whatsapp-1/base.apk: 1 f.... 13.8 MB/s (32803925 bytes in 
2.269s)
RVR
quelle
Dies ist meiner Meinung nach der einfachste Weg. Vielen Dank!
8bitcartridge
1
Jungs, die Linux oder Mac anstelle von Findstr verwenden, verwenden grep
Jeeva
10

Ein Liner, der für alle Android-Versionen funktioniert:

adb shell 'cat `pm path com.example.name | cut -d':' -f2`' > app.apk
Vitaly Dyatlov
quelle
1
@AlexP. Was wolltest du über den obigen Link sagen?
Vitaly Dyatlov
7

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):

for i in $(adb shell pm list packages -f -3 | cut -d= -f 1 | cut -d ":" -f 2); do adb pull $i; done

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.

elcuco
quelle
7

Auf Unix-Systemen können Sie diese Funktion ausprobieren:

function android_pull_apk() {
    if [ -z "$1" ]; then
        echo "You must pass a package to this function!"
        echo "Ex.: android_pull_apk \"com.android.contacts\""
        return 1
    fi

    if [ -z "$(adb shell pm list packages | grep $1)" ]; then
        echo "You are typed a invalid package!"
        return 1
    fi

    apk_path="`adb shell pm path $1 | sed -e 's/package://g' | tr '\n' ' ' | tr -d '[:space:]'`"
    apk_name="`adb shell basename ${apk_path} | tr '\n' ' ' | tr -d '[:space:]'`"

    destination="$HOME/Documents/Android/APKs"
    mkdir -p "$destination"

    adb pull ${apk_path} ${destination}
    echo -e "\nAPK saved in \"$destination/$apk_name\""
}
  • Beispiel :android_pull_apk com.android.contacts
  • Hinweis : So identifizieren Sie das Paket:adb shell pm list packages
Pedro Rodrigues
quelle
6

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

aditya.gupta
quelle
6

Versuchen Sie diesen One-Liner-Bash-Befehl, um alle Ihre Apps zu sichern:

for package in $(adb shell pm list packages -3 | tr -d '\r' | sed 's/package://g'); do apk=$(adb shell pm path $package | tr -d '\r' | sed 's/package://g'); echo "Pulling $apk"; adb pull -p $apk "$package".apk; done

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 dasselbebase.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 -3Option einfach weg .

HEXcube
quelle
5

Wenn Sie den Pfad zum .apk(es scheint das Format /data/app/com.example.someapp-{1,2,..}.apkzu 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:

# step 1: confirm path
ls /data/app/com.example.someapp-1.apk
# if it doesn't show up, try -2, -3. Note that globbing (using *) doesn't work here.
# step 2: copy (make sure you adapt the path to match what you discovered above)
cp /data/app/com.example.someapp-1.apk /mnt/sdcard/

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 .apkDatei zu tun .

m01
quelle
5

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.

SamG
quelle
3
Die akzeptierte Antwort (einschließlich der adb shellBefehle aus dem Kommentar von @Isa A) funktionierte für mich unter Android 7.1.1 einwandfrei und nicht gerootet.
Jonathan Cottrill
4
  1. Öffne die App, aus der du die apk extrahieren möchtest, auf deinem Handy.
  2. Holen Sie sich die aktuell geöffnete App mit:

    adb shell dumpsys activity activities | grep mFocusedActivity
  3. Holen Sie sich den Pfad zum Paketnamen

    adb shell pm path <packagename.apk>

4.Kopieren Sie den Pfad, den Sie zum SD-Kartenverzeichnis erhalten haben

    adb shell cp /data/app/<packagename.apk> /sdcard

5. Ziehen Sie die apk

    adb pull /sdcard/base.apk

Bearbeiten

Wenn Schritt Nr. 2 nicht funktioniert, verwenden Sie Folgendes:

adb shell dumpsys window windows | grep mCurrentFocus
Oush
quelle
3

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/

Pramod Mahato
quelle
3

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_grabberPython-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.

Jeff Brateman
quelle
1

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:

  1. ES File Explorer Dateimanager
  2. ASTRO Cloud & File Manager 3. Software-Datenkabel

Hoffe es hilft dir.

surhidamatya
quelle
2
Ich habe den ES File Explorer verwendet. Ich bin nicht verwurzelt. Ich ging einfach zu Tools -> App Manager und drückte lange auf die App, für die ich die APK haben wollte. Dadurch wurde die App ausgewählt (und ich konnte andere auswählen). Ich glaube, ich habe die Share-Taste gedrückt und konnte die APK an mich selbst senden (mit Push Bullet, aber was auch immer für Sie funktioniert).
schultzter
Wenn Sie nicht verfault sind, können Sie versuchen, die App zu sichern und play.google.com/store/apps/details?id=mobi.infolife.appbackup
surhidamatya
1

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_backupOrdner landen ;)

user3350906
quelle
1

Keine Root- und keine ADB-Tools erforderlich Methode. Installieren Sie die MyAppSharer- App aus dem Play Store.

Moberme
quelle
1

Ich bekam ein does not exist error

So mache ich es

adb shell pm list packages -f | findstr zalo
package:/data/app/com.zing.zalo-1/base.apk=com.zing.zalo

adb shell
mido:/ $ cp /data/app/com.zing.zalo-1/base.apk /sdcard/zalo.apk
mido:/ $ exit


adb pull /sdcard/zalo.apk Desktop

/sdcard/zalo.apk: 1 file pulled. 7.7 MB/s (41895394 bytes in 5.200s)
vanduc1102
quelle
0

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:

  1. Der ursprüngliche Ansatz funktionierte bei Android 7 nicht: Ich adb pullbeschwerte mich immer wieder, no such file or directorywährend ich auf adb shelldie Datei zugreifen konnte. Daher habe ich einen anderen Ansatz mit temporärer Datei verwendet.
  2. Wenn mein Skript ohne Argumente gestartet wird, werden nur alle verfügbaren Pakete aufgelistet. Wenn ein Teilpaketname angegeben wird, wird versucht, den vollständigen Paketnamen zu erraten. Es wird sich beschweren, wenn es mehrere mögliche Erweiterungen gibt.
  3. Ich codiere den Zielpfad nicht fest. Stattdessen werden APKs im aktuellen Arbeitsverzeichnis gespeichert.

Speichern Sie dies in einer ausführbaren Datei:

#!/bin/bash
# Obtain APK file for given package from the device connected over ADB

if [ -z "$1" ]; then
    echo "Available packages: "
    adb shell pm list packages | sed 's/^package://'
    echo "You must pass a package to this function!"
    echo "Ex.: android_pull_apk \"com.android.contacts\""
    exit 1
fi

fullname=$(adb shell pm list packages | sed 's/^package://' | grep $1)
if [ -z "$fullname" ]; then
    echo "Could not find package matching $1"
    exit 1
fi
if [ $(echo "$fullname" | wc -l) -ne 1 ]; then
    echo "Too many packages matched:"
    echo "$fullname"
    exit 1
fi
echo "Will fetch APK for package $fullname"

apk_path="`adb shell pm path $fullname | sed -e 's/package://g' | tr '\n' ' ' | tr -d '[:space:]'`"
apk_name="`basename ${apk_path} | tr '\n' ' ' | tr -d '[:space:]'`"

destination="${fullname}.apk"

tmp=$(mktemp --dry-run --tmpdir=/sdcard --suffix=.apk)
adb shell cp "${apk_path}" "$tmp"
adb pull "$tmp" "$destination"
adb shell rm "$tmp"

[ $? -eq 0 ] && echo -e "\nAPK saved in \"$destination\""
MarSoft
quelle
0

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.

Sirsendu
quelle
0

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

#!/usr/bin/perl -w
# Automatically export all available installed APK's using adb
use strict;
print "Connect your device...\n";
system("adb", "wait-for-device");
open(my $OUT, '-|', 'adb', 'shell', 'pm', 'list', 'package', '-f');
my @list = split(/\s*/, `adb shell pm list packages -f`);
my $count = 0;
while(my $line = <$OUT>) {
        $line =~ s/^\s*|\s*$//g;
        my ($type, $path, $package) = $line =~ /^(.*?):(.*)=(.*)$/ ? ($1,$2,$3) : die('invalid line: '.$line);
        my $category = $path =~ /^\/(.*?)\// ? $1 : 'unknown';
        my $baseFile = $path =~ /\/([^\/]*)$/ ? $1 : die('Unknown basefile in path: '.$path);
        my $targetFile = "$category-$package.apk";
        print "$type $category $path $package $baseFile >> $targetFile\n";
        system("adb", "pull", $path);
        rename $baseFile, $targetFile;
}
  1. Stellen Sie sicher, dass sich adb (.exe) in Ihrem Pfad oder im selben Verzeichnis befindet
  2. Schließen Sie Ihr Telefon an
  3. Führen Sie download-apk.pl aus

Die Ausgabe ist ähnlich wie:

# ./download-apk.pl
Connect your device...
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
package system /system/app/YouTube/YouTube.apk com.google.android.youtube YouTube.apk >> system-com.google.android.youtube.apk
5054 KB/s (11149871 bytes in 2.154s)
package data /data/app/com.ghostsq.commander-1/base.apk com.ghostsq.commander base.apk >> data-com.ghostsq.commander.apk
3834 KB/s (1091570 bytes in 0.278s)
package data /data/app/de.blinkt.openvpn-2/base.apk de.blinkt.openvpn base.apk >> data-de.blinkt.openvpn.apk
5608 KB/s (16739178 bytes in 2.914s)
etc.
Gerben Versluis
quelle
-1

Dies hilft jemandem, der nach einer nicht technischen Antwort sucht

Das ist ein einfacher Hack

Laden Sie die Anwendung App Share/Send Proaus 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.

Saahithyan Vigneswaran
quelle
Es ist nicht einfach zu bedienen
APEXBoi