# CHANGELOG
所有值得注意的更改都将记录在此文件中。
格式基于 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)，并且本项目遵循 [语义化版本](https://semver.org/spec/v2.0.0.html)。

## v3.1.2 - 2024-07-17

### Added
- 增加对多平台的支持：现在支持 `macOS`、`iOS`、`Android`、`Linux` 和 `Windows`
- 新增 `upgrade` 命令：用于自动更新 Fridare 脚本
- 新增一键安装功能：
  ```shell
  curl -s https://raw.githubusercontent.com/suifei/fridare/main/fridare.sh | bash -s install
  ```

### Changed
- 优化版本检查和更新流程

### Fixed
- 修复了在 Windows 系统上无法正确识别和安装 Frida 工具的问题
- 修复了在 macOS 系统上无法正确下载 Frida 工具的问题

### Other Changes
- 更新版本号至 3.1.2
- 代码重构和优化，提高整体性能和稳定性

## [3.1.0] - 2024-07-16
### Added
- 增加了 `patch` 命令，用于修补指定的 Frida 模块
- 增加了对 `patch` 命令的帮助信息
- 增加对 ELF 和 PE 文件格式的支持(支持 Windows,Linux,MacOS,Android,IOS)

### Changed
- 更新了 `build`、`download` 等命令的用法说明

### Fixed
- 修复了一些小的 Bug 并改进了脚本的稳定性


## [3.0.1] - 2024-07-11
### Added
- 新增 `is_conda_env()` 函数用于检测 Conda 环境
- 新增 `get_python_cmd()` 函数用于选择正确的 Python 解释器
- 新增 `log_environment_info()` 函数，详细输出运行环境信息

### Changed
- 重构 `modify_frida_tools()` 函数，以支持 Conda 环境
- 优化 Golang 环境检查，利用现有的 `check_and_install_tool` 函数
- 更新 `build_frida` 函数，简化 Golang 环境检查
- 改进环境检测逻辑，优先使用 Conda 环境中的 Python

### Fixed
- 修复在 Conda 环境中无法正确识别和修改 Frida 工具的问题
- 解决多个 Python 环境共存时的兼容性问题

### Improved
- 提升脚本对不同 Python 环境的适应性
- 增强环境信息输出，便于调试和问题排查
- 简化用户使用流程，无需手动指定 Frida 工具路径

## [3.0.0] - 2024-07-11
### Added
- 新增 `fridare.sh` 脚本，整合所有功能，提供更完整的命令行界面
- 新增 `build`, `ls`, `download`, `lm`, `setup`, `config`, 和 `help` 命令
- 新增配置文件支持，可以保存和加载用户设置
- 新增颜色输出，提升用户体验
- 新增自动检查和安装依赖功能
- 新增下载特定 Frida 模块的功能
- 新增列出可用 Frida 版本和模块的功能

### Changed
- 重构了整个项目结构，提高代码可维护性
- 改进了错误处理和日志输出
- 优化了 Frida 构建过程，提高效率
- 更新了二进制修改逻辑，提高兼容性

### Removed
- 移除了旧的 `build.sh` 脚本

## [2.2.0] - 2024-07-04
### Added
- 新增加 frida-tools 补丁，适配 `frida:rpc` 特征魔改
   - 解决 Android 内存扫描该字符串问题
   - 自动扫描本地 pip 安装 frida-tools 的位置，对 `core.py` 文件进行魔改，对 `_frida.abi3.so` 文件进行魔改
- 新增加 frida-agent.dylib 魔改，从文件名称，加载位置进行隐藏
   - 解决 agent 加载未隐藏问题

## [2.1.1] - 2024-06-26
### Changed
- 修正了二进制替换可能失败的问题。

## [2.1] - 2024-06-26
### Added
- 新增 `autoinstall.sh` 脚本，结合 `issh` 命令自动部署最新 Frida 插件版本。
- 新增 `Makefile`，提供帮助、清理、构建和部署项目的便捷命令。

### Changed
- 更新 `build.sh` 脚本，以支持新脚本和 Makefile 的集成。
- 增强了错误处理和日志记录，改善用户体验。

### Fixed
- 修正了在特定情况下二进制替换可能失败的问题。

## [2.0] - 2024-06-25
### Added
- 支持多种架构，增加更多的 ARM 和 ARM64 子类型。
- 增加了更多的替换项。
- `macho.File.Section()` 现在返回一个指向 `macho.Section` 的指针。
- 增加了更多的错误处理。

## 1.0 - 初始版本
- 初始发布，提供了修改和定制 Frida 服务器的基本功能。

# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.1.0] - 2024-07-16
### Added
- Added `patch` command to patch specified Frida modules
- Added help information for `patch` command
- Added support for ELF and PE file formats

### Changed
- Updated usage instructions for `build`, `download`, and other commands

### Fixed
- Fixed minor bugs and improved script stability

## [3.0.1] - 2024-07-11
### Added
- Added the `is_conda_env()` function for detecting Conda environments
- Added the `get_python_cmd()` function for selecting the correct Python interpreter
- Added the `log_environment_info()` function to output detailed information about the running environment

### Changed
- Refactored the `modify_frida_tools()` function to support Conda environments
- Optimized the Golang environment check by utilizing the existing `check_and_install_tool` function
- Updated the `build_frida` function to simplify the Golang environment check
- Improved the environment detection logic to prioritize the use of Python in the Conda environment

### Fixed
- Fixed the issue where Frida tools could not be correctly identified and modified in Conda environments
- Resolved compatibility issues when multiple Python environments coexist

### Improved
- Enhanced the script's adaptability to different Python environments
- Enhanced the output of environment information for easier debugging and troubleshooting
- Simplified the user process, eliminating the need to manually specify the path to Frida tools

## [3.0.0] - 2024-07-11
### Added
- add `fridare.sh` script, integrate all functions, provide a more complete command line interface
- add `build`, `ls`, `download`, `lm`, `setup`, `config`, and `help` commands
- add configuration file support, can save and load user settings
- add color output, improve user experience
- add automatic dependency check and installation
- add download specific Frida module
- add list available Frida versions and modules

### Changed
- refactor the entire project structure, improve code maintainability
- improve error handling and log output
- optimize Frida build process, improve efficiency
- update binary modification logic, improve compatibility

### Removed
- remove old `build.sh` script

### Changed

## [2.2.0] - 2024-07-04
### Added
- add frida-tools patch, adapt to `frida:rpc` feature modification
   - solve the problem of scanning this string in Android memory
   - automatically scan the location of the locally installed pip frida-tools, modify the `core.py` file, and modify the `_frida.abi3.so` file
- add frida-agent.dylib modification, hide from file name and loading location
    - solve the problem of agent loading not hidden

## [2.1.1] - 2024-06-26
### Changed
- fix the issue that binary replacement may fail in specific cases.

## [2.1] - 2024-06-26
### Added
- add `autoinstall.sh` script, auto deploy the latest Frida plugin version with `issh` command
- add `Makefile`, provide convenient commands for help, clean, build and deploy the project

### Changed
- update `build.sh` script to support the integration of new scripts and Makefile
- enhance error handling and log recording, improve user experience

### Fixed
- fix the issue that binary replacement may fail in specific cases
## [2.0] - 2024-06-25

### Added
- support multiple architectures, add more ARM and ARM64 subtypes
- add more replacements
- `macho.File.Section()` returns a pointer to `macho.Section`
- add more error handling

## 1.0 - Initial Version
- initial release, provide basic functions to modify and customize Frida server
