All Projects → b3ll → Ignition

b3ll / Ignition

Runs the CarPlay UI directly on top of SpringBoard on an iOS device, no need for a car!

Labels

Projects that are alternatives of or similar to Ignition

payment-logos
💳 High quality vector images for your payment solutions.
Stars: ✭ 52 (-80.74%)
Mutual labels:  logos
FLEXall
Another FLEX loader that can be activated using long press on status bar or long three finger press anywhere.
Stars: ✭ 38 (-85.93%)
Mutual labels:  logos
ReachInfo
Reachability modernized.
Stars: ✭ 21 (-92.22%)
Mutual labels:  logos
n3d1117.github.io
Cydia repo for my personal iOS tweaks: Runaway, OutOfSight and more
Stars: ✭ 28 (-89.63%)
Mutual labels:  logos
design
Posters, Icons and graphics used by KOSS
Stars: ✭ 15 (-94.44%)
Mutual labels:  logos
templates
Templates for Theos NIC.
Stars: ✭ 31 (-88.52%)
Mutual labels:  logos
logos-api
Node.js application providing a RESTful API for searching and retrieving logos from various user-contributed sources
Stars: ✭ 21 (-92.22%)
Mutual labels:  logos
football-team-flags
Flags from national teams made with css 🏳
Stars: ✭ 19 (-92.96%)
Mutual labels:  logos
center.js
Center.js is a HTML5 Canvas based library that allows you to create simple text based icons, avatars, logos, and more.
Stars: ✭ 85 (-68.52%)
Mutual labels:  logos
carsBase
База автомобилей с марками и моделями JSON, CSV, XLSX и MySQL
Stars: ✭ 49 (-81.85%)
Mutual labels:  logos
gopher-logos
adorable gopher logos
Stars: ✭ 106 (-60.74%)
Mutual labels:  logos
image-titler
An image title generator using The Renegade Coder style
Stars: ✭ 15 (-94.44%)
Mutual labels:  logos
svg-music-logos
🎧 A collection of logos and symbols from bands, musicians and related in SVG
Stars: ✭ 30 (-88.89%)
Mutual labels:  logos
issuer-icons
Vector graphics of one-time password issuer logo's, used in Raivo OTP for iOS.
Stars: ✭ 79 (-70.74%)
Mutual labels:  logos
NotificationExplorer
See what notifications exist at runtime
Stars: ✭ 43 (-84.07%)
Mutual labels:  logos
car-logos-dataset
Collection of 374 car logos images with few variations of sizes and JSON file for better usability.
Stars: ✭ 47 (-82.59%)
Mutual labels:  logos
logos
No description or website provided.
Stars: ✭ 19 (-92.96%)
Mutual labels:  logos
Font Logos
An icon font providing popular linux distro's logos
Stars: ✭ 256 (-5.19%)
Mutual labels:  logos
libre-logos
A collection of free logos for open source projects
Stars: ✭ 131 (-51.48%)
Mutual labels:  logos
simple-icons-pdf
PDF icons for popular brands
Stars: ✭ 16 (-94.07%)
Mutual labels:  logos

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].