Reviewed-on: #2
Aurora Store
Aurora Store enables you to search and download apps from the official Google Play store. You can check app descriptions, screenshots, updates, reviews, and download the APK directly from Google Play to your device.
To use Aurora Store, log in using Google Play account, when you first open and configure Aurora Store.
Unlike a traditional app store, Aurora Store does not own, license or distribute any apps. All apps, app descriptions, screenshots and other content in Aurora Store are directly accessed, downloaded and/or displayed from Google Play.
Aurora Store works exactly like a door or a browser, allowing you to log in to your Google Play account and find the apps from Google Play.
Please note that Aurora Store does not have any approval, sponsorship or authorization from Google, Google Play, any apps downloaded through Aurora Store or any app developers; neither does Aurora Store have any affiliation, cooperation or connection with them.
Features
- FOSS: Has GPLv3 licence
- Beautiful design: Built upon latest Material 3 guidelines
- Account login: You can login with either personal or an anonymous account
- Device & Locale spoofing: Change your device and/or locale to access geo locked apps
- Exodus Privacy integration: Instantly see trackers in app
- Plexus integration: Instantly see app compatibility without Google Play Services or with microG
- Updates blacklisting: Ignore updates for specific apps
- Download manager
- Manual downloads: allows you to download older version of apps, provided
- The APKs are available with Google
- You know the version codes for older versions
Limitations
- The underlying API used is reversed engineered from the Google Play Store, changes on side may break it.
- Provides only base minimum features
- Can not download or update paid apps.
- Can not update apps/games with Play Asset Delivery
- Multiple in-app features are not available if logged in as Anonymous.
- Library
- Purchase History
- Editor's choice
- Beta Programs
- Review Add/Update
- Token dispenser server is not super reliable, downtimes are expected.
Downloads
Please only download the latest stable releases from one of these sources:
- Official website
- GitLab Releases
- IzzyOnDroid (reproducible)
- F-Droid (signed by F-Droid, more details)
- App Gallery (limited to certain countries)
You can also get latest debug builds signed with AOSP test keys for testing latest changes from our GitLab Package Registry.
Headless APK Downloader
This repository includes a JVM CLI module for downloading the latest available APK files for a Google Play package name. Build the compiled distribution once:
./gradlew :apk-downloader:installDist
Then run the generated launcher directly, without Gradle:
./apk-downloader/build/install/apk-downloader/bin/apk-downloader org.mozilla.firefox
By default, files are saved under ./downloads/<packageName>/<versionCode>/. To choose a different output directory:
./apk-downloader/build/install/apk-downloader/bin/apk-downloader org.mozilla.firefox --out ./downloads
When Google Play returns multiple APK files, the downloader keeps the verified raw files and also writes a split APK archive next to them:
downloads/<packageName>/<versionCode>/
base.apk
config_*.apk
<packageName>_<versionCode>.apks
This .apks file is a zip archive of the downloaded base/split APKs for split-aware installers. It is not a true universal APK. Bundletool can create a universal APK from an Android App Bundle (.aab) with build-apks --mode=universal, but Google Play download delivery provides APK files here, not the original .aab, so bundletool cannot merge these split APKs back into one universal APK.
To create a portable archive:
./gradlew :apk-downloader:distZip
The archive is written to apk-downloader/build/distributions/apk-downloader.zip. Unzip it anywhere with Java 17+ installed and run bin/apk-downloader.
For development, you can still run through Gradle:
./gradlew :apk-downloader:run --args="org.mozilla.firefox"
You can also build a Docker image for the downloader:
docker build -f apk-downloader/Dockerfile -t aurora-apk-downloader .
docker run --rm \
-v "$PWD/downloads:/downloads" \
-v "$HOME/.config/aurora-apk-downloader:/root/.config/aurora-apk-downloader" \
aurora-apk-downloader \
com.nestle.tr.nescafe.nescafe3in1loyaltyapp --country TR --out /downloads
If your Proton VPN runs in a separate VPN container, run the downloader with that container's network namespace, for example --network container:<vpn-container-name>.
The image also includes an exec-friendly wrapper that takes the country first, then the package name. Start a reusable container and run downloads with docker exec:
docker run -d --name aurora-apk-downloader \
-v "$PWD/downloads:/downloads" \
-v "$HOME/.config/aurora-apk-downloader:/root/.config/aurora-apk-downloader" \
--entrypoint sleep \
aurora-apk-downloader infinity
docker exec aurora-apk-downloader \
download-apk TR com.nestle.tr.nescafe.nescafe3in1loyaltyapp
To run Proton VPN inside Docker instead of on the host, use the bundled Compose file. Copy the example environment file, fill in your Proton WireGuard values, then start the reusable downloader stack:
cp apk-downloader/proton.env.example apk-downloader/proton.env
# edit apk-downloader/proton.env
docker compose \
--env-file apk-downloader/proton.env \
-f apk-downloader/docker-compose.proton.yml \
up -d --build
docker compose \
--env-file apk-downloader/proton.env \
-f apk-downloader/docker-compose.proton.yml \
exec downloader download-apk TR com.nestle.tr.nescafe.nescafe3in1loyaltyapp
If APK_COUNTRY and APK_PACKAGE are set in the env file, you can use those defaults instead:
docker compose \
--env-file apk-downloader/proton.env \
-f apk-downloader/docker-compose.proton.yml \
exec downloader sh -lc 'download-apk "$APK_COUNTRY" "$APK_PACKAGE"'
For Proton WireGuard, set WIREGUARD_PRIVATE_KEY and WIREGUARD_ADDRESSES from a Proton VPN WireGuard config. For OpenVPN, set VPN_TYPE=openvpn and use Proton's OpenVPN/IKEv2 username and password in OPENVPN_USER and OPENVPN_PASSWORD.
Certificate Fingerprints
- SHA1: 94:42:75:D7:59:8B:C0:3E:48:85:06:06:42:25:A7:19:90:A2:22:02
- SHA256: 4C:62:61:57:AD:02:BD:A3:40:1A:72:63:55:5F:68:A7:96:63:FC:3E:13:A4:D4:36:9A:12:57:09:41:AA:28:0F
Support
Aurora Store v4 is still in on-going development! Bugs are to be expected! Any bug reports are appreciated. Please visit Aurora Wiki for FAQs.
Permissions
android.permission.INTERNETto download and install/update apps from the Google Play serversandroid.permission.ACCESS_NETWORK_STATEto check internet availabilityandroid.permission.FOREGROUND_SERVICEto download apps without interruptionandroid.permission.FOREGROUND_SERVICE_DATA_SYNCto download apps without interruptionandroid.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONSto auto-update apps without interruption (optional)android.permission.MANAGE_EXTERNAL_STORAGEto access the OBB directory to download APK expansion files for games or large appsandroid.permission.READ_EXTERNAL_STORAGEto access the OBB directory to download APK expansion files for games or large appsandroid.permission.WRITE_EXTERNAL_STORAGEto access the OBB directory to download APK expansion files for games or large appsandroid.permission.QUERY_ALL_PACKAGESto check updates for all installed appsandroid.permission.REQUEST_INSTALL_PACKAGESto install and update appsandroid.permission.REQUEST_DELETE_PACKAGESto uninstall appsandroid.permission.ENFORCE_UPDATE_OWNERSHIPto silently update appsandroid.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTIONto silently update appsandroid.permission.POST_NOTIFICATIONSto notify user about ongoing downloads, available updates, and errors (optional)android.permission.USE_CREDENTIALSto allow users to sign into their personal Google account via microG
Screenshots
Translations
Don't see your preferred language? Click on the widget below to help translate Aurora Store!
Donations
You can support Aurora Store's development financially via options below. For more options, checkout the About page within the Aurora Store.
Project references
Aurora Store is based on these projects

