Wie erhalten Android-Geräte die öffentlichen Schlüssel der Entwickler?

8

Für das Android -System müssen alle installierten Anwendungen mit einem Zertifikat digital signiert sein, dessen privater Schlüssel vom Entwickler der Anwendung gespeichert wird. Wie wird der öffentliche Schlüssel speziell auf Client-Android-Geräte verteilt? Ist der öffentliche Schlüssel in apk enthalten, wenn Entwickler die App veröffentlichen? Wenn ja, wo ist der Schlüssel gespeichert?

Oder funktioniert Android Markt, z. Spielen Sie Google, halten Sie eine Liste der Entwickler-ID zusammen mit dem entsprechenden öffentlichen Schlüssel bereit und drücken Sie den richtigen Schlüssel auf die Client-Geräte, wenn eine App heruntergeladen wird?

Gibt es Dokumente, die diese Informationen vermitteln?

Vielen Dank für die Eingaben.

    
user3361508 28.02.2014, 16:39
quelle

4 Antworten

8

Der öffentliche Schlüssel wird in der apk-Datei verteilt. Wenn Sie eine APK-Datei entpacken, finden Sie dort einen speziellen Ordner namens META-INF, in dem alle Informationen zur Signatur enthalten sind. Grundsätzlich müssen Sie Dateien mit den Erweiterungen * .RSA und * .DSA untersuchen, die die Signatur des Pakets zusammen mit dem öffentlichen Schlüssel enthalten.

Sie können diese beiden Artikel ( eins , zwei ) um den Prozess zu verstehen

    
Yury 02.03.2014, 20:42
quelle
2

Ссылка

Einige Teile des Links werden Ihre Frage lösen Betten Sie Ihren öffentlichen Schlüssel für die Lizenzierung ein

Für jede Anwendung generiert der Google Play-Dienst automatisch ein öffentliches / privates 2048-Bit-RSA-Schlüsselpaar, das für die Lizenzierung und In-App-Abrechnung verwendet wird. Das Schlüsselpaar ist eindeutig mit der Anwendung verknüpft. Obwohl das Schlüsselpaar mit der Anwendung verknüpft ist, ist es nicht mit dem Schlüssel identisch, mit dem Sie Ihre Anwendungen signieren (oder davon abgeleitet).

Die Google Play Developer Console stellt den öffentlichen Schlüssel für die Lizenzierung allen Entwicklern zur Verfügung, die in der Developer Console angemeldet sind. Der private Schlüssel bleibt jedoch für alle Benutzer an einem sicheren Ort verborgen. Wenn eine Anwendung eine Lizenzprüfung für eine in Ihrem Konto veröffentlichte Anwendung anfordert, signiert der Lizenzserver die Lizenzantwort mit dem privaten Schlüssel des Schlüsselpaars Ihrer Anwendung. Wenn der LVL die Antwort empfängt, verwendet er den öffentlichen Schlüssel, der von der Anwendung bereitgestellt wird, um die Signatur der Lizenzantwort zu überprüfen.

Um einer Anwendung Lizenzen hinzuzufügen, müssen Sie den öffentlichen Schlüssel Ihrer Anwendung für die Lizenzierung anfordern und ihn in Ihre Anwendung kopieren. So finden Sie den öffentlichen Schlüssel Ihrer Anwendung für die Lizenzierung:

Rufen Sie die Google Play Developer Console auf, und melden Sie sich an. Stellen Sie sicher, dass Sie sich bei dem Konto anmelden, von dem die zu lizenzierende Anwendung veröffentlicht wird (oder veröffentlicht wird). Suchen Sie auf der Anwendungsdetailseite die Services & amp; APIs verknüpfen und klicken Sie darauf. In den Diensten & amp; APIs Seite, suchen Sie die Lizenzierung & amp; In-App-Abrechnung Ihr öffentlicher Schlüssel für die Lizenzierung ist im Feld Lizenzschlüssel für diese Anwendung angegeben. Um den öffentlichen Schlüssel zu Ihrer Anwendung hinzuzufügen, kopieren Sie einfach die Schlüsselzeichenfolge aus dem Feld in Ihre Anwendung als Wert der String-Variablen BASE64_PUBLIC_KEY. Stellen Sie beim Kopieren sicher, dass Sie die gesamte Schlüsselzeichenfolge ausgewählt haben, ohne Zeichen zu entfernen.

Hier ist ein Beispiel aus der LVL-Beispielanwendung:

%Vor%     
traihien 16.11.2014 17:13
quelle
1

Hier ein Beispiel: Folgen Sie den Schritten 1 - 8 in "Ein Zertifikat anfordern". Dies ist nicht nur ein Google API-Lernprogramm, es behandelt auch die Schlüsselsignatur, die Sie in dem genannten Abschnitt benötigen.
Es gibt dort auch einen Link in Bezug auf die Debug- und Release-Tasten für die Android-Entwicklung, der mehr Informationen auf der Android-Entwicklungsseite bietet.

LINK: Android-Signaturschlüssel und Google Map-API-Schlüssel

    
Maurice Yu 28.02.2014 18:50
quelle
1

Du musst sie im Play Store hochladen, bevor du sie veröffentlichst.

Es wird dann gegen die Signatur deiner apk geprüft: Ссылка

Wenn Sie über den Schlüssel zum Überprüfen von Apps bei der Installation sprechen: Sie können einen beliebigen Schlüssel verwenden, um eine App zu signieren und über adb zu installieren. Aber müssen Sie denselben Schlüssel verwenden, um eine App erneut zu installieren. In diesem Fall werden Schlüssel nicht wie bei Google Play mit einem globalen Repo verglichen, sondern nur lokal überprüft.

Beim Testen sind die Dinge ein bisschen anders. Ich glaube, dass es aufgrund der Interaktion von Instrumentierungs-Runner und dem getesteten Code im selben Prozess ausgeführt werden muss. Wenn Sie also das Testpaket einer Anwendung mit einem Debug-Zertifikat installieren, dann können Sie die App nicht mit einem Veröffentlichungszertifikat installieren, weder die App mit Debug-Zertifikat installieren noch die Tests deinstallieren.

Einige Details hier: Ссылка

    
Snicolas 28.02.2014 16:42
quelle