Skip to main content

wsl2 编译 AOSP 13

·168 words·1 min

还记得本科那会经常拿一加7t刷着玩,安装面具和xpose进去搞跑步app的打卡功能

一加7t时不时就要变砖然后狠狠9008

现在弄了个pixel3没有这种烦恼了,用apatch或者magisk对kernel下手之前,一方面学会了用boot命令及时止损,另一方面官方rom救砖速度一流

但考虑到未来工作需要这里记录一下用工位的老爷机上的wsl2烧一个aosp的过程

ref : https://www.cnblogs.com/stlong/p/17654389.html

磁盘 #

先弄一个500g以上的空盘,下载一个新的ubuntu22 开机途中找到一个新机一键换源+下载常用工具的脚本 https://linuxmirrors.cn/ 无敌了,真有这种东西。。。。

然后对ubuntu进行迁移,从c盘迁移到e盘

wsl --export Ubuntu-22.04 E:\Ubuntu-22.04.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 E:\wsl_2204 E:\Ubuntu-22.04.tar
Ubuntu2204 config --default-user ljahum

环境 #

配置github账户,建立python=>python3的软连接,照抄安装

之前的openjdk8和openjdk11都可以

which python3

sudo ln -s /usr/bin/python3 /usr/bin/python
sudo apt install unzip zip libssl-dev  libffi-dev gnupg flex bison gperf build-essential  curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libz-dev ccache libgl1-mesa-dev libxml2-utils xsltproc 
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev

sudo ldconfig
ldconfig -p | grep libncurses.so.5

sudo apt-get install openjdk-8-jdk

repo工具 #

用google家的这个工具来初始化项目目录

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

用 repo 工具下载 #

mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
cd bin
chmod +x repo

配置环境变量,如果在当前目录下直接操作可以不管

vim ~/.bashrc
添加下面两行环境变量配置:
PATH=~/bin:$PATH
export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
使环境变量生效:
source ~/.bashrc

学人精下载和别人一样的aosp版本

初始化+同步,同步的过程是在正式下载代码

这里没注意新建源码文件夹把源码和repo工具放一起了。。

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-13.0.0_r35 --depth=1
repo sync -j8

Alt text

编译 #

make -j8

如果不用交叉编译到arm,那么编译速度会快很多

Alt text

运行 #

先用安卓死丢丢弄一个安卓13机器

Alt text

然后查看设置找到使用的sdk位置,经常折腾环境的小伙伴都知道,你想象中的sdk位置可能和实际在用的sdk位置不太一样

Alt text

我们用这个文件夹下的emulator来运行avd

编译好的位置在

~/bin/out/target/product/emulator_x86_64

./emulator.exe  -avd wsl-android-13R5   -system "C:\Users\test_user\Desktop\system-qemu.img"  -data "C:\Users\test_user\Desktop\userdata.img"

system-qemu.img 是系统的核心组件

userdata.img 存储已安装的应用程序、设置和文件。

Alt text

如果要烧进aosp,需要选择对应设备代号

source build/envsetup.sh

lunch 

最方便的方法是开机看build ID 然后去官网查

https://source.android.com/docs/setup/reference/build-numbers?hl=zh-cn

https://source.android.com/docs/setup/build/running?hl=zh-cn