Coder Social home page Coder Social logo

More insights about wirelesscarplay HOT 61 OPEN

45clouds avatar 45clouds commented on August 14, 2024
More insights

from wirelesscarplay.

Comments (61)

Wh1terat avatar Wh1terat commented on August 14, 2024 2

CarPlay_Communication_Plug-in_R14G17.2

And how it worked for you? You managed to open CarPlay connection with headunit?

It was not my goal to emulate a phone, it was to be a carplay receiver (i.e headunit)

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024 1

from wirelesscarplay.

mcr-ksh avatar mcr-ksh commented on August 14, 2024 1

from wirelesscarplay.

Wh1terat avatar Wh1terat commented on August 14, 2024 1

@davidcorrigan714 All available in the leaked IC datasheets. I don't think I've got any local copies as this was a few years ago - but that's where I found all the info I needed back then.

from wirelesscarplay.

davidcorrigan714 avatar davidcorrigan714 commented on August 14, 2024 1

@Wh1terat Thanks! Just found it in the pdfs

from wirelesscarplay.

demianzenkov avatar demianzenkov commented on August 14, 2024 1

@demianzenkov,@Wh1terat, so, we are hopeless without MFI hardware....

I have one that I can connect to raspberry i2c bus. But this code I guess is for headunit side, not the iOS gadget.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

Hi Jan! I would like to put RPi3 into armrest base box. I have 2 USB ports there (both of them are CarPlay enabled). One of them will be directly connected to RPi3 using USB-A cable (male on both sides). Another one will be used as a power supply to RPI3. There are some presentations available on apple.com website that describe pairing process. Part1: https://developer.apple.com/videos/play/wwdc2016/722/ and part2: https://developer.apple.com/videos/play/wwdc2016/723/. The first step is to manage bluetooth connection between iPhone and RPi3 and after successful pairing the wireless connection should be established. Unfortunately bluezd stack doesn't support iAP2 profile. That's why I'm trying to implement part of Accessory SDK available from Apple to certified MFi hardware developers.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

You can read this article: https://blog.csdn.net/huangke2012hk/article/details/51240615 (please use google translate).

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

And here is bluetooth part: https://blog.csdn.net/huangke2012hk/article/details/51226220

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Wow! Thank you really much for the input! I am also really interested in achieving the same as you. I did not even had an idea where to start, but this helped me a lot. I will dive into the resources, you provided.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

Ok. I've a small gift for you. Please look at carplay.pdf in this repo :)

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Oh my god! Thank you so much! Just seems like the holy grail for me! Thank you so much!!!

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Unfortunately bluezd stack doesn't support iAP2 profile. That's why I'm trying to implement part of Accessory SDK available from Apple to certified MFi hardware developers.

Do you have already any idea where to start here?

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

Hi Jan,

I have to talk to this man. Please read: https://hackernoon.com/building-an-ios-hardware-app-401eb4869012

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Hi! Thanks for your answer, I really appreciate that you are sharing your information on that topic!

I just investigated a bit for an hour or so and I think without the accessory specification we will not get to manage it. To use iAP2 we would need to use the software authentication as we do not have any access to the Apple Authentication Coprocessor - but there is no documentation about that available for non-MFi people.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

Yes.... this topic is quite difficult as I see. I committed some new documentation directly from Apple. Look at Accessory Authentication (most important part), Authentication Coprocessor, Bluetooth Accessories and Device Authentication. Let me know if you will have some ideas because I'm a little bit lost right now.

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Thanks! I see, this documentation is "free" available on the internet - I guess this is too old, as the the software authentication was introduced one year ago (as far as I understood it from the posts).

We would need a more recent documentation, I guess.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

I will talk to Chinese friends regarding new version. Meanwhile I noticed this:

https://www.microchipdirect.com/product/rn42apl-i/rm550

This chip is Bluetooth RN-42 module with Apple Level A firmware. Latest firmware 5.50 contains iAP2 support. I would prefer to have clean RPi-only solution but maybe I will purchase this chip to make some debugging.

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

Regarding the new version, maybe this link is helpful: https://download.csdn.net/download/SJno111/11984618

But I am not able to download ... and I am also not sure if this helps or not.

from wirelesscarplay.

45clouds avatar 45clouds commented on August 14, 2024

Hi Jan. I got this file. It seems that Apple removed whole Chapter 23 (CarPlay) from this document. Please contact me directly and I will share this file with you.

from wirelesscarplay.

Vulpecula-nl avatar Vulpecula-nl commented on August 14, 2024

I also interested in Apple Carplay on a raspberry pi. Do you have anything working to show?

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

But it seems that some Chinese companies have a workaround.

If so, this would be amazing! I guess, once the authentication is bypassed, the rest is quite easy to implement (compared to the authentication ;) )

from wirelesscarplay.

fboulegue avatar fboulegue commented on August 14, 2024

damn nice project if we can support you somehow let me know!

from wirelesscarplay.

lodi12 avatar lodi12 commented on August 14, 2024

Hi, Unfortunately we are still in early stage. The most important and interesting part is to establish BLE connection between iPhone and Raspberry which is iAP2 authenticated. Normally you need Apple Authentication Coprocessor which is available only for companies that have MFI certification. But it seems that some Chinese companies have a workaround. Cheers,

As far as I know, now Apple MFI uses software authentication but I cannot find any documentations online. To obtain the documentations for CarPlay you must enroll the MFi Program (https://developer.apple.com/programs/mfi/).

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

There is no proper source on the fact, that Apple uses software authentication from now on. The only thing I could find out is, that HomeKit devices do not need an hardware authentication any longer. For all other devices, there is still the hardware authentication (afaik).

from wirelesscarplay.

hbouhadji avatar hbouhadji commented on August 14, 2024

I think we should reverse the iOS frameworks source code of the mfi protocol (using ida/hopper/radare2).
You can find the binaries here (of the xcode simulator):

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/

Imo the best solution is to make an iOS tweak (require device jailbroken) to bypass the MFi authentication, but that's difficult too. I already lost so much time trying to do this

from wirelesscarplay.

AngrySKL avatar AngrySKL commented on August 14, 2024

Hi! First i wanna say this is a great project, it give me the ability to build my own wireless carplay. But to be honest, i'm still a little not sure about what should I do. So the basic idea is transfer carplay data through wifi but do wifi connection through bluetooth right? So if I have a rip3 chip with wifi and bluetooth module and configure wifi on AP mode -> connect my iphone to the bluetooth of the rip3 chip and then this project will take care of all the rest things automaticlly?

from wirelesscarplay.

savent404 avatar savent404 commented on August 14, 2024

If u guys wanna do this on RPi3, crash the MFi first.

from wirelesscarplay.

WifiHero91 avatar WifiHero91 commented on August 14, 2024

Check this guys for MFI hack.: Link to PPT http://2013.hackitoergosum.org

Other things.: If you use BLE no MFI needed.

from wirelesscarplay.

sa7mon avatar sa7mon commented on August 14, 2024

Hi all - just checking in. Has anyone got this working with any Raspberry Pi models? I see there are binaries in the repo. If they do work can someone post some general instructions on using them? Thanks!

from wirelesscarplay.

maaiika avatar maaiika commented on August 14, 2024

hey,u can buy a carplay dongle 。thats much easy https://github.com/electric-monk/pycarplay

from wirelesscarplay.

TimorYang avatar TimorYang commented on August 14, 2024

Check this guys for MFI hack.: Link to PPT http://2013.hackitoergosum.org

Other things.: If you use BLE no MFI needed.

According to the document, you need to connect via Bluetooth, and then transmit the WI-FI license certificate through IAP2 protocol to connect to Wi-Fi.
SO, We can’t get around IPA2.

from wirelesscarplay.

rgoggy avatar rgoggy commented on August 14, 2024

Any update here?
I would like to have wireless car play, but the dongles always produce an own WiFi. So I can not use the wifi of the car. I would like to have the rpi as Converter that uses the same wifi

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

there is currently no official way to authenticate the raspberry against the iPhone ... so IAP2 is not possible.

still wondering how all the available dongles from china can handle this ...

from wirelesscarplay.

cuongnv avatar cuongnv commented on August 14, 2024

Anything update on this project?

from wirelesscarplay.

CineXMike avatar CineXMike commented on August 14, 2024

there is currently no official way to authenticate the raspberry against the iPhone ... so IAP2 is not possible.

still wondering how all the available dongles from china can handle this ...

Something they probably are never gonna share. I wish the good old days where things would be open sourced and could be build on top off.

from wirelesscarplay.

qdk0901 avatar qdk0901 commented on August 14, 2024

All the things about IAP2 chip authentication have been located under
AccessorySDK/Support/MFiServerPlatformLinux.c

Just put the MFI CPIC (buy one from AliExpress) on to rpi board with i2c bus, the IAP2 auth stuffs should work

from wirelesscarplay.

janbrodhaecker avatar janbrodhaecker commented on August 14, 2024

@qdk0901 could you provide more info on the MFI CPIC? Maybe a direct link?

from wirelesscarplay.

qdk0901 avatar qdk0901 commented on August 14, 2024

ludwig-v/wireless-carplay-dongle-reverse-engineering#55
image

The MFi auth process read certificate or make challenge response from MFi CPIC through i2c bus,
some code in AccessorySDK/Support/MFiServerPlatformLinux.c

#define kMFiAuthDevicePath					"/dev/i2c-1"
...
// Write the data to sign.
	// Note: writes to the size register auto-increment to the data register that follows it.
	
	require_action( inDigestLen == 20, exit, err = kSizeErr );
	buf[ 0 ] = (uint8_t)( ( inDigestLen >> 8 ) & 0xFF );
	buf[ 1 ] = (uint8_t)(   inDigestLen        & 0xFF );
	memcpy( &buf[ 2 ], inDigestPtr, inDigestLen );
	err = _DoI2C( fd, kMFiAuthReg_ChallengeSize, buf, 2 + inDigestLen, NULL, 0 );
	require_noerr( err, exit );

from wirelesscarplay.

hbouhadji avatar hbouhadji commented on August 14, 2024

I think this is it -> https://www.alibaba.com/product-detail/Original-integrated-circuit-APN-337S3959-QFN_1600293330738.html

from wirelesscarplay.

Luccifer avatar Luccifer commented on August 14, 2024

https://github.com/ludwig-v/wireless-carplay-dongle-reverse-engineering

from wirelesscarplay.

mcr-ksh avatar mcr-ksh commented on August 14, 2024

MFI CPIC

What are keywords to look for on ali? (just MFi and CPIC is way too generic)
Anyone found some I2C ready boards to attach to the RPi?

from wirelesscarplay.

hbouhadji avatar hbouhadji commented on August 14, 2024

image

I got it working by making an iOS tweak (jailbroken device required) to bypass the mfi authentication and tweaking a lot of other stuff on the program. probably can be done with a custom pcb and soldering a mfi chip on it.

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

MFI

Would a custom PCB even be needed? The RPI has GPIO headers that can be used to communicate with it. Further, with the firmware dumps provided by this repo we have what we would need to use a MFI chip with a pi.

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

Would it be possible to pass the auth straight to the radio?

from wirelesscarplay.

mcr-ksh avatar mcr-ksh commented on August 14, 2024

No idea what you mean with "pass the auth to the radio". You see the post from qdk0901 above that has a code snippet of the Apple MFi code, which directly references to the i2c device.

from wirelesscarplay.

hbouhadji avatar hbouhadji commented on August 14, 2024

I can confirm it works with a custom pcb and MFI chip. We got it working that way

On 30. Jul 2022, 10:16 +0100, Hakim @.>, wrote: I got it working by making an iOS tweak (jailbroken device required) to bypass the mfi authentication and tweaking a lot of other stuff on the program. probably can be done with a custom pcb and soldering a mfi chip on it. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.>

nice, but this need some soldering skill which i don't have

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

No idea what you mean with "pass the auth to the radio". You see the post from qdk0901 above that has a code snippet of the Apple MFi code, which directly references to the i2c device.

So the mfi IC doesn’t care that it’s doing a challenge response for a device it wasn’t programmed for. Makes sense especially since CarPlay works without internet.

By radio, I mean the head unit. Treat our device as a pass through and act like it’s not even there. If an auth iap2 request comes in, we send it to the head unit and have it reply.

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

Since the head unit is CarPlay ready, it has the IC and such needed to iap2 auth with a phone. When the phone connects to our Pi’s Bluetooth and starts the iap2 procedure, we pass the requests to the CayPlay head unit and in turn pass the replies to the phone.

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

6C3C90F5-7BE0-4BF1-8B2A-E91CCAC6EEDE

from wirelesscarplay.

ChrisKader avatar ChrisKader commented on August 14, 2024

I also like the idea of this: https://github.com/OMGsus/MFiWrapper
Its for controllers but the idea in general is solid.

Also, it looks like we can piggy back off the MFI chip that the cars head unit uses. We can even modify the Capabilities data sent back from the head unit to make it look like it supports bluetooth carplay natively and then use our device as a middle man instead of an accessory.

from wirelesscarplay.

herenickname avatar herenickname commented on August 14, 2024

Some Chinese manufacturers of head units have a mfi chip inside and an application for wireless CarPlay.
For example, here is an application from Teyes head unit: https://www.file.io/S4fj/download/E1QzuTsie5NV
Perhaps this will help you understand the issue faster.

Personally, Im interested in getting CarPlay video stream on the screen of my RPi :)
I would like to know what is your progress now? @ChrisKader @qdk0901 @mcr-ksh

from wirelesscarplay.

Wh1terat avatar Wh1terat commented on August 14, 2024

Plenty of MFI ICs available from questionable sources in China.

Paid $245 a few years ago to get 20 boards made up, that included pcb, component sourcing, assembly and shipping.
Not bad given the low quantity.

IMG_1666

from wirelesscarplay.

liuwentai avatar liuwentai commented on August 14, 2024

from wirelesscarplay.

350d avatar 350d commented on August 14, 2024

Any progress here? Minimalistic pcb with MFI chip on looks a good way to start open source wireless dongle project!

from wirelesscarplay.

liuwentai avatar liuwentai commented on August 14, 2024

from wirelesscarplay.

davidcorrigan714 avatar davidcorrigan714 commented on August 14, 2024

@Wh1terat Got any more info on that board you had made? Trying to find out the pinout and voltages for that chip to make some myself.

from wirelesscarplay.

demianzenkov avatar demianzenkov commented on August 14, 2024

@Wh1terat could you please tell if you managed to run this and connect to CarPlay enabled car?

from wirelesscarplay.

Wh1terat avatar Wh1terat commented on August 14, 2024

@demianzenkov I never tried to be honest, I was running carplay on a Pi compiled from leaked sources (CarPlay_Communication_Plug-in_R14G17.2)

from wirelesscarplay.

gsustek avatar gsustek commented on August 14, 2024

@demianzenkov,@Wh1terat, so, we are hopeless without MFI hardware....

from wirelesscarplay.

demianzenkov avatar demianzenkov commented on August 14, 2024

CarPlay_Communication_Plug-in_R14G17.2

And how it worked for you? You managed to open CarPlay connection with headunit?

from wirelesscarplay.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.