Apk签名方法

前言

debug的时候我们有时候会使用shared uid,对于系统签名的应用来说,就需要重新sign

步骤

直接使用命令行签名

签名文件,以platform key为例:

  1. build\target\product\security

    platform.x509.pem
    platform.pk8

  2. 签名过程:

    使用signapk.jar进行签名:

  3. 签名工具:

    build\tools\signapk\
    通过Android.mk build生成
    生成的地方在:prebuilts/sdk/tools/lib/signapk.jar

  4. 命令

    java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk
    output.apk就是签名后的apk

使用android studio进行签名

  1. 需要得到key.store文件

    下载:https://github.com/getfatday/keytool-importkeypair

  2. 通过命令行获得key.store文件

    keytool-importkeypair -k ~/platform .keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

  3. 把得到的debug.keystore文件放到android studio project的任意目录,注意需要跟gradle.bat中的配置相匹配

    修改gradle(这里是把keystore放在app/keystore/目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
signingConfigs {
release {
File strFile = new File("../app/keystore/platform.keystore")
storeFile file(strFile)
keyAlias 'platform'
keyPassword 'android'
storePassword 'android'
}
debug {
File strFile = new File("../app/keystore/platform.keystore")
storeFile file(strFile)
keyAlias 'platform'
keyPassword 'android'
storePassword 'android'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.debug
}
}

参考文章:http://www.mobibrw.com/2015/2826