首页 > 其他分享 >Android 13自定义添加模块文件编译到img镜像中

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

时间:2024-12-29 14:22:35浏览次数:1  
标签:13 自定义 img make system mk 编译 Android LOCAL

前言全局说明


一、说明

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



标签:13,自定义,img,make,system,mk,编译,Android,LOCAL
From: https://www.cnblogs.com/wutou/p/18638667

相关文章

  • # 2024-2025-1 20241328《计算机基础与程序设计》第十四周学习总结
    2024-2025-120241318《计算机基础与程序设计》第十四周学习总结作业信息|作业课程|2024-2025-1-计算机基础与程序设计||作业要求|2024-2025-1计算机基础与程序设计第十四周作业|教材学习内容总结第13章文件操作1.文件的基本概念文件是持久化存储数据的单位。文件分为......
  • 代码随想录——动态规划13.分割等和子集
    思路难点我只想到了:“找一个子集,每个数取或不取求其和,看是否和另一个子集的和相等”但是实际上既然是两个子集相等,那么只要和等于sum/2即可了!取或不取用01背包,但是不知道怎么用。只有确定了如下四点,才能把01背包问题套到本题上来。背包的体积为sum/2背包要放入的商......
  • 2024-2025-1 学号20241315《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标<写上具体方面>《C语言程序设计》第13-14章并完成云班课测试作业正文https://www.cnbl......
  • 2024-2025-1 20241308《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程 2024-2025-1计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标 学习二进制文件和文本文件,文件的打开和关闭,顺序读写与随机读写,标准输入和输出及其重定向作业正文教材学习内容总结1.学习二进......
  • 自定义GatewayFilter
    自定义GatewayFilter的方式1、继承AbstractGatewayfilterfactory,自行提供承载配置的类以及配置加载后和配置字段对应的问题【参考自定义断言工厂实现】2、继承AbstractNameValueGatewayfilterFactory,针对Name-Value结构的配置处理默认处理好了,拿来即用通过实现GatewayFilterFa......
  • 2024-2025-1 20241307《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里([2024-2025-1计算机基础与程序设计第十四周作业]这个作业的目标作业正文(2024-2025-1学号20241307《计算机基础与程序设计》第十四周学习总结)教材学习内容总结C语言程序......
  • vue自定义标签模板
    resume-template参考博客https://blog.csdn.net/yangyiboshigou/article/details/72239844参考代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><titl......
  • 2024-2025-1 20241413 《计算机基础与程序设计》第十四周学习总结
    |班级链接|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP||作业要求|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14|教材学习内容总结《c语言程序设计>第十三,十四章第13章:文件操作文件的概念:介绍文件的基本概念,包括文件的分类(文本文件和二进制文件)以及文......
  • 自定义Menu组件
    自定义Menu组件第一步:定义propsMenuProps接口定义了Menu组件接收的props,包括默认高亮项、样式、模式、选择项的回调函数和子组件。exportinterfaceMenuProps{defaultIndex?:number;//高亮className?:string;mode:MenuMode;//纵向横向s......
  • [4427] 13 缓存优化:那些基于缓存的优化方案
    上节课的思考题是Webpack4中TreeShaking的触发条件有哪些?我们一起来回忆一下,要让引入的模块支持TreeShaking,一般有4点需要注意:引入的模块需要是ES6类型的,CommonJS类型的则不支持。引入方式不能使用default。引用第三方依赖包的情况下,对应的package.json......