Android 13自定义添加模块文件编译到img镜像中

前言全局说明


一、说明

1.1 环境:

Android 13

1.2 约定

$Android #代表Android源码根目录,就是有 build、system、vendor 那些目录的同级目录。


二、新建模块

2.1 新建模块文件夹

在 $Android 安卓根目录建立你想要的目录,这里以 custom_files 名字为例,文件夹名根据项目需要修改

cd $Android/
mkdir custom_files

2.2 创建 Android.mk 文件

编译时,会自动查找目录里 Android.mk 文件去编译,所以 Android.mk 文件名是固定的,不能用其他名字,如果有其他.mk需要编译,把.mk 添加到 Android.mk 文件中即可

cd $Android/custom_files/
touch Android.mk

2.3 添加内容到 Android.mk 文件

这里以增加一个 .txt 后缀文件到镜像为例

# 定义一个新的模块
include $(CLEAR_VARS)
LOCAL_MODULE := custom_files_module
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_PATH)/custom_files/
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_SUFFIX := .txt
include $(BUILD_PREBUILT)

LOCAL_SRC_FILES 指定了自定义文件所在的路径,
LOCAL_MODULE_SUFFIX 指定了自定义文件的后缀名。

更多变量说明:https://www.cnblogs.com/wutou/p/18631123


三、编译

3.1 生效编译环境

cd $Android/
source build/envsetup.sh

3.2 选择对应设备

lunch

根据提示选择你设备项

3.2 编译

make
make -j6
make -j$(nproc)

请确保当前路径位于 Android 项目的根目录下。如果首次编译,根据机器配置不同,可能需要几个小时。
-j后面是线程数,越多越多快,但最大数字和CPU内核数有关系
$(nproc) 是自定获取内核数量


四、编译完成

4.1 编译成功后,会自动放到 下面路径

out/target/product/<device>/system/etc/custom_file.txt

请将 <device> 替换为你的设备名称。就是lunch 选择数字时对应的字符。

以上是自动放置过程,也可以直接将文件放到 out/target/product/<device>/system/ 目录下,但是如果执行 make clean 后,放入文件就会被清理,下次还要手动放入


五、打包到 img 镜像文件中

将 out/target/product/<device>/system 的system目录内容打包到 system.img 文件中

make snod

有时make后,out/target/product/generic/system/没有需要添加文件,此时再make一次即可,速度很快



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://blog.51cto.com/u_16175458/6945803
https://blog.csdn.net/whbsdu/article/details/8083610
https://blog.csdn.net/sunsonfly/article/details/13502993
https://blog.csdn.net/zrf1335348191/article/details/54907228
https://cloud.tencent.com/developer/article/1028795



posted @   悟透  阅读(101)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示