当前位置: 首页 > news >正文

AOSP 打包之如何新增预装应用

AOSP 打包实战:如何新增预装系统应用

在 Android 系统定制开发中,预装应用是常见需求。本文基于 Android 4.4 源码环境,详细讲解如何将第三方 APK 打包进系统固件。

一、前言

在 AOSP(Android 开源项目)开发中,我们经常需要将特定的应用预装到系统中,使其成为不可卸载的系统级应用。这种需求常见于:

  • 设备厂商预装自家应用
  • 运营商定制应用
  • 企业设备管理应用
  • 系统核心服务应用

本文将手把手教你如何完成这一过程。

二、准备工作

2.1 环境要求

  • AOSP 源码环境(本文基于 Android 4.4)
  • 已成功编译过完整固件
  • 需要预装的 APK 文件

2.2 重要概念

  • 系统应用:位于 /system/app/system/priv-app,具有系统签名
  • 预编译应用:直接使用编译好的 APK,无需源码
  • 平台签名:使用系统平台证书签名,获取系统权限

三、详细步骤

3.1 创建应用目录

首先在 AOSP 源码的 packages/apps/ 目录下创建应用目录:

cd packages/apps/
mkdir TestApp
cd TestApp

将你的 APK 文件复制到该目录,并重命名为与模块名一致:

3.2 编写 Android.mk

创建 Android.mk 文件,这是构建系统的核心配置文件:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)# 模块名称,必须与APK文件名一致(不含.apk后缀)
LOCAL_MODULE := TestApp# 模块标签,optional表示需要显式声明才会编译
LOCAL_MODULE_TAGS := optional# 源文件,即APK文件
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk# 模块类别为应用
LOCAL_MODULE_CLASS := APPS# 模块后缀
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)# 使用平台签名,这是成为系统应用的关键
LOCAL_CERTIFICATE := platform# 可选:声明为特权应用(将安装到system/priv-app)
# LOCAL_PRIVILEGED_MODULE := true# 可选:禁用dex预优化
# LOCAL_DEX_PREOPT := falseinclude $(BUILD_PREBUILT)

3.3 关键配置说明

3.3.1 LOCAL_MODULE_TAGS

  • optional:需要显式声明才会编译(最常用)
  • user:用户版本自动包含
  • eng:工程师版本自动包含
  • debug:调试版本自动包含

建议使用 optional,以便在不同产品中灵活控制。

3.3.2 LOCAL_CERTIFICATE

  • platform:平台签名,系统级权限
  • shared:共享签名
  • media:媒体签名
  • PRESIGNED:使用APK原有签名

系统应用必须使用 platform

3.3.3 特权应用配置

如果要获得更高权限,可以取消注释:

LOCAL_PRIVILEGED_MODULE := true

这样应用将安装到 /system/priv-app/ 而非 /system/app/

3.4 产品配置

在设备的产品配置文件中添加模块声明,这是很多人容易遗漏的关键步骤!

找到你的设备配置文件,通常位于:

device/<厂商>/<产品名>/device.mk
或
device/<厂商>/<产品名>/product.mk

添加一行:

PRODUCT_PACKAGES += XunMigration

3.5 处理APK签名

重要提醒:预装的APK应该:

  1. 使用测试签名
  2. 或者完全不签名

如果APK已有正式签名,需要先去除签名:

# 移除APK中的签名信息
zip -d XunMigration.apk META-INF/\*

系统会在编译时用平台证书重新签名。

3.6 编译验证

3.6.1 开始编译

# 设置环境
source build/envsetup.sh
lunch *****make -j8#### 3.6.2 验证是否打包成功编译完成后,检查输出目录:# 直接查看system目录
ls -la out/target/product/sw773/system/app/ 
看是否有放置的 app
http://www.jsqmd.com/news/160451/

相关文章:

  • 企业微信微盘扩容费用揭秘:免费容量、超支成本与节省策略 - 品牌2026
  • 2025年口碑好的地垫公司推荐,欣扬铝合金地垫详细介绍与企业全解析 - myqiye
  • 基于NVIDIA显卡的PyTorch环境搭建:支持RTX 40系列GPU
  • 哪个厂家可定制钻机配件?信誉好有实力的宣化钻机配件推荐厂家腾达钻孔 - 品牌推荐大师1
  • 2026年支持二次开发的轮式机器人技术深度分析与主流产品评测
  • PyTorch安装常见错误汇总:GPU不可用?CUDA版本不匹配?
  • 永磁同步电机PMSM全速域无速度传感器控制探秘
  • 井下钻机推荐品牌哪家强?性能好质量优的宣化井下钻机标杆企业认准腾达 - 品牌推荐大师1
  • PyTorch分布式训练原理浅析:适用于大规模token生成场景
  • 2025年铸铁成金铜覆钢的产量能满足需求吗、发展潜力大吗、安全性可靠吗年度排名 - 工业设备
  • 声卡驱动安装失败没声音怎么办?从手动排查到一键修复的终极指南 - PC修复电脑医生
  • 2025年苏州爱采购运营服务公司推荐榜:爱采购运营开户/爱采购运营管理/本地爱采购运营服务商精选 - 品牌推荐官
  • 厂家精选:微型磁力泵进口替代优质厂家合集 - 品牌2025
  • 大模型评估真相:预训练看“学得好不好”,SFT看“用得对不对”!别再混为一谈了!
  • MKS Instruments 0190-76185
  • 高精度、耐磨损、长寿命:微型磁力泵进口替代核心考量与厂家推荐 - 品牌2025
  • nt!IopGetRootDevices函数中的nt!IoCreateDevice函数填充了nt!IoPnpDriverObject --\Driver\PnpManager的设备--非常重要
  • 2025年燃气灶具厂家权威推荐榜单:煤气灶/炉盘/炉具/灶台/燃气灶具/灶具/灶盘/燃气灶/煤气炉及耐用燃气灶源头厂家精选。 - 品牌推荐官
  • 正能量的dp——树形
  • 全能安全工具箱:智能密码生成、高强度文件加密与动态二维码生成的一站式平台
  • 欣扬产品好用吗、欣扬铝合金地垫性价比怎么样? - 工业推荐榜
  • 2025山东海外社媒运营服务商推荐榜:谷歌海外社媒运营/国外社媒运营/海外社媒运营/海外社媒矩阵运营/海外社媒矩阵平台运营服务商精选 - 品牌推荐官
  • Transformer多头注意力实现细节
  • 2025年上门安装麻将机/麻将机技巧/智能麻将机/战神麻将机服务推荐榜:专业解决方案引领行业服务新高度 - 品牌推荐官
  • 2025-2026广东佛山铝型材源头厂家权威评测与选型指南:为何佛山市南海元巢五金制品有限公司领跑行业? - 2025年品牌推荐榜
  • 2026企业智能BI私有化部署厂商标杆名录(年度焕新):覆盖智能BI数据可视化、本地部署全场景服务,重塑企业决策新基准 - 品牌2026
  • Nature:让Agent自己发现最优奖励函数
  • Markdown写技术博客?教你用Jupyter+PyTorch展示模型效果
  • 2025AI智能体开发服务团队大盘点:赋能全行业数字化转型核心力量 - 品牌测评鉴赏家
  • SSH代理转发跨跳板机连接PyTorch节点