Update to iodéOS 6.0 (Android 15) breaks Android Auto (Wireless)

After updating to Version 6.0 I found out that now I’m unable to use Android Auto with my car radio. The Android Auto app itself still works and I can get int its settings, however I cannot connect it to my car radio. My phone is a Fairphone 4.

Android Auto can detect that its connected over Bluetooth to a car radio that it can talk to. However pressing that ones name does nothing. Any attempts to connect fail without any message or warning.

I did some looking with Logcat (using LogFox) and captured this crash:

FATAL EXCEPTION: main
Process: com.google.android.projection.gearhead:car, PID: 13111
java.lang.RuntimeException: Unable to start service com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService@33f17bb with Intent { act=android.bluetooth.device.action.ACL_CONNECTED cmp=com.google.android.projection.gearhead/com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService (has extras) }: java.lang.SecurityException: Starting FGS with type location callerApp=ProcessRecord{25587d6 13111:com.google.android.projection.gearhead:car/u0a412} targetSDK=35 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_LOCATION] any of the permissions allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION]  and the app must be in the eligible state/exemptions to access the foreground only permission
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5246)
	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2546)
	at android.os.Handler.dispatchMessage(Handler.java:109)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.app.ActivityThread.main(ActivityThread.java:8787)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871)
Caused by: java.lang.SecurityException: Starting FGS with type location callerApp=ProcessRecord{25587d6 13111:com.google.android.projection.gearhead:car/u0a412} targetSDK=35 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_LOCATION] any of the permissions allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION]  and the app must be in the eligible state/exemptions to access the foreground only permission
	at android.os.Parcel.createExceptionOrNull(Parcel.java:3231)
	at android.os.Parcel.createException(Parcel.java:3215)
	at android.os.Parcel.readException(Parcel.java:3198)
	at android.os.Parcel.readException(Parcel.java:3140)
	at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7209)
	at android.app.Service.startForeground(Service.java:863)
	at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.h(SourceFile:93)
	at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.g(SourceFile:119)
	at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.onStartCommand(SourceFile:139)
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5228)
	... 9 more

The app has all permissions I can give it via settings.


[…] and the app must be in the eligible state/exemptions to access the foreground only permission

Just a gut feeling but could this be the problem :thinking:
Maybe an Android 15 permission (API) change?


If needed I could provide the longer logcat capture I did as well.

1 Like

Actually. Running over USB is also broken. I’ve tried running Android Auto in Debug Mode, using the head unit emulator on my computer.

That did also work before the update. Now I can see the following in the ADB logs:

1739302479.048 10412 26350 26350 I CAR.SETUP.LITE: Using FirstActivity bypass from intent: Intent { act=android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE flg=0x11000010 cmp=com.google.android.projection.gearhead/com.google.android.apps.auto.carservice.gmscorecompat.CarUsbReceiverTPlus (has extras) }
1739302479.051 10412 26350 26350 W CAR.SETUP.LITE: Accessory is not valid: null
1739302479.051 10412 26319 27966 I GH.ConnBroadcast: Got USB_ACCESSORY_HANDSHAKE event. GETPROTOCOL started at 0ms, STRING_COUNT=0, ACCESSORY_START=true, ACCESSORY_HANDSHAKE_END=893057110ms, handshake delay 893057119ms

Something about the accessory not being valid (being reported as null is a bit strange).