suchmaschinen Wie man eine androide apk Akte unterzeichnet



snippet generator (5)

Ich versuche meine apk-Datei zu signieren. Ich kann nicht herausfinden, wie es geht. Ich kann keine guten eingehenden Anweisungen finden. Ich habe sehr wenig Programmiererfahrung, also würde jede Hilfe geschätzt werden.


Answer #1

APK Signing Process

Um Android APK-Datei manuell zu signieren, benötigen wir unter drei Befehle

1 Generieren Sie die Keystore-Datei

keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME>.keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validity 10000

2 Unterzeichnen Sie Ihre APK-Datei mit Jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

3 Richten Sie signierte APK mit dem zipalign-Tool aus

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH>

#STEP-1#

Generate Keystore file

F: \ ru \ ru_doc \ Signed_apk \ MySignedApp> keytool -genschlüssel -v -keystore <_YOUR_KEYSTORE_NAME> .keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -gültigkeit 10000

Beispiel_

F:\ru\ru_doc\Signed_apk\MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000

Keystore-Passwort: yourApp @ 123 Key-Passwort: yourApp @ 123

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
 -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  MySignedApp Sample
What is the name of your organizational unit?
  [Unknown]:  Information Technology
What is the name of your organization?
  [Unknown]:  MySignedApp Demo
What is the name of your City or Locality?
  [Unknown]:  Mumbai
What is the name of your State or Province?
  [Unknown]:  Maharashtra
What is the two-letter country code for this unit?
  [Unknown]:  IN
Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,
000 days
        for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra,
 C=IN
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
They don't match. Try again
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing id.keystore]

D:\ru\SignedBuilds\MySignedApp>

#STEP-2#

Sign your app with your private keystore using jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

Beispiel_

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
Enter Passphrase for keystore:
   adding: META-INF/MANIFEST.MF
   adding: META-INF/---.SF
   adding: META-INF/---.RSA
  signing: AndroidManifest.xml
  ..... 
    signing: classes.dex
  signing: lib/commons-codec-1.6.jar
  signing: lib/armeabi/libkonyjsvm.so
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.

D:\ru\SignedBuilds\MySignedApp>

Verify that your APK is signed

jarsigner -verify -verbose -certs <_JARSIGNED_APK_FILE_PATH>

Beispiel_

jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
 s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.

Warning:
This jar contains entries whose certificate chain is not validated.
This jar contains signatures that does not include a timestamp. Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
 future revocation date.

D:\ru\SignedBuilds\MySignedApp>

#STEP 3#

Richten Sie das endgültige APK-Paket mit zipalign aus

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH_WITH_NAME_ofSignedAPK_>

Beispiel_

zipalign -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O / P-

D:\Android\android-sdk\build-tools\19.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16_prod
_playstore\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

  4528613 classes.dex (OK - compressed)
 5656594 lib/commons-codec-1.6.jar (OK - compressed)
 5841869 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

Verify that your APK is Aligned succesfully

zipalign -c -v 4 <_YOUR_APK_PATH>

Beispiel_

zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O / P-

D:\Android\android-sdk\build-tools\19.1.0>zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

 4453984 res/drawable/zoomout.png (OK)
 4454772 res/layout/tabview.xml (OK - compressed)
 4455243 res/layout/wheel_item.xml (OK - compressed)
 4455608 resources.arsc (OK)
 4470161 classes.dex (OK - compressed)
 5597923 lib/commons-codec-1.6.jar (OK - compressed)
 5783198 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

Hinweis:

Verify Befehle nur, um zu überprüfen, ob APK korrekt erstellt und signiert wurde!

Referenz

manuell signieren

androidapk-code-signing-process

Ich hoffe, dass dies auf e und allen helfen wird :)


Answer #2

Mach dir keine Sorgen ...! Befolgen Sie diese Schritte und Sie erhalten Ihre signierte .apk-Datei. Ich machte mir darüber auch Sorgen, aber diese Schritte werden mich von der Frustration abhalten. Schritte zum Signieren Ihrer Bewerbung:

  1. Exportieren Sie das unsignierte Paket:

Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse -> Android Tools -> Exportieren unsigniertes Anwendungspaket (wie hier exportieren wir unsere GoogleDriveApp.apk zum Desktop)

Unterschreiben Sie die Anwendung mit Ihrem Schlüsselspeicher und dem jarsigner-Tool (folgen Sie den Schritten unten):

Öffne cmd -> ändere das Verzeichnis wo deine "jarsigner.exe" existiert (wie hier in meinem System existiert es unter "C: \ Programme \ Java \ jdk1.6.0_17 \ bin"

Geben Sie nun den Befehl belwo in cmd ein:

jarsigner -verbose -keystore c: \ Benutzer \ android \ debug.keystore c: \ Benutzer \ pir fahim \ Desktops \ GoogleDriveApp.apk my_keystore_alias

Sie werden aufgefordert, Ihr Passwort einzugeben: Passwort für Keystore eingeben: Es wird Ihre apk signieren. Um zu überprüfen, ob die Signierung erfolgreich ist, können Sie Folgendes ausführen:

jarsigner -verify c: \ Benutzer \ pir fahim \ Desktops \ GoogleDriveApp.apk

Es sollte wieder kommen mit: Glas verifiziert.

Methode 2

Wenn Sie Eclipse mit ADT verwenden, ist es einfach, die Datei zu kompilieren, zu signieren, auszurichten und bereit zu stellen. Was Sie tun müssen, folgen Sie einfach diesen Schritten.

  • Datei> Exportieren.
  • Exportieren Sie Android-Anwendung
  • Durchsuchen -> wählen Sie Ihr Projekt
  • Weiter -> Weiter

Mit diesen Schritten können Sie Ihr Projekt kompilieren, signieren und zip-ausrichten. Jetzt können Sie Ihr Projekt verteilen oder im Google Play Store hochladen.


Answer #3

Hier finden Sie eine Anleitung zum manuellen Signieren eines APK. Es enthält Informationen über den neuen apk-signer build-tools 24.0.3 in build-tools 24.0.3 (10/2016) eingeführt wurde.

Automatisierter Prozess:

Verwenden Sie dieses Tool (verwendet den neuen Apksigner von Google):

https://github.com/patrickfav/uber-apk-signer

Haftungsausschluss: Ich bin der Entwickler :)

Manueller Prozess:

Schritt 1: Keystore generieren (nur einmal)

Sie müssen einmal einen Schlüsselspeicher generieren und ihn verwenden, um Ihre unsigned APK zu signieren. Verwenden Sie das keytool des JDK, das Sie in %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

Schritt 2 oder 4: Zipalign

zipalign ist ein Tool, das vom Android SDK bereitgestellt wird, das sich zB in %ANDROID_HOME%/sdk/build-tools/24.0.2/ befindet und ein obligatorischer Optimierungsschritt ist, wenn Sie die APK in den Play Store hochladen möchten.

zipalign -p 4 my.apk my-aligned.apk

Hinweis: Wenn Sie den alten jarsigner , müssen Sie NACH dem Unterschreiben zipalign werden. Wenn Sie die neue apksigner Methode verwenden, tun Sie dies vor der Unterzeichnung (verwirrend, ich weiß). Das Aufrufen von zipalign vor dem apksigner funktioniert gut, da der apksigner die APK-Ausrichtung und -Komprimierung beibehält (anders als beim jarsigner).

Sie können die Ausrichtung mit überprüfen

zipalign -c 4 my-aligned.apk

Schritt 3: Unterschreiben und bestätigen

Verwenden von Build-Tools 24.0.2 und älter

Verwenden Sie jarsigner das wie das keytool mit der JDK-Distribution in %JAVA_HOME%/bin/ und verwenden Sie es wie %JAVA_HOME%/bin/ :

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

und kann mit überprüft werden

jarsigner -verify -verbose my_application.apk

Verwenden von Build-Tools 24.0.3 und höher

Android 7.0 führt APK Signature Scheme v2 ein, ein neues App-Signing-Schema, das schnellere App-Installationszeiten und mehr Schutz vor unerlaubten Änderungen an APK-Dateien bietet (siehe here und here für weitere Details). Deshalb hat Google einen eigenen Apk-Unterzeichner namens apksigner ( apksigner !) Implementiert. Die Skriptdatei befindet sich in %ANDROID_HOME%/sdk/build-tools/24.0.3/ (die .jar befindet sich im Unterordner /lib ). Benutze es so

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

und kann mit überprüft werden

apksigner verify my-app.apk

Die offizielle Dokumentation finden Sie hier.


Answer #4

Das Handbuch ist klar genug. Bitte geben Sie an, mit welchem ​​Teil Sie nach der Bearbeitung stecken bleiben. Ich würde vorschlagen:

https://developer.android.com/studio/publish/app-signing.html

Okay, ein kleiner Überblick ohne Referenz oder Finsternis, also etwas Platz für Fehler lassen, aber es funktioniert so

  • Öffne dein Projekt in Eclipse
  • Presse rechte Maustaste -> Werkzeuge (Android Tools?) -> signierte Anwendung exportieren (apk?)
  • Gehe durch den Assistenten:
  • Mache einen neuen Schlüsselspeicher. erinnere dich an das Passwort
  • Melden Sie Ihre App an
  • Speichere es usw.

Auch von der Verbindung:

Kompilieren und signieren Sie mit Eclipse ADT

Wenn Sie Eclipse mit dem ADT-Plugin verwenden, können Sie mit dem Export-Assistenten eine signierte .apk-Datei exportieren (und ggf. sogar einen neuen Schlüsselspeicher erstellen). Der Export-Assistent führt für Sie die gesamte Interaktion mit dem Keytool und dem Jarsigner durch, wodurch Sie das Paket mithilfe einer GUI signieren können, anstatt die manuellen Verfahren zum Kompilieren, Signieren und Ausrichten wie oben beschrieben durchzuführen. Sobald der Assistent Ihr Paket kompiliert und signiert hat, wird auch die Paketausrichtung mit zip align durchgeführt. Da der Export-Assistent sowohl Keytool als auch Jarsigner verwendet, sollten Sie sicherstellen, dass sie auf Ihrem Computer verfügbar sind, wie oben im Basis-Setup für die Signierung beschrieben.

So erstellen Sie eine signierte und ausgerichtete .apk in Eclipse:

  1. Wählen Sie das Projekt im Paket-Explorer und wählen Sie Datei> Exportieren.
  2. Öffnen Sie den Android-Ordner, wählen Sie "Android-Anwendung exportieren" und klicken Sie auf "Weiter".

    Der Assistent zum Exportieren von Android-Anwendungen wird jetzt gestartet. Er führt Sie durch die Signierung Ihrer Anwendung, einschließlich der Schritte zum Auswählen des privaten Schlüssels, mit dem die .apk signiert werden soll (oder zum Erstellen eines neuen Keystores und privaten Schlüssels).

  3. Schließen Sie den Export-Assistenten ab, und Ihre Anwendung wird kompiliert, signiert, ausgerichtet und bereit für die Verteilung.

Answer #5

Ich stieß auf dieses Problem und wurde gelöst, indem ich die min sdk-Version im Manifest überprüfte. Es war auf 15 (ICS) eingestellt, aber mein Telefon lief 10 (Lebkuchen)





signing