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

  • 相关阅读:
    使用Chrome断点调试javascript程序
    vue-iview-admin项目过大导致打包失败
    vue+iview后台管理系统util.ajax跨域问题的解决方法
    webpack vue热加载编译速度慢
    (转)网站架构变迁
    (转)工作不到一年,做出了100k系统,老板给我升职加薪
    (转)CPU说:这个世界慢!死!了!
    (转)一个故事搞懂“ERP“
    (转)手动搭建自己的nuget服务器及使用
    doc系统maven打包脚本
  • 原文地址:https://www.cnblogs.com/Cqlismy/p/12579488.html
Copyright © 2020-2023  润新知