I've been tearing my hair out on this one...
Fountain supports CarPlay and AndroidAuto so that you can browse your library and listen to podcasts from the car specific interface.
However GrapheneOS doesn't support AndroidAuto and as such the app crashes on GrapheneOS if we try to interface with certain AndroidAuto APIs. Specifically we are seeing this error:
java.lang.RuntimeException: Unable to bind to service fm.fountain.audio.service.MusicService@2d239f6 with Intent { cmp=fm.fountain.apps/fm.fountain.audio.service.MusicService }: java.lang.SecurityException: Failed to find provider androidx.car.app.connection for user 0; expected to find a valid ContentProvider for this authority
I'm looking for a simple way to detect in Kotlin that the Android device is running GrapheneOS (or any other solution to the issue)
250k sats for anyone who can help us figure this out.
Please share with any Android devs you know that might have experience in this area! 🙏
250,000 sats bounty
MEETS_BASIC_INTEGRITY
but notMEETS_DEVICE_INTEGRITY
hence why Google Pay and some banking apps does not work. Maybe it's worth trying? https://developer.android.com/google/play/integrity/verdict#device-integrity-fieldQUERY_ALL_PACKAGES
permission, which Google docs call high-risk and has a lot of guidelines on how to use. I don't even think an app like yours could meet the strict requirements anyhow, seems to be just for podcasts?app.attestation.auditor
(GrapheneOS' Auditor system app) detected you can turn that feature off? GrapheneOS' Auditor for other devices uses the App IPapp.attestation.auditor.play
so conflicts wouldn't be an issue.override fun onCarConnected() {}
function in a try block seems to stop the listener from firing in the case where the app is open before connecting to the car - very odd!"gearhead"
package check: