文章出處

刷機不是用rom包嗎?怎么可以使用fastboot flashall -w將*.img文件刷入呢?

在Mac上面可以參考這篇文章進行刷機.概括來說解釋從官方下載rom包,解壓后運行./flash-all.sh腳本。在這里我下載了Nexus 6p的官方的rom包,我們看看這個文件中的內容是什么?
下面就是腳本文件的內容

fastboot flash bootloader bootloader-angler-angler-02.45.img
fastboot reboot-bootloader
sleep 5
fastboot flash radio radio-angler-angler-02.50.img
fastboot reboot-bootloader
sleep 5
fastboot -w update image-angler-mmb29p.zip

image-angler-mmb29p.zip又是什么呢?解開后就是這么幾個文件:

android-info.txt boot.img cache.img recovery.img system.img userdata.img vendor.img

有沒有很熟悉,其實就是我們編譯后,生成的幾個Image文件。

Nexus 6P 怎么沒有提供驅動包呢?到哪里去下載呢?

在制作rom包的過程中,我們還需要特定Nexus機器的驅動包,因為這些驅動包不屬于AOSP,需要單獨下載跟其他AOSP產生的*.img文件一起打包才成為一個完整的rom包.以往的驅動包,google都會提供,這次的驅動包google沒有提供了.從Hamilton Turner的回答中,我們知道Nexus 5x/6p的刷機包中驅動不再是必須的,因為這兩款機型中所有的驅動都存在于一個單獨的vendor分區,因此沒有必要在編譯的時候就放入system.img中。

執行lunch命令的時候,彈出Can not find SDK 10.6錯誤

具體的錯誤如下所示:

myhost:android-4.4.4_r2.0.1 carl$ lunch aosp_x86-eng
build/core/combo/HOST_darwin-x86.mk:65: *****************************************************
build/core/combo/HOST_darwin-x86.mk:66: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk
build/core/combo/HOST_darwin-x86.mk:67: *****************************************************
build/core/combo/HOST_darwin-x86.mk:68: *** Stop..  Stop.

具體錯誤的原因是,在編譯腳本中會檢查當前的Xcode sdk的版本是否是兼容的,這可能是因為你mac上的xcode版本比較新,在Android源代碼中還沒有添加上.理論上說應該用Android代碼對應的Xcode SDK版本來編譯,不然可能會有兼容性的問題。但是我自己實測最新的xcode版本是可以正常編譯Android源代碼的,具體的方法如下所示:
你可以到Xcode的sdk路徑下(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs)查看當前系統的SDK版本是多少。比如我的SDK版本是MacOSX10.11.sdk,接下來編輯build/core/combo/mac_version.mk中的mac_sdk_versions_supported所在的行添加10.11就行了。在運行下lunch命令,是不是就好了。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()