重新签名包的流程 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

注: 签名工具存放路径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

.\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)

zipalign路径

D:\sdk\build-tools\30.0.3

要求使用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]

apksigner

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

apksigner sign --ks release.jks app.apk

简介

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

常用指令

验证APK签名

apksigner verify [options] app-name.apk

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

查看V1、V2签名 -v

apksigner verify -v --print-certs C:\Users\liyd\Downloads\100057-testMode-xiaomi-202305121439.apk
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

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

给应用重新签名,重新签名包相关推荐

  1. android studio第三方调试,Android Studio直接运行调试签名包

    Android Studio 直接运行将apk装载在模拟器或是手机上的都是它默认的一个debug包,而无正式的签名,然而像第三方登录啊.分享.支付等一些功能,都需要打上签名包才能完整使用,所以现在遇到 ...

  2. golang RSA base64 加解密 签名验签

    1.秘钥.加密/签名字符串加密的格式 目前主要见到有hex及base64 (1)hex 针对hex的加解密 import ("encoding/hex" ) hex.DecodeS ...

  3. 密码技术应用--SM2文件签名验签

    记录一下对一些稍大文件进行SM2签名验签的实现,这里只列出了核心代码,其他不涉及的代码或者有任何疑问可以查看我之前写的密码技术专题博客 /* 函数名: sm2Signsm2 签名算法实现对文件的签名 ...

  4. 密码技术应用--RSA文件签名验签

    记录一下对一些稍大文件进行RSA签名验签的实现,这里只列出了核心代码,其他不涉及的代码或者有任何疑问可以查看我之前写的密码技术专题博客 /* 函数名: rsaSignrsa 签名算法实现对文件的签名 ...

  5. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

  6. springboot接口签名统一效验_Python如何接入开放平台?签名验签、加密解密、授权认证测试实战...

    当前大型top企业都有非常成熟的开放平台业务,比如微信开放平台.新浪微博开放平台.支付宝开放平台等.开放平台的发展为第三方个人或企业提供了巨大的机遇.开发者想要接入各大开放平台,必须要遵从开放平台的安 ...

  7. 叙述无保密机制的rsa签名过程_安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?...

    在对接很多的互联网公司的开发平台时,这些互联网公司未来自身平台的安全,都会需要调用方签名确认调用方的身份是合法的,同时未来信息网络传输的安全可能还需要加密解密.比如对接支付宝.微信开放平台时,需要配置 ...

  8. js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)

    你将会收获: js如何加密, 解密 js如何签名, 验签 js和Java交互如何相互解密, 验签(重点) 通过谷歌, 发现jsrsasign库使用者较多. 查看api发现这个库功能很健全. 本文使用方 ...

  9. RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密

    RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密 原文:RSACryptoServiceProvider加密解密签名验签和DES ...

  10. 数据安全管理:RSA加密算法,签名验签流程详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.RSA算法简介 1.加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用.可以在不直接传递密钥的情况下,完成加 ...

最新文章

  1. DeepMind新突破!首次用深度学习从第一性原理计算分子能量
  2. 内网更新服务器的搭建(WSUS)
  3. hadoop job 未跑满资源_mapreduce任务占满整个集群资源
  4. python 入门第二课2 file的文件操作
  5. weblogic与sitemesh乱码问题
  6. flink开发案例_为什么说 Flink + AI 值得期待?
  7. 天梯—奇偶分家(C语言)
  8. Centos7 超简单将Centos的yum源更换为国内的阿里云源
  9. 【渝粤题库】陕西师范大学800003 中国地理
  10. 每个初学者都应该搞懂的问题
  11. 华为OJ题目 -- 初级篇(机试OJ平台)
  12. 财务数字变革新契机丨RPA应用于财务领域的5大场景
  13. 记一次LiteIDE因为Delve版本太低无法Debug的处理
  14. c语言中compar的用法,compare 的用法
  15. leetcode解题方案--013--Roman to Integer
  16. javaMail简单发送邮件
  17. 马化腾动怒!微信数据“被共享”,山寨微信团伙被判一年!
  18. Linux-菜鸟入门自学 (二)
  19. Non-local的一些理解
  20. 福州华侨中学计算机老师,三尺讲台著妙笔 谱写侨习好韶光——记2015级福州华侨中学实习队工作检查...

热门文章

  1. CUDA/cudnn/CUDA Toolkit/NVCC区别简介
  2. 入门的Android架构师需要掌握哪些技能?
  3. linux查看是centos几版本
  4. Android开发--构建项目安装包APK(debug版)
  5. 使用Git将代码上传到Gitee仓库
  6. 简单了解latex输出矩阵
  7. Security(安全框架)
  8. 专利修改:ps换填充色
  9. Pairwise(FCC算法)
  10. js escape()_unescape().html