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工具, 云资产清单, 内核驱动, 安卓, 应用下载, 日志审计, 网络协议, 网络调试, 自动化, 逆向工程