系统APP与三方APK的预置方式

一、三方APK预置

1、这行代码试图包含名为 preinstall.mk 的文件,该文件位于 vendor/apps/apk/preinstall/ 目录下。如果该文件存在,它将被包含在当前 Makefile 中,这意味着 preinstall.mk 中定义的目标、规则和变量将会在当前 Makefile 的上下文中可用。当使用 -include 指令时,如果被包含的文件不存在或者出现其他错误,Make 会继续执行而不会中断。这就意味着,使用 -include 可以使得 Make 在遇到错误时不中断整个构建过程,而是继续执行其他任务
vendor/apps/app.mk

-include vendor/apps/apk/preinstall/preinstall.mk
-include vendor/common/log_server/log.mk

2、进入vendor/apps/apk/preinstall目录
在这里插入图片描述
3、preinstall.mk文件、将需要预置的文件放在需要加载的地点

PRODUCT_COPY_FILES += \
    vendor/apps/apk/preinstall/baidu.apk:system/preinstall_apk/baidu/baidu.apk\
	vendor/apps/apk/preinstall/preinstall.sh:system/bin/preinstall.sh``

4、配置脚本在适当的位置进行加载(一般在init.rc执行)

#!/system/bin/sh
MARK="installed"
PKGS=/system/preinstall_apk/
prop=$(getprop persist.screen.install)
if [ "$prop"x == "$MARK"x ]; then
    echo "baidu installed"
else
    busybox find $PKGS -name "*\.apk" -exec sh /system/bin/pm install -r -t {} \;
    echo "OK, installation complete."
    setprop persist.baidu.install installed
fi

二、 系统APP的预置(不可被删除)

1、在vendor/apps/app.mk中

## 系统预置APK ##
PRODUCT_PACKAGES += webtool
PRODUCT_PACKAGES += via

2、在apps目录下创建相关apk目录;如在apps/apk/目录下创建via目录存放apk
在这里插入图片描述
3、Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := via
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_CLASS := APPS #设置模块类别为 "APPS",表示这是一个 Android 应用程序
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_SRC_FILES := via.apk
include $(BUILD_PREBUILT)#包含构建预编译模块的规则。这表示 "via.apk" 是一个预构建的模块,不需要在编译时进行源代码编译```

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值