{"id":13994601,"url":"https://github.com/EFForg/apkeep","last_synced_at":"2025-07-22T19:32:51.248Z","repository":{"id":36969091,"uuid":"361972841","full_name":"EFForg/apkeep","owner":"EFForg","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-08T17:54:02.000Z","size":333,"stargazers_count":701,"open_issues_count":6,"forks_count":42,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-04-14T09:03:29.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EFForg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-27T03:49:42.000Z","updated_at":"2024-05-16T19:52:11.008Z","dependencies_parsed_at":"2024-04-08T19:05:36.210Z","dependency_job_id":null,"html_url":"https://github.com/EFForg/apkeep","commit_stats":{"total_commits":196,"total_committers":4,"mean_commits":49.0,"dds":"0.025510204081632626","last_synced_commit":"89730d950c2ebbe38723bbed46b5262a31bf9504"},"previous_names":["efforg/apk-downloader","efforg/apk-dl"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EFForg%2Fapkeep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EFForg%2Fapkeep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EFForg%2Fapkeep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EFForg%2Fapkeep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EFForg","download_url":"https://codeload.github.com/EFForg/apkeep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227166819,"owners_count":17740986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-09T14:02:58.690Z","updated_at":"2024-11-29T16:31:36.880Z","avatar_url":"https://github.com/EFForg.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003c!--- `README.md` is automatically generated from the rustdoc using [`cargo-readme`](https://crates.io/crates/cargo-readme). --\u003e\n# `apkeep` - A command-line tool for downloading APK files from various sources\n\n[![crates.io](https://img.shields.io/crates/v/apkeep.svg)](https://crates.io/crates/apkeep)\n[![MIT licensed](https://img.shields.io/crates/l/apkeep.svg)](./LICENSE)\n\n![apkeep logo](logo.png)\n\n## Installation\n\nPrecompiled binaries for `apkeep` on various platforms can be downloaded\n[here](https://github.com/EFForg/apkeep/releases).\n\nTo install from `crates.io`, simply [install rust](https://www.rust-lang.org/tools/install) and\nrun\n\n```shell\ncargo install apkeep\n```\n\nOr to install from the latest commit in our repository, run\n\n```shell\ncargo install --git https://github.com/EFForg/apkeep.git\n```\n\nIf using on an Android platform, [`termux`](https://termux.org/) must be installed first.\nUpgrade to the latest packages with `pkg update`, then install the `apkeep` precompiled binary\nas described above or run `pkg install apkeep` to install from the `termux` repository.\n\nDocker images are also available through the GitHub Container Registry. Aside from using a\nspecific release version, the following floating tags are available:\n\n- stable: tracks the latest stable release (recommended)\n- latest: tracks the latest release, including pre-releases\n- edge: tracks the latest commit\n\n## Usage\n\nSee [`USAGE`](https://github.com/EFForg/apkeep/blob/master/USAGE).\n\n## Examples\n\nThe simplest example is to download a single APK to the current directory:\n\n```shell\napkeep -a com.instagram.android .\n```\n\nThis downloads from the default source, APKPure, which does not require credentials.  To\ndownload directly from the google play store, you will first have to [obtain an AAS token](USAGE-google-play.md).\nThen,\n\n```shell\napkeep -a com.instagram.android -d google-play -e 'someone@gmail.com' -t aas_token .\n```\n\nFor more google play usage examples, such as specifying a device configuration, timezone or\nlocale, refer to the [`USAGE-google-play.md`](USAGE-google-play.md) document.\n\nTo download from the F-Droid open source repository:\n\n```shell\napkeep -a org.mozilla.fennec_fdroid -d f-droid .\n```\n\nFor more F-Droid usage examples, such as downloading from F-Droid mirrors or other F-Droid\nrepositories, refer to the [`USAGE-fdroid.md`](USAGE-fdroid.md) document.\n\nOr, to download from the Huawei AppGallery:\n\n```shell\napkeep -a com.elysiumlabs.newsbytes -d huawei-app-gallery .\n```\n\nTo download a specific version of an APK (possible for APKPure or F-Droid), use the `@version`\nconvention:\n\n```shell\napkeep -a com.instagram.android@1.2.3 .\n```\n\nOr, to list what versions are available, use `-l`:\n\n```shell\napkeep -l -a org.mozilla.fennec_fdroid -d f-droid\n```\n\nRefer to [`USAGE`](https://github.com/EFForg/apkeep/blob/master/USAGE) to download multiple\nAPKs in a single run.\n\nAll the above examples can also be used in Docker with minimal changes. For example, to\ndownload a single APK to your chosen output directory:\n\n```shell\ndocker run --rm -v output_path:/output ghcr.io/efforg/apkeep:stable -a com.instagram.android\n/output\n```\n\n## Specify a CSV file or individual app ID\n\nYou can either specify a CSV file which lists the apps to download, or an individual app ID.\nIf you specify a CSV file and the app ID is not specified by the first column, you'll have to\nuse the --field option as well.  If you have a simple file with one app ID per line, you can\njust treat it as a CSV with a single field.\n\n## Download Sources\n\nYou can use this tool to download from a few distinct sources.\n\n* The Google Play Store (`-d google-play`), given an email address and AAS token\n* APKPure (`-d apk-pure`), a third-party site hosting APKs available on the Play Store\n* F-Droid (`-d f-droid`), a repository for free and open-source Android apps. `apkeep`\nverifies that these APKs are signed by the F-Droid maintainers, and alerts the user if an APK\nwas downloaded but could not be verified\n* The Huawei AppGallery (`-d huawei-app-gallery`), an app store popular in China\n\n## Usage Note\n\nUsers should not use app lists or choose so many parallel APK fetches as to place unreasonable\nor disproportionately large load on the infrastructure of the app distributor.\n\nWhen using with the Google Play Store as the download source, a few considerations should be\nmade:\n\n* Google may terminate your Google account based on Terms of Service violations.  Read their\n[Terms of Service](https://play.google.com/about/play-terms/index.html), avoid violating it,\nand choose an account where this outcome is acceptable.\n* Paid and DRM apps will not be available.\n* Using Tor will make it a lot more likely that the download will fail.\n\nLicense: MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEFForg%2Fapkeep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEFForg%2Fapkeep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEFForg%2Fapkeep/lists"}