擷取Android源碼跟官方Linux核心源碼

來源:互聯網
上載者:User

標籤:

  最近在探索安卓源碼跟ROM,有幸買了本書跟在網上看到一些交教程,先做一些筆記,以備不時之需...

  1、瞭解git和repo

  2、環境配置

    首先最先的肯定是JDK和SDK的安裝,網上教程很多,也可以參考Google官方提供的: https://source.android.com/source/initializing.html 

    (a)安裝git 和curl:

      apt-get install git-core curl

    (b)安裝repo: 

    建立存放repo目錄 

      # mkdir ~/bin 
      # export PATH=~/bin:$PATH

      # curl http://commondatastorage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo  (也可以在網上下載現成的)

      # chmod a+x ~/bin/repo

  3、下載安卓源碼

    下載Android源碼:
      # mkdir ~/source 
      # cd source

      # repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1  (同步指定分支,可git branch -a查看)
      # repo sync

    編譯安卓源碼:

      # source build/envsetup.sh

      # lunch full-eng  (編譯產生可在安卓模擬器上運行,也可以只輸lunch 顯示當前支援的所有裝置,例如:full_x86-eng適合在X86架構的電腦運行)

      # make -j4  (4個線程編譯)

      產生的檔案在:~/source/out/target/product/generic 下包括鏡像檔案(ramdisk.img、system.img、userdata.img)

      Google官方源碼編譯細節可在 https://source.android.com/source/building.html 瞭解

  4、下載安卓官方Linux核心源碼

    git命令

      # git clone http://android.googlesource.com/kernel/common.git

      # git clone http://android.googlesource.com/kernel/exynos.git

      # git clone http://android.googlesource.com/kernel/goldfish.git

      # git clone http://android.googlesource.com/kernel/msm.git

      # git clone http://android.googlesource.com/kernel/omap.git

      # git clone http://android.googlesource.com/kernel/samsung.git

      # git clone http://android.googlesource.com/kernel/tegra.git

    其中

      common:通用的Linux核心,後面6套都是以該源碼為基礎;

      exynos  :用於使用三星Exynos晶片的Android裝置,典型代表是Nexus 10;

      goldfish:用於Android模擬器的核心源碼;

      msm    :用於使用高通MSM晶片的Android裝置,典型代表是ADP1(G1)、ADP2(G2)、Nexus One和Nexus  4;

      omap   :用於使用德州儀器(TI)OMAP晶片Android裝置,典型代表是PandaBoard和Galaxy Nexus;

      samsung:用於使用三星Hummingbird晶片的Android裝置,典型代表是Nexus S;

      tefra    :用於使用NVIDIA (Tefra)晶片Android裝置,典型代表是Xoom和Nexus 7。

    HTC手機的話,也可以在以下地址下載指定裝置的Linux核心源碼:

      http://www.htcdev.com/devcenter/downloads

    查看核心分支:

      # cd  common

      # git branch -a

    切換分支:

      # git checkout remotes/origin/xxxxxxxxx

  5、編譯核心源碼

    要想編譯適合在Android裝置上啟動並執行核心源碼,必須要安裝支援arm架構的交叉編譯器,但是每個裝置官方編譯使用的版本不一樣,必須考慮。

    Nexus 7裝置用的是交叉編譯器4.4.3,可參考下面的命令:

      # git clone https://android.googlesource.com/platform/prebuilt 

      # export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

      # export ARCH=arm

      # export CROSS_COMPILE=arm-eabi-

      # make

    最後在<Linux源碼根目錄>/arch/arm/boot 目錄產生一個zImage檔案,是可啟動並執行Linux核心的二進位版本(Nexus 7)。

(也可以參考http://android.git.kernel.org/) 

 

擷取Android源碼跟官方Linux核心源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.