Skip to main content

Download a matching Frida Android server release and push it to an adb device.

Project description

florida-push

Python Python 3.14 Build and publish PyPI 下载量

florida-push

Frida Android server 自动下载与推送工具。

它会根据本地 Frida 版本,从 GitHub Release 中查找匹配设备架构的 server 压缩包,解压后重命名为 fs,推送到 Android 设备的 /data/local/tmp/fs,并通过 adb shell /data/local/tmp/fs --version 验证远端版本。

默认目标仓库是 xihan123/Florida, 兼容 Florida release 中的命名:

florida-server-17.11.0-android-arm64.gz

也兼容上游 Frida 常见命名:

frida-server-17.11.0-android-arm64.xz

目录

功能特性

  • GitHub API 获取 Release:使用 GitHub Releases API,不抓取 HTML 页面。
  • 自动版本匹配:优先读取本地 frida Python 包版本,也支持 frida --versionfrida-ps --version
  • 设备架构识别:读取 ro.product.cpu.abi,自动映射到 armarm64x86x86_64
  • 灵活命名匹配:不固定 frida-server 前缀,支持 florida-servercustom-server 等命名。
  • 多压缩格式支持:支持 .gz.xz,下载后自动解压并重命名为 fs
  • 代理支持:支持 --proxy,未指定时自动读取 HTTP_PROXYHTTPS_PROXYALL_PROXY
  • 推送后验证:推送到设备后执行 fs --version,确认远端版本和目标版本一致。

环境要求

  • Python 3.9 及以上,已验证 Python 3.14。
  • adb 已加入 PATH
  • Android 设备已通过 USB 连接并完成 adb 授权。
  • 已安装本地 Frida,或者运行时传入 --frida-version

安装 Frida 工具:

python -m pip install frida-tools

项目结构

.
├── .github/
│   └── workflows/
│       ├── release-please.yml
│       └── release.yml
├── src/
│   └── florida_push/
│       ├── __init__.py
│       ├── __main__.py
│       └── cli.py
├── tests/
│   └── test_cli.py
├── .release-please-manifest.json
├── LICENSE
├── README.md
├── release-please-config.json
├── main.py
└── pyproject.toml

项目使用标准 src/ 布局,发布后提供 florida-push 命令。

使用说明

安装

发布包:

python -m pip install florida-push

源码:

python -m pip install .

开发模式:

python -m pip install -e ".[dev]"

基本使用

使用默认 Florida 仓库:

florida-push

源码仓库中也可以直接运行:

python main.py

命令会输出目标仓库、设备名称、设备架构、目标版本、代理来源、远端路径和最终验证结果。

示例输出:

Target repository: xihan123/Florida
Device serial: ABC123
Device ABI: arm64-v8a
Device architecture: arm64
Target Frida version: 17.11.0
Proxy: none
Remote path: /data/local/tmp/fs
Release asset: florida-server-17.11.0-android-arm64.gz
Download: https://github.com/xihan123/Florida/releases/download/17.11.0/florida-server-17.11.0-android-arm64.gz
Pushing server...
Remote version: 17.11.0
Done.

指定设备

当存在多个 adb 设备时,需要指定设备序列号:

florida-push --serial <device-serial>

设备序列号来自:

adb devices

指定版本

默认会自动检测本地 Frida 版本。需要手动指定时:

florida-push --frida-version 17.11.0

自定义仓库

默认仓库是 xihan123/Florida。需要改为其他 owner/repo:

florida-push --owner frida --repo frida

或者:

florida-push --owner xihan123 --repo Florida

代理设置

显式指定代理:

florida-push --proxy http://127.0.0.1:7890

如果没有传入 --proxy,会自动读取环境变量:

export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export ALL_PROXY=http://127.0.0.1:7890

代理中包含账号密码时,日志会脱敏:

Proxy: environment (https=http://***:***@127.0.0.1:7890)

验证与构建

本地测试:

python -m unittest discover -s tests

本地编译检查:

python -m compileall -q src tests main.py

构建发布包:

python -m build

检查 PyPI 元数据:

python -m twine check dist/*

当前发布流程会在 Python 3.9 和 3.14 上运行测试,并使用 Python 3.14 构建发布包。

常见问题

Q: 找不到匹配的 release 怎么办?

A: 先确认目标仓库存在对应版本 tag,例如 17.11.0v17.11.0。再确认该 release 中存在以 android-<arch>.gzandroid-<arch>.xz 结尾的 server asset。

Q: 多个设备连接时为什么直接退出?

A: 为了避免推送到错误设备,多个 adb 设备同时在线时必须使用 --serial 明确选择。

Q: 没安装 Frida 可以使用吗?

A: 可以。没有本地 Frida 时传入 --frida-version 即可:

florida-push --frida-version 17.11.0

Q: 推送后如何手动验证?

A: 可以直接执行:

adb shell /data/local/tmp/fs --version

致谢

免责声明

  • 本项目仅供学习交流、逆向分析辅助和安全研究使用。
  • 使用者应确保自己拥有分析目标和 Android 设备的合法授权。
  • 请勿在未授权环境中使用本工具。
  • 工具会写入并可能覆盖目标设备上的 /data/local/tmp/fs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

florida_push-0.1.0.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

florida_push-0.1.0-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file florida_push-0.1.0.tar.gz.

File metadata

  • Download URL: florida_push-0.1.0.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for florida_push-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3a47c91b721bed702e788947a3e1d09045d2ca3d298c88638259885a61ad8e32
MD5 6d56b519d9f12086f9cade7cdf63ca39
BLAKE2b-256 e2394c5054713509a9611f357b6de1539f8fc77c9311c3294328d618d5047842

See more details on using hashes here.

Provenance

The following attestation bundles were made for florida_push-0.1.0.tar.gz:

Publisher: release.yml on xihan123/florida-push

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file florida_push-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: florida_push-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for florida_push-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3d6f346788375408cab5f2ebb487517cca7f85bde09af8efd7d353663497f1d
MD5 6faa3fafa2d2c113b394ac0f4ad493cc
BLAKE2b-256 4f425e3358016e27b8d24d78d17ec4f041264ebb4cd761a6263deb6c899582a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for florida_push-0.1.0-py3-none-any.whl:

Publisher: release.yml on xihan123/florida-push

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page