autodecrypt 项目使用教程
1. 项目的目录结构及介绍
autodecrypt 项目的目录结构如下:
autodecrypt/
├── autodecrypt/
│ ├── __init__.py
│ ├── main.py
│ ├── utils.py
│ └── ...
├── tests/
│ ├── __init__.py
│ ├── test_main.py
│ └── ...
├── .flake8
├── .gitignore
├── LICENSE
├── README.md
├── poetry.lock
├── pyproject.toml
└── ...
目录结构介绍
autodecrypt/
: 项目的主目录,包含主要的 Python 文件和模块。__init__.py
: 初始化文件。main.py
: 项目的启动文件。utils.py
: 包含一些工具函数。
tests/
: 包含项目的测试文件。__init__.py
: 初始化文件。test_main.py
: 针对main.py
的测试文件。
.flake8
: 配置文件,用于代码风格检查。.gitignore
: 指定 Git 忽略的文件和目录。LICENSE
: 项目的许可证文件。README.md
: 项目的说明文档。poetry.lock
: 锁定依赖版本的文件。pyproject.toml
: 项目的配置文件,包含依赖和构建配置。
2. 项目的启动文件介绍
项目的启动文件是 autodecrypt/main.py
。这个文件包含了项目的主要逻辑和命令行接口。
main.py 文件介绍
import argparse
from .utils import decrypt_firmware
def main():
parser = argparse.ArgumentParser(description="Decrypt iOS firmware images")
parser.add_argument("-f", "--filename", required=True, help="File to decrypt")
parser.add_argument("-d", "--device", required=True, help="Device identifier")
parser.add_argument("-i", "--ios_version", help="iOS version")
parser.add_argument("-b", "--build", help="Build ID of iOS version")
parser.add_argument("-k", "--ivkey", help="IV and key to decrypt file")
parser.add_argument("-l", "--local", action="store_true", help="Use path to local file")
parser.add_argument("-D", "--download", action="store_true", help="Download file")
parser.add_argument("-B", "--beta", action="store_true", help="Specify that it is a beta firmware")
parser.add_argument("-P", "--pongo", action="store_true", help="Use PongoOS over USB for decryption")
args = parser.parse_args()
decrypt_firmware(args)
if __name__ == "__main__":
main()
主要功能
- 解析命令行参数。
- 调用
decrypt_firmware
函数进行固件解密。
3. 项目的配置文件介绍
项目的配置文件是 pyproject.toml
。这个文件使用 Poetry 管理依赖和构建配置。
pyproject.toml 文件介绍
[tool.poetry]
name = "autodecrypt"
version = "0.1.0"
description = "Simple tool to decrypt iOS firmware images"
authors = ["Mathieu Hautebas <mathieu@hautebas.org>"]
license = "MIT"
[tool.poetry.dependencies]
python = "^3.8"
img4 = "^1.0"
[tool.poetry.dev-dependencies]
pytest = "^6.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
主要配置项
[tool.poetry]
: 项目的基本信息,包括名称、版本、描述、作者和许可证。[tool.poetry.dependencies]
: 项目的依赖项,包括 Python 版本和img4
库。[tool.poetry.dev-dependencies]
: 开发依赖项,包括pytest
测试框架。[build-system]
: 构建系统的要求和后端。