Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing your work. #3

Open
nunux13 opened this issue Jan 25, 2021 · 16 comments
Open

Testing your work. #3

nunux13 opened this issue Jan 25, 2021 · 16 comments

Comments

@nunux13
Copy link

nunux13 commented Jan 25, 2021

Hello,

I'm definitively interested by your work !

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

  • a Raspberry Pi 4 running Android Lineage 16/17/18 + Gapp (acting as the phone)
    to
  • a Raspberry Pi 3 running Linux Crankshaft with OpenAuto.

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
Copy link
Author

nunux13 commented Jan 25, 2021

I got an ODroid N2 too.

@tomasz-grobelny
Copy link
Owner

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
Copy link

lucav90 commented Jan 26, 2021

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

@nunux13
Copy link
Author

nunux13 commented Jan 26, 2021

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
Copy link
Author

nunux13 commented Jan 26, 2021

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
Copy link
Owner

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
Copy link

lucav90 commented Jan 27, 2021

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

@tomasz-grobelny
Copy link
Owner

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

@tomasz-grobelny
Copy link
Owner

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

@ilikenwf
Copy link

ilikenwf commented Feb 11, 2021

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
Copy link
Owner

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
Copy link

ilikenwf commented Feb 13, 2021

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
Copy link
Owner

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
Copy link
Author

nunux13 commented Feb 17, 2021

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
Copy link
Owner

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

@paulhothersall
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants