AOSP打包和安装

[复制链接]  9查看
易西 发表于 2026-5-9 16:25:42 | 显示全部楼层 |阅读模式

AOSP打包和安装

 楼主| 易西 发表于 2026-5-9 16:26:23 | 显示全部楼层
AOSP(Android Open Source Project)打包和安装,通常是指将自定义的 Android 系统镜像(包含系统应用、内核、引导等)编译生成可刷机的固件包,并部署到设备上运行的过程。以下是基于当前(2026年)主流 AOSP 版本(如 Android 12+)的完整流程。

‌一、AOSP 打包流程‌
AOSP 打包的核心是将源码编译为系统镜像文件(如 system.img、boot.img 等),并打包成可刷机的 ZIP 包。

‌环境准备‌

使用 ‌Linux(推荐 Ubuntu 20.04/22.04)‌ 或 macOS(Windows 可通过 WSL2,但不推荐用于正式编译)。
安装依赖工具:
bash
sudo apt update && sudo apt install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip python3
安装 repo 工具:
bash
mkdir ~/bin
PATH=~/binPATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
‌获取 AOSP 源码‌

初始化仓库(以 Android 12 为例):
bash
mkdir aosp && cd aosp
repo init -u https://android.googlesource.com/platform/manifest -b android-12.0.0_rXX  # 替换为实际版本号
repo sync -j$(nproc)
若网络慢,可使用国内镜像(如 清华 AOSP 镜像)加速同步。
‌配置构建目标‌

加载编译环境:
bash
source build/envsetup.sh
选择设备配置(如模拟器):
bash
lunch aosp_arm64-eng  # 或 aosp_x86_64-eng 等
‌执行编译‌

编译整个系统:
bash
m -j$(nproc)
编译完成后,输出文件位于 out/target/product/<device_name>/ 目录下,常见文件包括:
system.img:系统分区镜像
boot.img:引导镜像
userdata.img:用户数据分区
recovery.img:恢复模式镜像
‌生成刷机包(可选)‌

打包为 OTA 或 fastboot 刷机包:
bash
make otapackage
生成的 ZIP 包位于 out/target/product/<device_name>/aosp_<device>_ota-*.zip,可用于 fastboot update 刷机。
‌二、AOSP 安装(刷机)流程‌
将编译好的 AOSP 镜像刷入设备,需通过 ‌fastboot 模式‌ 操作。

‌进入 Fastboot 模式‌

关机后按住 ‌音量下 + 电源键‌,或通过 ADB 命令:
bash
adb reboot bootloader
‌解锁 Bootloader(首次必须)‌

⚠️ 注意:此操作会清除设备所有数据!
bash
fastboot flashing unlock
‌刷入系统镜像‌

推荐使用生成的 ZIP 包一键刷入(更可靠):
bash
fastboot update aosp_<device>_ota-*.zip
或手动刷入各分区(适用于调试):
bash
fastboot flash system out/target/product/<device>/system.img
fastboot flash boot out/target/product/<device>/boot.img
fastboot flash userdata out/target/product/<device>/userdata.img
fastboot reboot
‌首次启动‌

刷机后首次启动可能需 5–10 分钟,等待系统完成初始化。
‌三、预装第三方 APK(系统应用)‌
若需将现有 APK 预装为系统应用(不可卸载),需在 AOSP 编译前集成:

‌方法一:使用 Android.mk(适用于 AOSP 12 及以下)‌

在 packages/apps/ 下创建目录(如 MyApp)。
将 APK 放入该目录,并创建 Android.mk:
makefile
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MyApp
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform  # 使用平台签名获取系统权限
include $(BUILD_PREBUILT)
‌方法二:使用 Android.bp(适用于 AOSP 11+,推荐)‌

bp
android_app_import {
    name: "MyApp",
    srcs: ["MyApp.apk"],
    certificate: "platform",
    privileged: true,  // 若需特权权限,安装到 /system/priv-app
}
⚠️ ‌签名注意事项‌:系统应用必须使用 platform 签名才能获得高权限;若保留原签名,使用 LOCAL_CERTIFICATE := PRESIGNED,但可能无法调用系统 API。

‌关键资源链接‌
AOSP 官方构建指南
清华 AOSP 镜像(含月度打包)
USTC AOSP 镜像与 repo 配置
以上流程适用于 ‌Android 12 及以上版本‌,若使用旧版(如 Android 4.4),部分路径和工具可能不同,建议优先参考对应版本官方文档。

参考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

邮箱|首页|小黑屋|吾侪 ( 蜀ICP备2020029307号-4 )

GMT+8, 2026-6-4 04:42 , Processed in 0.053749 second(s), 22 queries , APCu On.

Powered by Discuz! X3.5

Copyright © , 吾侪网

快速回复 返回顶部 返回列表