MAC 下編譯Android 6 0原始碼

2021-07-15 04:41:26 字數 2854 閱讀 9668

由於mac的檔案系統預設是不區分大小寫的,所以需要建立乙個區分大小寫的磁碟

hdiutil create -type sparse -fs

'case-sensitive journaled hfs+'

-size

200g /volumes/wd/android.dmg

我是用了外接硬碟來存放原始碼和編譯,空間比較多久所以設了200g,建議大小要設定到70g以上空間才夠用。執行完之後可以在目錄下看到android.dmg.sparseimage已經建立成功。

hdiutil attach /volumes/wd/android.dmg

.sparseimage -mountpoint /volumes/wd/android

2.1jdk安裝

2.2修改檔案描述符限制

在~/.bash_profile中新增以下內容:

# set the number of open files to be 1024

ulimit -s -n 1024

$ mkdir ~/bin

$ path=~/bin:

$path

$ curl > ~/bin/repo

$ chmod a+x ~/bin/repo

$ cd /volumes/wd/android

$ mkdir android-6.0.1

$ cd android-6.0.1

我的裝置是nexus 5x 根據source code tags and builds來選擇合適的**分支

repo init -u 

.tsinghua

.edu

.cn/platform/manifest -b android-6.0

.1_r17

4.1選擇需要編譯的target
$ source build/envsetup.sh

$ lunch

you're building on darwin

lunch menu... pick a combo:

1. aosp_arm-eng

2. aosp_arm64-eng

3. aosp_mips-eng

4. aosp_mips64-eng

5. aosp_x86-eng

6. aosp_x86_64-eng

7. aosp_deb-userdebug

8. aosp_flo-userdebug

9. full_fugu-userdebug

10. aosp_fugu-userdebug

11. mini_emulator_arm64-userdebug

12. m_e_arm-userdebug

13. mini_emulator_mips-userdebug

14. mini_emulator_x86-userdebug

15. mini_emulator_x86_64-userdebug

16. aosp_flounder-userdebug

17. aosp_angler-userdebug

18. aosp_bullhead-userdebug

19. aosp_hammerhead-userdebug

20. aosp_hammerhead_fp-userdebug

21. aosp_shamu-userdebug

我是5x所以需要選擇aosp_bullhead-userdebug 在selecting a device build中可以查閱,這邊也是有點醉我選擇了18但是最後編譯出來的是17 aosp_angler,,表示無奈最後選擇了19在編譯了一次。

4.2編譯

make -j4
視自己電腦的cpu而定不過好像j8和j4沒什麼區別,編譯兩次都差不多兩小時。

連上手機

adb reboot bootloader

fastboot -w flashall

build/core/combo/mac_version.mk:38:          

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

***build/core/combo/mac_version.mk:39: * can not find sdk 10.6 at

/developer/sdks/macosx10.6.sdk

build/core/combo/mac_version.mk:40:

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

***build/core/combo/mac_version.mk:41: *** stop.. stop

解決方法:

檢視你xcode中/developer/sdks裡面的版本,我的是10.11

然後在build/core/combo/mac_version.mk中修改

mac_sdk_versions_supported := 10.6 10.7 10.8

為 mac_sdk_versions_supported := 10.6 10.7 10.8 10.11

android6 0快速編譯

二 常用編譯命令 make j8 八個執行緒 根據cpu幾核幾執行緒 make pl 編譯preloader make lk 編譯lk make kernel 編譯kernel make bootimage 打包boot.img 包含kernel dts rootfs init.rc sepolic...

Android6 0編譯過程

1,購買vpn賬號 2,選擇 url 版本,編譯6.0的原始碼時,好像只能在64位系統上。可用 url 虛擬機器 url 安裝ubuntu sudo apt get install git core gnupg flex bison gperf build essential zip curl zl...

Android 6 0許可權管理

android 6.0在我們原有的androidmanifest.xml宣告許可權的基礎上,又新增了執行時許可權動態檢測,以下許可權都需要在執行時判斷 身體感測器 日曆攝像頭 通訊錄地理位置 麥克風 簡訊儲存空間 if contextcompat.checkselfpermission this,m...