欧酷网

您的位置:主页>移动开发>

Android预置无源码的apk到系统ROM

记录一下如何将不带源码的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

 

  • 点赞

  • 收藏

  • 分享

  •    
    • 文章举报

qiaoxu_126

 
发布了5 篇原创文章 ·    获赞 0 ·    访问量 46  

私信

关注

相关文章推荐