Files
| File | Size | SHA-256 | Download |
|---|---|---|---|
| APKFinder-0.24.1-release.apk | 14.2 MB | 7014bd2472dbadf4dc7c5072ee4594363525a6599ef319898fc58a9e86ffafb1 |
Download APKFinder-0.24.1-release.apk |
Checking a download
Compare the checksum of the file you downloaded with the one listed above. They must match exactly; if they do not, delete the file and download it again.
- Windows — in PowerShell,
Get-FileHash .\file-name - macOS and Linux — in Terminal,
shasum -a 256 file-name
Release notes
Everything since 0.22.0.
New
- Ratings. Apps from APKPure show APKPure's user rating, such as ★ 7.9/10, on their search result, and the app's page adds how many ratings it is based on. F-Droid and IzzyOnDroid publish no ratings, so a missing rating says nothing about an app's quality.
- Faster-feeling search. Each repository's results appear as soon as it answers, and a line above them says which repositories are still searching. Before, nothing appeared until the slowest one finished — on a new device, the first F-Droid search downloads the whole catalogue.
- Better order. Results are ordered by how well they match what you typed, whichever repository they come from. An exact match from APKPure no longer sits below dozens of loose F-Droid matches, and APKPure's own best match for your search comes before copies that merely use the same name.
Safer installs
- APK Finder now checks that a downloaded file really is the app and version you chose. It refuses a file that turns out to be a different app, and asks you to confirm a different version of the right app.
- It refuses to install an older version over a newer one and says why, instead of Android's unhelpful "App not installed".
- It refuses a file that has changed since it was downloaded; download it again.
- Games that download their data through the Play Store are now flagged as depending on Google: without the Play Store, that data never arrives.
- An app is shown as installed only if the installed copy is signed like the downloaded file. A same-version copy from another repository, which Android refuses, is no longer shown as installed, and Delete APK after successful install keeps it. That setting now also keeps split-APK bundles.
Downloads
- A download stops at once with a clear message when the device does not have enough free storage, instead of failing at the end as a "network error".
- A download that turns out to be an error page rather than an app is refused instead of being saved as a package.
- Leftover partial files from an interrupted download, for example when the car was switched off, are cleaned up.
Easier to use in a car
- Larger touch targets for the top-bar buttons, the buttons in dialogs (including Install anyway), and the Device Profile and SAI buttons.
- A quick double tap on the back arrow no longer skips a screen or leaves a blank one.
- An app's page keeps the app's own icon. Before, apps from APKPure showed a screenshot in its place.
- An app's page has Retry when it cannot be loaded, Show all versions when your settings hide some (for that app only), and names the repository ("F-Droid") instead of an internal id.
- The Details button is now called Inspect, like the screen it opens, and that screen updates by itself when you come back from Android's installer.
- Colours are consistent in light and dark mode; cards and dialogs no longer take on a purple tint.
Good to know
- Prefer Google-free apps now treats an app nothing is known about, such as one from APKPure, as unknown rather than free: among equally good matches, apps a repository says are free come first.
- If APKPure is blocking requests, rate-limiting them or no longer lists an app, the message now says which.
- Diagnostic logs and downloaded APKs are no longer included in Android backups.
README
APK Finder
APK Finder finds, checks and installs Android apps on devices that have no Google Play Services: Chinese-market car head units first of all, and just as well custom ROMs and degoogled phones.
Most app finders assume Google is there. APK Finder checks what your device actually has — Google Play Services, the Play Store, microG, Huawei Mobile Services, or none of them — and tells you, before you install, whether an app will run and what it may lose.
What you need
- Android 8.0 or later.
- Permission to install apps from outside an app store. Android asks for this the first time you install something that did not come from a store: once for the browser or file manager you use to open the APK Finder file, and once for APK Finder itself when it installs an app for you.
Installing APK Finder
- Download
APKFinder-0.24.1-release.apk. - Optionally, check the file: its SHA-256 checksum is listed on the download page. It must match exactly.
- Open the file on the device and allow the install when Android asks.
If you already use a copy of APK Finder that you built yourself, or got from somewhere else with a different signing key, Android will not update it. Uninstall that copy first; note that uninstalling deletes its settings and download history.
First steps
- Open APK Finder, type an app name into Search apps… and tap Search.
- Tap the result to open the app's details, with its versions and a first compatibility estimate. APK Finder profiles your device the first time it needs to.
- Tap Download. When the file arrives, it is checked against the repository's checksum (where the repository publishes one) and inspected, and the result shows what was found.
- Tap Install. If anything needs your attention, the button reads Install… and lists every warning before you decide. Wherever you tap Install, a file that has not been inspected yet is checked first.
The user guide explains every screen and setting.
Privacy in short
- No account, no telemetry, no analytics, no advertising.
- Compatibility checks, device profiling and file inspection run on the device.
- It contacts the app repositories you enable. All three — F-Droid, IzzyOnDroid and APKPure — are on when you install it, and each can be turned off in Settings. While APKPure is on, your search terms are sent to apkpure.com. Two requests do not follow those settings: installing the SAI bundle installer always contacts F-Droid, and Check for updates asks GitHub which version of APK Finder is published.
The full privacy policy is at https://dev.bbst.us/privacy.html
Tested on
This release was tested on an Android 13 system without Google services. It has not yet been tested on Android 14 or on a BYD head unit.
Help
Questions: https://github.com/rcshou/bbst-software/discussions — problems: https://github.com/rcshou/bbst-software/issues/new/choose — or email dev@bbst.us.
APK Finder is licensed under the Apache License 2.0. Copyright Bluebonnet Studios.
User guide
APK Finder user guide
For APK Finder 0.22.0.
How it works
APK Finder searches app repositories, estimates whether an app suits your device, downloads the file, checks the downloaded file, and then hands it to Android's own installer. It never installs anything silently and needs no root access.
Compatibility is judged twice:
- Preliminary — from the repository's information, before you download anything. Some things, such as required device features and Google dependencies, cannot be known until the file is downloaded, so an app with no known problems shows Likely compatible rather than Compatible at this stage.
- Authoritative — from the downloaded file itself, checked against your actual device. This is the result to trust.
APK Finder profiles your device the first time it needs to, for example when you first open an app's details.
Searching
Type into Search apps… and tap Search. Every enabled repository is searched at the same time, and results for the same app from different repositories are merged into one entry. Each repository's results appear as soon as it answers, and Still searching: … above the results names the ones that have not answered yet — the first F-Droid search on a new device downloads the whole catalogue, which can take a while. If a repository cannot be reached, a line above the results says so for that repository, and results from the others are still shown.
Results are ordered by how well they match what you typed — an exact name first, then names that start with it, then names that contain it, then matches on the package or developer name or the summary — whichever repository they come from.
Tap anywhere on a result to open the app's details. Each result also lists the repositories that have the app: tapping the card uses the first one listed, and tapping a repository line opens that repository's copy instead.
Recent searches appear under the search field as shortcuts. You can clear them in Settings > Privacy & Storage.
A result marked ⚠ The repository flags this app for non-free dependencies or tracking (often Google Play Services or analytics; unconfirmed until downloaded) is one that F-Droid or IzzyOnDroid has flagged as depending on non-free components or as tracking its users. APKPure results are never flagged.
A repository line may show a user rating such as ★ 7.9/10. Only APKPure publishes ratings, on its own 10-point scale, and APK Finder shows them as published. F-Droid and IzzyOnDroid have no ratings, so a missing rating says nothing about an app's quality. The app's details repeat the rating with the number of ratings behind it, for example ★ 7.9/10 from 5,902 ratings on APKPure.
On some BYD head units, APK Finder may detect the vehicle model and DiLink version and show them under the app name at the top of the search screen. Detection is best-effort; nothing is shown if they cannot be detected.
App details
The app's details show its Available versions. For each version you see its preliminary compatibility, where it comes from and its package format (a standard APK, or a bundle such as XAPK), its minimum and target Android versions (SDK) and its size, and its CPU architectures (ABIs) when the repository lists them.
By default only the newest version that passes your filters is shown, and versions that are incompatible or uncertain are hidden. When versions are hidden, the screen says how many, and Show all versions lists them for this app without changing your settings; Settings > Search & Compatibility controls the defaults.
If the app's details cannot be loaded, Retry tries again, and for APKPure Open in browser opens the app's page instead.
Compatibility results
Each check gets one of these results:
| Result | Meaning |
|---|---|
| Compatible | The check passed. |
| Likely compatible | Nothing wrong was found, but not everything could be confirmed. |
| Warning | The app will install, but something may not work. For Package format, it means Android's own installer cannot open the file. |
| Incompatible | Android will refuse to install it, or it cannot run on this device. |
| Unknown | There was not enough information to decide this check. |
The checks are:
- Android version — whether the app supports this device's Android version.
- Install policy — Android 14 and later refuse apps built for very old Android versions.
- CPU architecture — whether any native code in the app is built for this device's processor. An app with no native code runs on any processor.
- Device features — hardware or software features the app says it requires. If one is missing, Android installs the app anyway, but the functions that need it may not work.
- System libraries — libraries the app requires, such as Google Maps' library. If one is missing, Android refuses to install the app.
- Google services — see below.
- Display — not evaluated in this version.
- Package format — whether the file is a standard APK or a split-APK bundle.
Google services
After download, APK Finder checks the app's manifest for references to Google Play Services and Firebase. The app's details show the overall result, such as Google dependency: Some features may not work. The Inspect screen names each finding — for example Google Maps, Google Sign-In, Play Integrity, Play asset or feature delivery, Play Billing, push messaging, Google location or Google Cast — with its likely effect on a device without Google services, rated low, medium or high impact. Some examples:
- Maps may fail or show a blank map.
- Sign-in may fail if it is the app's only way to log in.
- The app may be blocked at startup or login if it requires Play Integrity.
- A game that downloads its data through Play asset delivery may not start: without the Play Store, that data never arrives.
- In-app purchases may fail while the rest of the app works.
- Apps that only use Google analytics or advertising are not expected to lose anything.
When some or most features are likely to depend on Google and microG is installed, the result says that microG may cover some of them.
Downloading
Tap Download on a version. Progress is shown on that version in the app's details, and in a notification. On Android 13 and later, APK Finder asks for permission to show notifications when you start a download, until you allow it; the download works either way. The download keeps going if you leave the screen or switch to another app, such as navigation. To stop it, open the app's details again and tap Cancel on that version.
When the file arrives, APK Finder compares its SHA-256 checksum with the one the repository published:
- ✓ SHA-256 verified — it matches;
- ⚠ SHA-256 does not match the repository's published hash — the file may be corrupted or tampered with;
- Not verified: the repository publishes no hash — there was nothing to compare with;
- Not verified: verification is off in Settings.
A download stops with a message instead of being saved when the device does not have enough free storage for it (this is checked before the transfer starts), or when the server sends something that is not an app package, such as an error page.
For a standard APK, and as long as Inspect APK after download is on, it then inspects the file straight away:
- it reads the package name and version, supported Android versions, CPU architectures, required libraries, requested permissions and signing certificates;
- it compares the signing certificate with the one the repository lists, and with the version already installed on the device, if there is one;
- it runs the authoritative compatibility checks.
Split-APK bundles are not inspected. They come from APKPure, which publishes no checksum, so they are not verified either. Downloads are kept in APK Finder's own storage folder on the device.
Installing
What you see depends on the result:
- Install — nothing needs your attention, or the file has not been inspected yet. If it has not, tapping Install first runs the same checks as after a download; the button reads Checking… meanwhile, which can take a few seconds for a large app. Then Android's installer opens, the warnings are listed as for Install…, or Can't install explains why the file cannot be installed on this device.
- Install… — there is at least one warning. Tapping it lists every warning; choose Install anyway to continue, or Cancel.
- No install button — a check found the app incompatible, and the reason is shown instead; or the automatic inspection failed, and Inspect retries it. The Downloads list also shows no Install button once that version is installed or its file is gone.
Install is also refused, with the reason, when:
- the file is a different app than the one you chose — the repository served the wrong file;
- a newer version of the app is already installed. Android cannot install an older version over a newer one; you would have to uninstall the app first, which deletes its data;
- the file has changed since it was downloaded. Delete it and download it again.
- Export… — the file is a split-APK bundle (see below), or a file whose format APK Finder does not recognize.
The warnings are:
- the checksum does not match what the repository published;
- the file is a different version of the app than the one you chose;
- the app is signed with a different certificate than the repository lists;
- the app is signed differently from the version already installed. Android will refuse this update unless you uninstall the existing app first, which deletes that app's data;
- the app may not work fully on this device, for example because of a Google dependency or a missing feature.
No setting turns these warnings off, and they are the same wherever you tap Install: on the app's details, in the Downloads list, or on the Inspect screen. The signing and compatibility checks look at the device as it is when you tap. One exception: with Verify downloads off, the checksum is not compared, so the checksum warning cannot appear.
If APK Finder is not yet allowed to install apps, tapping Install opens the system screen where you allow it. If the device has no shortcut to that screen, APK Finder says so; look for Install unknown apps in the system settings.
Split-APK bundles (XAPK, APKM, APKS)
Some downloads, mostly from APKPure, are bundles of several files rather than one APK. Android's installer cannot open them, so they are marked with a warning. While Compatible with this device only is on, they are hidden unless Include uncertain compatibility is also on.
To install a bundle you need SAI (Split APKs Installer), a free, open-source installer:
- Install SAI from Settings > Downloads & Installation > Download and install SAI. It comes from F-Droid, even if F-Droid is switched off for searching, and it is deleted again if it does not match F-Droid's published SHA-256.
- On the downloaded bundle, tap Export… and save it somewhere SAI can reach, such as Downloads.
- Open SAI and pick the file.
APKM and APKS bundles also offer Open with…, which lets you choose SAI to open the file directly.
Downloads screen
Downloads lists your finished downloads. Each entry shows the version, source, format and size, the checksum result, when it was downloaded, and whether it is installed:
- ✓ This version is installed
- An older version (…) is installed; this download is an update
- A newer version (…) is installed
- Install requested — waiting to confirm — Android's installer was opened. When you come back to the Downloads screen, it changes to ✓ This version is installed if the install finished; if you cancelled the installer, it stays as it is. If another version of the app is on the device, the older- or newer-version line is shown instead while you wait.
- Not installed
A version counts as installed only when the installed app has the same version and the same signing certificate as the downloaded file. The same version from another repository, signed differently, is refused by Android, so it is not shown as installed, and Delete APK after successful install keeps that file. That setting also keeps split-APK bundles, whose signing APK Finder cannot compare.
Inspect (standard APKs whose file is still there) inspects the file again and shows every finding; it checks again when you come back from Android's installer. Delete asks for confirmation, then removes the file and its history entry.
Settings
Repositories
| Repository | Default | About it |
|---|---|---|
| F-Droid | On | Free and open-source apps, with signing information and direct APK files. |
| IzzyOnDroid | On | A larger F-Droid-compatible catalogue, including some copies of proprietary apps. Review what you install from here. |
| APKPure | On | A third-party copy of Play Store apps, mostly proprietary. APK Finder reads its public pages the way a browser would, so while it is on your search terms are sent to apkpure.com. If APKPure blocks automated requests, it shows as unavailable; APK Finder does not try to get around that. |
The F-Droid and IzzyOnDroid catalogues are downloaded to the device, so later searches start faster and work without a connection. Adding other repositories is not supported yet.
Search & Compatibility
| Setting | Default | Effect |
|---|---|---|
| Prefer Google-free apps | On | Lists apps the repository flags for non-free dependencies or tracking after the rest. Among equally good matches, apps a repository says are free come before apps nothing is known about, such as APKPure's. |
| Compatible with this device only | On | Hides versions flagged as incompatible or uncertain. |
| Include uncertain compatibility | Off | When the setting above is on, still shows versions with unresolved or warning-level checks, including split-APK bundles. |
| Show older versions | Off | Lists every available version instead of only the newest. |
Downloads & Installation
| Setting | Default | Effect |
|---|---|---|
| Verify downloads | On | Compares each file's SHA-256 with the repository's published hash. |
| Inspect APK after download | On | Runs the checks right after each download. When off, the same checks run when you tap Install, or on Inspect. |
| Open installer automatically | Off | Opens Android's installer when a download finishes and inspection finds nothing to confirm — only while Inspect APK after download is on, APK Finder is on screen, and it is already allowed to install apps. |
| Delete APK after successful install | Off | Removes a file you installed from APK Finder the next time you open Downloads. |
The download location is fixed to APK Finder's own storage folder in this version.
Device profile
Shows what APK Finder knows about the device: Android release, SDK level and security patch; manufacturer, brand, model and chip; supported CPU architectures; display resolution, density and smallest width; which of Google Play Services, the Google Play Store, microG and Huawei Mobile Services are present; whether APK Finder is allowed to install apps; and system interface details. After a system update, the profile is detected again the next time it is needed.
- Re-detect device reads everything again now.
- Copy diagnostic profile and Save diagnostic profile to file… produce a report to include when asking for help.
Appearance
- Theme — Follow system (default), Light or Dark.
- UI size — Normal (default), Large or Extra large. Buttons use larger touch targets on every screen, and content is capped in width and centred, which shows on wide screens such as head units and tablets. If the screen is viewed from a distance, try Large.
Privacy & Storage
- Allow repository icons/images — on by default. Off shows a generic icon and makes no image requests.
- Clear search history — removes the recent-search shortcuts.
- Clear repository cache — deletes the downloaded F-Droid and IzzyOnDroid catalogues; the next search downloads them again.
- Manage downloaded APKs — opens Downloads.
About
Shows the version, the licence and third-party licences.
Check for updates asks the download site whether a newer APK Finder is published. It checks only when you tap it, never on its own. If there is a newer version, Open the download page takes you to it; APK Finder does not download or install its own updates. If the site cannot be reached, the reason is shown.
Export diagnostics saves the app version, the time of the export, the device profile and APK Finder's local log to a file you choose. Search terms are not logged, and nothing is sent anywhere.
Troubleshooting
"No repositories are enabled." Turn one on in Settings > Repositories.
A repository shows as unavailable. It could not be reached, or, for APKPure, it is blocking automated requests. Try again later; the other repositories still work.
Android will not update an installed app. The new file is signed differently. The only way to install it is to uninstall the existing app first, which deletes its data.
Android refuses to install an app. Check the compatibility results: a missing system library, or an app built for a very old Android version on Android 14 and later, both cause this.
"Download incomplete" or a network error. Check the connection and download again.
A bundle cannot be installed. Install SAI and use Export…, as described above.
Asking for help. Include the version from Settings > About and, if you can, a diagnostic export. Ask at https://github.com/rcshou/bbst-software/discussions or email dev@bbst.us.
