Giter Club home page Giter Club logo

ignition's Introduction

Ignition

Negates the need for a "CarPlay supported™" car, and runs the CarPlay UI directly on top of SpringBoard on an iOS device.

Works great for iPads mounted on the dash!

Note: This is primarily meant for an iPad, and iPhones aren't really supported (however you "can" use it with an iPhone 6 Plus if you really want to).

Also, I'll be sure to do a formal write-up on how it all works once all of this is finished and useable.

Vroom vroom.

Screenshot1
Screenshot2
Screenshot3
Screenshot4

Explanation

To be honest a lot of this nonsense could be completely avoided if a secondary "fake" FBSDisplay could be created and then used. That way SBApplications could create / own proper carScenes and there'd be a lot less things that were broken...

Most of the CarPlay checking logic involves checking for both multiple UIScreens, the UIScreen interfaceIdiom, and FBSDisplay -> FBScene lookups. However, creating a fake FBSDisplay requires creating a fake CADisplay which isn't a lot of fun :P

Basically here's how it works (I think... some parts are probably wrong or off):

FrontBoard associates one FBSDisplay as the main display and has a bunch of FBScenes which are each SBApplication's mainScene. Once there's a second FBSDisplay available it can then generate a carScene for each SBApplication who's deemed capable. These carScenes would then be presented onto any externally connected screens (secondary FBSDisplay).

Originally, I had tried high-jacking a FBSDisplay whenever it was created and just duplicating that screen into a secondary FBSDisplay object with the same CADisplay object... and then shoving that FBSDisplay object into it's own lookup table to make it appear as if multiple screens were available. However. this causes UIScreen to freak out as it deems both those screens as the same. Also loads of the OS did not like this :P

What I'm doing is just making all UIScreens appear as CarPlay screens as well as forcing all applications to render in landscape (as CarPlay on external screens is forced to portrait). In addition this means that each SBApplication's carScene is the mainScene, which doesn't guarantee success.

Creating a local AirPlay server and then hacking touches to work on a view (who's contents are a secondary screen projected locally, using the device to AirPlay + mirroring) could be a neat solution to this, but I haven't tried it yet. That would grant us a legitimate second FBSDisplay to play with.

How do I compile?

I used Theos for this. You'll need to install them and setup the appropriate environment variables etc as well as configuring. Info on that here.

ARM64 support is enabled by default and if you need help setting that up check here.

I'm using my own fork of theos, which is in-turn forked from @rpetrich's fork.

If you edit the Makefile you can specify your iOS device's ip and such to build and run using make package install. Otherwise you can simply make package to generate a .deb file and install that by any means.

Price?

Totally free! If you'd like to support my continuation of this project (and others!), feel free to donate! It'd be much appreciated :D

License?

Pretty much the BSD license, just don't repackage it and call it your own please!

Also if you do make some changes, feel free to make a pull request and help make things more awesome!

Contact Info?

Feel free to follow me on twitter: @b3ll!
Though I don't really like to handle support requests there...

Special Thanks

Travis Beckham for the vectorized car image!

ignition's People

Contributors

b3ll avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ignition's Issues

Phone app "show contacts", and other issues

I've found that "show contacts" doesn't crash when the actual phone app was last opened on the contacts page. Once it does display correctly (in CarPlay) if you close phone and open it back up (all in CarPlay), contacts list from original phone app display on top of CarPlay phone app.

ALL AUDIO & AUDIO RECEIVERS.

The BLUETOOTH sending of ALL AUDIO, not just the 'Music' but 'Phone' 'Siri' etc. i hope the developer tackles this issue as most tweaks and Apps in general only send the audio from the 'Music' App

iOS compatibility.

I can't see why this couldn't be written for iOS 7?
It's really needed.

2018/9 Support

Hi all,

Does this works with new iOS and iPads, if it doesn't, is this project still possible. I'd really want this to work and would be willing to offer my help on developing it.

Thanks,

Actually support a 2nd display.

Could you make this tweak, or a different branch of it, actually work with a second airplay mirrored screen? I have reflector and an apple tv, and when I mirror, it crashes any CarPlay app I open

Music isn't rendering fully

Tab bar is up top, but there's two (which is clashing with the original music app). Also, like the maps bug, no dark UI.

Ignore Display Dimming on Launch

When CarPlay starts up, it'll load the splash screen, then go black. I then have to press the home button for it to show. Is there any way of it loading straight in?

Support iPhone 6 (Plus)

Support for iPhone 6 Plus and iPhone 6 would be cool, iPhone 5(s) is kinda small so I'm not sure it's necessary.

Currently only the music app needs to be fixed.

Enable turn by turn on wifi iPads

Loving Ignition so far!

The only issue is that I have it installed on my wifi iPad Mini 2. I tether it to my iPhone 6 for data, and use SndLinkGps on my iPhone to send GPS to the iPad receiving it with TryLinkGps. The iPad receives the GPS data fine and feeds it in to maps. The problem is, as it is a wifi model, iOS still disables turn by turn directions. Is there anyway you could have iOS enable it so that turn by turn works in Ignition? That would make this app truly perfect!

Toggle Certain iOS Apps To Be Displayed In CarPlay Mode

It'd be neat to have some iOS apps allowed and displayed in CarPlay mode (such as Speed, or Google maps).

It'd really only require appending them to the list of apps where I hack LSApplicationProxy to show my launcher.

Something like AppList surely could be useful here, and inside a preferences pane.

iOS Helper.

I don't know how 'off topic' this may be, so please advise me on how or where I should post this, for a more feedback.

Needed: A tweak to accompany 'ignition' and any other tweak running on an iOS lower than 7.1, that needs the CarPlay option only found on iOS 7.1 and up. Is that even possible?

Really hoping to see support for this on iOS 9

I know this is a 'when you have time' kind of project, and I'm really sad I updated my iPad Mini Retina from 8.1 to 8.4 before checking to see if this worked on 8.4 ... As Apple keeps changing things around with CarPlay its expected that there are issues that need to be worked out.

With Apple supporting more CarPlay display types I was hoping that the change may make this easier to support with iOS 9.

Would it be easier to have a second device be required rather than having the device run CarPlay with itself?
Basically make it a CarPlay receiver that communicated back to a phone, which I would think would resolve (or help resolve) the missing asset issues you had mentioned on twitter a while back.

PreferenceBundle links cause crash

Both the "Donate" and "View Source on GitHub" links in Ignition's preference bundle don't open the browser, they just cause Preferences.app to crash.

On iPad Air 2, iOS 8.1.2

UI not fitting on iPhone 5S

hi Adam, i want to thank you for your hard work, i really love this awesome app and the most important thing about it is you gave it for free, thanks so much, i know on iPads will be perfect but can it be almost on iphone 5s/iphone5 UI maybe in the near future updates? thanks

Support Rotation

Currently everything is locked with the home button on the left, but it'd be nice to support both orientations (screw portrait).

When rotating we need to update the layout of apps and the home screen such that nothing is clipped.

Make this a prettier hack

A nicer (and more bulletproof) solution would be to run a local AirPlay server and pass touches to a view which contains the iOS screen in mirroring mode. This creates a second screen and would allow more flexibility as to how / where CarPlay could be activated.

Older devices compatibility

Hi,

Firstly I would like to say that this work is pretty good.

After I want to suggest something : maybe some of us have older device like me (iPod Touch 2G) et don't use anymore their device. A nice idea is to convert them to an other thing that they are made for, for example I use my old itouch with an Airplay Server.

I would like to know if (yes I know much stuff have being added since ios 4.2.1) Carplay and here Ignition can be compiled/adapted to work with older device. It'll be a nice way to give a new live to our older devices.

If it's possible and there is some people interested to, I'll work on this project !

Regards

Bastien

Fix Contacts App Crashing

Just goes back to CarPlay springboard.

If there is a passcode set, on loading ignition it will show the passcode screen but no numbers on the buttons.

Strange cropping issue on iPad3

I am on an iPad 3 (WiFi + CDMA) and for some reason the left side of the screen is cropped and everything is shifted. Happens on all apps except messages and maps (anything with list views)

image

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.