Installieren einer App aus dem Play Store über die Befehlszeile

10

Ist es möglich, eine App aus dem Play Store über die Befehlszeile zu installieren und wenn ja, wie?

Was ich versuche zu erreichen, ist etwas Ähnliches wie die Verwendung von adb install file.apk, aber anstelle einer apk-Datei wäre das Ziel ein Paketname einer Play Store-App (z. B. adb install com.spotify.mobile.android.ui ).

Ist so etwas möglich?

Nikolay Ivanov
quelle
+0. Warum sollte ein Android-Benutzer dies jemals tun wollen?
unvergesslicheidSupportsMonica
Sie können verwenden: gplaycli github.com/matlink/gplaycli
Benny

Antworten:

4

Kurze Antwort : Nein.

Lange Antwort :

adb installist eine "Verknüpfung", die dem Öffnen einer Shell (using adb shell) und eines Typs entspricht pm install. pmstehen für Paketmanager und sein Verhalten ist das gleiche wie bei anderen Paketmanagern in anderen Linux-Distributionen (wie aptitudein Debian oder pacmanArch Linux), außer dass pmdas Paket nicht von einem entfernten Ort abgerufen wird.

Der Play Store ist eine Anwendung wie andere, und wir können keine Android-Anwendungen aufrufen, wie wir ein Programm wie ein C- oder "normales" Java- Programm aufrufen , da die .apkDatei eigentlich keine Binärdatei ist, sondern ein einfach komprimiertes Paket. Es ist die virtuelle Dalvik-Maschine (eine Art Äquivalent zur Java-VM ), die sich mit der Ausführung von Anwendungen befasst. Die Play Store-Anwendung lädt einfach die gewünschte Anwendung herunter und führt sie dann pm installauf dem heruntergeladenen Paket aus.

Matthieu Harlé
quelle
8

Ich habe nach der gleichen Antwort gesucht, ich kann keinen einzigen Befehl dafür finden, aber ich habe einige Optionen gefunden, die in solchen Fällen nützlich sein könnten:

A. Laden Sie die APK auf Ihren Computer herunter und installieren Sie die APK von dort (googeln Sie einfach 'Apk Downloder' und finden Sie eine für Sie geeignete):

adb install com.myapp.apk

B. Öffnen Sie die Playstore-App von adb und zeigen Sie sie auf Ihr Paket. Dies sieht folgendermaßen aus:

adb shell am start -a android.intent.action.VIEW -d 'market://details?id=com.myapp'

(Ich bin sicher, dass es automatisiert werden kann, um die erforderlichen Klicks zu simulieren und die App zu installieren, aber dies erfordert viel mehr Arbeit)

Keiner ist so einfach wie die Installation von Computer-Cmd, aber das, was wir jetzt haben.

Ohad Cohen
quelle
Unter Mac, Linux und kürzlich auch Windows können Sie eine Bash-Eingabeaufforderung haben und dort (oder in Ihrer .profile-Einstellungsdatei) eine Funktion wie die folgende definieren: adb-am () { adb shell am start -a android.intent.action.VIEW -d "market://details? id=$1" } und sicherstellen, dass jeder graue Block als separate Zeile eingefügt wird. Dann führen Sie es mitadb-am com.google.android.apps.photos
Simon B.
1

Eine Möglichkeit, das zu erreichen, was Sie (zumindest teilweise) wollen, ist die Verwendung

 pm install -i "com.android.vending" -r "path to apk"  

In der ADB-Shell. Auf diese Weise scheint die App, obwohl sie seitlich geladen ist, aus dem Play Store installiert worden zu sein.

Anish Majumder
quelle
0

Wenn Sie die x- und y-Koordinaten für die Schaltflächen zum Installieren und Akzeptieren kennen, können Sie nach dem Start des Marktes Folgendes ausführen, indem Sie auf eine App zeigen, wie Ohad Cohen angegeben hat

Touchscreen mit ADB-Shell-Eingabe Tippen Sie auf die xy-x- und y-Koordinaten für die Installationsschaltfläche mit einem Leerzeichen dazwischen

Pause für eine Sekunde oder 2 dann laufen

Touchscreen mit ADB-Shell-Eingabe Tippen Sie auf die Koordinaten xy - x und y, um die Schaltfläche zum Akzeptieren mit einem Leerzeichen dazwischen zu akzeptieren

dann schließe Play Store AdB Shell bin Force-Stop com.android.vending

Isaac Morris
quelle
Google hat versucht, den Play Store (Android Market-App) vor der Aktivierung automatischer App-Installationen zu schützen, da er missbraucht werden könnte, um Nutzer zum Kauf von Apps zu bewegen. Appbrainz Fast Web Installer ist oder war eine automatisierte Lösung. appbrain.com/app/fast-web-installer/…
Simon B.