站在巨人的肩膀上,在网上参考了很多资料也尝试了不同的方法,不否认别人的不行,适合自己的才是最好的。
系统 anroid 7.1.2
以下预置app是本人验证通过的方案。
1、在packages/apps目录下创建要预置的app目录,例如xpcd,如下图
2、将要预置的apk文件上传到xpcd目录下,我用的是本地虚拟机,使用scp + apk本机路径 + xpcd所在的目录,例如
3、在xpcd目录下创建Anndroid.mk文件,文件的内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := xpcd
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#禁止ODEX优化,如果不禁止的话在编译的时候会出错
LOCAL_DEX_PREOPT := false
#以下就是app支持的架构
LOCAL_PREBUILT_JNI_LIBS := \
@lib/arm64-v8a/libctk.so \
@lib/arm64-v8a/libhixpcd.so \
@lib/arm64-v8a/liblogging.so \
@lib/arm64-v8a/libnng.so \
@lib/arm64-v8a/libnative-lib.so \
@lib/arm64-v8a/libjson.so
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
我预置的app只支持arm64-v8a架构,所以只引用了arm64-v8a的so,app工程目录如下
4、最终要预置的app的目录结构如下
5、修改build/target/product/core.mk
至此预置app已完成,下面可以make systemimage 编译、烧录验证一下效果。
如果此篇文章有幸能帮到你,我倍感荣幸。