【Android】MTK Android 编译命令
命令格式:./maketek [option] [project] [action] [modules]
Option:
-t ,-tee :输出log信息到当前终端
-o , -opt=…… : 编译附加条件,一般使用-opt=TARGET_BUILD_VARIANT=user来编译用户板软件
-h ,help : 打印帮助信息并退出
Project : 工程名,例如:basicom72_wet_jb3
Action :
n , new : 重新编译整个工程
c , clean:清理编译时copy的文件及log信息
r , remake:整个工程检查修改部分并编译
listp , listproject: 查看目前所有的project
codegen : 生成database
nandgen : 生成nand_device_list.h (仅限使用nand flash 时使用)
check-env : 检查编译环境是否OK
check-dep :检查功能依赖性
check-modem :检查modem
update-modem :更新最新的modem.img 到system.img
mm : 用来编译APK模块,如:./mk mm package/apps/deskclok
emigen : 生成flash相关文件(custom_emi.c/.h)
modules:
编译模块:preloader , uboot ,kernel , android
简写:pl , ub , k , dr
其他常用命令:
./mk $project new 首次编译需要写出工程名称,后续可以省略
./mk $project r(n) pl(/ub/k/dr) remake or new 单个模块,如:./mk r ub 编译kernel时,需同时做打包到bootimage 操作,原因是kernel部分是最终打包到bootimage 里面,然后烧录进flash的
./mk bootimage/snod/systemimage 打包模块
./mk otapackage 编译制作SD卡系统升级包,生成的zip包在out/target/product/project/目录下
./mk banyan_addon 编译MTK sdk 包
模块修改及对应的编译命令:
修改DWS 后,首先gencode 或者通过命令./mk drvgen 使其生成相应的.h/.c文件,这个文件会被preloader uboot kernel 调用,因此需要new preloader uboot kernel 而kernel 还需进一步./mk bootimage 打包
Preloader 快速编译:
修改以下目录或文件需要 ./mk r(n) pl
Mediatek/platform/$platform/preloader/…
Mediatek/custom/$platform/preloader/…
Mediatek/custom/common/preloader/…
Mediatek/custom/$project/preloader/…
Mediatek/custom/$project/common/下的头文件
Mediatek/custom/$project/kernel/dct/下的头文件(cust_kpd.h,cust_gpio_usage.h)
Uboot 快速编译:
修改以下文件或目录需要./mk r(n) ub
Bootable/bootloader/uboot/…
Mediatek/platform/$platform/uboot/…
Mediatek/custom/$platform/ uboot /…
Mediatek/custom/common/ uboot /…
Mediatek/custom/$project/ uboot /…
Mediatek/custom/$project/common/下的头文件
Mediatek/custom/$project/kernel/dct/下的头文件(cust_kpd.h,cust_gpio_usage.h)
Mediatek/custom/common/kernel/lcm/inc/lcm_drv.h
Mediatek/custom/common/kernel/leds/inc/cust_leds.h
Kernel 快速编译:
修改以下文件或者目录需要./mk r(n) k 然后执行./mk bootimage打包成boot.img
Kernel/…
Mediatek/platform/$platform/kernel/…
Mediatek/source/kernel/…
Mediatek/custom/$platform/kernel/,.,,
Mediatek/custom/common/kernel/…
Mediatek/custom/$project/kernel/…
Mediatek/custom/$project/common/下的头文件
Mediatek/custom/common/hal/下的头文件
Mediatek/custom/$project/hal/下的头文件
./mk bootimage
打包生成$PRODUCT_OUT/boot.img
打包生成$PRODUCT_OUT/ramdisk.img
./mk recoveryimage
根据依赖会先生成boot.img
打包生成$PRODUCT_OUT/recovery.img
./mk snod/systemimage-nodeps
打包生成$PRODUCT_OUT/system.img 但不检查任何依赖性
./mk systemimage
打包生成$PRODUCT_OUT/system.img 检查任何依赖性
./mk cacheimage
打包生成$PRODUCT_OUT/cache.img
./mk userdataimage
打包生成$PRODUCT_OUT/userdata.img
./mk secroimage
打包生成$PRODUCT_OUT/secro.img
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】