本地编译AOSP系统刷入树莓派等嵌入式硬件的步骤咨询
把Android刷入树莓派类嵌入式硬件的完整步骤(含AOSP定制)
一、前期准备
- 硬件:树莓派(优先选4B/400,性能足够支撑Android运行)、至少32GB的Class10以上高速SD卡、适配的电源、HDMI线+显示器(调试用)
- 软件:Ubuntu 20.04/22.04系统的主机(AOSP编译对Linux版本有严格要求)、至少100GB空闲磁盘空间(源码+编译产物占比大)、Python3、Git、对应Android版本的OpenJDK(比如Android 12用OpenJDK 11)
- 核心前提:先确认目标硬件有现成的AOSP适配分支,比如树莓派有第三方社区或LineageOS维护的适配项目,从零开始适配难度极高,新手直接基于现有适配改
二、获取适配好的AOSP源码
- 不要直接用谷歌原生AOSP,嵌入式硬件需要适配内核、驱动、设备树,必须找对应硬件的适配仓库
- 克隆源码步骤:
- 安装repo工具:
mkdir ~/bin && curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo - 初始化repo仓库(替换成树莓派对应适配项目的地址和分支):
mkdir aosp-rpi && cd aosp-rpi && repo init -u [适配项目repo地址] -b android-12.0.0_r30 - 同步源码(-j后接CPU核心数,提升同步速度):
repo sync -j$(nproc)
- 安装repo工具:
三、定制AOSP
- 基础定制(修改系统默认属性):
- 替换默认壁纸:直接替换
frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg文件 - 修改默认语言:编辑
build/make/core/main.mk里的PRODUCT_LOCALES字段,改成zh_CN en_US
- 替换默认壁纸:直接替换
- 应用层定制(增减系统应用):
- 删除默认应用:编辑
device/[品牌]/[设备型号]/device.mk,找到PRODUCT_PACKAGES列表,删掉不需要的应用(比如Calculator) - 添加自定义应用:把编译好的APK放到
vendor/[你的自定义厂商名]/apps目录,然后在device.mk的PRODUCT_PACKAGES里添加应用名称
- 删除默认应用:编辑
- 内核/驱动定制:如果要修改硬件驱动,找到内核源码目录(一般在
kernel/[硬件厂商]),修改对应驱动代码后重新编译内核
四、编译AOSP
- 配置编译环境:
- 进入AOSP根目录,执行:
. build/envsetup.sh - 选择目标设备(树莓派4B的代号一般是
rpi4-userdebug):lunch rpi4-userdebug
- 进入AOSP根目录,执行:
- 开始编译:
- 全量编译(第一次编译耗时几小时,耐心等待):
make -j$(nproc) - 增量编译(修改代码后只编译改动部分):直接执行
make -j$(nproc)即可
- 全量编译(第一次编译耗时几小时,耐心等待):
- 编译产物会生成在
out/target/product/[设备代号]目录,核心镜像包括boot.img、system.img、vendor.img等
五、刷入嵌入式硬件
方法一:Fastboot刷入(树莓派需先开启USB boot)
- 让树莓派进入Fastboot模式:修改SD卡根目录的
config.txt,添加program_usb_boot_mode=1,重启后再连接USB到主机 - 执行刷入命令:
fastboot flash boot out/target/product/rpi4/boot.img fastboot flash system out/target/product/rpi4/system.img fastboot flash vendor out/target/product/rpi4/vendor.img fastboot reboot
方法二:制作可启动SD卡(树莓派通用)
- 用
lsblk确认SD卡的设备名(比如/dev/sdb,千万别选错磁盘) - 把SD卡分成两个分区:FAT32格式的boot分区(约512MB)、EXT4格式的system分区(剩余空间)
- 写入镜像:
dd if=out/target/product/rpi4/boot.img of=/dev/sdb1 bs=4M dd if=out/target/product/rpi4/system.img of=/dev/sdb2 bs=4M dd if=out/target/product/rpi4/vendor.img of=/dev/sdb3 bs=4M - 拔出SD卡插入树莓派,通电启动
六、调试与验证
- 首次启动可能需要3-5分钟,不要强行断电
- 如果卡在开机界面,接树莓派的UART串口查看日志,排查驱动或内核适配问题
- 进入系统后,验证定制内容:检查壁纸、默认语言是否修改,自定义应用是否存在,WiFi、蓝牙、摄像头等硬件功能是否正常
内容的提问来源于stack exchange,提问作者A.G
相关产品推荐
相关产品推荐

