Android系统预装APP
1、前言
在Android终端设备的开发过程中,有时候我们需要为Android系统中预装APP,本文将介绍如何在Android源码中进行系统预装APP。
2、Android系统预装APP
首先,需要准备好预装的APP文件,以Bing浏览器为例,apk文件下载链接如下:
https://www.appsapk.com/bing-search/
接下来,则是修改AOSP源码,让编译出来的system.img镜像文件包含我们要预装的APP:
我当前的Android终端设备是以Qualcomm MSM8953为SoC,搭载了Android 9系统,修改源码步骤如下:
新创建工程目录,并添加编译Android.mk和APP文件:
$ cd AOSP/vendor/qcom/app/Browser $ mkdir Bing $ touch Android.mk $ cp <dir>/Bing.apk .
其中Android.mk的内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := Bing LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := APPS LOCAL_CERTIFICATE := platform LOCAL_SRC_FILES := Bing.apk LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)
接下来,分析一下这个Android.mk的内容:
- LOCAL_MODULE:用来指定模块的名称,该模块名称需要加入到PRODUCT_PACKAGES;
- LOCAL_MODULE_TAGS:用来指定该app在编译什么样子的版本的时候会被安装到机器上;
- LOCAL_MODULE_CLASS:在采用预装这种形式的时候,该变量来指定预装的模块的类型,此处为APPS;
- LOCAL_CERTIFICATE:用于设置APK的签名模式,指定为platform表示该APK完成系统的核心功能;
- LOCAL_SRC_FILES:要预装的APK源文件;
- LOCAL_PROPRIETARY_MODULE:表示专利性产品。
接下来,修改设备编译的.mk文件,让我们要预装的APP文件打包进行系统镜像里面:
$ cd AOSP/device/qcom/msm8953_64
$ vim msm8953_64.mk
在msm8953_64.mk文件的最后添加下面代码,表示将Bing模块进行打包:
PRODUCT_PACKAGES += Bing
修改完成后,接下来重新编译system.img镜像并烧写:
$ make systemimg # adb reboot bootloader # fastboot falsh system system.img # fastboot reboot
最后,重新检查并进入到Android设备终端,检查是否已经预装APP完成:
# cd /vendor/app/Bing # ls -alh
成功预装效果如下:
3、小结
本文简单介绍了如何在Android系统源码中预装APP应用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App