無需「支援 CarPlay™」汽車,並直接在 iOS 裝置上的 SpringBoard 之上運行 CarPlay UI。
非常適合安裝在儀表板上的 iPad!
注意:這主要適用於 iPad,並不真正支援 iPhone(但如果您確實願意,您「可以」將其與 iPhone 6 Plus 一起使用)。
另外,一旦所有這些都完成並可用,我一定會寫一篇正式的文章來說明它是如何運作的。
嗚嗚嗚。
老實說,如果可以創建並使用輔助「假」FBSDisplay,則可以完全避免很多這種廢話。這樣 SBApplications 就可以創建/擁有適當的汽車場景,並且損壞的東西會少很多...
大多數 CarPlay 檢查邏輯涉及檢查多個 UIScreen、UIScreen 介面 Idiom 和 FBSDisplay -> FBScene 查找。然而,創建一個假的 FBSDisplay 需要創建一個假的 CADisplay,這不是很有趣:P
基本上這是它的工作原理(我認為......某些部分可能是錯誤的或關閉的):
FrontBoard關聯一個FBSDisplay作為主顯示,並且有一堆FBScene,它們是每個SBApplication的mainScene。一旦有第二個 FBSDisplay 可用,它就可以為每個被認為有能力的 SBApplication 產生一個 carScene。然後,這些汽車場景將呈現在任何外部連接的螢幕上(輔助 FBSDisplay)。
最初,我曾嘗試在創建 FBSDisplay 時對其進行劫持,然後將該屏幕複製到具有相同 CADisplay 對象的輔助 FBSDisplay 對像中...然後將該 FBSDisplay 對象推入其自己的查找表中,使其看起來像是多個螢幕可用。然而。這會導致 UIScreen 崩潰,因為它認為這兩個螢幕是相同的。作業系統的負載也不喜歡這樣:P
我正在做的只是讓所有 UIScreens 顯示為 CarPlay 螢幕,並強制所有應用程式以橫向渲染(因為外部螢幕上的 CarPlay 被迫縱向渲染)。此外,這意味著每個 SBApplication 的 carScene 都是 mainScene,這並不能保證成功。
建立本機 AirPlay 伺服器,然後修改視圖(其內容是本機投影的輔助螢幕,使用裝置進行 AirPlay + 鏡像)可能是一個巧妙的解決方案,但我還沒有嘗試過。這將為我們提供一個合法的第二個 FBSDisplay 來玩。
我為此使用了Theos。您需要安裝它們並設定適當的環境變數等以及配置。有關於此的資訊請參見此處。
預設啟用 ARM64 支持,如果您需要設定方面的協助,請在此處查看。
我正在使用我自己的 theos 分支,它又是從 @rpetrich 的分支中分叉出來的。
如果編輯 Makefile,您可以指定 iOS 裝置的 IP 等以使用make package install
進行建置和運行。否則,您可以簡單地make package
來產生 .deb 檔案並以任何方式安裝它。
完全免費!如果您想支持我繼續這個項目(以及其他項目!),請隨時捐贈!非常感謝 :D
幾乎是 BSD 許可證,只是請不要重新打包並稱其為您自己的許可證!
另外,如果您確實做了一些更改,請隨時提出拉取請求並幫助讓事情變得更棒!
歡迎在 Twitter 上關注我:@b3ll!
雖然我不太喜歡在那裡處理支援請求...
特拉維斯·貝克漢姆的向汽車圖像大小!