1. 程式人生 > >Mac下編譯Android以及goldfish核心

Mac下編譯Android以及goldfish核心

虛擬機器掛了,Android原始碼都沒了。。不準備再在虛擬機器中下載Android原始碼了,於是就直接在Mac下編譯Android。

在Mac下編譯Android比想象的簡單多了。我的Mac系統是10.10Yousemite。安裝的Xcode也是最新的7.1beta版本。

下載Android原始碼之前要做的一步就是從硬碟中分一個區分大小寫的磁碟。因為Android的編譯時要區分大小寫的,這點也尤為重要,其實在Android官網上也有寫,具體方法有兩種,

其一:

利用Mac OS X自帶的磁碟工具:


先不要點選任何磁碟,直接點選選單欄的新建映像。


這樣設定,寫好名稱分好大小,大小最好分大一點,Android原始碼下載完後有40+G。。。建立完成後,用如下命令掛載:

hdiutil attach /Volumes/HDD/Android.dmg -mountpoint /Volumes/android

其中的路徑自己注意修改蛤。

分割槽分好之後就可以進入掛載的目錄拉Android原始碼了。拉完基本就可以直接編譯了。。。要記得安裝Xcode,編譯過程中可能會提示Xcode版本的問題:

Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk

這個時候要先用如下命令檢查一下自己的Xcode版本:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

做如下修改:

//前提是你在WORKING_DIRECTORY目錄下
$ vi build/core/combo/HOST_darwin-x86.mk
//找到mac_sdk_versions_supported
mac_sdk_versions_supported :=  10.6 10.7 10.8
//將上面這行換成
mac_sdk_versions_supported :=  10.9 10.10
//就是換一下支援的sdk版本號。
編譯之前再安裝一下JDK7,Android官網有連結,直接下載安裝就可以,然後就可以直接編譯了。

我是真的一次性就編譯成功了。。

接下來記錄一下核心的編譯,核心的話我繼續使用goldfish核心,這裡再打個廣告,我的CSDN資源有上傳goldfish 各個版本的原始碼,我自己都是編譯過的。大家如果網速不好的,可以直接去我的資源裡面下載。

接下來就是編譯核心了,編譯核心之前要先講交叉編譯工具加入PATH路徑,也就是android原始碼目錄下的

android/AndroidMSourceFor5xAnd6/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8/bin

然後就可以用make -j8 ARCH=arm CROSS_COMPILE=arm-eabi-

-j8是利用你的核心數來編譯,這個自己看著修改。ARCH和CROSS_COMPILE是制定編譯的目標。

編譯過程中有可能會出現elf.h找不到的問題,這時候直接從android原始碼中考過去就可以了:

sudo cp android/external/elfutils/src/libelf/elf.h /usr/include/

還有發現elf.h中的feature.h找不到,這裡直接把include <feature.h>這行註釋掉就可以,然後就可以編譯成功。


2分鐘就編譯完了,-j8還是很好用的,蛤蛤。

相關推薦

Mac編譯Android以及goldfish核心

虛擬機器掛了,Android原始碼都沒了。。不準備再在虛擬機器中下載Android原始碼了,於是就直接在Mac下編譯Android。 在Mac下編譯Android比想象的簡單多了。我的Mac系統是10.10Yousemite。安裝的Xcode也是最新的7.1beta版本。

ubuntu16.04編譯android-goldfish-3.4核心原始碼(android6.0.1系統原始碼)

配置 筆者環境 系統: ubuntu 16.04 LTS 硬碟: 固態硬碟 筆者剛開始直接克隆的時候出現如下錯誤: error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexp

Mac編譯JRTPLIB原始碼 For Android

一.工欲善其事必先利其器: 1.官網下載Jthread和Jrtplib 2.通過 "brew install ninja" 命令安裝ninja 二.解壓下載的Jthread與Jrtplib壓縮包並參考GitHub的文件編寫cmake檔案: 1.在Jthread解壓出的目錄下建立toolcha

Mac編譯OpenH264 for android

簡介 OpenH264 是思科的開源專案,可以編碼解碼H264,常見的H264編碼器還有x264專案。 由於OpenH264專案的文件較少,初學的門檻較高,所以整理一些文章來幫忙初學者入門。 系列文章包括: 編譯OpenH264 for Window

下載並編譯Android模擬器Linux核心goldfish教程

1. 下載goldfish原始碼 在Android原始碼根目錄下新建kernel資料夾: $ mkdir kernel $ cd kernel 下載原始碼: $ git clone http://android.googles

教你如何在Mac系統編譯Android系統的原始碼

今日科技快訊 “全國公廁雲平臺”11月19日上線試執行,彙總全國近33萬條公廁資訊,初步實現快速尋廁功能。11月19日是“世界廁所日”。據瞭解,該平臺由住房和城鄉建設部組織研發,群眾可隨時隨地

mac 平臺編譯android版本 ffmpeg+h264

網上很多例子,但是試了很多都沒有都沒有弄好,最後經過長時間的試錯,終於弄好了,放到android 裡沒有問題。 系統環境:os 10.11.5 ndk r12 1,首先下載ffmpeg 2.5.11 https://ffmpeg.org/解壓 2,下載x

30.apollo源代碼在mac編譯

apollo一. Apollo簡介 Apache Apollo是一個代理服務器,其是在ActiveMQ基礎上發展而來的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多種協議。 官網鏈接 自己使用Apollo主要是用它做mq

Mac編譯Lua和ToLua

Mac下編譯Lua和ToLua,系統版本是10.13.2 下載原始碼 截止寫本文時,雖然最新的Lua版本已經是Lua 5.3.5,但ToLua版本只支援到5.2.4。為了保持一致,這裡下載Lua5.2.4:下載地址 下載ToLua5.2.4:下載地址 編譯原始碼 編譯

Ubuntu編譯SqlCipher以及解密微信資料庫EnMicroMsg.db過程和坑

wget https://codeload.github.com/sqlcipher/sqlcipher/zip/v3.4.2 ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=

Mac編譯太陽神三國殺原始碼

Mac系統版本是10.13.2,Qt版本是5.11,參考官方博文:太陽神三國殺 Mac 版構建指南 安裝Qt5 下載最新的Qt5安裝包qt-opensource-mac-x64-5.11.0.dmg,安裝步驟可參考博文 https://blog.csdn.net/qq_3748

mac安裝git以及遇到的問題

安裝方法: http://brew.sh/,先裝包管理工具Homebrew,再用brew install git 安裝完,執行 git 命令,遇到如下錯誤: dyld: Library not loaded: /usr/local/opt/gettext/lib/l

Linux編譯mongodb以及C++客戶端驅動

想在Linux下編譯一下mongo和它的C++驅動,網上一堆教程,官方一堆文件,實現起來依舊困難重重。我就很納悶了,本來mongodb就是C++寫的,為什麼不直接提供出驅動,而java,C#之類的,倒是直接提供了jar包和dll檔案。今天終於編譯成功,趕緊記錄下來。 Lin

ArduPilot原始碼學習--(一)--MAC編譯ArduPilot原始碼

最近大半個月都在搞ardupilot的東東,我的測試機是一臺250的穿越機,Pixhawk 2.4.8的飛控(比較耐炸,機器剛到那天,測試時,由於GPS有問題,從大概6樓掉下來,四個槳葉的螺絲全掉了,槳葉也掉了兩個,把所有東西找回來重新安裝上,還是可以飛:))。 開始了我的ArduPilot

Linux編譯Android原始碼問題彙總

前言         本人最近在研究Android原始碼編譯,現將編譯過程中遇到問題彙總於此。 環境         系統:CentOS 7 x86_64         源    :中科大映象源(詳見這裡) 問題彙總 (1)Increase Java heap s

Mac修改Android Studio的預設JDK版本

當你使用mac版Android Studio開發,並且compileOptions定義了JavaVersion8,或者要用android N來priview你的xml佈局時,如果沒有使用jdk8,就會無法編譯,告訴你不能渲染布局,必須配置jdk8。 1,M

Ubuntu編譯android所需ffmpeg的so庫

編譯ffmpeg原始碼 環境說明 環境(包括版本)儘量下面的保持一致,其他環境不一定能成功。 系統: Ubuntu16.04 LTS 最好不要再windows系統下編譯,可在windows中安裝VMware虛擬一個linux系統出來,對linux

Mac啟動Android SDK Manager更新Android SDK

如何啟動Android SDK Manager呢? 就可啟動android-sdk-macosx / tools/android了,如果要無介面更新 就在端終下./android update sdk --no-ui

mac編譯安裝php7時報ld: symbol(s) not found for architecture x86_64的解決方法

在Mac上編譯PHP7時,如果使用OpenSSL擴充套件,會有一個錯誤 Undefined symbols for architecture x86_64:   "_PKCS5_PBKDF2_HMAC", referenced from:       _z

Mac安裝Android SDK

Android SDK給你提供開發測試所必須的Android API類庫,開發工具 1、下載SDK 推薦下載地址:https://www.androiddevtools.cn 導航欄中點選“Android SDK工具”,選擇“SDK Tools”  選擇Mac OS X對應版本 2