`
心雨心
  • 浏览: 355005 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android之APK文件签名——keytool和jarsigner

阅读更多

一、生成密钥库
将位置定位在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文件夹中

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

分享到:
评论

相关推荐

    签名apk文件包

    签名apk文件包,通常指的是Android应用的签名过程,这是Android应用程序发布前的必要步骤。SignApk是一款由谷歌开发的工具,用于对APK文件进行签名和优化,确保其安全性和完整性。签名APK是验证应用程序来源、维护...

    Gen_Signature_Android.apk

    《Android应用签名详解——以Gen_Signature_Android.apk为例》 在移动应用开发领域,尤其是Android系统中,应用的签名是确保软件安全性和完整性的关键环节。本篇文章将详细探讨Android应用签名的重要性、原理以及...

    手机APK签名工具

    Android系统使用数字证书对APK进行签名,通常使用Java的Keytool工具生成一对密钥——公钥和私钥。私钥用于签名,公钥则在设备上验证签名。签名过程主要包括以下步骤: 1. **生成密钥对**:使用Keytool创建一个包含...

    apk 签名工具

    在Android平台上,APK文件是应用程序的包文件,包含了运行应用的所有必要组件,如代码、资源和Manifest.xml。当开发者对APK进行修改,比如更新某个功能或修复漏洞,使用RAR等工具解压并编辑APK后,必须执行一个关键...

    apk签名

    在Android平台上,APK签名是发布应用到Google Play商店或在设备上安装应用程序时不可或缺的步骤。APK签名确保了应用程序的完整性和开发者身份的验证。以下是对"apk签名"这个主题的详细解释: 首先,我们需要理解APK...

    android系统签名工具

    基本语法是`jarsigner -verbose -keystore keystore_file -signedjar signed_apk_file unsigned_apk_file alias_name`,将未签名的APK文件unsigned_apk_file签名后保存为signed_apk_file。 3. **zipalign**:这是...

    apk签名工具

    在Android开发领域,APK签名是一个至关重要的环节,它确保了应用的安全性和完整性。APK是Android应用程序的打包格式,而“apk签名工具”则是一个用于对这些APK进行签名和验证的应用,使得用户能够在设备上安装和运行...

    安卓Android源码——打包签名 从生成keystore到完成签名.zip

    三、APK签名 1. 使用`jarsigner`命令行工具:这是Java提供的用于签署JAR文件的工具,同样位于JDK的bin目录下。 - 命令格式:`jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystore_file_...

    auto-sign(android签名工具)

    1. **生成密钥对**:使用Keytool工具创建一个包含公钥和私钥的Keystore文件。 2. **配置签名属性**:设置Keystore的密码、别名、别名密码等。 3. **签名APK**:使用Jarsigner工具将Keystore与未签名的APK关联,进行...

    Android--开发-- 打包签名 从生成keystore到完成签名.rar

    总结起来,Android应用的打包签名流程包括:生成keystore、使用`jarsigner`签名APK、ZIP Align优化和使用`apksigner`进行更高级别的签名。这一系列操作保证了应用的完整性和安全性,使得用户能够在Google Play或其他...

    Android4.4.2系统签名-带一键签名脚本

    Android 4.4.2系统签名,是针对这个特定版本Android系统进行签名操作的流程,它涉及到Android开发中的重要概念——`keystore`。 `keystore`是一个包含一个或多个证书密钥对的文件,用于存储开发者用于签署应用的...

    对Android的安装包(.apk),反编译

    可以使用JDK自带的keytool和jarsigner工具进行签名: ```bash keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 jarsigner -verbose -sigalg ...

    android签名软件

    本篇文章将详细探讨“Android签名”这一核心概念,以及如何使用特定的工具——如“Auto-sign”——来处理和创建签名的APK文件。 Android签名是指开发者使用私钥对应用程序的APK文件进行数字签名的过程。这个签名...

    应用宝原签名包应用宝原签名包

    在Android开发流程中,开发者通常会先创建一个未签名的apk(也就是unsigned APK),然后使用特定的工具如JDK的`jarsigner`或Android Studio的内置签名工具对其进行签名。 签名过程通常包括以下步骤: 1. **生成密钥...

    安卓签名工具

    在Android平台上,应用程序的发布和安装过程离不开一个关键步骤——签名。这个环节至关重要,因为它确保了应用的安全性和可信任性。本文将详细讲解"安卓签名工具"及其在刷机包制作和apk软件制作中的作用。 Android...

    ApkSignTool.app.zip

    总结,ApkSignTool作为一款专为Mac用户设计的APK签名工具,以其简洁的界面和高效的操作,成为了Android开发者不可或缺的工具之一。熟练掌握并运用ApkSignTool,能够有效地提升开发效率,确保应用的安全发布。

    Auto-sign 安卓rom包签名工具

    1. **生成密钥对**:首先,开发者需要使用如Keytool这样的工具创建一对密钥——一个公钥和一个私钥。私钥用于签名,而公钥则用于验证签名。 2. **修改ZIPalign**:为了优化内存访问和提高性能,所有APK文件都需要...

    debug-keystore.zip

    在Android开发过程中,调试应用程序是不可或缺的一环,而`debug-keystore.zip`这个压缩包文件包含的就是Android系统默认的调试签名文件——`debug.keystore`。本文将深入讲解`debug.keystore`、签名机制以及如何使用...

Global site tag (gtag.js) - Google Analytics