记录一下如何将不带源码的apk,预置到系统ROM,预置到system/app/目录 (不可卸载)
1. 在packages/apps下面以需要预置的 APK 名字创建文件夹,以预置一个名为HelloWorld的APK为例
2. 将HelloWorld.apk放到packages/apps/HelloWorld下面
3. 在packages/apps/HelloWorld下面创建文件Android.mk,文件内容如下:
#此变量指示源文件在开发树中所处的位置。 在这里,构建系统提供的宏函数 my-dir 将返回当前目录(Android.mk 文件本身所在的目录)的路径。
LOCAL_PATH := $(call my-dir)
#由构建系统提供, CLEAR_VARS 变量指向一个特殊的 GNU Makefile,后者会清除许多 LOCAL_XXX 变量,GNU Makefile 不会清除 LOCAL_PATH
include $(CLEAR_VARS)
# Module name should match apk name to be installed
# 存储您要构建的模块的名称,每个模块名称必须唯一,且不含任何空格.如果未设置,则默认使用LOCAL_PACKAGE_NAME
LOCAL_MODULE := HelloWorld
LOCAL_MODULE_TAGS := optional # 指定在什么版本下才会编译该模块,可能是eng、user、debug、development、optional。其中,optional是默认标签,指该模块在所有版本下都编译。
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk # 源文件列表
LOCAL_MODULE_CLASS := APPS # 标识所编译模块放置的位置, APPS表示放置在/system/app目录下。
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
4. 打开文件/android_build/device/fsl/imx8m/evk_8mq$ vim evk_8mq.mk ,(因为我用的是nxp的imx8,evk_8mq的开发板,所以选择这个)将HelloWorld添加到PRODUCT_PACKAGES里面
PRODUCT_PACKAGES += HelloWorld
5.
重新build整个工程
6. 将编译后的镜像,刷入即可
Android.mk中那些编译参数总结:
https://www.jianshu.com/p/aaf44b513c63
来源:CSDN
作者:qiaoxu_126
链接:https://blog.csdn.net/qiaoxu_126/article/details/104053303