thelicato/friman
GitHub: thelicato/friman
Frida 版本管理工具,解决多环境、多版本切换的繁琐与出错问题。
Stars: 13 | Forks: 2
friman
你是否曾经觉得,为合适的任务寻找正确的 Frida 版本就像在穿针引线?由于不同的项目、设备和调试场景都需要特定的构建版本,追踪 Frida 版本很快就会变成一场令人疲惫的平衡游戏。`friman`(发音为“*free man*”)正是为了解决这个问题而设计的。
## 为什么
在 Frida 不同版本之间切换是很常见的,因为不同的环境并不总是与最新版本表现一致。根据你的目标,特定版本可能是唯一能够可靠工作的版本。常见原因包括:
- **设备/OS 特性**:较旧或不寻常的 Android/iOS 构建版本可能只适用于某些 Frida 版本。
- **项目兼容性**:某些脚本、工具或工作流依赖于特定版本的行为(例如,`v16` 和 `v17` 之间许多 API 发生了变化)。
- **稳定性与功能**:新版本修复了一些问题,但也可能引入其他问题,因此“正确”的版本并不总是最新的。
## 概述
[Frida](https://github.com/frida/frida) 发展迅速,不同的项目或设备往往需要不同的版本。手动切换容易出错,尤其是在同时处理多个环境、服务端二进制文件和插件时。
`friman` 提供:
- 版本安装与无缝切换
- 本地版本跟踪
- 干净的隔离目录结构(`$HOME/.friman`)
- 用于下载发布资源文件的辅助工具(目前支持 `frida-gadget` 和 `frida-server` 资源)
- 用于将 Frida 服务端二进制文件推送到 *Android* 设备的便捷工具
它的目标是让 **Frida** 的版本管理变得**尽可能无摩擦**。

## 安装
推荐的安装方法是直接从 *GitHub* 获取:
```
# 使用 pipx(推荐)
pipx install git+https://github.com/thelicato/friman
# 或使用 pip
pip install git+https://github.com/thelicato/friman
```
安装完成后,请运行以下命令:
```
friman ensurepath # Setup PATH for the currently selected Frida environment
friman update # Update the local list of available Frida versions and compatibility matrix
```
## 用法
`friman` 提供了一个命令行界面,用于安装、切换和管理多个 Frida 版本。以下是主要帮助输出:
```
Usage: friman [OPTIONS] COMMAND [ARGS]...
Options:
-v, --version Show the application's version and exit.
-d, --debug Show debug output.
-h, --help Show this message and exit.
Commands:
update Update the local list of available Frida versions.
install Install a
update 命令
### `update` 命令
```
Usage: friman update [OPTIONS]
Update the local list of available Frida versions.
Options:
-h, --help Show this message and exit.
```
install 命令
### `install` 命令
```
Usage: friman install [OPTIONS] version
Install a
uninstall 命令
### `uninstall` 命令
```
Usage: friman uninstall [OPTIONS] version
Uninstall a
use 命令
### `use` 命令
```
Usage: friman use [OPTIONS] version
Use
disable 命令
### `disable` 命令
```
Usage: friman disable [OPTIONS]
Disable friman.
Options:
-h, --help Show this message and exit.
```
current 命令
### `current` 命令
```
Usage: friman current [OPTIONS]
Display the currently activated version of Frida.
Options:
-h, --help Show this message and exit.
```
list 命令
### `list` 命令
```
Usage: friman list [OPTIONS]
List all the installed versions.
Options:
-h, --help Show this message and exit.
```
ensurepath 命令
### `ensurepath` 命令
```
Usage: friman ensurepath [OPTIONS]
Ensure friman directories are correctly set.
Options:
-h, --help Show this message and exit.
```
download 命令
### `download` 命令
```
Usage: friman download [OPTIONS] type platform
Download a specific release file (only server and gadget) for the current
version.
Arguments:
type The selected asset type \[required]
platform The platform to use \[required]
Options:
-o, --output TEXT Select the folder where to download the file.
-h, --help Show this message and exit.
```
push-server 命令
### `push-server` 命令
```
Usage: friman push-server [OPTIONS] device_id platform
Pushes a the Frida server into the selected ANDROID device.
Arguments:
device_id The selected ANDROID device \[required]
platform The platform of the device \[required]
Options:
--list Show all the USB devices and exit.
-h, --help Show this message and exit.
```
标签:Android调试, Docker支持, Frida, frida-gadget, frida-server, friman, iOS调试, SOC Prime, 依赖管理, 工具, 开发工具, 文档结构分析, 本地版本跟踪, 版本管理, 环境切换, 目录隔离, 自动化下载, 设备推送, 逆向工具