2015-06-16 114 views
-4

我想反編譯iOS 3.1.3內核以更好地理解它,但我不確定從哪裏開始,但不要被愚弄,在編程時我不是綠色的角。是否可以編輯和重新編譯iOS內核?

+2

這個問題太廣泛了。 – NobodyNada

+0

這很容易批評,但你可以嘗試給予更多建設性的批評。 –

+1

這很誘人,但您可以閱讀Stack Overflow [幫助文件](http://stackoverflow.com/help)。本網站鼓勵提出能夠產生明確答案的特定技術問題。如果你能分離出一些具體的問題或問題,你就更有可能獲得援助。 – MarsAtomic

回答

2

內核是open source所以你可以查看和編譯它。 iOS 3.1.3在回購,但你也想看看3.0

Apple

爲第一大電腦公司做開源開發其正在進行的軟件戰略的重要組成部分,蘋果公司仍然致力於開源開發模式。 Mac OS X的主要組件包括UNIX核心在Apple的開源許可下提供,允許開發人員和學生查看源代碼,從中學習並提交建議和修改。

+0

據我所知,iOS內核不是開源的。 –

+0

@JosephFoote好的,這是什麼?你沒有檢查鏈接嗎?可可和CocoaTouch不是開源的。 – zaph

+0

是的,我檢查了鏈接,引自維基百科「源模型封閉源」。蘋果公司不會將內核視爲開放源代碼,因爲這會危及安全性。 –

1

的XNU內核在其iOS的化身開源的,但在其I386/x86_84 XNU(另外,對於舊版本的PPC)是。

XNU由幾層內部構建而成,底層有兩個平臺專家和ml_ * APIs作爲底層硬件的「粘合劑」。這意味着如果沒有上述代碼片段,您可以編譯源代碼(使用ARMv7交叉編譯器,如iPhone SDK中的代碼),但內核實際上不會啓動。

另一個困難是在內核擴展(XNU-說「模塊」)。這些是驅動程序,沒有這些驅動程序,你無法真正做很多 - 再一次,內核不啓動,因爲它無法初始化任何平臺依賴項。與其看起來相反,雖然iOS和OS X內核非常相似,但它們之間存在一些細微的差別(在1699年之後,當Apple意識到他們是在1699年以後,它們通過#ifdef CONFIG_EMBEDDED和#ifdef ARM可見泄露使用信息給jailbreakers,最後使用預處理器在公開之前刪除iOS特定的修改

反編譯是一個不同的問題,可以從內核映像中反彙編和回溯(一旦解密或轉儲)通過相當易讀的程序集(儘管不是完整的源程序),IDA和其他專業工具(例如jtool)具有這些功能。至少有兩個項目可以爲ARM編譯和引導開源版本。一個由Christina Brooks(?)製作,另一個由WinOCM製作。後者由於在內部的ARM實現中對XNU的瞭解而聲名狼借,最終被蘋果公司僱用,從而減少了任何開源實現的機會。