Android:APK签名

在没有源代码的情况下,通过反编译apk修改以后重新打包的apk,需要重新签名才能安装。

1. 将JDK路径添加到PATH环境变量中:C:\Program Files\Java\jdk1.6.0_33\bin

2. 创建keystore

keytool -genkey -v -keystore fetion.keystore -alias fetion_sign -keyalg RSA -keysize 2048 -validity 20000

说明:为了不改动签名信息,首先通过jarsigner得到了原始的签名信息关于组织机构等的信息,具体见下面介绍获取签名信息的方法。

输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
  [Unknown]:  高雷
您的组织单位名称是什么?
  [Unknown]:  北京新媒传信科技有限公司
您的组织名称是什么?
  [Unknown]:  新媒传信
您所在的城市或区域名称是什么?
  [Unknown]:  北京
您所在的州或省份名称是什么?
  [Unknown]:  北京
该单位的两字母国家代码是什么
  [Unknown]:  cn
CN=高雷, OU=北京新媒传信科技有限公司, O=新媒传信, L=北京, ST=北京, C=cn 正确吗?

  [否]:  是

正在为以下对象生成 2,048 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 20,000 天):
         CN=高雷, OU=北京新媒传信科技有限公司, O=新媒传信, L=北京, ST=北京, C=cn
输入<fetion_sign>的主密码
        (如果和 keystore 密码相同,按回车):
[正在存储 fetion.keystore]

3. 给apk签名:

首先将原apk更名为rar文件,找到META-INF目录,将里面的文件全部删除。重命名为apk

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore fetion.keystore fetion.apk fetion_sign

验证是否签名完成:

jarsigner -verify fetion.apk
jar 已验证。

如果需要知道更详细的信息:

jarsigner -verify -verbose -certs fetion.apk > sign.txt


以上仅供技术研究分析用途。

参考文档:

http://developer.android.com/tools/publishing/app-signing.html



没有更多推荐了,返回首页