Android6.0源碼下載編譯刷入真機

來源:互聯網
上載者:User

標籤:核心   get   min   orm   android   很多   開始   tle   dmr   

編譯環境是Ubuntu12.04。手機nexus 5,編譯安卓6.0.1源碼並燒錄到真機。

源碼用的是科大的鏡像:http://mirrors.ustc.edu.cn/aosp-monthly/,下載完之後會有一個aosp-latest.tar檔案,然後建立一個倉庫,把它解壓到你的倉庫裡。這裡下載會需要點時間。

然後repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b 你的版本,比如現在我們編譯6.0.1的版本,就直接repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r1

完了之後執行 repo sync ,同步更新你的代碼,這裡會花費點時間。

註:這裡有些人如果第一次用repo的話,得先要安裝repo。然後才能用

repo sync 完了之後,會在你的倉庫裡面出現很多檔案。如,剛開始第一次編譯的時候是沒有out產生的。

因為還要刷入真機,所以我們還需要驅動,你們可以看自己用的是什麼機型,然後去官網找相對應的驅動,

驅動網址 https://developers.google.com/android/nexus/drivers#hammerheadmra58k

我這裡用的是Nexus5,所以我自己下了一個,如果官網進不了的話,我這裡有一個Nexus5的驅動,連結:https://pan.baidu.com/s/1kx4J8pf2CV3yH54tgwEXUA 密碼:s9n6

裡面有三個.sh檔案,把它們放在你們項目的根目錄,然後分別執行.sh檔案,執行之後,它會有說明,一直按斷行符號,這時要注意,在執行每個檔案最後的時候,它會提示讓你輸入 I ACCEPT。輸入完了之後,就會在目前的目錄產生vendor檔案。

這時所有東西都就緒了,下一步就可以開始編譯源碼。

source build/envsetup.sh

執行lunch命令,選擇你要編譯的手機的版本,我這裡nexus 5選擇hammerhead。如所示

選擇完之後,然後執行以下make clobber,清除無用的編譯。

然後執行prebuilts/misc/linux-x86/ccache/ccache -M 50G設定緩衝大小。

通常是根據你機器cup的核心來確定:core*2,即當前cpu的核心的2倍.

查看核心數量

grep ‘core id‘ /proc/cpuinfo | sort -u | wc -l

查看線程數

grep ‘processor‘ /proc/cpuinfo | sort -u | wc -l

比如,我現在的筆記本是雙核四線程的,因此根據公式,最快速的編譯可以make -j8.

然後就直接等編譯了。

PS:在編譯的過程中有可能會遇到以下的失敗:

out/host/linux-x86/bin/jack-admin: 行 37: SETTING_VERSION: 為綁定變數
make: *** [out/host/linux-x86/framework/jack.jar] 錯誤 1
make: *** 正在刪除檔案“out/host/linux-x86/framework/jack.jar”

修改方法:在./prebuilts/sdk/tools/jack-admin裡面SETTING添加SETTING_VERSION=2
在“SETTING_VERSION -lt 2”改為“SETTING_VERSION -eq 2”。然後重新編譯即可。

大概編譯2個多小時,就編譯成功了。產生的鏡像檔案在out/target/product/檔案下面。

這時候可以燒錄到真機了。把偵錯模式開啟,然後接上USB調試。

輸入一個命令提示字元:adb reboot bootloader。

然後手機螢幕顯示 等待bootloader介面在螢幕上出現: fastboot oem unlock

接著一個unlock bootloader的選擇確認頁面會出現。用音量來選擇到“YES,”,用電源鍵來確定。

這時你手機上的所有資料都將被抹去,LOCK STATE將變成unlocked。不應該超過一兩分鐘。

重新開機後的畫面下面出現了一個開啟的鎖,以後刷機都會在解鎖狀態下了。

然後進入到你剛剛的那個目錄下,裡面有.img鏡像檔案。通過fastboot刷入即可,首先你先看看你的fastboot 能不能識別到裝置,輸入fastboot devices

如果出現 no permissions fastboot ,就直接進入到out/host/linux-x86/bin 下面輸入以下的命令:

sudo chown root:root fastboot

sudo chmod +s fastboot

然後再重新看下裝置是否能識別到,輸入fastboot devices

如果識別到了,再進入到鏡像檔案img那個檔案裡面執行以下命令進行燒錄。

fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot

最後一條命令是重啟命令,等大約兩分鐘,就會出現

 

 

至此,源碼編譯燒錄真機完成。

 

Android6.0源碼下載編譯刷入真機

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.