Android 应用重新签名教程

Android 应用重新签名教程

一、为什么要重新签名?

APK文件在安装时,操作系统会根据签名去验证这个APK文件的完整性,而我们在做加固处理的时候,会对该APK文件中的classes.dex、AndroidManifest.xml等文件作出修改,这样APK文件的原签名就会失效,所以用户需要在下载加固包之后,重新进行签名。

因为签名需要使用用户自己的秘钥文件,所以我们无法替用户完成这个工作。
 

二、如何签名?

可以通过jarsigner、signapk、apksigner等工具对APK文件进行签名。其中jarsigner是JDK自带的一个签名工具,也可用于对jar文件进行签名。signapk是专门用于对APK文件进行签名的工具。apksigner支持更安全的APK Signature Scheme v2签名方式。

下面是在Windows环境下使用jarsigner进行签名的一个示例命令行:

打开CMD命令行,输入下述

jarsigner -verbose -keystore C:\Users\XXX.keystore -signedjar C:\Users\YYY_signed.apk C:\Users\YYY.apk ZZZ.keystore

 
1)jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;

2)-keystore C:\Users\XXX.keystore 表示签名所使用的数字证书所在的完整路径名,C:\Users\XXX即指代该完整路径名,请根据实际情况进行替换;

3)-signedjar C:\Users\YYY_signed.apk C:\Users\YYY.apk 表示给YYY.apk签名,签名后的文件名称为YYY_signed.apk;这里使用的都是完整路径名。

4)最后面的ZZZ.keystore 表示证书的别名,对应于生成数字证书时-alias参数后面的名称

三、重要提示

上述示例仅供简单参考。

无论使用哪个工具都有很多的命令参数可以选择,用户应该根据自己的实际需要选用合适的工具和合适的命令行参数进行签名。


    • Related Articles

    • iOS 应用重新签名教程

      一、为什么要重签名 按照苹果签名规则,IPA打包后,修改包中的任何内容,都需要对该IPA包重新签名,否则无法上传App Store审核发布。   二、使用命令行重签名方法,以XXXXX.ipa为例 1、解压缩IPA包 unzip XXXXX.ipa   2、重新签名 /usr/bin/codesign -f -s "iPhone Distribution: XXXXXX" --resource-rules Payload/*.app/ResourceRules.plist ...
    • Android Material Design 详解

      交互和视觉设计正在发生变化,来自开发者、设计师以及用户们的新鲜点子和越来越多的交互场景正在对我们的 Material Design 提出更新的要求 —— 更灵活、适应性更强,且更有可执行性。 于是我们对 material.io 进行了这次重大升级。全新改版的 material.io 覆盖了从设计、开发到工具的各个方面,新增了对全新场景、控件的详尽解读,而且引入了可交互的操作,让您可以知晓边距、对齐等布局要素在动态界面中的变化和执行细节。 本期教学视频内容: Android Material ...
    • Google Android P 教学视频

      2018年3月,Google 官方正式发布了 Android P 的首个开发者预览版操作系统,面向广大开发者,广泛征集反馈建议。那么这次 Android P 给大家带来了哪些惊喜呢?一起跟着视频来了解一下吧。 本期教学视频内容: 1、Android P 开发者预览版新亮点 2、Android P 开发者预览版功能详解 主讲方:Google
    • Android NDK 教学详解

      想让您的 Android APP 有出类拔萃的性能吗?想在支持的设备上为 Machine Learning 框架提供硬件加速吗?是否想把您其他平台上心爱的游戏和 APP 迅速地移植到 Android 上面来?如果您有这些想法,或者为之所困,也许答案就在您的眼前:Android Native Development Kit!NDK 提供了调试和提高 Android APP 性能的途径与工具;透过 NDK,您可以使用已有的或重新开发高性能的 C/C++ APP。 本期教学视频内容: Android ...
    • Android Studio 3.0 Android 分析器教学详解

      Android Studio 的 3.0 版再次推出了一连串帮助开发者提升效率的优化。最新的 Android Profiler 分析器把 CPU、内存和网络等的分析数据都整合在同一时间线上,令您一目了然。 高级 profiling instrumentation 现在可以追踪更多包括网络负载、App 事件等数据,让您不需更改任何代码就可以调试 App 的效率和网络访问,大大的减轻工作量,更快的把 Bug 修好。 本期教学视频内容: Android Studio 3.0 Android ...