Files
apk-sign-info/README.md
zlzw 0ef2c09a8e docs: 更新README文档和.gitignore文件
更新README文档,详细说明项目功能、使用方式和项目结构
在.gitignore中添加build和dist目录
2026-01-05 14:50:13 +08:00

5.5 KiB
Raw Blame History

APK签名工具

一个专门用于Android应用签名的工具帮助开发者轻松生成签名文件和查询签名信息。

📱 项目简介

这个工具主要完成两个核心任务:

  1. 生成签名文件 - 创建用于签名APK的keystore文件
  2. 查询签名信息 - 查看APK或签名文件的MD5、SHA-1、SHA-256等签名指纹信息

🎯 主要功能

1 生成签名文件

  • 可以批量生成多个签名文件
  • 支持自定义签名文件的名称、别名、密码等参数
  • 支持在参数中添加随机字符串,增强安全性
  • 生成的签名文件保存在keys目录下

2 查询签名信息

  • 可以查看APK文件的签名指纹MD5、SHA-1、SHA-256
  • 可以查看keystore文件的签名信息
  • 支持自动读取同目录下的key.txt密码文件
  • 显示RSA公钥的详细信息模数、指数等

3 APK签名功能

  • 支持使用keystore文件对APK进行签名
  • 支持v1、v2、v3三种签名版本
  • 自动查找Android SDK中的apksigner工具

💻 使用方式

方式一图形界面GUI- 推荐新手使用

直接运行main.py,会弹出一个友好的图形界面:

python main.py

界面包含:

  • 签名文件基础名称输入框
  • 别名、存储密码、密钥密码输入框
  • 随机字符串长度设置
  • 生成数量设置
  • 有效期设置
  • DN信息设置组织单位、组织名称等
  • "生成签名文件"和"查看签名信息"两个主要按钮

操作步骤:

  1. 填写签名文件基础名称例如keystore
  2. 填写别名例如alias
  3. 填写存储密码和密钥密码
  4. 可以点击"添加随机符"按钮在光标位置插入{random}占位符
  5. 设置随机字符串长度默认4位
  6. 设置生成数量默认1个
  7. 设置有效期默认10000天
  8. 可选填写DN信息组织单位、组织名称等
  9. 点击"生成签名文件"按钮
  10. 生成的文件会保存在keys目录下

方式二:命令行模式 - 适合批量操作

python main.py --name "keystore" --alias "alias" --storepass "password" --keypass "password" --count 1

命令行参数说明:

  • --name: 签名文件基础名称,可包含多个{random}占位符
  • --alias: 别名,可包含多个{random}占位符
  • --storepass: 存储密码,可包含多个{random}占位符
  • --keypass: 密钥密码,可包含多个{random}占位符
  • --random-length: 每个随机字符串的长度默认4
  • --count: 生成数量默认1
  • --validity: 有效期默认10000
  • --cn: Common Name默认Android
  • --ou: Organizational Unit默认Development
  • --o: Organization默认AndroidDev
  • --l: Locality默认Unknown
  • --st: State默认Unknown
  • --c: Country默认CN

示例:

生成一个随机密码的签名文件:

python main.py --name "keystore_{random}" --alias "alias_{random}" --storepass "pass_{random}" --keypass "pass_{random}" --count 1

批量生成10个签名文件

python main.py --name "keystore_{random}" --alias "alias_{random}" --storepass "pass_{random}" --keypass "pass_{random}" --count 10

📁 项目结构

apk_sign/
├── main.py              # 程序入口根据参数决定启动GUI或命令行模式
├── src/
│   ├── gui.py           # 图形界面代码
│   ├── batch.py         # 批量生成签名文件的核心逻辑
│   ├── keystore.py      # keystore文件生成相关功能
│   ├── signature.py     # 签名信息查询功能
│   ├── apksigner.py     # APK签名功能
│   └── utils.py         # 工具函数
├── keys/                # 生成的签名文件存放目录
└── README.md            # 项目说明文档

🔧 技术特点

  1. 纯Python开发 - 使用Python标准库和tkinter图形界面
  2. 双模式支持 - 既有图形界面也有命令行接口
  3. 安全性考虑 - 支持随机字符串生成,避免密码重复
  4. 自动化程度高 - 自动查找Android SDK工具自动读取密码文件
  5. 信息完整 - 提供详细的签名信息和公钥信息

📋 安装要求

必需环境

  • Python 3.6 或更高版本
  • Java Development Kit (JDK) 8 或更高版本
  • Android SDK用于APK签名功能

可选环境

  • Android SDK build-tools用于APK签名功能

📝 适用场景

  • Android开发者需要生成测试签名
  • 需要查看APK的签名信息
  • 批量生成多个不同的签名文件
  • 需要对APK进行重新签名

常见问题

Q1: 生成的签名文件保存在哪里?

A: 所有生成的签名文件都保存在项目根目录下的keys文件夹中。

Q2: {random}占位符是什么意思?

A: {random}是一个占位符,程序会在生成时将其替换为指定长度的随机字符串。例如,如果你设置名称为keystore_{random}随机长度为4可能会生成keystore_a3b2这样的文件名。

Q3: 如何查看签名信息?

A: 在GUI界面中点击"查看签名信息"按钮选择APK文件或keystore文件即可查看签名指纹信息。

Q4: 支持哪些签名版本?

A: 支持v1、v2、v3三种签名版本默认全部启用。

Q5: 为什么需要填写DN信息

A: DNDistinguished Name信息是证书的一部分用于标识证书所有者。虽然不是必需的但建议填写以便更好地管理签名证书。

📄 许可证

请查看项目根目录下的LICENSE文件了解许可证信息。

🤝 贡献

欢迎提交问题和改进建议!