1. 程式人生 > >Android Kernel 原始碼線上閱讀與下載

Android Kernel 原始碼線上閱讀與下載

為了學習Binder Driver的執行原理,必須分析其原始碼,這才發現下載的Android5.1 AOSP原始碼中居然沒有kernel這個資料夾。搜了一下才知道,Android原始碼工程預設不包含Linux Kernel程式碼,而是使用預先編譯好的核心。(/prebuilts/qemu-kernel/[cpu架構]/kernel-qemu檔案)

這裡寫圖片描述

那去哪裡找到kernel原始碼呢?
谷歌官方提供了一個線上的Android原始碼閱讀網站,可以看到Android git倉庫中的全部程式碼,上面有包含kernel的完整原始碼:https://android.googlesource.com/kernel/

這裡寫圖片描述

我們可以看到,Android原始碼中提供了多種CPU的不同核心原始碼。如針對sdk模擬器的goldfish,三星的exynos(獵戶座),高通的msm,聯發科的mdiatek等。以下是這些核心的介紹:

goldfish 工程中包含為模擬器平臺使用的核心原始碼。
msm 工程有可供 ADP1,ADP2,Nexus One,Nexus 4,Nexus 5,Nexus 6,也可以被當做一個起始點給 Qualcomm MSM 晶片組使用。
omap 工程被用於 PandaBoard 和 Galaxy Nexus,也可以被當做一個起始點給 TIOMAP 晶片組使用。
samsung 工程是為了 Xoom,Nexus 7,Nexus 9,也可以被當做一個起始點給 Samsung Hummingbird 晶片組使用。
tegra 工程是給 Xoom,Nexus 7,Nexus 9,也可以被當做一個起始點給 NVIDIA Tegra 晶片組使用。
exynos 工程包含供 Nexus 10 的核心原始碼,也可以被當做一個起始點給 Samsung Exynos 晶片組使用。
x86_64 工程包含有 Nexus Players 的核心原始碼,也可以被當做一個起始點給 Intel x86_64 晶片組。

但是上面那個網址更適合原始碼線上閱讀,而不是下載。我們知道,Google已經將自己最新的原始碼遷移到github上,因此登入進github的Android專案主頁(https://github.com/android),搜尋kernel關鍵字,就可以找到以下版本的kernel原始碼。自行下載即可。

這裡寫圖片描述