tomasz-grobelny / AACS

Android Auto Server encapsulates communication with modern car infotainment system
GNU General Public License v3.0
225 stars 29 forks source link

Testing your work. #3

Open nunux13 opened 3 years ago

nunux13 commented 3 years ago

Hello,

I'm definitively interested by your work !

For now, I've done a lot of try to connect:

I succeed only for now with a real phone Nexus 5 + Android 6.0.1.

Can you explain more about the certificat need ? Not sure I can change the clock on real car.

Best,

Pierre

nunux13 commented 3 years ago

I got an ODroid N2 too.

tomasz-grobelny commented 3 years ago

Android Auto Protocol uses client and server certificates for mutual "authentication". It is in quotes as the only real effect is making the protocol more difficult to implement, it does not provide any security (if you exclude SbO). Anyway, the certificates have to be signed by specific RootCA (owned by Google) and they have validity dates. For headunits it may be longed as their software is rarely updated, for clients (running on phones) it is shorter, the assumption being AA software can be updated anytime.

These certificates are mutually validated - that is the headunit may validate client's certificate and vice versa. IIRC Openauto does not check client's certificate RootCA and validity dates, but my Seat's headunit created by LG does - possibly a requirement by Google.

Currently the client's certificate provided with AACS has validity date in the past (IIRC until April 2020) - one could grab newer certificate but it is not on the list of my priorities. As for the possibility to make changes to date on real car - it is certainly possible on my Seat Ateca 2019. Note that this is not so much changing date on a 'car', it is rather changing current date on headunit. Note that for now there is very limited compatibility information for AACS - I know it works on Openauto running on my PC and Seat Ateca's LG headunit. I am working on compatibility with Fiat Tipo's Uconnect Nav 7 headunit but I have very limited access to the device so it might take some time.

Please let me know if you need more info.

lucav90 commented 3 years ago

You can test the compatibility with the intellilink 4.0 LG headunit (on Opel)?

nunux13 commented 3 years ago

Thank you for your detailed response. My plan is first to reproduce your doing, on Openauto then test on 2 Renaults Clio 5 (4" and 7" screens) and maybe some BMW. I order yestersday a wifi dongle for ODroid.

nunux13 commented 3 years ago

Without network on Odroid, got "Lock" pico on Android Auto, and a start screen for Anbox looping on the N2 (appear / disappear in loop).

tomasz-grobelny commented 3 years ago

What do you mean by "lock" pico? Do you mean colorful stripes and black and white noise in lower right corner? If so then it works :-)

Whether now or later it would be great to know on which headunits/car models you managed to get it working.

And BTW, AACS does not requires network access by itself. OsmAnd may need it, but only during setup phase. I don't have WiFi in my test setup (though it may be handy for some interesting features in future).

lucav90 commented 3 years ago

it is possibile to have a video to see how works this project on a real headunit?

tomasz-grobelny commented 3 years ago

I'll do my best, but it might take several days as I am quite busy recently.

tomasz-grobelny commented 3 years ago

Have a look here: https://vimeo.com/510447226

ilikenwf commented 3 years ago

You should consider accepting donations on this - if you get this working fully, supporting touch, audio, and if it doesn't already, support for using it as a basic display for the device attached, you'll be competing with/putting out of business companies putting out HDMI adapter boxes that only do half of this - and they charge $100-$300.

I tried one of those and it didn't work out with my silverado, and because I'm looking for a solution for a media player in my vehicle for my massive FLAC collection (which are unsupported by the factory unit), I really want to support you here.

I also suspect you could get further interest if you made a port of this for android devices, for mirroring without all the stupid restrictions - while this can be bypassed somewhat with hacks, this solution of yours would not only make privacy conscious people like me who run de-googled phones happy, but also provide people who want no restrictions with a quick and easy workaround.

tomasz-grobelny commented 3 years ago

Thanks for the ideas and kind words, I will consider donations and features. However, this is my hobby project done in my spare time (I bet it would be hard to make it pay my bills) and my current focus is to improve interoperability/portability (more headunits and more sbc platforms). Therefore help in promoting the project so we get more people on board would be most welcome.

ilikenwf commented 3 years ago

I may attempt to try it out on a couple that I have - currently I have an Odroid C2, and a Pi 3B. In my case I'm less interested in using android at all, and more interested in having Kodi or some media player available from Linux itself, ideally to eventually play my massive FLAC collection.

I may also try to get it working on my Librem5, a Debian based phone from Purism.

I'd use android auto as is but don't trust google and run GrapheneOS - anyway, the bottom bar in android auto irritates me and wastes space.

If and when I get around to testing this out, I'll be sure to let you know and submit pulls for any changes I have to make.

If I recall, your work here already does the things that AAGateway can do, proxying a device over wifi? How does that work out with bluetooth pairing with a phone for calls, or does it? Just curious as I've heard of some people using MicroG with outgoing network connectionds disabled in order to use the Android Auto app.

tomasz-grobelny commented 3 years ago

For the devices: C2 may not have enough performance - worth trying nonetheless) RPi3 to the best of my knowledge does not have USB controller capable of working in gadget mode. Other devices - look for performance, USB gadget mode and kernel 5.4+.

For WiFi - not yet supported, I don't have WiFi enabled headunit available so no way to know how this is supposed to work. This is where donations could make sense.

For phone calls - seems it is possible to keep headunit's phone call functionality while input/video channels from AACS are open.

For playing media: wouldn't vlc on android auto work for playing flac? This audio only as I know so this should be no problem.

For Kodi: have a look here https://forum.kodi.tv/showthread.php?tid=359482 and join discussion :-)

nunux13 commented 3 years ago

5FF8EF1D-1575-4641-917B-411A8F5C25A9

got a first preliminary result, using Odroid N2, and Android 10 + Gapp + Android Auto from APK mirror.

Still no working with your distro. I must try harder.

Best,

Pierre

tomasz-grobelny commented 3 years ago

Did you update sources to latest master? Could you send me logs (/root/logs)?

paulhothersall commented 3 years ago

RPi3 to the best of my knowledge does not have USB controller capable of working in gadget mode.

The RPi4 100% does, on its USB-C port. you are correct the 3 does not, although the CM3 could do this, the 4 is a much much easier target