Problem ist behoben. Der Exploit wurde geschlossen.
Wir werden diesen Fehler schließen, da wir in einer Vorschau-Version von Android angemeldet sind. Wenn das Problem in der neuesten öffentlichen Version (Android Q) immer noch relevant und reproduzierbar ist, erfassen Sie bitte einen Fehlerbericht und protokollieren Sie den Fehler unter https://source.android.com/setup/contribute/report-bugs . Wenn innerhalb der nächsten 14 Tage keine Antwort eingeht, wird dieses Problem geschlossen. Danke für Ihr Verständnis.
Neuestes Update:
Dies ist ein Fehler, den Google im nächsten Update beheben wird.
Wir haben dieses Problem zur Prüfung in einer zukünftigen Version verschoben. Vielen Dank für Ihre Zeit, um Android besser zu machen
Diese Antwort hat sich zu einem Konglomerat von Ideen entwickelt und wurde bearbeitet, um Informationen aus der Diskussion in die Kommentare aufzunehmen.
Die androidmarket
API wäre eine angepasste API, die vom Entwickler geschrieben wurde. Es ist nicht für die Öffentlichkeit zugänglich.
Um Ihre Bedenken in den Kommentaren anzusprechen. Der Entwickler hätte die aktuellen APIs verwendet, die über Android Developer und Google verfügbar sind, um ein Projekt zu erstellen, das all diese verwaltet.
Was den Zugriff betrifft Full Account Access
, bin ich mir nicht sicher, wie genau diese Entwickler dies erreicht haben.
Ich würde empfehlen, den AccountManager zu verwenden , der Teil von android.accounts ist und Zugriff auf Anmeldeinformationen und eine Methode getUserData hat . Der Account Manager hat Zugriff auf Passwörter und kann Konten erstellen und löschen. Dies wird möglicherweise mit dem Inhaltsanbieter verwendet
Siehe Udinic / SyncAdapter-Authentifizierung .
Um auf Ihren Kommentar zu antworten:
Dieser Blog soll Ihnen den Einstieg erleichtern. Schreiben Sie Ihren eigenen Android Authenticator .
Wie diese Apps tatsächlich funktionieren, kann ich Ihnen nicht sagen. Sie können auch unterschiedliche Implementierungen haben (es sei denn, sie sind eine Zusammenarbeit hinter den Kulissen, sie werden mit Sicherheit unterschiedlich sein).
Eine Vermutung. Verwenden Sie zunächst GoogleSignInAccount mit com.google.android.gms.auth.api.signin .
Es gibt eine Definition für den Umfang , um den Umfang der Berechtigungen zu bestimmen, die der App erteilt werden.
Mit requestScopes () kann der
public static final String PROFILE
... / Damit kann Ihre Web-App auf drahtlose Android-App-Installationen zugreifen.
Zum Beispiel :
GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().
.requestScopes(new Scope("https://www.googleapis.com/auth/contacts.readonly"))
.build();
Wenn der vollständige Zugriff möglich ist, kann eine Liste aller vom Kontoinhaber verwendeten Apps gefunden und mit den Geräten auf dem Gerät verglichen werden.
Der Paketmanager ruft eine Liste aller derzeit auf dem Gerät installierten Apps ab.
PackageInfo enthält die Details zur App.
INSTALL_REASON_USER filtert auch Apps heraus, die vom Benutzer aktiv installiert wurden.
Vielleicht möchten Sie sich com.google.firebase.appindexing ansehen und Benutzeraktionen protokollieren . Verschiedene Aktionen können verfolgt werden.
Der Kontoverlauf des Benutzers finden Sie unter https://myactivity.google.com/myactivity .
Ein hilfreicher Link ist der OAuth 2.0-Spielplatz .
Dieses Github-Repo Node-Google-Play unter Verwendung von Node ist aktuell und ruft Google Play-APIs auf. Ebenso wie das Archiv, das als "inoffizielle" API, Android-Market-API , verwendet wurde, um den Marktplatz abzufragen.
App 1
Die App behauptet , die folgenden Berechtigungen zu verwenden:
Version 2.1.8 kann auf Folgendes zugreifen:
$ In-App-Käufe
Andere
- Daten aus dem Internet empfangen
- Netzwerkverbindungen anzeigen
- vollständiger Netzwerkzugriff
- Verwenden Sie Konten auf dem Gerät
- verhindern, dass das Gerät schläft
- Lesen Sie die Google-Dienstkonfiguration
Bemerkenswerterweise legt die App bei einer einfachen Installation keine Berechtigungen fest. Ich konnte keine der Funktionen nutzen, da ich keine kostenpflichtigen Apps habe. Für die erste Suche waren also keine Berechtigungen erforderlich, was darauf hindeuten würde, dass die App keinen Zugriff auf mein Konto hatte.
Ich habe die Berechtigungen überprüft - es wurden keine festgelegt. Das einzige, was erforderlich war, war das Akzeptieren des Popups, wie in Ihrer Frage angezeigt.
App 2
Die andere App, auf die Sie sich beziehen und die dasselbe tut, ist offener darüber, auf was zugegriffen wird.
Meine bezahlten Apps
SICHERHEITS- / DATENSCHUTZHINWEIS Wenn
Sie diese App zum ersten Mal ausführen, werden Sie um die vollständige Erlaubnis für Ihr Google-Konto gebeten . Dies ist leider die einzige Möglichkeit, auf die erforderlichen Informationen zuzugreifen. Es werden keine persönlichen Informationen gespeichert, keine Informationen über Ihre Apps werden an den Entwickler dieser App weitergegeben oder an Dritte weitergegeben. Alles wird nur auf Ihrem Telefon gespeichert.
Ich habe diese Apps in diesem Blog-Beitrag , der für ein Universitäts-Schlusssteinprojekt war (kein Geldgewinn), ausführlich beschrieben . Ich bin geneigt zu glauben, dass dies ein Exploit in der API und kein Status von Google ist, da es keine API-Aufrufe gibt, um Käufe von anderen Apps als der eigenen App des Entwicklers abzurufen. Ich gehe davon aus, dass es sich um einen Zero-Day-Exploit handelt. In diesem Fall gibt es keine legitime Möglichkeit, auf diese Informationen zuzugreifen.