鍍金池/ 教程/ Android/ 根據設備構建
下載源碼
根據設備構建
Git 資源
構建系統
Android 平臺 64 位構建指導
初始化編譯環(huán)境
Android 源代碼
品牌指南
已知的問(wèn)題
Repo 命令手冊
構建內核
Bug 的生命周期
代碼主線(xiàn)、分支和版本
使用 Eclipse
提交補丁
下載與構建
參與
項目角色
補丁的生命周期
提交 Bugs
關(guān)于代碼風(fēng)格的指導
開(kāi)發(fā)
代碼名稱(chēng),標簽和版本號

根據設備構建

這一篇補充說(shuō)明主頁(yè)上有關(guān)構建和運行中運行在特殊設備上的信息。

通過(guò)當前已經(jīng)發(fā)放的版本,可以在 Nexus 4,Nexus 7 以及一些 Galaxy Nexus 的變異版本的手機上構建。每一個(gè)設備的具體實(shí)用性水平,取決于硬件所屬的二進(jìn)制文件。

給 Nexus 4 和 Nexus 7,所有的配置都可以使用,并且所有的硬件都可以工作。由于硬件的不同,不要在 Nexus 7 上使用 4.1.1,它已經(jīng)被 4.1.2 以及后續的版本所取代。

所有的 Nexus 10 “manta” 配置可以使用 4.2.2。在這些設備上,圖像,音頻,Wi-Fi,藍牙,照相機,NFC,GPS 和定向的感應器都可以運行。

Galaxy Nexus 變異版本可以使用的是 GSM/HSPA+ “maguro” 配置(只有在它已經(jīng)被 “yakju” 或者 “takju” 操作系統所替代),以及 VZW CDMA/LTE "toro" 配置。在這些設備上,圖形和視頻可以生效,和 Wi-Fi,藍牙一樣,它們都通過(guò)各自的細胞網(wǎng)絡(luò )連接。NFC 和方向感應器也可以工作。

Galaxy Nexus 在 jb-mr1-dev-plus-aosp 分支上實(shí)驗性的通過(guò) Sprint CDMA/LTE 配置信息 “toroplus”。在此配置中,細胞網(wǎng)絡(luò )并不能正常工作,其他的功能像他們在 “toro” 中一樣的工作。

使用 Android 4.1.2,Motorola Xoom 可以用在產(chǎn)于美國的 Wi-Fi 配置 “wingray“。圖形,音頻, Wi-Fi 和藍牙以及方向感應都可以正常工作。

所有 Nexus S 和 Nexus S 4G 的配置都可以用于 Android 4.1.2 上。在這些設備上,所有的硬件都可以正常的工作。

此外,PandaBoard a.k.a ”panda“ 可以被用在 jb-mr1-dev-plus-aosp 分支上,但是僅僅是理論上可行。具體如何通過(guò)Android 開(kāi)源工程來(lái)使用 PandaBoard,在資源樹(shù)中的 device/ti/panda/README 中查看。

創(chuàng )建 fastboot 和 adb

如果你還沒(méi)有安裝好這些工具,fastboot 和 adb 可以通過(guò)一般的 build 系統來(lái)構建。按照網(wǎng)頁(yè)中有關(guān)Build and Running的信息,替換掉主要的 make 命令,改為一下的命令:

$ make fastboot adb

啟動(dòng)進(jìn)入 fastboot 模式

通過(guò)冷啟動(dòng),下面核心的組合可以被用來(lái)進(jìn)入 fastboot 模式,這是一個(gè)在 bootloader 中的一種模式,可以被用來(lái)啟動(dòng)設備:

Devices Keys
shamu Press and hold Volume Down, then press and hold Power
fugu Press and hold Power
volantis Press and hold Volume Down, then press and hold Power
hammerhead Press and hold both Volume Up and Volume Down, then press and hold Power
flo Press and hold Volume Down, then press and hold Power
deb Press and hold Volume Down, then press and hold Power
manta Press and hold both Volume Up and Volume Down, then press and hold Power
mako Press and hold Volume Down, then press and hold Power
grouper Press and hold Volume Down, then press and hold Power
tilapia Press and hold Volume Down, then press and hold Power
phantasm Power the device, cover it with one hand after the LEDs light up and until they turn red
maguro Press and hold both Volume Up and Volume Down, then press and hold Power
toro Press and hold both Volume Up and Volume Down, then press and hold Power
toroplus Press and hold both Volume Up and Volume Down, then press and hold Power
panda Press and hold Input, then press Power
wingray Press and hold Volume Down, then press and hold Power
crespo Press and hold Volume Up, then press and hold Power
crespo4g Press and hold Volume Up, then press and hold Power

同樣的,命令 adb reboot bootloader 可以被用于直接重啟 Android 進(jìn)入 bootloader 模式,并且不需要核心組合。

解鎖 bootloader

只有 bootloader 允許才能刷入客戶(hù)端。

默認情況下 bootloader 是上鎖的。在設備處于 fastboot 模式下,bootloader 可以這么解鎖:

$ fastboot oem unlock

程序必須確認在屏幕上,并且出于隱私原因將會(huì )刪除用戶(hù)數據。這只需要執行一次即可。

所有數據都被刪除,也就是說(shuō)不僅僅是應用程序的私有數據,還包括那些可以通過(guò) USB 輕易獲取的公共數據,其中包含照片和電影,都會(huì )被刪除。請在解鎖 bootloader 之前,確認重要的數據是否都做了備份。

在 Nexus 10 上,解鎖 bootloader 之后內置的存儲被置于未格式化的狀態(tài),所以必須通過(guò)下面的命令格式化:

$ fastboot format cache
$ fastboot format userdata

bootloader 可以通過(guò)下面的命令進(jìn)行加鎖

$ fastboot oem lock

注意,這會(huì )清除用戶(hù)在 Xoom 上的數據(包括 USB 共享數據)

獲取特定的二進(jìn)制數據

Android 開(kāi)源工程不能單單從純粹的源碼中使用,而且還必須通過(guò)硬件廠(chǎng)商的連接庫才能運行,特別是那些具有硬件圖像加速功能的手機。

官方提供給支持的設備的二進(jìn)制文件被標以 AOSP 標簽免費版本,是可以從 中下載的。這些用不開(kāi)源的代碼,增加了額外的硬件能力。安裝構建 AOSP 當前分支,請使用 Binaries Preview for Nexus Devices。

當給一個(gè)設備創(chuàng )建 master 分支時(shí),大多數被標記發(fā)放或者多數不久之前的二進(jìn)制數據應該是可以被使用的。

取出特定的二進(jìn)制數據

每一個(gè)特定的二進(jìn)制數據,都會(huì )通過(guò)一個(gè)自取腳本,從壓縮的文檔中獲取。解壓縮每一個(gè)文件,從資源樹(shù)的根目錄中,運行包括自取腳本,確認你同意封閉許可協(xié)議,之后二進(jìn)制文件以及他們的匹配文件將會(huì )在資源樹(shù)的 vendor/ 層中安裝。

添加特定二進(jìn)制數據時(shí)的清理

為了確保取出后的二進(jìn)制數據正確的添加進(jìn)賬號,之前已經(jīng)存在對外輸出的構建必須像這樣刪除:

$ make clobber

選取和構建匹配設備的配置

匹配和構建 Android 開(kāi)源工程的步驟被寫(xiě)在了 Building上。

通過(guò)登錄菜單,給大多數設備推薦的 builds,當運行無(wú)參數 lunch 命令時(shí)是可以運行的。適配 Nexus 的工廠(chǎng)圖片和二進(jìn)制數據可以在這里下載:

https://developers.google.com/android/nexus/images

https://developers.google.com/android/nexus/drivers

Device Code name Build configuration
Nexus 6 shamu aosp_shamu-userdebug
Nexus Player fugu aosp_fugu-userdebug
Nexus 9 volantis (flounder) aosp_flounder-userdebug
Nexus 5 (GSM/LTE) hammerhead aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) razor (flo) aosp_flo-userdebug
Nexus 7 (Mobile) razorg (deb) aosp_deb-userdebug
Nexus 10 mantaray (manta) full_manta-userdebug
Nexus 4 occam (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (grouper) full_grouper-userdebug
Nexus 7 (Mobile) nakasig (tilapia) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug
Galaxy Nexus (Verizon) mysid (toro) aosp_toro-userdebug
Galaxy Nexus (Experimental) mysidspr (toroplus) aosp_toroplus-userdebug
PandaBoard (Archived) panda aosp_panda-userdebug
Motorola Xoom (U.S. Wi-Fi) wingray full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

不要在 Nexus 7 上使用 4.1.1,此機型只能使用 4.1.2 或更高版本。

設備刷入系統

如果有必要請將設備設置成 fastboot 模式(詳情請看上文)。

一個(gè)完整的 Android 系統可以用一條命令來(lái)給設備刷入一個(gè)系統:在經(jīng)過(guò)核對被寫(xiě)入的系統已經(jīng)成功的和已經(jīng)安裝過(guò)的 bootloader,廣播之間可以相互協(xié)作后,會(huì )將啟動(dòng),修復,系統三個(gè)部分寫(xiě)在一塊,最后重啟系統。這樣的操作也會(huì )清楚用戶(hù)數據,就跟之前在 fastboot oem unlock 中提到的差不多。

$ fastboot -w flashall

需要注意的是,在 Motorola Xoom 上,文件系統創(chuàng )建出的 via fastboot 并不會(huì )良好的工作,并且強烈推薦用下面的命令重建它:

$ adb reboot recovery

一旦進(jìn)入回復,打開(kāi)菜單(按下電源和音量+),清除緩存部分,之后清除數據。

恢復設備出廠(chǎng)值

Nexus 5,Nexus 10,Nexus 4,Nexus Q,Nexus 7,Galaxy Nexus (GSM/HSPA+ "yakju" 和 "takju", 和 CDMA/LTE "mysid" 以及 "mysidspr"),Nexus S 和 Nexus S 4G 的出廠(chǎng)圖片,都可以在頁(yè)面下載。

Motorola Xoom 的工廠(chǎng)圖片則直接通過(guò) Motorola 發(fā)布。