apkeep
Download APKs from app stores
TLDR
SYNOPSIS
apkeep <-a appid[@version] | **-c** csv> [options] OUTPATH_
DESCRIPTION
apkeep downloads APK files from several Android app sources. It can fetch current or specific historical versions of applications, useful for security research, app archival, or accessing apps without a device.By default it downloads from APKPure, which requires no credentials. Downloading from Google Play requires an account email and an AAS token. Apps can be specified individually with -a or in bulk from a CSV file with -c.
PARAMETERS
-a, --app appid[@version]_
App ID, optionally with @version (e.g. com.instagram.android).-c, --csv file
CSV file listing app IDs to download in bulk.-f, --field n
CSV field (column) containing app IDs. Default is 1.-v, --version-field n
CSV field containing versions.-d, --download-source source
Where to download from: apk-pure (default), google-play, f-droid, huawei-app-gallery.-l, --list-versions
List the available versions of an app instead of downloading.-e, --email email
Google account email address (required for google-play).-t, --aas-token token
Google AAS token (required for google-play).-o, --options opts
Comma-separated extra options for the download source (e.g. arch=arm64-v8a).-r, --parallel n
Number of parallel APK fetches to run at a time. Default is 4.-s, --sleep-duration ms
Sleep duration in milliseconds before each download request. Default is 0.
CAVEATS
Google Play downloads require a valid account email and AAS token; see the project documentation for how to obtain one. Servers may rate-limit or block excessive downloads, so use -s to throttle. Downloaded APKs remain subject to their original license.
HISTORY
apkeep was developed by the EFF Threat Lab and first released in 2021, written in Rust, providing command-line access to multiple Android app sources for archival and security research.
