首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android版本apk apksigner无法验证jarsigner

当使用apksigner工具无法验证使用jarsigner签名的APK时,可能是由于签名算法不兼容或者签名过程中的某些细节没有处理好。以下是一些可能的解决方案和步骤,以确保APK签名验证成功:

1. 确认签名算法兼容性

apksignerjarsigner可能使用不同的默认签名算法。确保两者使用的签名算法是一致的。

使用相同的签名算法

  • jarsigner: jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.jks my_application.apk alias_name
  • apksigner: apksigner verify --verbose --print-certs my_application.apk

2. 确保签名密钥库一致

确保用于签名的密钥库(keystore)是同一个,并且别名(alias)也相同。

3. 使用apksigner重新签名

如果上述步骤仍然无法解决问题,可以尝试使用apksigner重新签名APK:

代码语言:javascript
复制
apksigner sign --ks my-release-key.jks --ks-key-alias alias_name my_application.apk

4. 检查签名详细信息

使用apksigner检查签名的详细信息,以确保签名是有效的:

代码语言:javascript
复制
apksigner verify --verbose my_application.apk

5. 清理和重建APK

有时,旧的签名信息可能会干扰新的签名过程。尝试清理并重建APK:

代码语言:javascript
复制
# 清理构建目录
./gradlew clean

# 重新构建APK
./gradlew assembleRelease

6. 检查Gradle配置

确保Gradle构建脚本中的签名配置是正确的。例如:

代码语言:javascript
复制
android {
    ...
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "alias_name"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

7. 使用zipalign优化APK

在签名之前,使用zipalign工具优化APK:

代码语言:javascript
复制
zipalign -v -p 4 my_application.apk my_application_aligned.apk

然后对优化后的APK进行签名:

代码语言:javascript
复制
apksigner sign --ks my-release-key.jks --ks-key-alias alias_name my_application_aligned.apk

总结

通过确保签名算法一致、使用相同的密钥库和别名、重新签名APK、检查签名详细信息、清理和重建APK、检查Gradle配置以及使用zipalign优化APK,通常可以解决apksigner无法验证jarsigner签名的APK的问题。如果问题仍然存在,建议查看具体的错误信息,以便更精确地定位问题所在。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AndroidAPK签名工具之jarsignerapksigner详解

一.工具介绍 jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验证的专用工具..., 位于Android SDK/build-tools/SDK版本/apksigner.bat 不管是apk包,还是jar包,本质都是zip格式的压缩包,所以它们的签名过程都差不多(仅限V1签名),..., 由此可知: V2签名是对整个APK签名验证 V2签名优点很明显: 签名更安全(不能修改压缩包) 签名验证时间更短(不需要解压验证),因而安装速度加快 注意: apksigner工具默认同时使用V1...MyApp.apk androiddebugkey 2.方法二(apksigner,默认同时使用V1和V2签名) 进入Android SDK/build-tools/SDK版本, 输入命令 apksigner...文件 2.方法二(apksigner,支持V1和V2签名校验) 进入Android SDK/build-tools/SDK版本, 输入命令 apksigner verify -v --print-certs

15.5K20

Android签名校验机制(数字证书)

数字签名是个加密的过程,数字签名验证是个解密的过程。 为什么有签名 最简单直接的回答: 系统要求的。...不过需要注意的是目前Android已经在逐渐淘汰基于 jarsignerAndroid V1 签名模式,因此如非必需,建议使用基于 apksignerAndroid V2 签名方式签名apk。.../debug-ysdk.apk: 要签名的应用 注意事项: apksignerAndroid官方提供的签名及校验工具,从Android SDK Build Tools的24.0.3版本开始支持,具体路径在...出现该错误是因为在命令输入的最后一个参数填写的是签名私钥的alias,而不是私钥的文件名称 jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException:...jarsigner 方式签名时JDK的版本问题造成的,可以通过升级系统的JDK和JRE版本来解决。

6.6K110
  • APP 加固添加签名后无法安装

    Android APK 加固重新签名 使用腾讯云加固,下载后再次签名,签名成功之后的 apk 在华为鸿蒙、Android8 系统可以正常解析安装,在Android11 解析安装包失败 解析软件包时出现问题...解决方案 使用 zipalign 工具进行对齐,再用 apksigner 重新签名就行了 zipalign 和 apksigner 都由Google官方提供,安装 Android 环境的时候就装好了...,使用时需要先配置环境变量, zipalign 和 apksignerAndroid SDK/build-tools/SDK版本/目录 控制面板->系统和安全->系统->高级系统设置->高级->环境变量...->系统变量path zipalign 工具进行对齐 签名文件 keystore 和 apk 的目录下执行命令 对齐命令 zipalign -p -f -v 4 未对齐(jarsigner已签名)APK...\myapp2.apk 验证对齐 zipalign -c -v 4 要验证APK文件 对齐成功,这时apk安装包直接安装会提示无效或不兼容 apksigner 再次签名 apksigner sign

    2.6K30

    一文了解Android游戏SDK开发

    ; 通过签名工具给apk签名,v1签名使用jarsigner、v2签名使用apksigner(sdk 25版本开始提供) Android的打包流程可以查看:Android打包流程 apk编译的第一个阶段...Android v1的签名是基于JAR 的,签名jar Signature来自JDK,Android v2的签名是基于APK Signature Scheme v2,是Android 7.0版本引入的,...而最新的v2是对v2版本的优化,适用于Android 9.0及以上版本 。...V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。...但是,单独给一个未签名的apk签名,就需要借助签名工具,v1签名是使用jarsigner,v2签名是使用apksigner

    2.3K10

    Android 安全】DEX 加密 ( DEX 加密使用到的相关工具 | dx 工具 | zipalign 对齐工具 | apksigner 签名工具 )

    , 对该 APK 文件进行签名 ; 先使用 命令行工具 zipalign 对其 APK 文件 , 对齐后的应用 , 可以 减少程序消耗内存大小 ; 参考文档 : https://developer.android.google.cn...是 输入 APK , 被对齐的 APK 文件 ; out.apk 是 输出 APK , 对齐后的 APK 文件 ; 三、apksigner 签名工具 ---- APK 签名参考文档 : https:/.../developer.android.google.cn/studio/publish/app-signing 应用对齐之后 , 使用 apksigner 工具进行签名 , 参考文档 : https:/.../developer.android.google.cn/studio/command-line/apksigner ( JDK 中也有一个签名工具 jarsigner ) 工具位置 : SDK 下的...密码 --key-pass pass:别名密码 --out out.apk in.apk apksigner 校验命令 : apksigner verify -v out.apk

    1.1K00

    一文了解Android游戏SDK开发

    ; 通过签名工具给apk签名,v1签名使用jarsigner、v2签名使用apksigner(sdk 25版本开始提供) Android的打包流程可以查看:Android打包流程 apk编译的第一个阶段...Android v1的签名是基于JAR 的,签名jar Signature来自JDK,Android v2的签名是基于APK Signature Scheme v2,是Android 7.0版本引入的,...而最新的v2是对v2版本的优化,适用于Android 9.0及以上版本 。...V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。...但是,单独给一个未签名的apk签名,就需要借助签名工具,v1签名是使用jarsigner,v2签名是使用apksigner

    2.7K00

    android签名原理

    指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。 apk组成 dex:最终生成的Dalvik字节码。...(非对称算法,如RSA) 公钥等 接收方收到消息后,先向CA验证证书的合法性,再进行签名校验。...Android在安装Apk时并没有校验证书本身的合法性,只是从证书中提取公钥和加密算法,这也正是对第三方Apk重新签名后,还能够继续在没有安装这个Apk的系统中继续安装的原因。...jarsignerapksigner的区别 Android提供了两种对Apk的签名方式,一种是基于JAR的签名方式,另一种是基于Apk的签名方式,它们的主要区别在于使用的签名文件不一样:jarsigner...所以jarsigner是支持使用多个证书对Apk进行签名的,apksigner也同样支持。

    1.1K20

    Android架构之路--热更新Tinker(下)

    估计有不少同学用过,今天我想推荐另外一款多渠道打包的插件ApkMultiChannelPlugin,它作为Android Studio插件进行多渠道打包。...安装步骤:打开 Android Studio: 打开 Setting/Preferences -> Plugins -> Browse repositories 然后搜索 ApkMultiChannel...Signer Version: 选择签名版本apksignerjarsigner Build Type: 打包方式 Channels: 渠道列表,每行一个,最前面可加 > 或不加(保存信息的时候...发布补丁包 回到Tinker后台,选中我们开始新建的项目,补丁下发->添加APP版本。然后上传刚刚的patch_signed_7zip.apk。...class * implements com.tencent.tinker.loader.app.ApplicationLike 如图: 1-7: 混淆代码 这里推荐一篇混淆代码的文章:5分钟搞定android

    45410

    码仔精心整理的“70道”常问面试题

    两者的区别大致如下: tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接; tcp 提供可靠的服务(数据传输),udp 无法保证; tcp 面向字节流,udp 面向报文; tcp 数据传输慢...scene=25#wechat_redirect 05 简述apk打包流程 打包资源文件,生成R.java文件 输入:res文件,Assets文件,AndroidManifest.xml文件,Android...:E:\SDK\tools\lib\sdklib.jar 对apk文件进行签名 输入:未签名的.apk文件 输出:签名的.apk文件 工具: jarsigner工具 apksigner工具 工具位置:...Java\jdk1.8.0_201\bin\jarsigner.exe SDK\build-tools\29.0.0\lib\apksigner.jar 对签名后的apk文件进行对齐处理 输入:签名后的...参考连接: https://developer.android.com/studio/build/index.html?

    54910

    编译apk遇到的问题记录

    2、apk解压出来有CERT.RSA 当你解压一个APK文件时,其中的CERT.RSA是APK文件的签名证书文件。APK文件经过签名后,可以验证APK的完整性和来源的真实性。...CERT.RSA文件包含了用于验证APK签名的公钥证书和数字签名信息。它通常位于META-INF目录下。...3、手动编译APK的流程 备注:android sdk版本不同,安装之后在tools下可能会少dx.bat,apkbuilder.bat文件,通过升级SDK或者单独下载放在对应的目录,也可正常使用;...apk文件:使用Android SDK提供的apkbuilder.bat生成未签名的apk安装文件 7.对apk文件进行签名:使用jdk的jarsigner.exe对未签名的包进行apk签名 二、详细步骤...说明:-z:资源打包文件;-f:类打包文件;-rf:源代码目录; (备注:此步骤没有成功给apk签名) 7)使用jarsigner.exe对未签名的包进行apk签名,jarsigner.exe所在路径

    20420
    领券