导航:首页 > 编程大全 > apk签名工具签名

apk签名工具签名

发布时间:2023-03-21 16:34:38

① Android中APK签名工具之jarsigner和apksigner详解

转自 https://www.cnblogs.com/slysky/p/9780015.html

一.工具介绍

jarsigner是JDK提供的针对jar包签名的通用工具,

位于JDK/bin/jarsigner.exe

apksigner是Google官方提供的针对Android apk签名及验证的专用工具,

位于Android SDK/build-tools/SDK版本/apksigner.bat

不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),

以上两个工具都可以对Android apk包进行签名.

1.V1和V2签名的区别

在Android Studio中点击菜单 Build->Generate signed apk... 打包签名有两种签名选项 V1(Jar Signature) V2(Full APK Signature),

从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);

但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)

V1签名此碰:

V2签名:

V2签名优点很明显:

注意: apksigner工具默认同时使用V1和V2签名,以兼容Android 7.0以下版本

2.zipalign和V2签名

位于Android SDK/build-tools/SDK版本/zipalign.exe

zipalign 是对zip包对齐的工具,使APK包内未压缩的数据有序排列对齐,从而减少APP运行时内存消耗

zipalign -v 4 in.apk out.apk //4字节对齐优化

zipalign -c -v 4 in.apk //检查APK是否对齐

zipalign可以在V1签名后执行

但zipalign不能在V2签名后执行,只能在V2签名之前执行!!!

二.签名步骤

1.生成密钥对(已有密森如谈钥库,可忽略)

Android Studio在Debug时橡缓,对App签名都会使用一个默认的密钥库:

1.生成密钥对

进入JDK/bin, 输入命令

参数:

提示: 可重复使用此条命令,在同一密钥库中创建多条密钥对
例如: 在debug.keystore中新增一对密钥,别名是release

keytool -genkeypair -keystore debug.keystore -alias release -validity 30000

2.查看密钥库

进入JDK/bin, 输入命令

keytool -list -v -keystore 密钥库名

参数:

例如:
keytool -list -v -keystore debug.keystore

现在debug.keystore密钥库中有两对密钥, 别名分别是androiddebugkey release

2.签名

1.方法一(jarsigner,只支持V1签名)

进入JDK/bin, 输入命令

从JDK7开始, jarsigner默认算法是SHA256, 但Android 4.2以下不支持该算法,

所以需要修改算法, 添加参数 -digestalg SHA1 -sigalg SHA1withRSA

参数:

例如:

用JDK7及以上jarsigner签名,不支持Android 4.2 以下

jarsigner -keystore debug.keystore MyApp.apk androiddebugkey

用JDK7及以上jarsigner签名,兼容Android 4.2 以下

jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey

2.方法二(apksigner,默认同时使用V1和V2签名)

进入Android SDK/build-tools/SDK版本, 输入命令

若密钥库中有多个密钥对,则必须指定密钥别名

禁用V2签名

apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk

参数:

例如:

在debug.keystore密钥库只有一个密钥对

apksigner sign --ks debug.keystore MyApp.apk

在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名

apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk

3.签名验证

1.方法一(keytool,只支持V1签名校验)

进入JDK/bin, 输入命令

keytool -printcert -jarfile MyApp.apk (显示签名证书信息)

参数:

2.方法二(apksigner,支持V1和V2签名校验)

进入Android SDK/build-tools/SDK版本, 输入命令

apksigner verify -v --print-certs xxx.apk

参数:

例如:

apksigner verify -v MyApp.apk

② apk签名是什么意思

apk是安卓应用软件包,apk签名是软件包在安装的时候进行的安全性验证机制。

这种签名机制目的是为了确保Apk来源的真实性,以及Apk没有被第三方篡改。开发者通过对Apk进行签名:在Apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。

(2)apk签名工具签名扩展阅读:

1、APK的格式定义

在Android平台中,dalvikvm的执行文件被打包为apk格式,最终运行时加载器会解压,然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下,会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在androidrom中,系统的apk文件默认会放入这个文件夹,它们拥有着root权限。

2、APK的开发环境

Android是一个基于Java的开发环境,Google也在API文档的书写和样例的提供上做了很出色的工作。

3、获取SDK

下载并安装android的SDK[软件开发套件],这套SDK主要包括有核心库文件,一个模拟器,开发工具和一些示范的样例文件。推荐使用Eclipse 和androideclipse 扩展。如果只是使用android,Eclipse IDE就已经足够了,但如果是第一次开衡含发Java应用,建物搏议下载完整的Java SE 开发工具 (JDK) 因为它包括签发应用程序所需要的工具。

4、APK应用架构

android应用架构很关键,如果不学习它,设计出来的游戏将是一种很难修复bug的产品。 需要了解应用程序、活动、Intents以及它们是如何互相联系交互的,Google在这儿提供了良好的信息架构。真正重要的是,要理解为什么在设计的游戏中,需要不止一个的活动进程,以及如何设计一个用户体验良好的游戏。这些都应当配合到应用的生命周期中。

5、APK应用的生命周期

应用的生命周期是由Android OS操作系统进行管理的,活动进程都将作为系统命令进行创建,正确处理这些事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。最好在开始设计游戏之前搞明白这些,因为这有助于节省调试时间以及避免代价高昂的重新设计。

对大多数应用而言,默认设置即可开始工作,但对游戏而言,可能需要调整单态实例的信号为打开。在默认情况下,Android会新建一个活动实例进程,因为它认为这是比较合适的,而游戏,可能只希望有一个活动的实例进程,这有一点儿影响,它需要了解一些系统状态的管理。

参罩拦祥考资料来源:网络-apk

③ apk签名工具

对apk进行反编译并修宏做改后,需要对重新打包的apk进行签名。

秘钥生成工具——keytool
路径:jdk/bin/keytool.exe
生成秘钥: keytool -genkeypair -keystore test.keystore -alias test -validity 10 -keyalg RSA
其中-validity指定有效期天数,-keyalg指定算法
查看秘埋绝稿钥信息: keytool -list -v -keystore test.keystore

JDK签名工具——jarsigner
仅支持V1签名
路径弯孝:jdk/bin/jarsigner.exe
命令: jarsigner -keystore test.keystore test.apk testkey

apk签名工具——apksigner
默认开启V1和V2签名
路径:AndroidSDK/build-tools/28.0.0/apksigner.bat
命令: apksigner sign --ks xx.keystore --ks-key-alias testkey test.apk

④ 如何为apk/zip文件签名

我们在接触文件中会遇到要为apk/zip文件签名的情况,而很多人不知道如何签名,在这里我给大家分享个简易版的为apk/zip文件签名旁卖的方法。

工具/材料

电脑

rom制作工具

apk/zip文件

⑤ 如何对apk进行签名

给apk文件签名主要分三步:
1、创建证书
2、签名
3、优化(可选)
1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。

⑥ Android开发之通过apksigner对apk进行v2签名

在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2签名方式,美团也推出相应的 Android渠道包生成工具Walle 。
360加固后需要重新签名,借助360官方提供的 签名工具qihoo apk signer ,是采用的7.0以前的v1签名,这时再通过walle打渠道包,是无念闭知法成功往apk写入渠道号的。这时我们就必须借助 Android SDK提供的apksigner 工具对已经打包好的apk进行v2签名。

Android官方文档已经对 apksigner的使用 有比较详细的解释。下面说说实际的操作步骤:

zip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk包体积增大了100KB左右)。
打开cmd,把目录切换到SDK的build-tools目录下(例如 E:SDKuild-tools25.0.2 ),执行:

zipalign命令选项不多:
-f : 输出文件覆盖源文件
-v : 详细的输出log
-p : outfile.zip should use the same page alignment for all shared object files within infile.zip
-c : 检查当前APK是否已经执行过Align优化。
另外上面的数字4是代表按照4字节(32位)边界对齐。

这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android7.0后才推出的,所以只有 版本>25 的SDKuild-tools中才能找到apksigner.jar。
打开cmd,把目录切到SDKuild-tools版本号lib下(例如 E:SDKuild-tools25.0.2lib ),执行:

示例:

apksigner还支持另外的一些选项, 详态首情点击这里 。包括指定min-sdk版本、max-sdk版本仔消、输出详细信息、检查apk是否已经签名等等。
例如检查apk是否已经签名:

zipalign + apksigner,两步走完成对apk包的v2签名。且以上工具位于AndroidSDK目录的build-tools中。

⑦ apktool签名获取更新版本号失败有影响吗

有。在使用签名工具对一个软件进行签名的时候,因为版本号受限制,会导致数据的丢失,因此是有影响。签名是对要发布的apk文件作标记,确保你迟粗扰的apk文件有唯凳枝一的身份归属认证,只有相同签名和相同包名的文件才可以覆盖安装并码旦保留用户信息。

⑧ Android Apk签名工具

目前发布APK之前大家都会采用第三方加固方案来实现应用安全,锋册态

在Windows下 360有签名工具可以直接签名,腾讯乐固目前取消了签名工具采用云端加固,但是之后需要自己重签名(因为加固之前会先去掉签名)。

在Mac下没有签名工具,这就比较难受了。

一般来说,我们可以通过命令行来签名Apk,打开命令行或者终端 输入如下命令

但是这样容易比较麻烦,还容易出错,其实我们还可以使用脚本来完成自动签名。

这里来简单说明一下吧,我是采用python来实现的, Mac与Windows均可使用
本文python环境:python 3.8.2

sign.json 与signTool.py文件需要在同一文件夹下

其中sign.json 是签名文件配置项(在工具中可以快捷选择,银源也可以不配置)
如下:

这样就配置好了

signTool.py 是签名工具,通过命姿侍令行或者终端运行该文件就行了

signTool.py文件如下:

运行如下:

配置好相关文件之后,点击签名就行了

好了,完成了一个简单而又实用的工具

⑨ apk签名是什么意思

apk是安卓应用软件包,apk签名是软件包在安装的时候进行的安全性验证机制。

这种签名机制目的是为了确保Apk来源的真实性,以及Apk没有被第三方篡改。开发者通过对Apk进行签名:在Apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。

(9)apk签名工具签名扩展阅读:

1、APK的格式定义

在Android平台中,dalvikvm的执行文件被打包为apk格式,最终运行时加载器会解压,然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下,会发现执行是不受限制的。安装的文件可能不是这个文件夹,而在androidrom中,系统的apk文件默认会放入这个文件夹,它们拥有着root权限。

2、APK的开发环境

Android是一个基于Java的开发环境,Google也在API文档的书写和样例的提供上做了很出色的工作。

3、获取SDK

下载并安装android的SDK[软件开发套件],这套SDK主要包括有核心库文件,一个模拟器,开发工具和一些示范的样例文件。推荐使用Eclipse 和androideclipse 扩展。如果只是使用android,Eclipse IDE就已经足够了,但如果是第一次开发Java应用,建议下载完整的Java SE 开发工具 (JDK) 因为它包括签发应用程序所需要的工具。

4、APK应用架构

android应用架构很关键,如果不学习它,设计出来的游戏将是一种很难修复bug的产品。 需要了解应用程序、活动、Intents以及它们是如何互相联系交互的,Google在这儿提供了良好的信息架构。真正重要的是,要理解为什么在设计的游戏中,需要不止一个的活动进程,以及如何设计一个用户体验良好的游戏。这些都应当配合到应用的生命周期中。

5、APK应用的生命周期

应用的生命周期是由Android OS操作系统进行管理的,活动进程都将作为系统命令进行创建,正确处理这些事件对一个应用程序来说是极为重要的,因为终端用户不会知道什么是正确的。最好在开始设计游戏之前搞明白这些,因为这有助于节省调试时间以及避免代价高昂的重新设计。

对大多数应用而言,默认设置即可开始工作,但对游戏而言,可能需要调整单态实例的信号为打开。在默认情况下,Android会新建一个活动实例进程,因为它认为这是比较合适的,而游戏,可能只希望有一个活动的实例进程,这有一点儿影响,它需要了解一些系统状态的管理。

⑩ 怎么改apk的签名

1、首先新建一个文件夹,命名为APK_Folder,在该文件夹下建立一文本文件,命名为:resigner.txt,输入以下代码

阅读全文

与apk签名工具签名相关的资料

热点内容
华硕p7h55mplus升级 浏览:240
servlet调用jsp 浏览:481
文件的命名原则有哪些 浏览:352
苹果的文件管理是哪个 浏览:387
智能黑板如何给pdf文件做批注 浏览:788
哈弗智联app如何绑定二手车 浏览:728
cad文件不多可是异常增大 浏览:872
苹果手机怎样将音频文件导入剪映 浏览:432
2016秋季飞歌导航升级 浏览:151
电脑字符串怎么编程 浏览:381
暴风不能在线观看视频文件 浏览:267
三国卡可以升级吗 浏览:939
如何筛选出相同数据 浏览:311
vbox文件找不到 浏览:49
linux互传文件夹 浏览:796
touch1mini灯光控台怎么编程序 浏览:395
ug编程和精雕编程哪个好用 浏览:126
抖音转转app广告哪里接 浏览:820
sublime左侧文件夹 浏览:309
java重复提交 浏览:219

友情链接