You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Android v0.11.3 APK blocked by Google Play Protect on Galaxy S24 Ultra #637
The official openstrap-edge-v0.11.3.apk from GitHub Releases cannot be installed on a Samsung Galaxy S24 Ultra. Google Play Protect blocks it before installation with this message (Spanish locale):
Se bloqueó la app para proteger tu dispositivo
Esta app puede solicitar acceso a datos sensibles. Esto puede aumentar el riesgo de robo de identidad o fraude financiero.
The dialog only offers “Entendido” (“Got it”). Expected: the official Android APK installs, or the release documentation provides a supported path.
Possible cause to investigate: Google documents this exact warning for browser-downloaded APKs that declare sensitive capabilities, including notification listener access. The v0.11.3 manifest declares notification.listener.service.NotificationListener with android.permission.BIND_NOTIFICATION_LISTENER_SERVICE. This is a hypothesis from the warning and source, not a confirmed diagnosis of the built APK. Could you confirm the cause and consider a release without the optional notification relay, or an appeal to Google Play Protect?
Likely cause. Your hypothesis looks plausible. The NotificationListener service in the manifest isn't declared by the app itself. It's merged in by the notification_listener_service plugin, which is only used by lib/notify/notification_relay.dart. That's the optional feature that relays phone notifications to the band as a buzz. Google lists notification-listener access among the capabilities that can trigger this "may request access to sensitive data" block for APKs downloaded outside the Play Store. I haven't checked this against the built APK, so it's still unconfirmed.
What doesn't fit yet. The same APK installs on my Galaxy S25. I only have to dismiss or turn off the usual Play Protect and "unknown source" prompts, as with any sideloaded app. Your dialog only offers "Entendido". That points to something specific to your device or region. Google has rolled this stricter block out by country and Android version, and Samsung's Auto Blocker can also stop sideloaded installs entirely.
Could you check these?
Your Android and One UI versions.
Whether Samsung Auto Blocker is on (Settings → Security and privacy → Auto Blocker). If it is, turn it off for the install.
Whether the install goes through once Device Protection is off (Play Store → profile icon → Play Protect → settings → "Scan apps with Play Protect" → Advanced Protection). You can turn it back on afterwards.
Whether you downloaded the APK in a browser or through a file manager.
If the listener service does turn out to be the trigger, a release without the notification relay, or a documented install path, would be a question for the maintainers.
Additional device details: Galaxy S24 Ultra running Android 16 and One UI 8.5. The v0.11.3 APK was downloaded from the official GitHub release in Chrome, then opened from Downloads. Samsung Auto Blocker is off; the Google Play Protect block still occurs.
Some details for deciding this, from current main:
The NotificationListener service is declared in the app's own android/app/src/main/AndroidManifest.xml (around line 256, with BIND_NOTIFICATION_LISTENER_SERVICE), not merged in by the plugin. Its only user is the optional "buzz the band for phone notifications" relay (lib/notify/notification_relay.dart), which does nothing until the user grants Notification access.
build.yml produces exactly one Android APK, so whatever the release APK declares, every Android user gets.
Riedel-David's S25 installs the same APK, and the reporter has Auto Blocker off, which fits Google's stricter block being rolled out by region and Android version rather than the APK being refused everywhere. The cause is still unconfirmed on the built APK.
Options, cheapest first:
Confirm before deciding. Build one APK with the service removed (tools:node="remove" on that entry, nothing else changed) and ask @BarqueroJose to try installing it. If it installs, the listener is the trigger; if not, it's something else and the options below don't apply.
Document a path, change nothing. A README / release-notes note on what to do when Play Protect blocks the install (e.g. temporarily turning off "Scan apps with Play Protect", or installing over ADB). Keeps the relay, but the users hit by this are exactly the ones least likely to get past it.
Drop the relay from the GitHub APK. Remove the service declaration and the plugin from the release build. Simplest and fixes the block (if confirmed), but every Android user loses notification buzzes.
Two APKs per release. The default APK without the listener, plus a "full" APK that keeps the relay, for people who want it and can get past Play Protect. Keeps the feature but adds a build variant and a second artifact to every release.
My suggestion would be 1, then 4 if the relay matters to enough people or 3 if it doesn't. @abdulsaheel, which way would you want this to go? I'm happy to do the test build for option 1, and whichever change follows.
Activity
Riedel-David commentedon Oct 27, 2026
Hey here is what I found.
Likely cause. Your hypothesis looks plausible. The
NotificationListenerservice in the manifest isn't declared by the app itself. It's merged in by thenotification_listener_serviceplugin, which is only used bylib/notify/notification_relay.dart. That's the optional feature that relays phone notifications to the band as a buzz. Google lists notification-listener access among the capabilities that can trigger this "may request access to sensitive data" block for APKs downloaded outside the Play Store. I haven't checked this against the built APK, so it's still unconfirmed.What doesn't fit yet. The same APK installs on my Galaxy S25. I only have to dismiss or turn off the usual Play Protect and "unknown source" prompts, as with any sideloaded app. Your dialog only offers "Entendido". That points to something specific to your device or region. Google has rolled this stricter block out by country and Android version, and Samsung's Auto Blocker can also stop sideloaded installs entirely.
Could you check these?
If the listener service does turn out to be the trigger, a release without the notification relay, or a documented install path, would be a question for the maintainers.
BarqueroJose commentedon Oct 28, 2026
Additional device details: Galaxy S24 Ultra running Android 16 and One UI 8.5. The v0.11.3 APK was downloaded from the official GitHub release in Chrome, then opened from Downloads. Samsung Auto Blocker is off; the Google Play Protect block still occurs.
kurexw commentedon Nov 13, 2026
Some details for deciding this, from current
main:NotificationListenerservice is declared in the app's ownandroid/app/src/main/AndroidManifest.xml(around line 256, withBIND_NOTIFICATION_LISTENER_SERVICE), not merged in by the plugin. Its only user is the optional "buzz the band for phone notifications" relay (lib/notify/notification_relay.dart), which does nothing until the user grants Notification access.build.ymlproduces exactly one Android APK, so whatever the release APK declares, every Android user gets.Options, cheapest first:
tools:node="remove"on that entry, nothing else changed) and ask @BarqueroJose to try installing it. If it installs, the listener is the trigger; if not, it's something else and the options below don't apply.My suggestion would be 1, then 4 if the relay matters to enough people or 3 if it doesn't. @abdulsaheel, which way would you want this to go? I'm happy to do the test build for option 1, and whichever change follows.