Wenn Sie den installierten Dateinamen des apk kennen (der auf einigen Geräten myapp-1.apk oder myapp-2.apk sein kann und nicht nur myapp.apk), können Sie als normaler Benutzer direkt darauf zugreifen, einschließlich desjenigen, unter dem adb ausgeführt wird auf einem gesicherten Gerät, so sollten Sie in der Lage sein, es adb ziehen. Wenn Sie den installierten apk-Namen nicht kennen , können Sie das Verzeichnis / data / app nicht durchsuchen, ohne root oder aid_system zu sein.
Es könnte sich lohnen, nur den installierten Namen zu erraten - probieren Sie es einfach aus, versuchen Sie es mit dem -1.apk und dem -2.apk usw.
Es kann einen anderen Weg geben: Ich glaube, dass das Folgende auf einem gesicherten Gerät funktioniert, aber im Moment kein Gerät vor mir hat, um es zu testen.
BEARBEITEN: Neue Idee zur Bestimmung des genauen APK-Dateinamens
1) adb pull /data/system/packages.xml
2) Durchsuchen Sie den CodePath-Eintrag Ihrer Anwendung
3) adb zieh das
BEARBEITEN: In Bezug auf die alte Idee unten entdeckte Matthew, dass die pro-Prozess-Dateien unter / proc zwar Leseberechtigung auf einem gesicherten Gerät haben, aber leer sind, wenn sie von einer anderen nicht privilegierten UID als der ihres Besitzers gelesen werden. Das wird also nicht funktionieren.
1) Bringen Sie Ihre App zum Laufen. Sie benötigen auch eine Maschine mit adb.
2) Typ
adb shell ps
und suchen Sie nach der Zeile mit dem Namen Ihrer App:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) Nehmen Sie die Nummer in der zweiten Spalte, die die Prozess-ID ist, und zeigen Sie die virtuelle Speicherzuordnung an. In diesem Fall würde ich eingeben
adb shell cat /proc/11959/maps
und suche nach einer Zeile, in der es seine eigene apk-Datei in den Speicher abgebildet hat
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) Das ist der Dateiname, den Sie zum Adb Pull benötigen würden
adb pull /data/app/com.clevername.myapp-1.apk .
Die Prüfung der Verzeichnisberechtigungen in / proc legt nahe, dass dies für einen nicht privilegierten Benutzer funktionieren sollte. Ich entschuldige mich, wenn dies nicht der Fall ist. Wenn Sie mit der Verwendung von 'grep' vertraut sind, können Sie dies verwenden, um ein manuelles Scannen der Ausgabe zu vermeiden.
Nachtrag: Ich bin mir nicht sicher, wie die Geschichte der auf der SD-Karte installierten Apps aussieht.
adb shell cat /proc/####/maps
gibt leider nichts zurück.