刷機不是用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分區(qū)烂斋,因此沒有必要在編譯的時候就放入system.img中。
執(zhí)行l(wèi)unch命令的時候础废,彈出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)查看當前系統(tǒng)的SDK版本是多少。比如我的SDK版本是MacOSX10.11.sdk,接下來編輯build/core/combo/mac_version.mk中的mac_sdk_versions_supported所在的行添加10.11就行了抛腕。在運行下lunch命令芋绸,是不是就好了。