FORUMS

[Android 4.1+]Proxy/GateWay for Android Auto

3,076 posts
Thanks Meter: 2,583
 
By Emil Borconi, XDA Ad-Free Recognized Developer on 6th July 2018, 06:00 PM
Post Reply Email Thread
Background
- Couple of years ago Google have launched Android Auto, but up till recently the only way to connect your device to the car/head unit was to plug in a USB cable. As of 2018 this starts to change, BUT it looks like you will need to get new hardware for this and older cars/head units won't be upgraded to support this, neither phones with older OS.

Concept
- Since many of us will like to have this wire free but not ready / willing or have the possibility to upgrade the units/cars/phones I have thought of a way to achieve this, by using a small auxiliary device, like for example a very cheap and basic Android TV stick, which can be plugged in/mounted in the car and which can fulfil the roll of a Wifi antenna for your car.

This app should allow you to transform any android powered device into a Wifi receiver for your Android Auto compatible Car/Headunit. Please do not confuse Android Auto, with Android powered headunit (usually Chinese, like MTCB, MTCD, Joying, etc).

AAGateWay Documentation.

Beta released (04.01.2020)

What is it?
AAGateWay is a an app which should allow you to use an auxiliary (slave) device to connect your existing Android Auto compatible car to your phone (master) using a hotspot created on your phone.

How to use it?

SLAVE SETUP

1) Install the app using XDA Labs (Only on SLAVE) : https://labs.xda-developers.com/stor...emil.aagateway
2) Configure
  • FOR BOTH ROOTED AND NOT-ROOTED SLAVES
    • CASE 1: Master is running Pie or higher
      1. Pair Master and Slave over BT (do this from the normal BT settings)
      2. Open app
      3. If slave is ROOTED and ONLY if you are using a TV STICK convert the app to system app. (if app not visible after conversion, reboot device)
      4. Enable the start tethering option (If asked make sure you manually configure the hotspot, to have the name HUR and the password AndroidAutoConnect)
      5. Select the masters phone BT MAC
      6. Exit
    • CASE 2: Master is running Android 8 or lower
      1. Create a Wifi hotspot from the master
      2. Connect slave to it
      3. Reopen AAGateWay and select the masters hotspot from the "Phone Wifi SSID" list
  • Slave is ROOTED - This will give a much bigger compatibility with cars, it should work with any car/unit (but depends a lot on the slave used, read below)
  • Slave is NOT ROOTED - This mode won't work on all cars and it has caveats.


MASTER SETUP

  • CASE 1: Master is running Pie or higher
    1. Install WiFi Launcher for HUR (https://labs.xda-developers.com/stor...launcherforhur or https://play.google.com/store/apps/d...launcherforhur)
    2. Make sure WiFi Launcher is version 2.1 or higher!!!
    3. Open WiFi Launcher
    4. FOR Android 10, set permission location to ALWAYS!!!!!!
    5. Select slaves BT from the BT list and exit
    6. DO NOT ENABLE ANY OF THE OTHER OPTIONS!!!!
  • CASE 2: Master is running Android 8 or lower
    1. Open Android Auto, go to Settings, scroll down tap the version 10 times, then from the 3 dotted top right corner select start headunti server.
    2. Exit Android Auto
    3. Leave the Headunit Server running
    4. When you get into the car turn on the hotspot on the master (or use Tasker, automate or anything else do that for you)



CONNECTING
  • Go to the car, plug in the slave to the car's USB and start the car
  • Slave is ROOTED
    • Nothing should happen, car should NOT detect the phone (SLAVE) at this stage. If the car does detect the slave being connected, it means your slave doesn't allow a proper USB toggle, in which case you should try enabling non-root mode.
    • Master is Pie and above
      1. If you selected to tether from the slave, at this point you should see the slave turning on the hotspot, otherwise you might see the slave trying to connect to a Wifi network.
      2. Slave will notify master
      3. Master will automatically start WiFi Launcher
      4. Master will connect to slaves hotspot
      5. Master will start AA on the phone and notifies slave
    • Slave will enable USB
    • If you are using a phone as slave you will get a prompt if you want to use AAGW as the default app for this action, make sure you select ALWAYS ans yes. (TV stick should work automatically)
    • Projection should start
  • Slave is NOT-ROOTED (or running in non-root mode)
    • You will get a prompt to use AAGateWay for this action, make sure you select always.
    • Car should display a splah-screen saying waiting for master. (on some car's screen you might see a scrambled image)
    • After splash-screen is displayed, the slave will start tethering, or will try to connect to the masters hotspot depending on the setting.
    • Once a network connection is established between the 2 devices, you will see the AA icon turning on on the master and Android Auto should be displayed on the car's screen. It is possible that the screen will stay /turn black, if that happens, you can try to press the home button on the infotainment system, then re-open Android Auto on it.

Troubleshoot and getting help

As the thread has so much information it will be really nice if we can try to stick to one format of troubleshooting, by using one of this 2 templates:
  • Master is running Pie or above and slave is tethering:
    1. Running in root mode: (Yes/No)
    2. If running in non-root mode, is the splashscreen visible on the car: (Yes/No)
    3. If running in non-root mode, did you set the masters BT inside AAGW app?: (Yes/No)
    4. Did the slave actually turned on the hotspot on the slave: (Yes/No)
    5. On the master did you select the slaves BT in the Wifi Launcher app?: (Yes/No)
    6. When the master connected to the car's BT did the Wifi launcher app started up?: (Yes/No)
    7. Did the master connected to the slaves hotspot?: (Yes/No)
    8. Did the AA icon appeared on the master at all (in the notification bar)?: (Yes/No)
  • Master is running Oreo or below and master is tethering:
    1. Running in root mode: (Yes/No)
    2. If running in non-root mode, is the splashscreen visible on the car: (Yes/No)
    3. If running in non-root mode, did you set the masters BT inside AAGW app?: (Yes/No)
    4. Did you select the masters hotspot name in AAGW?: (Yes/No)
    5. Have you started the Headunit server on the master?: (Yes/No)
    6. On the master did you select the cars BT in the Wifi Launcher app?: (Yes/No)
    7. When the master connected to the car's BT did the Wifi launcher app started up (notification bar)?: (Yes/No)
    8. Did the master turned on the hotspot?: (Yes/No)
    9. Did the slave connected to the masters hotspot?: (Yes/No)

  • Getting rid of all automation and manually starting it all (regardless of Android version on master and slave):
    1. Uninstall AAGW on the master
    2. Start the headunit server from within Android Auto on the master
    3. Create a hotspot on the master
    4. Open AAGW on the slave and make sure it's not set to tether
    5. in AAGW make sure you select the masters hotspot
    6. If AAGW is set to non-root mode make sure you select the masters BT (just press the button AAGW will do a BT scan of nearby devices and you can pick it from the list)
    7. Go to the car and plug the slave in
    8. Start the car
      • If slave is running in ROOT mode, slave will first try to connect to the masters Wifi and you will see a notification on the master that AA is running, only then the car should recognise a plugged in device.
      • If the slave is running in non-root mode, first you will see a splash screen on the car, then you will see slave connects to masters Wifi (if not already connected), then you will see AA starting on the master.
  • How do I collect a bug report / logcat
    1. Open Settings > About phone.
    2. Scroll down to the Build number.
    3. Tap the Build number 7 times in quick succession until "You're now a developer" appears.
    4. Return to the Settings menu and select Developer options.
    5. At the top of the screen, make sure 'Developer options' is set to On (green).
    6. Scroll down to Debugging and enable both USB debugging and Bug Report Shortcut on (green).
    7. Tab on Logger buffer sizes: Default setting is 256K. Select 16M to help capture more information for debugging. Of note, it can affect the apps performance especially with lower spec phone, so change it back after you have finished submitting bug reports.
    8. On slave make sure you enable debugging inside AAGW, on master open Android Auto go to developer settings and make sure force logging is enabled.
    9. Reproduce the problem
    10. Hold the Power button down until the menu appears.
    11. Select Take bug report. and wait for the device to capture the bug report.
    12. Tap the 'Bug report captured' notification when it appears.
    13. Send the bug report by email to [email protected]



Know problems, workaround:
  • - Latency & lag. This will be really down to the devices you are using. I have tested it with a MK808B Plus, it work’s ok most of the time but occasionally you will get the odd lag. I’ve also tested it with a Nexus 7 tablet, and there was no lag at all, so device does matter, as well as probably ROM.
  • - I get random disconnection. There can be 2 causes for this, one the USB connection fails between the car and the auxiliary device, or the Wifi fails between the phone and the auxiliary device. In my tests I saw a few Wifi disconnections without any reason on the MK808, but non on the Nexus. Changing the tethering option from WPA2 to Open did help with this.
  • - App is closed without error or reason. The app runs in a background process, with a minimal interaction with the foreground, some devices/OS will kill background apps. I saw this happening on Nokia and I saw this happening on OnePlus as well. Try disabling battery optimisation for AAGateWay, that might help.
  • - I just cannot get it to work… Try using a phone, that will at least give you some visual guidance. Make sure that your device connects to the phone Wifi hotspot, make sure that AA Headunit server is running on the phone (try to force stop Goolge Play Services, stop and restart the headunit server)… All fails contact me
  • - Nothing happens on the master, using Wifi Launcher for HUR app. In this case, try to manually start the headunit server on the master, and manually turn on a hotspot, then reconfigure you're slave to connect to the masters hotspot (even if the master is running Pie or higher).


Device compatibility:
Master:
Any phone which normally works with Android Auto

Slave with ROOT:
  • - Tested and know to work: - MK809V, Nexus 7 (depending on rom), Sony X Compact (depending on rom)
  • -Tested and not working as expected: Pixel 2, MK808B
  • - While root is necessary, not all phones can toggle USB port on and off by software. And there can be other problems, for example on some devices when you turn off the USB the phone loses the ability to detect the power connection as well, which is use as trigger to start the whole process. It is almost impossible to predict if a phone will be a good slave candidate or not.

Other things
- Xiaomi phones (MIUI makes a mess), try not to use it for Slave
- Generally older phones (pre oreo) are more likely to work fine as a slave device.

Any suggested slave?
- Yes, use an MK809V TV stick, as the experience with it, is pretty slick and it should work out of the box. If you get a MK809IV try to get the one with Android 5.1.1 as the one with Android 7.1 has problems with the tethering.

FAQ.
Q: Can I use this with any car and phone combination?
A: Assuming your car is already Android Auto compatible, then YES.


Q: Can I also automate the start of the Headunit server?
A: Only with a rooted phone, using the following shell command: am startservice -W com.google.android.projection.gearhead/com.google.android.projection.gearhead.companion.D eveloperHeadUnitNetworkService

Q: Can I use Wifi-Direct to connect instead of WIfi?
A: No.

Q: Does the traffic come out from my monthly data allowance?
A: NO, traffic between auxiliary device and phone hotspot does NOT count as internet traffic, HOWEVER if you do have other apps on the auxiliary device which download updates, etc in the background that WILL be counted as internet traffic. So I suggest double check the apps on the aux device and disable all those which aren’t needed.


Q: Will the car/head unit provide enough power?
A: It should provide at least 500mA that’s the standard USB current, while I cannot guarantee that will be enough in all cases, it should do, assuming you do turn off all unneeded services on the TV stick.

Q. What about start up time?
A. It will depend a lot on the device you are using. A low-entry TV stick boot time is about 1 minute, which can be a bit too much for an initial car setup. As mentioned earlier, these devices usually have 2 USB ports, you can for example connect the power USB port to a continues power supply in the car, in which case the boot time will be non-existent since the device is always running. If you are using a phone, the phone battery will probably hold the charge just fine for a couple of days, if you disable all apps on it and you set up a profile to go into aeroplane mode when it’s not charging. Tasker or Automate are your friends for that. If you cannot connect the TV stick to a continues power source, you might consider using a small portable power pack which powers the tv stick (should hold power for a few days) and the power pack can be charged while the car is running.

Q. Can I decrease boot time for TV Sticks/Phones by removing all unrelated software.
A. Yes, actually quite a lot. Once you have your configuration ready and everything is working as expected, you can uninstall/disable all packages beside this ones:
  • package:android
  • package:com.android.apkinstaller
  • package:com.android.providers.settings
  • package:com.android.packageinstaller
  • package:com.notriddle.null_launcer (or any other launcher, but NULL launcher has no memory consumption, no app drawer no nothing, perfect for headless - see: https://github.com/notriddle/null-launcher )
  • package:com.android.inputmethod.latin
  • package:com.android.settings
  • package:uk.co.borconi.emil.aagateway
  • package:com.android.shell
  • package:com.android.systemui
Easy way to list / disable all apps will be using a computer and following commands
Code:
 adb shell pm list packages
This will list all installed packages
Code:
 adb shell pm disable xxxx
where you replace xxxx with the package name (Ex: com.android.shell )


Q. Will using Wifi 5Ghz give me better performance?
A. Well if both of your devices support it, SURE!

Q. Is the source code available?
A. Sort-of, please see: https://github.com/borconi/AAGateWay this is only for the sketch, however new version does contain code which lift restrictions on 3rd party apps in Android Auto. To prevent the abuse of this by some, further code won't be updated to GitHub, however if you want to build your own version, please do contact me for details.


Guarantee or Warranty
- Due to the fact that there are so many possibilities and combinations of cars, head units, slave and master devices, there is no way for me to test all of them, however if you did purchase the software and you are not able to get it to work for any reason, please email me on [email protected] and I'm more then happy to refund the purchase.


Teaser:
The Following 106 Users Say Thank You to Emil Borconi For This Useful Post: [ View ]
6th July 2018, 08:28 PM |#2  
Member
Thanks Meter: 29
 
More
VERY interested in the progress on this, Emil. For one, this would allow me to charge my Samsung using the Quick Charge adapter in my cigarette lighter, rather than relying on the anemic power output of my truck's USB port. Or if I want to get fancy, I could install a wireless charger and use that.

Thanks for all of your hard work.

Sent from my SM-G935V using Tapatalk
The Following 5 Users Say Thank You to SLAB_8002 For This Useful Post: [ View ] Gift SLAB_8002 Ad-Free
6th July 2018, 09:01 PM |#3  
Jackos's Avatar
Inactive Recognized Developer
Flag Warsaw
Thanks Meter: 945
 
More
Hi Emil,
What about original headunits that have integrated Wifi, but do not have Wireless Android Auto enabled? Is this something that you could enable to work as well?
The Following 3 Users Say Thank You to Jackos For This Useful Post: [ View ] Gift Jackos Ad-Free
6th July 2018, 09:59 PM |#4  
Senior Member
Thanks Meter: 21
 
More
Another great idea.
Definitely interested..
thanks.



Sent from my iPad using Tapatalk
The Following User Says Thank You to jeromeo01 For This Useful Post: [ View ] Gift jeromeo01 Ad-Free
6th July 2018, 10:21 PM |#5  
moralesnery's Avatar
Senior Member
Thanks Meter: 362
 
More
I thought of you instantly when I saw this thread on Reddit, but didn't imagine that you were the creator.
Congratulations and thanks again!
The Following User Says Thank You to moralesnery For This Useful Post: [ View ] Gift moralesnery Ad-Free
6th July 2018, 11:20 PM |#6  
OP Recognized Developer
Flag Tg. Secuiesc / Kezdivasarhely
Thanks Meter: 2,583
 
Donate to Me
More
Quote:
Originally Posted by Jackos

Hi Emil,
What about original headunits that have integrated Wifi, but do not have Wireless Android Auto enabled? Is this something that you could enable to work as well?

Sadly no, that will require altering the firmware on the car and each unit is different. It is possible that those unit might get an official update for Wifi support, but although I'm not 100% certain, I think it will only work with 5Ghz Wifi network, so if you're unit is 2.4Ghz only probably it won't get the update.


If I will ever have times (something which I never have ) I might look into adding this to some units out there, but that is so far down the line, that realistically speaking probably will never happen.
The Following User Says Thank You to Emil Borconi For This Useful Post: [ View ]
7th July 2018, 10:23 AM |#7  
Senior Member
Thanks Meter: 257
 
More
Very interesting idea. I have a couple of these android sticks here and maybe even a modern mediabox that might offfer a bit more performance. I guess you want to power it from the USB socket from the car. Not sure how much current you can draw from these ports.
What is the pc below the radio doing?
7th July 2018, 10:58 AM |#8  
Senior Member
Flag Melbourne
Thanks Meter: 35
 
Donate to Me
More
This is awesome news! looking forward to progress!
7th July 2018, 03:03 PM |#9  
OP Recognized Developer
Flag Tg. Secuiesc / Kezdivasarhely
Thanks Meter: 2,583
 
Donate to Me
More
Quote:
Originally Posted by lukesan

Very interesting idea. I have a couple of these android sticks here and maybe even a modern mediabox that might offfer a bit more performance. I guess you want to power it from the USB socket from the car. Not sure how much current you can draw from these ports.
What is the pc below the radio doing?

Performance is not really needed the slowest device should work just fine. You can theoretically disable all processes and apps, so even a device with 512Mb ram will do.
Indeed I'm taking power directly from the headunit/car in the demo I use an MK808B powered directly from the Sony XAV-100 which only provides like 500mA, so should do (especially if you kill all apps which can use CPU and turn of everything but Wifi on the stick).

The PC is the power source , to lazy to make a separate power switch so I powered the Sony from my PSU directly
The Following 2 Users Say Thank You to Emil Borconi For This Useful Post: [ View ]
7th July 2018, 03:22 PM |#10  
Senior Member
Thanks Meter: 257
 
More
Quote:
Originally Posted by Emil Borconi

Performance is not really needed the slowest device should work just fine. You can theoretically disable all processes and apps, so even a device with 512Mb ram will do.
Indeed I'm taking power directly from the headunit/car in the demo I use an MK808B powered directly from the Sony XAV-100 which only provides like 500mA, so should do (especially if you kill all apps which can use CPU and turn of everything but Wifi on the stick).

The PC is the power source , to lazy to make a separate power switch so I powered the Sony from my PSU directly


Ok, got the Mk802, 808 etc etc so I might finally have a good destination for those. Lazy and working is a combo that also works.
Wondering if there is like a beta test thing, or is it complex to get it up and running? I'm pretty sure a lot of people are seriously interested in this. It would offer the freedom of charging your phone the proper way.
7th July 2018, 03:39 PM |#11  
OP Recognized Developer
Flag Tg. Secuiesc / Kezdivasarhely
Thanks Meter: 2,583
 
Donate to Me
More
Quote:
Originally Posted by lukesan

Ok, got the Mk802, 808 etc etc so I might finally have a good destination for those. Lazy and working is a combo that also works.
Wondering if there is like a beta test thing, or is it complex to get it up and running? I'm pretty sure a lot of people are seriously interested in this. It would offer the freedom of charging your phone the proper way.

Not that far away, the only problem this will be braking my fix for obd2aa, so I need to make the 2 things compatible. I also need to do find a way to set the defaults without plugging into the car, you won't really be able to plug in a HDMI screen when you plug it in the car.

I've started fully rewriting my HUR app moving all the code from C to Java, once that is done and I fix other issues with obd2aa I will be pushing this forward

Ideally I will like to have a release available before I go on holiday on the 17th of July but not sure I will manage to do it all by that time.
The Following 4 Users Say Thank You to Emil Borconi For This Useful Post: [ View ]
Post Reply Subscribe to Thread

Tags
android auto wifi

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes