14之前
环境安装不多说
python3
在绝大多数 AOSP 教程中,编译流程都始于以下三个命令:
source build/envsetup.sh:加载编译环境。这个命令会将大量编译相关的函数和变量注入到当前的终端会话中。
lunch:选择编译目标。这个命令用于指定你要为哪个设备、哪个版本的 Android 进行编译。
make:开始编译。这是执行实际编译工作的命令
Android 14 之前 (传统格式)
格式:lunch <产品名>-<构建变体>
示例:lunch aosp_x86_64-eng
特点:
直接运行 lunch 会显示一个交互式菜单,列出所有可用的构建目标供你选择。
目标格式相对简单,主要由“产品名”和“构建变体”两部分组成。
Android 14 及之后 (新格式)
格式:lunch <产品名>-<发布版本>-<构建变体>
示例:lunch sdk_phone64_x86_64-ap2a-eng
关键变化:
增加“发布版本”:目标格式从两部分变为三部分,新增了 TARGET_RELEASE 字段。
lunch 菜单消失:直接运行 lunch 命令不再显示选择菜单。
- 如何查看可用选项:你需要使用新的命令来查看可用的产品和发布版本。
list_products:列出所有可用产品。 list_releases:列出所有可用发布版本。 list_variants:列出所有可用构建变体(如 user, userdebug, eng)。14之后
编译完成后如何启动
编译成功后,启动模拟器的步骤也发生了变化。
Android 14 之前 (传统方式)
编译成功后,在源码根目录下直接输入 emulator 命令即可启动。
Android 14 及之后 (新方式)
由于新版本的内核路径发生了变化(例如不再使用 ranchu 内核),直接输入 emulator 可能会报错。因此,推荐使用完整参数来启动模拟器,以确保所有组件都能被正确加载。
最后分享下个人在新版本下常用的
• sdk_phone64_x86_64-ap2a-eng (手机模拟器)
• sdk_car_x86_64-ap2a-userdebug (车机模拟器,release和variant视具体情况可做调整,上同)
• aosp_raven-ap2a-eng (手机刷机包,raven改成你设备的代号)
source build/envsetup.sh lunch sdk_phone64_x86_64-trunk_staging-eng emulator -gpu host -verbose不加-writable-system无法mount
emulator -writable-system -gpu host -verbosehttps://mp.weixin.qq.com/s/9xkNgKKxBWlM_qtpLmRL5g?poc_token=HLRahmqjf_ZIJbSzs0wX9qLmAh6lhkaThivPnXwL