【转】Android之apk文件签名——keytool 和 jarsigner

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一、生成密钥库
将位置定位在jdk的bin文件中,输入以下命名行:

keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore 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
输入<ChangeBackgroundWidget.keystore>的主密码
(如果和 keystore 密码相同,按回车):

keytool

                                     图1

二、可以生成签名的apk文件

这里输入文件ChangeBackgroundWidget.apk,最终生成ChangeBackgroundWidget_signed.apk为Android签名后的APK执行文件
输入以下命令行:

jarsigner -verbose -keystore ChangeBackgroundWidget.keystore -signedjar ChangeBackgroundWidget_signed.apk ChangeBackgroundWidget.apk ChangeBackgroundWidget.keystore

上面的命令中间不换行,按“Enter”键,根据提示输入密钥库的口令短语(即密码),详细信息如下及图2:
输入密钥库的口令短语:
正在添加: 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

jarsinger

                                          图2

====================================================

在运行这种方式中,我碰到过几种不同的问题:
问题一: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的那个目录下,这样操作起来就方便了。
==========================================
MS我找到了第二个问题的解决方法了。。。
首先右击要签名APK对应的项目,选中“Android Tools”右扩展栏中的“Export Unsigned Application Package...”,,如图3

export

                                                 图3

在弹出的对话框中将这个未签名的apk储存在jdk的bin文件夹中,如图4:

save

                                                 图4

然后在运行上面的步骤即可。

 

转自: http://blog.sina.com.cn/s/blog_62c194760100gaq0.html

分类: Android
Android 教程系列第 28 篇】Android 分别使用 jarsigner apksigner 对 APK 签名(v1、v2 签名)的详细教程 一:jarsigner apksigner 两种签名工具的介绍。 二:v1 签名 v2 签名的区别。 三:使用 jarsigner apksigner 对 apk 进行签名。 四:检查 apk 是否已经签名,以及签名的等级。 阅读详情

相关推荐

掌握Android应用签名keytooljarsigner教程

应用签名通常涉及到创建一个密钥库文件(keystore),该文件含了用于签名的密钥对。然后,使用这个密钥对对APK文件进行签名操作。签名后的APK文件会在安装时被Android系统验证,确保其未被更改过,并且确实是由拥有相应私钥的开发者发布的。keytool是一个强大的命令行工具,它是Java Development Kit (JDK)的一部分,专门用于导入密钥对到Java密钥库(JKS)或PKCS#12格式的密钥库中。

weixin_31620365的博客 1295

Android APK生成系统签名文件

文件Android APK生成系统签名文件,关于本文件的详细用法请参见博文:http://blog.csdn.net/l1028386804/article/details/47687027

OPPO获取应用Sign,APK签名工具.rar

OPPO获取应用SignAPK,用于OPPO平台创建应用

Java Keytool 生成 keystore 命令

Java Keytool 生成 keystore 命令Keytool 是一个Java数据证书的管理工具 ,Keytool将密钥(key)证书(certificates)存在一个称为keystore的文件中在keystore里,含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥配对公钥(采用非对称加密)可信任的证书实体(trusted certificate e

lq 6469

oppo应用认领,将应用一致的签名写入空

https://blog.csdn.net/qq_25406415/article/details/118514685

m0_61454727的博客 762

利用keytools 生成keystore

介绍如何生成keystore cmd下: 进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文件。 C:\ProgramFiles\Java\jdk1.7.0_01\bin> keytool-genkey-aliasandroid.keystore-keyalgRSA-validity20000-keystoreandroid.keystore -aliasandroid.keystore 生成的keyst...

qq_23911165的博客 538

keytool使用详解-11项功能举例

括keytook的如下功能: 1.创建一个证书 2.列出证书库中所有的证书 3.列出证书库中别名为xahCA的证书 4.删除证书库中证书别名为xahCA的证书 5.修改证书密码 6.非交互式修改密码 7.列出证书的详细信息 8.将证书导出到证书文件中(该证书文件以二进制编码,无法用文本编辑器查看,不利用公布证书) 9.将证书导出到证书文件中(以一种可打印的编码输出) 10.查

down177的专栏 784

Oppo市场认领应用之OppoSignVerify.apk签名流程

前言:由于之前在oppo市场上提交过应用,但是账号密码都忘记了。因此这里需要进行应用认领,也就是对OppoSignVerify.apk进行签名并提交审核的过程。 准备资料:原应用的jks签名文件、OppoSignVerify.apk、原签名文件使用的别名密码。 环境:电脑安装好jdk环境 签名流程: 将OppoSignVerify.apk签名的jks文件拷贝到jdk的bin目录下。 命令行切...

白哥哥的博客 4072

Android签名keytooljarsigner制作apk文件 ()

Android签名keytooljarsigner制作apk文件 作者: Android开发网原创时间: 2008-11-14 Android程序的签名Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android M...

163

APK签名keytool生成keystorejarsigner签名apk

http://www.tttabc.com/android/keytool-keystore-jarsigner-apk.htm APK签名keytool生成keystorejarsigner签名apk android程序的签名Symbian类似都可以自签名(Self-signed),但是在android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被

HeAiMing 7059

获取KeyStore信息

获取KeyStore信息获取KeyStore信息获取KeyStore信息获取KeyStore信息获取KeyStore信息获取KeyStore信息

apk签名jarsigner命令签名

apk签名工作可以通过两种方式来完成: 1)通过ADT提供的图形化界面完成apk签名;2)完全通过DOS命令来完成apk签名 1)准备工作 我比较喜欢第2)种方式,所以下面将讲解如何通过命令的方式完成apk签名。 给apk签名一共要用到3个工具,或者说3个命令,分别是:keytooljarsignerzipalign,下面是对这3个工具的简单介绍: 1)keytool:生成数字证书,即...

Candicelijx的专栏 3374

APK签名

APKAndroid application package)需要将所有内容打成为一个被Android系统所能识别的文件,才可以被运行,一个apk文件含被编译的代码文件(.dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),清单文件(manifest file)。优点是不再需要一个apk含所有类型的安卓设备的所有内容,开发者只需要根据需求上传更新,减少了应用程序安装的大小体积。都是用来打的,并保证应用的唯一性。

代码充电宝 5220

Androidapk文件签名——keytool jarsigner

一、生成密钥库 将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore ChangeBackgroundWidget.keystore 上面的命令中间不换行,按下“Enter”键,并根据提示填写相关信息,详细信...

顺其自然~专栏 699

[安卓逆向]apktool实现APK反编译、重打签名

apktool 主要用于逆向apk文件。它可以将资源解码,并在修改后可以重新构建它们。

杰孑的博客 1万+

Android签名keytooljarsigner制作apk文件

  Android程序的签名Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法   首先在Android开发时没有安装JDK的网友在Sun官方网站下...

biandroid的专栏 148
上一篇: 士兵突击
下一篇: sqlserver2008日志压缩
coolybq
博客等级 码龄24年 8粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值