第一部分:不带 lib 的第三方APK
一、添加第三方APK
android8.1/packages目录下,新增thirdpart/music文件夹。将apk文件放入 music 文件夹下。
同目录下新增Android.mk文件 :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := MusicDemo
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := app_e.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
生成的apk默认放在 system/app 目录下,不可卸载。
如果想指定目录可以修改LOCAL_MODULE_PATH :
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app APK在system/vendor/operator/app目录下,可卸载,出厂设置可恢复。
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) APK在data/app目录下,
可卸载,出厂设置不可恢复。
LOCAL_MODULE_PATH := $(TARGET_OUT)/priv-app 或者 LOCAL_PRIVILEGED_MODULE := true
APK在system/priv-app 目录下 不可卸载。
在 packages/thirdpart目录下 新增device.mk:
# apps
PRODUCT_PACKAGES += \
MusicDemo
二、修改编译信息(与添加第三方APK无关,不必要)
android8.1/device/rockchip/rk3399/rk3399_firefly_mid 目录下 新增 build_id.mk文件
export BUILD_ID=TE-Project-2022
export BUILD_NUMBER=$(shell date +%Y%m%d)
export BUILD_PLATFORM=RK
export BUILD_PRJ_NAME=TEProject
export BUILD_PRJ_TYPE=D
export BUILD_PRJ_NUMBER=TEProject2022
export BUILD_DATE=$(BUILD_NUMBER)
export BUILD_SF_VERSION=V01.00_$(BUILD_DATE)
export BUILD_HW_VERSION=V01.00_20220801
三、添加到系统编译文件中
修改android8.1/device/rockchip/rk3399目录下rk3399_firefly_mid.mk
#by mode
include device/rockchip/rk3399/rk3399_firefly_mid/build_id.mk //修改编译信息(不必要)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
include device/rockchip/rk3399/rk3399_firefly_mid/BoardConfig.mk
# Inherit from those products. Most specific first.
$(call inherit-product, device/rockchip/rk3399/device.mk)
$(call inherit-product, device/rockchip/common/device.mk)
#by mode
$(call inherit-product, packages/thirdpart/device.mk) //添加自定义Module
第二部分:不带 lib 的第三方APK
一、添加第三方APK
android8.1/packages/thirdpart目录下新建soapk文件夹,添加第三方Apk文件 soApk.apk
二、添加so库
解压APK文件,提取lib文件夹,放在soapk文件夹下。
根据自己的设备选择不同文件夹下的 so文件
也可以动态选择获取当前设备信息
my_archs := arm arm64
my_src_arch := $(call get-prebuilt-src-arch, $(my_archs))
新建Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SoApk
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := soApk.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_PREBUILT_JNI_LIBS :=lib/arm64-v8a/libJniLib.so
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
三、添加MODULE
在android8.1/packages/thirdpart目录下device.mk 添加
# apps
PRODUCT_PACKAGES += \
MusicDemo \
SoApk