cbxss/playget

GitHub: cbxss/playget

playget 是一个原生 Go CLI 工具,无需模拟器、登录或 JVM 即可从 Google Play 下载应用 APK 及历史版本。

Stars: 0 | Forks: 0

# playget 在本地下载 Google Play 应用——包括 Play 独占应用(例如 Claude)和**历史版本**。无需模拟器,无需登录 Google,无需 JVM。 它使用来自 [Aurora](https://gitlab.com/AuroraOSS) 的 token 分发器的匿名凭据,结合 Google Play 自身的协议(checkin -> details -> purchase -> delivery),实现为原生 Go CLI。 ## 环境要求 - **住宅 IP** —— Google 会阻止来自数据中心 IP 的 Play 登录。 - 运行于 `amd64` 或 `arm64` 架构上的 Linux,以使用发布版安装程序。 ## 安装 ``` curl -fsSL https://github.com/cbxss/playget/releases/latest/download/install.sh | bash ``` 安装程序会检测你的 Linux 架构,从 GitHub Releases 下载最新的原生 Go 二进制文件,在 `sha256sum` 可用时验证其校验和,并将其 安装到 `~/.local/bin/playget`。 ## 用法 ``` playget [--version ] [--out ] ``` ``` playget com.anthropic.claude # latest playget com.anthropic.claude --version 26020937 # a specific build ``` 将 `base.apk` 及分包(split APKs)下载到 `play_out//` 目录中。 默认情况下,`--profile auto` 会从内置设备配置文件开始,并在 Play 报告应用不适用于上传的设备 配置时,使用临时的 feature overlay 进行重试。成功的包/配置文件组合会被缓存到 `~/.cache/playget/profile-cache.json` 中。使用 `--no-cache` 可忽略该缓存,或者 使用 `--extra-feature ` 来为单次运行声明某个 feature,而无需修改 内置的默认值。 ## 发布 版本信息维护在 `VERSION` 文件中,发布标签格式为 `vX.Y.Z`。要进行发布: ``` scripts/release.sh 0.2.1 ``` 推送标签会触发 GitHub Actions 发布工作流,并上传 `install.sh`、 适用于 Linux amd64/arm64 的原生 Go 二进制文件,以及 `sha256sums.txt`。 ## 测试 ``` scripts/smoke.sh PLAYGET_LIVE=1 scripts/smoke.sh scripts/clean.sh ``` 默认的冒烟测试是离线的。`PLAYGET_LIVE=1` 会增加实时的 Play 检查,针对 checkin/设备配置上传、Withings 基础配置不可用性、Withings 运行时 overlay 交付元数据,以及 IATA 基础配置交付元数据。 `scripts/clean.sh` 会移除本地生成的输出,如 `dist/`、`play_out/` 以及 APK 逆向工程草稿目录。 ## 文件 | | | |---|---| | `cmd/playget` | CLI | | `VERSION` | 发布版本 | | `proto/googleplay.proto` / `internal/playproto` | 独立的 Play protobuf schema | | `internal/assets/device.properties` | 内置的伪装设备配置文件 | ## 注意事项 固定在当前的 Play 协议快照。如果 Google 升级了协议(下载开始失败),请从较新的 Aurora `gplayapi` 发布版本中,使用新的 `X-DFE-*` 常量和 Finsky 版本刷新 `internal/play`。
标签:EVTX分析, Go, Ruby工具, 云资产清单, 内核驱动, 安卓, 应用下载, 日志审计, 网络协议, 网络调试, 自动化, 逆向工程