12EDiTUS/frida-termux-build

GitHub: 12EDiTUS/frida-termux-build

为 Termux (Android ARM64) 预编译的 Frida 17.9.10 一键安装包,彻底解决版本不匹配、符号缺失和工具链下载失败等原生安装难题。

Stars: 0 | Forks: 0

# 适用于 Termux 的 Frida 17.9.10 (Android ARM64) 欢迎使用在 Termux (Android) 上安装 **Frida 17.9.10 (绝对最新版)** 的终极、无忧安装包。 如果你曾经尝试在 Termux 上安装 Frida,却因为各种奇怪的错误而放弃,那么这个仓库就是为你准备的。 ## ⚠️ 为什么会有这个项目?(Termux 的痛点) 在 Termux 上原生安装 Frida(不使用 `proot` 或 Linux deploy)是出了名的困难。如果你直接运行 `pip install frida`,你几乎肯定会遇到以下致命错误之一: 1. **版本不匹配:** Termux 仓库中的 `frida-python` 包通常是过时的(例如 v17.2.x),而 GitHub 上的官方 `frida-server` 始终是最新版本(例如 v17.9.x)。使用不匹配的版本会导致持续不断的连接错误。 2. **`_Py_NoneStruct` 符号错误:** 如果你安装了旧的编译版本,Termux 的 Python 会因 `dlopen failed: cannot locate symbol "_Py_NoneStruct"` 而崩溃。发生这种情况是因为标准的预构建 wheel 没有针对 Android 的库进行正确链接。 3. **“Toolchain 404”构建错误:** 当 `pip` 找不到预构建的 wheel 时,它会尝试从源代码编译 Frida。然而,它会尝试从 Frida 的服务器下载构建工具链,而该工具链往往在当前日期并不存在,从而导致 HTTP 404 错误和构建失败。 ## ✅ 这个安装包如何解决这些问题 我们已经为你完成了这些艰巨的工作。本仓库包含一个**定制的 Python Wheel (`.whl`)**,它是在 Termux 环境中使用原生 Android 库(`liblog`、`libandroid`)针对 **Frida Core DevKit** 直接编译而成的。 **你将获得:** * **完美的版本同步:** 客户端 (Frida Tools) 和服务器端均为确切的 `17.9.10` 版本。 * **零符号错误:** `.so` 库经过 `patchelf` 处理,能够与 Termux 中的 Python 3.13 完美链接。 * **一键安装:** 无需编译,没有 C++ 错误,没有工具链缺失错误。只需运行脚本即可。 ## 📦 包含内容? * `frida-17.9.10-cp37-abi3-android_24_arm64_v8a.whl`:原生编译的 Python 客户端。 * `frida-server-17.9.10`:适用于 Android ARM64 的官方服务器二进制文件。 * `install.sh`:能够自动设置一切环境的神奇脚本。 ## 🛠️ 前置条件 在安装之前,请确保你具备: 1. 一台 **Android 设备 (ARM64 / AArch64)**。 2. 从 F-Droid 安装的 **Termux**(请勿使用 Google Play 商店的版本)。 3. **(可选但推荐)Root 权限**(Magisk、KernelSU 或 APatch),以便在系统范围内运行 `frida-server`。 ## 🚀 安装指南(简易模式) 请在你的 Termux 终端中严格按照以下步骤操作。即使你是初学者,也能成功运行。 **第 1 步:克隆或下载本仓库** ``` git clone https://github.com/YOUR_USERNAME/frida-termux-build.git cd frida-termux-build ``` **第 2 步:运行安装脚本** ``` bash install.sh ``` *注意:在安装过程中,脚本会检查 Root 权限。如果你授予了权限,它将安装并启动 `frida-server`。如果你的设备没有 Root,它只会安装 Python 客户端工具。* **第 3 步:应用环境补丁** 该脚本会为你的 Termux 配置文件添加永久修复。要立即应用它,请输入: ``` source ~/.bashrc ``` ## 🎮 如何使用 Frida ### 📱 对于已 Root 的用户(系统级 Hook) 由于 Frida 服务器是在你的 Android 设备后台原生运行的,因此 Termux 会将其视为**远程**(Remote)设备(而不是 USB 设备)。 ❌ **不要使用 `-U` (USB):** ``` frida-ps -U # This will NOT work ``` ✅ **请使用 `-R` (远程):** ``` # 列出手机上所有正在运行的进程 frida-ps -R # Hook 到特定 app(例如,Settings) frida -R -f com.android.settings -l your_script.js ``` ### 🔒 对于未 Root 的用户(Frida Gadget) 如果你的设备没有 Root,你**无法**运行 `frida-server` 来检查手机上的任何应用。不过,你仍然可以使用此脚本安装的 Frida 客户端! 要在没有 Root 的情况下 Hook 应用,你必须使用 **Frida Gadget** 对目标 APK 进行修补: 1. 反编译目标 APK(例如,使用 `apktool`)。 2. 将 `frida-gadget.so` 注入到应用的 `lib/arm64-v8a/` 文件夹中。 3. 重新打包、签名并安装修改后的 APK。 4. 打开修补后的应用(它会在启动时暂停)。 5. 在 Termux 中,使用以下命令在本地连接到它: frida -U gadget -l your_script.js *(为了在 Android 上轻松修补 APK,可以研究一下 `objection` 或 `Lief` 等工具)* ## 🛑 故障排除 * **`frida: command not found`**:你忘记在安装后运行 `source ~/.bashrc` 或重启 Termux 应用了。 * **`Failed to enumerate processes: unable to connect to remote frida-server`**:Frida 服务器未运行。你可以通过输入以下命令手动启动它:`su -c "/data/local/tmp/frida-server -D"` * **`dlopen failed: cannot locate symbol...`**:确保你的 Termux 已完全更新(`pkg update -y`)。我们的安装脚本使用 `patchelf` 自动修复了此问题。 ## 🤝 贡献 欢迎随时复刻本项目,并在新版 Frida 发布时对其进行更新!手动编译未来版本的过程已记录在 releases 中包含的 Thai journey 指南中。
标签:Aarch64, Android ARM64, Android安全, Cutter, Docker支持, Frida, patchelf, Py_NoneStruct, Python, Python 3.13, Termux, 云资产清单, 动态二进制插桩, 工具链404, 无后门, 本地编译, 目录枚举, 移动安全, 符号未定义, 编译报错修复, 逆向工程