当前位置:   article > 正文

查看应用当前签名,给应用重新签名,重新签名包_no signature found in package of version 2 or newe

no signature found in package of version 2 or newer for package

查看应用当前签名

apksigner verify --verbose <apk名字>

apksigner verify --verbose C:\Users\liyd\Downloads\100055-productMode-oppo-202307071822.apk

重新签名包的流程 jarsigner

  1. 用解压软件打开已经签名的apk包,删除META_INF文件夹;,获得未签名的apk包。
  2. 将游戏的签名文件keystore,删除签名的apk,放在同一文件夹下;
  3. 修改命令行 jarsigner -verbose -keystore keystoreName -signedjar signed.apk unsigned.apk keystoreAlias,并运行;

命令行如下:

jarsigner -verbose -keystore .\common.keystore -signedjar signed.apk .\appoppo-release.apk xxx
  • 1

注: 签名工具存放路径D:\work\tkbackground\jjchannelpackage\ToolConfigPath\tools\sign。
在这里插入图片描述

targetApi30以上版本要求对齐文件

签名后的文件安装到手机上时,提示

Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary

签名后对齐的要求可见Android官方文件

注意:您必须在构建流程的特定时间点使用 zipalign。该时间点取决于您使用的应用签名工具:
如果您使用的是 apksigner,则必须在为 APK 文件签名之前使用 zipalign。如果您在使用 apksigner 为 APK 签名之后对 APK 做出了进一步更改,签名便会失效。
如果您使用的是 jarsigner,则必须在为 APK 文件签名之后使用 zipalign。

使用的是jarsigner命令进行签名的,因此,需要在签名后对文件进行对齐,对齐命令如下:

.\zipalign -p -f -v 4 .\signer.apk output.apk
  • 1

.\zipalign -p -f -v
4表示多少字节。
.\signer.apk 为输入的文件(未对齐的apk)。
output.apk为输出文件,对齐后的apk。

PS C:\Users\liyd\Desktop\kuaishou\100055-bilibili-202212211436\dist> .\zipalign -p -f -v 4 .\signer.apk output.apk
Verifying alignment of output.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
   44924 META-INF/TEST.SF (OK - compressed)
  • 1
  • 2
  • 3
  • 4

zipalign路径

D:\sdk\build-tools\30.0.3
  • 1

在这里插入图片描述

要求使用v2及以上签名。

No signature found in package of version 2 or newer for package com.jj.log.bilibili

[INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package com.jj.log.bilibili]
  • 1

apksigner

使用 release.jks(密钥库中唯一的密钥)为 APK 签名:

apksigner sign --ks release.jks app.apk
  • 1

简介

您可以使用 Android SDK Build Tools 修订版 24.0.3 及更高版本中提供的 apksigner 工具为 APK 签名,并确保 APK 的签名将在该 APK 支持的所有版本 Android 平台上成功通过验证。

常用指令

验证APK签名

apksigner verify [options] app-name.apk
  • 1

options选项 --print-certs

显示有关 APK 签名证书的信息。

PS C:\Users\liyd\Desktop\1> apksigner verify --print-certs .\100055-bilibili-202303201210.apk
Signer #1 certificate DN: C=86, ST=Beijing, L=Beijing, O="JJWorld (Beijing) Network Technology Co.,LTD", OU=BlackWood Studio, CN=BlackWood
Signer #1 certificate SHA-256 digest: 1f9711a43c640b2b8324e9fb7c33879ce9f395dfcbaf0f039d290ba8a807da01
Signer #1 certificate SHA-1 digest: 61f2b58169886ad36deaadb02102b65b902371b6
Signer #1 certificate MD5 digest: 506717f052b89d584b6bf24b9f65a5ef
  • 1
  • 2
  • 3
  • 4
  • 5

查看V1、V2签名 -v

apksigner verify -v --print-certs C:\Users\liyd\Downloads\100057-testMode-xiaomi-202305121439.apk
  • 1
PS C:\Users\liyd\Downloads> apksigner verify -v --print-certs C:\Users\liyd\Downloads\100057-testMode-xiaomi-202305121439.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=jj, OU=jj, O=jj, L=bj, ST=bj, C=cn
Signer #1 certificate SHA-256 digest: 0200504aa89bb21c3db9efefbe124ccb15c87a20f815949045f1ddc112b7d265
Signer #1 certificate SHA-1 digest: d966fff971b684da63d5c185231d7df580420bc4
Signer #1 certificate MD5 digest: 65ca9a9644c6e1d3b9ac10bb4147e968
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 1024
Signer #1 public key SHA-256 digest: 499c35356a8faeb7e6d32c0a929c82f03f9dd944a41d4b3d8de783cded7c4657
Signer #1 public key SHA-1 digest: ff774554acb9a36ea3b4e343794592d05c55c09b
Signer #1 public key MD5 digest: f9c87c9acf9bc59b311a67b59f8f4652
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

zipalign

zipalign 是一种 zip 归档文件对齐工具,有助于确保归档文件中的所有未压缩文件相对于文件开头对齐。这样一来,您便可直接通过 mmap(2) 访问这些文件,而无需在 RAM 中复制这些数据并减少了应用的内存用量。

注意:您必须在构建流程的特定时间点使用 zipalign。该时间点取决于您使用的应用签名工具:
如果您使用的是 apksigner,则必须在为 APK 文件签名之前使用 zipalign。如果您在使用 apksigner 为 APK 签名之后对 APK 做出了进一步更改,签名便会失效。
如果您使用的是 jarsigner(不推荐),则必须在为 APK 文件签名之后使用 zipalign。

用法

如果您的 APK 包含共享库(.so 文件),请使用 -p 来确保它们与适合 mmap(2) 的 4KiB 页面边界对齐。对于其他文件(其对齐方式由 zipalign 的必选对齐参数确定),Android Studio 将在 32 位和 64 位系统中对齐到 4 个字节。

如需对齐 infile.apk 并将其保存为 outfile.apk,请运行以下命令:

zipalign -p -f -v 4 infile.apk outfile.apk

如需确认 existing.apk 的对齐情况,请使用以下命令。如果您使用 Android Studio 或 AGP 进行构建,则应使用该命令来验证 APK 是否已对齐。

zipalign -c -v 4 existing.apk

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/161643
推荐阅读
相关标签
  

闽ICP备14008679号