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应用。

posted @ 2020-03-27 10:00  liangliangge  阅读(2181)  评论(0编辑  收藏  举报