Resign apk with different keystore

后端 未结 4 1921
青春惊慌失措
青春惊慌失措 2021-02-01 19:09

Currently I\'m getting the apk signed with the private keystore file but I want to sign that apk with different keystore file. How can I resign that apk..?

相关标签:
4条回答
  • 2021-02-01 19:56

    you should check below SO thread

    Can I resign an .apk with a different certificate

    or this one also may help you

    0 讨论(0)
  • 2021-02-01 19:58
    1. remove old sign

      zip -d xxxx.apk(your apk file) META-INF/*

    2. sign apk

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

    3. if sign apk not work and jdk >= 1.7

      add params -digestalg SHA1 -sigalg MD5withRSA
      jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore(your keystore) -signedjar out_sign.apk(outfile) unsign.apk(unsign apk) xxxxxalias(your alias)

    0 讨论(0)
  • 2021-02-01 20:01

    You can also use the open-source apk-resigner script, which is very easy to use.

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

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

    Also if you want to sign the APK with your debug key, you may use.

    ./signapk.sh calculator.apk 
    
    0 讨论(0)
  • 2021-02-01 20:11

    You can resign your apk with different keystore.

    Follow these steps:

    Signing for release: $1.apk -> $1_release.apk"

    Step 1: Removing any previous signing

    • Change the extension of your .apk to .zip.
    • Open and delete the folder META-INF
    • Change the extension to .apk
      Or
      Command: zip [originalapk]
      Example: zip "$1".apk -d

    Step 2: Signing with release.keystore:

    Command:

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

    Example:

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

    Step 3: Aligning

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

    Example:

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

    Step 4: Cleaning up

    Command: rm 4 [unalignedapk]
    Example: rm "$1"_unaligned.apk


    Additional Commands might help:

    1. To generate new key with keytool
    keytool -genkey -alias  -keystore  
    1. To list keys
    keytool -list -keystore 

    Note:

    To sign our apks we have downgraded JDK from 1.7 to 1.6.0_43 update.

    Reason:

    As of JDK 7, the default signing algorithim has changed, requiring you to specify the signature and digest algorithims (-sigalg and -digestalg) when you sign an APK.

    Command:

    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name
    
    0 讨论(0)
提交回复
热议问题