Android编译过程中的碎碎念-阿里云开发者社区

开发者社区> 开发与运维> 正文

Android编译过程中的碎碎念

简介:

刷机不是用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命令,是不是就好了。

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/p/5244438.html如需转载请自行联系原作者

kissazi2

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章