一、下载android源码 aosp
一般来说需要通过storage.googleapis.com 下载,但是由于网络限制的原因,采用通过清华源镜像来下载。
1.打开 清华源AOSP镜像 (可以参考里面步骤下载)
2.下载repo 工具
- mkdir ~/bin
- PATH=~/bin:$PATH
- curl https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
- chmod a+x ~/bin/repo
3.创建下载源码的目录
- mkdir ~/aosp
- cd ~/aosp
4. 下载android 12 源码,增加树梅派相关代码配置 可参考树梅派android 源码
- repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r21
- git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b arpi-12
- repo sync
二、编译源码
1.编译环境需安装些工具(可能列的不全)
sudo apt install libssl-dev python3-setuptools
2.编译AOSP
- source build/envsetup.sh
- lunch rpi4-eng
- make ramdisk systemimage vendorimage
3.下载内核源码
- mkdir ~kernel
- cd ~kernel
- repo init -u https://github.com/android-rpi/kernel_manifest -b arpi-5.10
- repo sync
4.编译内核 (android 11 后可以单独编内核)
- cd ~kernel/
- build/build.sh
三、刷系统
1.准备一张sd卡,16G
2.将SD分区(最好用命令行分区,试过用Gparted不行)
设置如下: p1 128MB for boot : Do fdisk, set W95 FAT32(LBA) & Bootable type, mkfs.vfat p2 1024MB for /system : Do fdisk, new primary partition p3 128MB for /vendor : Do fdisk, new primary partition p4 remainings for /data : Do fdisk, mkfs.ext4 Set volume label of /data partition as userdata : use -L option for mkfs.ext4
具体方法如下:
sudo fdisk -l
得到SD卡路径是/dev/sdb
sudo fdisk /dev/sdb
d:先删掉/dev/sdb1
n:创建新的四个分区(/root /system /vendor /data),都是primary分区类型,设置分区大小时输入需要的MB。
a:设置boot分区为bootable
t:改变分区的类型(W95 FAT32 (LBA),Linux)
$ sudo mkfs.vfat -n boot /dev/sdb1
$ sudo mkfs.ext4 -L “system” /dev/sdb2
$ sudo mkfs.ext4 -L “vendor” /dev/sdb3
$ sudo mkfs.ext4 -L “data” /dev/sdb4
3.写入 system & vendor 分区
cd ~/aosp/out/target/product/rpi4
sudo dd if=system.img of=/dev/sdb2 bs=1M
sudo dd if=vendor.img of=/dev/sdb3 bs=1M
4.复制固件到boot分区 (直接复制不需要命令行)
device/arpi/rpi4/boot/* to p1:/ out/target/product/rpi4/ramdisk.img to p1:/
/out/arpi-5.10/dist/Image.gz to p1:/ /out/arpi-5.10/dist/bcm2711-rpi-*.dtb to p1:/ /out/arpi-5.10/dist/vc4-kms-v3d-pi4.dtbo to p1:/overlays/
5.搞完,直接插卡开机
参考文章:树莓派Android10源码试装_树莓派 android系统编译-CSDN博客