Learn From My Stupidity...Another Android Auto on /e/OS thread

I hope that the community here will be entertained - and informed - by my two week saga of figuring out why I couldn’t get Android Auto to work…

So, the not-so-short back story…I have a car that supports Android Auto, and I wanted to be able to use it for maps and podcasts, but roughly two years ago, AA didn’t exist in the OSS world, and I wasn’t about to let all my location data end up being added to the Google panopticon…so I bought a phone explicitly for the purpose. I also didn’t want to pay for another line for a phone who’s only job was mapping and podcast downloading, so I bought a Pixel 6a, and settled on Sygic GPS - a mapping solution that costs $15/year, and has good support, regularly updated maps, and a better-than-most privacy policy. Between that, AntennaPod, PowerAmp, and AFWall+ to block outbound connections from apps other than those, I had the perfect accessory to my car’s display…even if I had to use the stock ROM. Used a few LSposed modules to allow sideloaded APKs to show on Android Auto, and I was in business.

This worked for years, and continues to do so…my wife simply wanted one for her car, so now, I needed to tackle a project I’d been putting off for a while - configuring my CMF Phone 1 to do the same…but, since I set that up roughly two years ago, it looked like it was possible to use Android Auto with /e/OS…which made me thrilled, because I spend a massive amount of time getting the firewall working…and I was never truly satisfied that I had achieved my goal because of the system apps that required network access.

So, I flashed it with /e/OS, rooted my phone to install the LSposed modules needed to provide AA access to sideloaded applications, and…got an error saying Sygic requires a newer version of Android Auto. Spent an evening getting Android Studio installed so I could get some more debugging info, and eventually got that working…and the debug output said that Sygic required Android Auto API 7, but only API 5 was available. ChatGPT provided me with some commands to run as root to have the system report as having API 7, and my checks came back reporting API 7…but Sygic still insisted that it was only getting V5.

So, I updated from 3.1.4 to 3.2 OTA, root/LSposed modules, went out to the car…no change in behavior. So, I decided to try iodeOS; I remember reading somewhere that they had a slightly-more-effective implementation of AA…and, I ran into the fun safeguard where the /e/OS 3.2 recovery saw the iodeOS ROM as a downgrade, and wouldn’t flash it.

A bit more Kagi searching, and I found a few helpful tools. The first of which was a payload extractor, that allowed me to export the payload.bin file into all the different .img files for all the different partitions. The second thing I found was a nifty batch file that would flash all of the .img files to their respective partitions, including multi-slot partitions, automatically - MASSIVE time-saver, and far more effective.

So, I used that to flash iodeOS…and it sat at the bootloader splash screen…overnight. Went back to the phone’s stock ROM (which I wanted to do just to make sure I could, so I had a known starting point if it came down to this phone only running stock ROM. Flashed iodeOS again, same behavior, then back to /e/, which booted, but still gave the API issue.

A few more rounds of flashing, including some fresh-out-the-kitchen builds of both /e/OS and iodeOS, and I finally got iodeOS to boot. Argued with Sygic (who now didn’t like loading at all), did a factory reset, got it working, added root and lsposed/mods…same API 7 issue.

It made no sense. I was losing my mind. There’s no way the absolute latest iteration of iodeOS, running Android 15, would have something so old that Sygic wouldn’t run on it, because that Pixel 6a? It’s still on A13! I decided to go back to stock…

…after One. Last. Try. largely because I was having issues with the Android Studio head unit loading up…and I’d just gotten that working, so I tried once more to ask ChatGPT what it said, this time copy/pasting errors directly, which I wasn’t doing before.

It gave me some commands to try with respect to seeing the application names tied to Android Auto…and I saw something interesting: there were two entries when I did a ‘grep’ for “gearhead”, one labeled what I was expecting, and the other included the word “stub”…so I did an ‘adb remove’ for the stub package, then used the Aurora Store to uninstall/reinstall Android Auto, and interestingly, its package name also had ‘stub’ in its name. So, I did an uninstall/reinstall from Aurora Store, plugged it into my car, and…SUCCESS!!!

So, here was the stupidity on my end that you might have picked up on: the culprit was one of the LSposed packages. Specifically, “AA4MG”, which I used to install the stubs for Google, Google Maps, and Google TTS, which are requirements for AA to work. I didn’t read carefully, and I kept installing the Android Auto stub as well, which is what Sygic kept picking up. By removing that Magisk module, and installing the stub APKs manually, and adding in Android Auto Unlocker XL separately, there was no duplication of modules, while still enabling me to run sideloaded apps without incident.

I’ll append this post later with exact procedures, as well as all the downloads I found helpful…but I just wanted to share my story in the hopes that it will help someone else with similar issues.

2 Likes

okay, so here is the list of procedures I performed, generally speaking, that worked…

  1. Install /e/OS if you’re not on it already. Enable USB Debugging if you haven’t already.
  2. Root your phone if you haven’t already. Procedures vary slightly between phones, but it typically involves extracting either boot.img or init-boot.img from your installer file, patching it with Magisk, downloading the file to your computer, rebooting in fastboot mode, then doing a fastboot flash boot boot_patched.img and rebooting. If you’re successful, the ‘superuser’ command will be available within the Magisk app.
  3. Enable Zygisk within Magisk.
  4. Download all three stub APK files from here: GitHub - rik-shaw/aa-stubs: Android Auto stub apps for use with de-Googled ROMs . Install all three on your phone.
  5. download LSposed-zygisk and move to your phone’s storage. Within Magisk, go to the ‘modules’ tab, then ‘install from storage’. Install the LSposed module and reboot.
  6. Download/Install Android Auto from the App Lounge or Aurora Store.
  7. Download the Android Auto XLauncher.
  8. Connect to your vehicle and go through the Android Auto setup. You should see, at least, a default launcher on the screen.
  9. disconnect your phone, go to Magisk, install the AAXL module, reboot.
  10. Once rebooted, go to the LSposed Manager, and enable the AAXL module.

This procedure is what worked for me to get Android Auto working properly, in my car, including Android Auto compatible apps, which weren’t sourced from Google Play.

I hope it helps someone!!

4 Likes

Just an addendum: The fork GitHub - JingMatrix/LSPosed: LSPosed Framework resuscitated seems to continue the LSPosed development. I use it myself.

1 Like

Nice catch! That’s actually the one I used, so thank you so much for the correction! Updated the procedure list to reflect it.

1 Like

I hope this is ok to ask here, I’m eyeing up the FP6 with /e/os but android auto is the single sticking point for me.

When you say it’s working properly, does that include being able to run google assistant and also AA wireless?

When you say it’s working properly, does that include being able to run google assistant and also AA wireless?

Well…I think you raise a fair point that “properly” is making some assumptions. For me, “properly” means that it runs Sygic and AntennaPod and PowerAmp and Fermata and Pandora, the five apps I use on Android Auto, while maintaining the ROM’s “DeGoogled” philosophy.

In terms of wireless AA…I don’t know, because my particular use case is such that my ‘car phone’ stays in my car the whole time…so I haven’t tried to set it up that way, because ‘leaving it tethered’ is my preferred method; I’m sorry, but I do think it can be set up that way, theoretically.

In terms of Google Assistant…I would submit that GA requires the real Play Services, which requires most of the Google tentacles to be reinstalled…and if that’s a requirement…then I submit that a DeGoogled ROM probably isn’t the best fit.

What I might recommend in such a case, is to explore something similar to what I do - get a cheap phone that can keep its stock ROM, and set that up with AA to your liking. You can either use your /e/OS phone as a hotspot to give you mapping and streaming data, or get a cheap SIM card and let the Google-laden phone do nothing but Android Auto tasks.

1 Like

I really appreciate your detailed response, thank you for it.

I’ve been reluctant at doing the whole dual phone thing as I’ll be taking calls in my car, perhaps /e/os just isn’t the right fit for me at the current time due to my dependence on google bits.