Comment Signer un Déjà Compilé Apk
J'ai décodé un APK avec apktool (comme le code source d'origine a été perdu) j'ai donc pu corriger certains problèmes avec la mise en page des fichiers xml. J'ai ensuite été reconstruite vers l'arrière avec apktool et quand j'ai essayé de l'installer sur mon appareil (à l'aide de la bad: bad installer appname.apk) il m'a donné ce message d'erreur:
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
l'original apk cependant, a été signé par un fichier de clés (sur eclipse IDE), ce n'est pas le cas, comment puis-je signer correctement avec son original en trapèze fichier en dehors d'Eclipse!?
- ouais, le point de l'ensemble des certificats est d'empêcher les gens de le faire... Si vous n'avez pas l'original cert tu vas en avoir pour régénérer un
- justement, j'ai l'original cert, mais le décodage/re-construction de l'apk supprimé.
Vous devez vous connecter pour publier un commentaire.
créer une clé à l'aide de
ensuite signer le apk en utilisant :
vérifiez ici pour plus d'infos
jarsigner
etapksigner
? L'une nécessite la signature puis zipaligning et les autres zipaligning et puis signinigC:\Users\{username}\AppData\Local\Android\Sdk\build-tools\{version}
pour Android Studio et également dansC:\Program Files (x86)\Android\android-sdk\build-tools\{version}
(ou le chemin d'accès similaire) pour Visual Studio 2017 utilisateurs.Processus Automatisé:
L'utilisation de cet outil (utilise la nouvelle apksigner de Google):
https://github.com/patrickfav/uber-apk-signer
Avertissement: Im le développeur 🙂
Processus Manuel:
Etape 1: Générer un fichier de clés (une seule fois)
Vous avez besoin de générer un fichier de clés une fois et l'utiliser pour vous connecter à votre
unsigned
apk.Utiliser le
keytool
fournies par le JDK trouvé dans%JAVA_HOME%/bin/
L'étape 2 ou 4: Zipalign
zipalign
qui est un outil fourni par le SDK Android trouvé dans, par exemple,%ANDROID_HOME%/sdk/build-tools/24.0.2/
est obligatoire d'optimisation de l'étape si vous souhaitez télécharger l'apk du Play Store.Remarque: lors de l'utilisation de l'ancien
jarsigner
vous devez zipalign APRÈS signature. Lors de l'utilisation de la nouvelleapksigner
méthode vous faire AVANT de la signature (à confusion, je sais). Invoquant zipalign avant apksigner fonctionne très bien parce que apksigner conserve APK de l'alignement et de la compression (à la différence de jarsigner).Vous pouvez vérifier l'alignement avec
Étape 3: connexion & Vérifier
À l'aide de l'accumulation des outils 24.0.2 et plus
Utilisation
jarsigner
qui, à l'instar de l'utilitaire keytool, livré avec le JDK de distribution trouvé dans%JAVA_HOME%/bin/
et de l'utiliser comme ceci:et peut être vérifié avec
À l'aide de l'accumulation des outils 24.0.3 et plus récent
Android 7.0 présente APK Schéma de Signature v2, une nouvelle application de signature de régime qui offre plus rapide app installer fois et plus de protection contre les modifications non autorisées de fichiers APK (Voir ici et ici pour plus de détails). Par conséquent, Google a mis en place leur propre apk signataire appelé
apksigner
(duh!)Le fichier de script peut être trouvé dans
%ANDROID_HOME%/sdk/build-tools/24.0.3/
(l' .le pot est dans le/lib
sous-dossier). L'utilisation de cetteet peut être vérifié avec
La documentation officielle se trouve ici.
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
). Vérifier avec uber-apk-signataire m'a donné plus d'informationsignature VERIFY FAILED
[...]ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.RSA uses digest algorithm 2.16.840.1.101.3.4.2.1 and signature algorithm 1.2.840.113549.1.1.1 which is not supported on API Levels [[15, 17]]
. Oui, android 4.2.2, SHA256 pas là? des idées?C:\Users\{username}\AppData\Local\Android\Sdk\build-tools\{version}
pour Android Studio et également dansC:\Program Files (x86)\Android\android-sdk\build-tools\{version}
(ou le chemin d'accès similaire) pour Visual Studio 2017 utilisateurs.zipalign -p 4 my.apk my-aligned.apk
ditERROR: unknown flag -p
.moyen le plus rapide est de s'inscrire avec le déboguer le fichier de clés:
ou sur Windows:
Vous utilisez jarsigner à signer APK de. Vous n'avez pas à signer avec le fichier de clés d'origine, tout en générer un nouveau. Lire sur les détails: http://developer.android.com/guide/publishing/app-signing.html
Pour ceux d'entre vous qui ne veulent pas créer un fichier bat à modifier pour chaque projet, ou ne veux pas me souvenir de toutes les commandes associées à la keytools et jarsigner programmes et veux juste que ça fait dans un processus d'utilisation de ce programme:
http://lukealderton.com/projects/programs/android-apk-signer-aligner.aspx
J'ai construit parce que j'en avais marre de la lenteur du processus d'avoir à les saisir de tous les emplacements de fichiers à chaque fois.
Ce programme peut enregistrer votre configuration, de sorte que la prochaine fois que vous le démarrez, vous avez juste besoin de frapper Générer un il s'en chargera pour vous. C'est tout.
Aucune installation nécessaire, il est complètement portable et enregistre ses configurations dans un fichier CSV dans le même dossier.
Mise à jour de réponse
Vérifier https://shatter-box.com/knowledgebase/android-apk-signing-tool-apk-signer/
Vieille réponse
vérifier apk-signataire une belle façon de signer votre application