RK平台如何 将第三方资源文件和代码编译到系统内

在定制系统开发中经常遇到需要将一下第三方资源或代码集成编译到系统固件包中,比如预装apk、预置特定目录文件、开源项目代码或者自己新建的项目代码。

一、预装apk

  • 在 device/rockchip/CPU_TYPE/PRODUCT_TYPE/ 目录下新建一个 preinstall_del 目录(可以卸载,恢复出厂操作后能恢复)

  • 在 device/rockchip/CPU_TYPE/PRODUCT_TYPE/ 目录下新建一个 preinstall_del_forever 目录(可以彻底卸载,恢复出厂操作后无法恢复)

  • 在 device/rockchip/CPU_TYPE/PRODUCT_TYPE/ 目录下新建一个 preinstall 目录(不可卸载)

  • 把 apk 拷贝到 device/rockchip/CPU_TYPE/PRODUCT_TYPE/preinstall*相应 目录下

  • 编译 android

二、预添加自定义目录和文件

比如想把一些依赖资源放到system/media目录下,参照下述方式:

1.在device/rockchip/common/目录下新建自定义目录media,将需要预加的文件放入该目录

2.device/rockchip/CPU_TYPE/device.mk中添加编译拷贝指令,将文件拷贝到system/media

3.完整编译img包

例如:device/rockchip/r356x/device.mk中添加

PRODUCT_COPY_FILES += \
    device/rockchip/common/media/system/fonts/jlink.ttf:system/fonts/jlink.ttf \
    device/rockchip/common/media/system/media/battery.txt:system/media/battery.txt

三、编译新增的项目代码到系统img中

1.编辑项目Android.mk为系统文件,比如系统apk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#使用系统签名
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res

# 此apk 限制为32 bit
LOCAL_MULTILIB := 32
LOCAL_MODULE_TARGET_ARCH := arm
APP_ABI := armeabi-v7a arm64-v8a armeabi

LOCAL_PREBUILT_JNI_LIBS := \
         lib/armeabi-v7a/lib***jni.so \
         lib/armeabi-v7a/lib***.so 

LOCAL_SDK_VERSION := current
LOCAL_MIN_SDK_VERSION := 21
LOCAL_PROGUARD_ENABLED:= disabled
LOCAL_DEX_PREOPT := false
LOCAL_PACKAGE_NAME := Launcher
include $(BUILD_PACKAGE)

2.device/rockchip/CPU_TYPE/device.mk中添加编译打包指令

#添加源代码编译最终结果文件的名称
PRODUCT_PACKAGES += \
    Launcher

3.完整编译img包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值