2012-06-06 13 views
17

Derzeit bekomme ich die apk unterzeichnet mit der privaten Keystore-Datei, aber ich möchte diese apk mit anderen Keystore-Datei signieren. Wie kann ich diese apk .. zurücktreten?Resign apk mit anderen Keystore

+1

nein dude ich glaube nicht – Trikaldarshi

+0

bitte erklären ..1- wollen Sie die gleiche signierte apk oder neue apk des gleichen Projekts zu unterzeichnen ...... –

+0

Ich möchte die gleiche apk – Rookie

Antwort

24

Sie können helfen, fädeln Sie Ihre apk mit verschiedenen Schlüsselspeicher zurücktreten kann.

folgenden Schritte aus:

für die Freigabe Anmeldung: $1.apk -> $1_release.apk"

Schritt 1: jede vorherige Unterzeichnung

  • Ändern Sie die Erweiterung Ihres .apk-.zip entfernen. zip [originalapk]
    Beispiel: zip "$1".apk -d

Schritt 2: Signieren mit Release .apk
Oder
Befehl

  • öffnen und den Ordner META-INF
  • Ändern Sie die Erweiterung löschen.Schlüsselspeicher:

    Befehl:

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

    Beispiel:

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

    Schritt 3: Ausrichten

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

    Beispiel

    :

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

    Schritt 4: Aufräumen

    Befehl: rm 4 [unalignedapk]
    Beispiel: rm "$1"_unaligned.apk


    Zusätzliche Befehle helfen könnten:

    1. Um neue Schlüssel mit keytool
    keytool -genkey -alias -keystore
    1. Um einen Schlüssel
    keytool -list -keystore

    Hinweis zu generieren:

    Um unsere APKs zu unterschreiben, haben wir JDK von 1.7 auf 1.6.0_43 upgedated.

    Grund:

    Ab JDK 7 ist die Standard-Signier-algorithmus hat sich geändert, die Sie auffordert, die Signatur zu spezifizieren und algorithims (-sigalg und -digestalg) zu verdauen, wenn Sie eine APK unterzeichnen.

    Befehl:

    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name 
    
  • 7

    Sie können auch die Open-Source-apk-résigner Skript verwenden, die sehr einfach zu bedienen ist.

    APK-résigner: https://github.com/onbiron/apk-resigner

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

    Auch wenn Sie die APK mit Ihrem Debug-Schlüssel signieren möchten, können Sie verwenden.

    ./signapk.sh calculator.apk 
    
    6
    1. Altsignatur entfernen

      zip -d xxxx.apk (Ihre apk-Datei) META-INF/*

    2. Zeichen apk

      jarsigner -verbose -keystore xxxx.keystore (Keystore-) -signedjar out_sign.apk (outfile) unsign.apk (unsign apk) xxxxxalias (Ihr Alias)

    3. wenn Zeichen apk nicht funktionieren und jdk> = 1,7

      hinzufügen params -digestalg SHA1 -sigalg MD5withRSA
      jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore (Keystore-) -signedjar out_sign.apk (outfile) unsign.apk (unsign apk) xxxxxalias (Ihr Alias)