RK3399 android8.1 编译第三方APK到系统镜像中

第一部分:不带 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

猜你喜欢

转载自blog.csdn.net/xiaowang_lj/article/details/131783076