一、生成密钥库
将位置定位在jdk的bin文件中,输入以下命名行:keytool -genkey -alias ChangeBackgroundWid
get.keystore -keyalg RSA -validity 20000 -keystore ChangeBackgroundWidget.keystore(中间不换行),按下“Enter”键,并根据提示填写相关信息,详细信息如下及图1(validity为有效期,这里有效期为20000天):
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: mythlink
您的组织单位名称是什么?
[Unknown]: www.mythlink.com
您的组织名称是什么?
[Unknown]: www.mythlink.com
您所在的城市或区域名称是什么?
[Unknown]: Shen Zhen
您所在的州或省份名称是什么?
[Unknown]: Guang Dong
该单位的两字母国家代码是什么
[Unknown]: CN
CN=mythlink, OU=www.mythlink.com, O=www.mythlink.com, L=Shen Zhen, ST=Guang Dong
, C=CN 正确吗?
[否]: Y
D:\Program Files\Java\jdk1.6.0_12\bin>keytool -genkey -alias ChangeBackgroundWid
get.keystore -keyalg RSA -validity 20000 -keystore ChangeBackgroundWidget.keysto
re
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: mythlink
您的组织单位名称是什么?
Android之APK文件签名——keytool和jarsigner
[Unknown]: www.mythlink.com
您的组织名称是什么?
[Unknown]: www.mythlink.com
您所在的城市或区域名称是什么?
[Unknown]: Shen Zhen
您所在的州或省份名称是什么?
[Unknown]: Guang Dong
该单位的两字母国家代码是什么
[Unknown]: CN
CN=mythlink, OU=www.mythlink.com, O=www.mythlink.com, L=Shen Zhen, ST=Guang Dong
, C=CN 正确吗?
[否]: Y
输入<ChangeBackgroundWidget.keystore>的主密码
(如果和 keystore 密码相同,按回车):
二、可以生成签名的apk文件,这里输入文件ChangeBackgroundWidget.apk,最终生成ChangeBackgroundWidget_signed.apk为Android签名后的APK执行文件
输入以下命令行:
jarsigner -verbose -keystore ChangeBackgroundWidget.keystore -signedjar ChangeBackgroundWidget_signed.apk ChangeBackgroundWidget.apk ChangeBackgroundWidget.keystore(中间不换行),按“Enter”键,根据提示输入密钥库的口令短语(即密码),详细信息如下
输入密钥库的口令短语:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/CHANGEBA.SF
正在添加: META-INF/CHANGEBA.RSA
正在签名: res/drawable/icon.png
正在签名: res/drawable/icon_audio.png
正在签名: res/drawable/icon_exit.png
正在签名: res/drawable/icon_folder.png
正在签名: res/drawable/icon_home.png
正在签名: res/drawable/icon_img.png
正在签名: res/drawable/icon_left.png
正在签名: res/drawable/icon_mantou.png
正在签名: res/drawable/icon_other.png
正在签名: res/drawable/icon_pause.png
正在签名: res/drawable/icon_play.png
正在签名: res/drawable/icon_return.png
正在签名: res/drawable/icon_right.png
正在签名: res/drawable/icon_set.png
正在签名: res/drawable/icon_text.png
正在签名: res/drawable/icon_xin.png
正在签名: res/layout/fileitem.xml
正在签名: res/layout/filelist.xml
正在签名: res/layout/main.xml
正在签名: res/layout/widget.xml
正在签名: res/xml/widget_info.xml
正在签名: AndroidManifest.xml
正在签名: resources.arsc
正在签名: classes.dex
================================================================
在运行这种方式中,我碰到过几种不同的问题:
问题一:jarsigner: 无法打开 jar 文件: ChangeBackgroundWidget.apk
我的解决方法是:将要进行签名的APK放到对应的文件下,如我把要签名的ChangeBackgroundWidget.apk放到JDK的bin文件里。
问题二:jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry comp
ressed size (expected 1598 but got 1622 bytes)
这个问题,我还没解决,在网上搜了下,找到了一种方法,但我实践没完全,所以不知道这个解决方法是否正确:
方法一:Android开发网提示这些问题主要是由于资源文件造成的,对于android开发来说应该检查res文件夹中的文件,逐个排查。这个问题可以通过升级系统的JDK和JRE版本来解决。
方法二:这是因为默认给apk做了debug 签名,所以无法做新的签名这时就必须点工程右键->Android Tools ->Export Unsigned Application Package.
或者从AndroidManifest.xml的 Exporting上也是一样的
然后再基于这个导出的unsigned apk做签名,导出的时候最好将其目录选在你之前产生keystore的那个目录下,这样操作起来就方便了。
PS:各位高手找到可行的解决方法,希望能告诉我下呵。
==========================================
MS我找到了第二个问题的解决方法了。。。
首先右击要签名APK对应的项目,选中“Android Tools”右扩展栏中的“Export Unsigned Application Package...”
在弹出的对话框中将这个未签名的apk储存在jdk的bin文件夹中
然后在运行上面的步骤即可。
分享到:
相关推荐
Android签名用keytool和jarsigner制作apk文件
下载该文件后利用JDK中jarsigner工具生成签名文件 将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore ...
如果你需要开发一个带有系统...给apk加上开发者签名(jks文件),使用keytool-importkeypair 对jks文件进行系统签名,在出包的时候,直接使用带有系统签名的jks对apk进行签名,这样编译生成的apk文件就自带系统签名了
KeyStore Explorer是Java命令行实用程序keytool和jarsigner的免费GUI替代品。 官方网站: : 特征: 在各种KeyStore类型之间创建,加载,保存和转换:JKS,JCEKS,PKCS#12,BKS(V1和V2)和UBER 更改密钥库和...
Android apk获得系统权限签名工具
系统签名工具keytool-importkeypair.zip
生成系统签名所需的文件,当然这是官方的,如果系统是定制的话这2个文件就不适用了,需要自己找系统提供商来要这2个文件。使用方法: 将三个文件文件放在同一个目录下,执行如下命令,会生成platform.keystore文件: ...
本文实例讲述了Android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下: 做个记录(这里只是Java层的签名校验,java层容易被破解,我建议apk加固下) 获取md5值来进行Apk签名校验...
右键项目——》 Android Tools ——》Export Signed Application Package… ——》 打开图形界面2)完全通过shell/dos命令来完成apk签名 我比较喜欢第2)种方式,所以下面将讲解如何通过命令的方式完成apk签名。 给...
keytool 查看apk 的签名信息(如MD5、SHA1、SHA256)
odex和apk合成dex 一、APK生成odex文件方法: 编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤 ...5. 不要忘记了签名,使用jdk中的arsigner和keytool打包重新签名即可。
1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;
· 对*.Apk、*.Zip 文件执行签名 · Windows下直示Apk件自身图标 v2.0.2 正式版 2016.06.05 *.更新,ShakaApktool v2.0.0(2016.06.01) *.更新,Apktool v2.1.1正式版(2016.05.07) *.更新,7-zip压缩工具版本到16.02...
用于Android开发给app系统签名文件,jks签名文件,包含signapk.jar,和keytool-importkeypair等文件。keytool-importkeypair的使用已经在文件中了。
Android 资源 platform.pk8 platform.x509.pem signapk.jar keytool-importkeypair (debug-apk.jks 密码:123456)
生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的。如果想要自己给apk签名:1.签名的意义为了保证每个应用程序开发商...
资源内有文件 platform.pk8 platform.x509.pem signapk.jar keytool-importkeypair 以及使用 keytool-importkeypair来运行命令得到的带有系统签名的jks(需要在linux下运行命令 得到的jks用于debug模式下的程序带有...
jadx-gui 安卓 Android系统获取包名、平台公钥、签名 MD5 值, pepk.jar 生成的签名密钥指引以及工具。...把Pepk.jar和你项目的签名文件(xxx.jks)复制到JDK的bin目录下,运行命令打包、加密签名密钥文件