首先介绍下背景知识。

aosp 仅是一套源码,不含厂家驱动。 CM安卓的厂家驱动是自行提取的。

一般的安卓手机分区,有 boot , system, user , Baseband 基带, recovery , cache 等。

Google Pixel XL 都需要哪些 驱动呢?

1, 厂家驱动二进制。

https://developers.google.com/android/drivers#marlinppr2.180905.006.a1

Pixel XL binaries for Android 9.0.0 (PPR2.180905.006.A1)
https://dl.google.com/dl/android/aosp/google_devices-marlin-ppr2.180905.006.a1-1090e880.tgz
2f93f49993f6ff4f2269b53ec913966236de44f07dbb41657505b0402e21d0dc

GPS, Audio, Camera, Gestures, Graphics, DRM, Video, Sensors
https://dl.google.com/dl/android/aosp/qcom-marlin-ppr2.180905.006.a1-d11de9e0.tgz
25c68bc68254c4426c280ed57499177973a69b9d843d5ca79c7fc918e6e0d1ba

出厂镜像
https://developers.google.com/android/images

https://dl.google.com/dl/android/aosp/marlin-ppr2.180905.006.a1-factory-a78fe264.zip

厂家二进制驱动提供 hal 层的 gps 照像 基带 什么的支持。

如何添加到 aosp 中一起编译?

下载上面的3个文件,并验证 sha。

然后解压得到2个 sh  extract-google_devices-marlin.sh  extract-qcom-marlin.sh

复制到 aosp 源码目录中,手动执行一下,安装好。

./extract-google_devices-marlin.sh
vendor/
vendor/google_devices/
vendor/google_devices/marlin/
vendor/google_devices/marlin/device-vendor-marlin.mk
vendor/google_devices/marlin/android-info.txt
vendor/google_devices/marlin/BoardConfigVendor.mk
vendor/google_devices/marlin/BoardConfigPartial.mk
vendor/google_devices/marlin/proprietary/
vendor/google_devices/marlin/proprietary/vendor.img
vendor/google_devices/marlin/device-partial.mk Files extracted successfully. 第2个 高通驱动
./extract-qcom-marlin.sh
vendor/
vendor/qcom/
vendor/qcom/marlin/
vendor/qcom/marlin/BoardConfigPartial.mk
vendor/qcom/marlin/proprietary/
vendor/qcom/marlin/proprietary/lib64/
vendor/qcom/marlin/proprietary/lib64/libbcc.so
vendor/qcom/marlin/proprietary/lib64/libLLVM_android.so
vendor/qcom/marlin/proprietary/lib64/libiperf.so
vendor/qcom/marlin/proprietary/lib64/libminui.so
vendor/qcom/marlin/proprietary/ATT_profiles.xml
vendor/qcom/marlin/proprietary/pktlogconf
vendor/qcom/marlin/proprietary/VZW_profiles.xml
vendor/qcom/marlin/proprietary/ROW_profiles.xml
vendor/qcom/marlin/proprietary/libclcore_neon.bc
vendor/qcom/marlin/proprietary/sanitizer-status
vendor/qcom/marlin/proprietary/libiperf.so
vendor/qcom/marlin/proprietary/qcrilhook.jar
vendor/qcom/marlin/proprietary/libminui.so
vendor/qcom/marlin/proprietary/libion.so
vendor/qcom/marlin/proprietary/iperf3
vendor/qcom/marlin/device-partial.mk
vendor/google_devices/
vendor/google_devices/marlin/
vendor/google_devices/marlin/device-vendor-marlin.mk
vendor/google_devices/marlin/android-info.txt
vendor/google_devices/marlin/BoardConfigVendor.mk Files extracted successfully.

重新执行 生成镜像命令 。

wildcard(vendor) was changed, regenerating...
wildcard(vendor) was changed, regenerating...
[ 21% 243/1111] including out/soong/Android-aosp_marlin.mk

因为之前用的 master 分支,需要手动切到安卓9上来,重新 lunch make 。

先使用出厂镜像来刷机

启用开发者模式,打开 USB 调试 adb shell 能进入

开机键 + 音量- 进入 bootloader 模式

电脑上能识别出来手机并装上了驱动

fastboot devices 能看到设备。

解压 marlin-ppr2.180905.006-factory-df8ec974.zip 里面有个 flash-all.bat 双击等几分钟,就刷好了。

aosp 制作 rom 刷机 添加厂家二进制驱动 及 出厂镜像-LMLPHP

刷入 自己编译的 AOSP 的安卓 img 。

为什么要先刷入出厂镜像呢?

因为你的手机买回来可能是 8.0 或 7.1 的 安卓版本,而最新的编译出来的是 9.0 的安卓。

在刷自己编译出来的 那几个 img 。

发现问题了,其它都正常,就是 SIM 不识别。

05-27 21:42