Pixel 4 AOSP源码编译及刷机

先吐槽,Google的代码和文档写的是真烂。完全根据他的文档来操作是完不成Pixel 4 AOSP源码编译和刷机这个事情的。经过痛苦的挣扎,最后终于刷机成功了。

代码下载

代码下载的流程在这,https://source.android.com/setup/build/downloading,这一步基本不会有啥问题,大概的步骤说一下。

repo init 要找到跟自己机器匹配的代码仓库

https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds

这里列出了所有AOSP源码对应的支持的机器,找到你对应的机器的那一行的TAG,然后

执行 repo init -u https://android.googlesource.com/platform/manifest -b [TAG ID]

因为我的机器是Pixel 4,所以我的执行命令是:

repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r36

init完,直接

repo sync

就行了(VPN什么的自行搞定)

代码编译

基本流程看这:https://source.android.com/setup/build/building(但是不能全信)

主要步骤是执行下列命令:

1. 

. build/envsetup.sh

2. 

lunch [device name]

lunch

然后在他列出的列表里面选择你的机型

3. 

make

这行这三部就开始编译了,编译的时间很长,请预留充足的磁盘空间。另外要提一下第二部lunch的device name参数的选择,可以看https://source.android.com/setup/build/running#selecting-device-build:Pixel 4选flame(他娘的google的文档现在纠正过来了,之前写的是coral,害老子花了多好几天的时间)

还可以通过adb命令获得手机的device name:

adb shell getprop | grep name

(嗯,走到这里就被文档戏耍了,不想多花时间走冤枉路的先看完再操作)

刷机

需要先解锁bootloader然后进入fastboot刷机,整个过程比较简单,照着文档做就行了https://source.android.com/setup/build/running#unlocking-the-bootloader

刷机进入fastboot后最后是执行:

fastboot flashall -w

然后等待。。。。。。。

等到最后启动会一直停在bootloader界面。起不来!!!

Pixel Factory Image

因为机器一直卡在bootloader界面起不来,无奈就去找了Pixel的官方厂包刷机:https://developers.google.com/android/images

找到对应的机型,下载zip厂包,然后执行他的flashall.sh,等待后,系统起来了。

这个时候发现,他的厂包里面比你编译出来的image多了这么两个东西:bootloader-flame-c2f2-0.3-7062597.img和radio-flame-g8150-00082-210106-b-7065218.img

文档里面完全没有写这玩意儿~~

你不说,我怎么知道我错在哪,让我去猜吗!!!

好吧我去猜!!!

下载编译驱动

在这里面https://developers.google.com/android/drivers,找到自己的机器的驱动,下载下来。(别问我是怎么知道的)

下载后解压出两个可执行脚本extract-google_devices-flame.sh和extract-qcom-flame.sh,放到AOSP源码根目录.

执行之,然后又要骂娘了(谁执行谁知道,剧透:按回车别按太快)。

执行完之后,会出现一个vender目录,这个目录里面有驱动的编译脚本。恭喜你重新编译吧。

(我是clean之后编译的,我不知道直接编译能不能行,别问我为什么要clean后再编译,因为编不过)。

编译不过,错误是找不到 vendor/qcom/coral/proprietary/com.qualcomm.qcrilmsgtunnel.xml

我clean了好几次,还是不过。一下这个文件是哪里引用的搜,然后开始骂娘。

人家都写flame,就你丫特殊要写coral,这哪个工程师没长眼睛。

把他改成flame,重新编译。这次居然编过了~~~

编译完后会发现out目录里面会多出bootloader.img,vendor.img,radio.img等。

ok,重新执行

fastboot flashall -w

 

恭喜,启动成功!!!徜徉在无尽的代码中吧~~~

### 编译Pixel 4 Android源代码的方法 对于希望编译适用于Pixel 4设备的Android源代码而言,过程涉及几个关键步骤。首先,需确保操作环境满足特定条件。通常建议使用Ubuntu服务器作为开发平台[^4]。 #### 准备工作环境 为了顺利进行编译流程,开发者应当准备一台安装有Linux系统的计算机,推荐版本为Ubuntu 20.04 LTS。此操作系统已被广泛验证能够稳定支持多种不同版本的Android源码编译需求。 #### 获取源代码 接下来,获取针对目标硬件——即Pixel 4的具体源代码至关重要。这一步骤可通过访问官方资源库并按照指导说明来完成。值得注意的是,不同的Android版本对应着各自的分支标签;因此,在拉取仓库之前应确认所需构建的目标版本号以及相应的Build ID[^5]。 #### 配置编译选项 一旦成功下载了完整的源代码树之后,则可以着手配置具体的编译参数。这里涉及到设置诸如产品名称、变体类型等重要属性。对于Pixel 4来说,默认情况下会选择`aosp_marlin-userdebug`这样的组合来进行初步尝试[^3]。 ```bash source build/envsetup.sh lunch aosp_marlin-userdebug ``` #### 执行实际编译命令 当一切就绪后,便可以通过执行简单的mka指令启动整个编译进程: ```bash mka bacon ``` 这条命令将会触发一系列复杂的自动化脚本运行,最终产出可用于烧录至真实设备上的镜像文件集合。 #### 处理可能遇到的问题 在整个过程中可能会遭遇各种各样的挑战,比如依赖项缺失或是工具链冲突等问题。面对这些情况时,查阅相关文档和技术论坛往往能提供有效的解决方案。特别是要注意解决类似`out/soong/build.ninja`失败这类常见错误消息所指示的内容。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值