web-dev-qa-db-fra.com

Resign apk with different keystore

Actuellement, je fais signer l'apk avec le fichier de magasin de clés privé, mais je veux signer cet apk avec un fichier de magasin de clés différent. Comment puis-je démissionner de cette apk ..?

21
Rookie

vous devriez vérifier ci-dessous SO thread

Puis-je démissionner d'un .apk avec un certificat différent

ou this on peut aussi vous aider

17
swiftBoy

Vous pouvez résigner votre apk avec un magasin de clés différent.

Suivez ces étapes:

Signature pour publication: $1.apk -> $1_release.apk"

Étape 1: Suppression de toute signature précédente

  • Modifiez l'extension de votre .apk à .Zip.
  • Ouvrez et supprimez le dossier META-INF
  • Remplacez l'extension par .apk
    Ou
    Commande: Zip [originalapk]
    Exemple: Zip "$1".apk -d

Étape 2: Signature avec release.keystore:

Commander:

jarsigner –verbose –keystore [keystorefile] –signedjar [unalignedapk] [originalapk] alias_name

Exemple:

C:\Program Files\Java\jdk1.6.0_43\bin> jarsigner -verbose -keystore release.keystore -signedjar "$1"_unaligned.apk "$1".apk release

Étape 3: Alignement

Commande: zipalign -f 4 [unalignedapk] [releaseapk]

Exemple:

C:\Users\Downloads\adt-bundle-windows-x86\adt-bundle-windows-x86\sdk\too ls>zipalign -f 4 "$1"_unaligned.apk "$1"_release.apk

Étape 4: Nettoyage

Commande: rm 4 [unalignedapk]
Exemple: rm "$1"_unaligned.apk


Des commandes supplémentaires pourraient aider:

  1. Pour générer une nouvelle clé avec keytool
keytool -genkey -alias -keystore 
  1. Pour répertorier les clés
keytool -list -keystore 

Remarque:

Pour signer nos apks, nous avons rétrogradé le JDK de 1.7 à 1.6.0_43.

Raison:

Depuis JDK 7, l'algorithme de signature par défaut a changé, vous obligeant à spécifier les algorithmes de signature et de résumé (-sigalg et -digestalg) lorsque vous signez un fichier APK.

Commander:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name
28
Harsha.Vaswani
  1. supprimer l'ancienne enseigne

    Zip -d xxxx.apk (votre fichier apk) META-INF/*

  2. signe apk

    jarsigner -verbose -keystore xxxx.keystore (votre keystore) -signedjar out_sign.apk (outfile) unsign.apk (unsign apk) xxxxxalias (votre alias)

  3. si le signe apk ne fonctionne pas et jdk> = 1,7

    ajouter des paramètres - digestalg SHA1 -sigalg MD5withRSA
    jarsigner -verbose - digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore (votre keystore) -signedjar out_sign.apk (outfile) unsign.apk (unsign apk) xxxxxalias (votre alias)

7
lingyfh

Vous pouvez également utiliser le script open-source apk-resigner, qui est très facile à utiliser.

APK-resigner: https://github.com/onbiron/apk-resigner

./signapk.sh calculator.apk ~/.Android/debug.keystore Android androiddebugkey

De plus, si vous souhaitez signer l'APK avec votre clé de débogage, vous pouvez utiliser.

./signapk.sh calculator.apk 
7
Fatih Axl