Skip to main content

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 --version、frida-ps --version。
  • 设备架构识别:读取 ro.product.cpu.abi,自动映射到 arm、arm64、x86、x86_64。
  • 灵活命名匹配:不固定 frida-server 前缀,支持 florida-server、custom-server 等命名。
  • 多压缩格式支持:支持 .gz 和 .xz,下载后自动解压并重命名为 fs。
  • 代理支持:支持 --proxy,未指定时自动读取 HTTP_PROXY、HTTPS_PROXY、ALL_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.0 或 v17.11.0。再确认该 release 中存在以 android-<arch>.gz 或 android-<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。

Metadata

Release files for florida-push 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for florida-push 0.1.0
File Size Uploaded Provenance Actions
florida_push-0.1.0.tar.gz 26.1 kB With provenance Details for florida_push-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for florida-push 0.1.0
File Interpreter ABI Platform Actions
florida_push-0.1.0-py3-none-any.whl Python 3 none any Details for florida_push-0.1.0-py3-none-any.whl

Total release size: 48.2 kB

Release files / florida_push-0.1.0.tar.gz

Download URL florida_push-0.1.0.tar.gz
Size 26.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3a47c91b721bed702e788947a3e1d09045d2ca3d298c88638259885a61ad8e32
BLAKE2b-256 checksum
How to use checksums
e2394c5054713509a9611f357b6de1539f8fc77c9311c3294328d618d5047842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / florida_push-0.1.0-py3-none-any.whl

Download URL florida_push-0.1.0-py3-none-any.whl
Size 22.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3d6f346788375408cab5f2ebb487517cca7f85bde09af8efd7d353663497f1d
BLAKE2b-256 checksum
How to use checksums
4f425e3358016e27b8d24d78d17ec4f041264ebb4cd761a6263deb6c899582a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Security for florida-push 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for florida_push-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page