单独写号的AP文件存放路径,有时客户刷机需要单独写IMEI号就需要用到此文件
alps\out\target\product\projectname\obj\ETC\apdb_intermediates\APDB_MTxxxx_S01__Wxxxx
检查安装环境:
在终端执行指令,切换到MTK Android根目录,执行 ./mk check-env
提示
**********checking Env************
Your building environment is OK
The detail information is in "checkenv.log"!
*************************************************
在终端执行 ./mk 工程名 new
如何编译自己修改的源码模块
1).build/envsetup.sh //进入源码目录,执行源码build目录下的envsetup.sh脚本,使mmm命令有效(此命令要在源码根目录下运行,用来对单个源码模块进行编译)
2)mmm packages/apps/Launcher2/ //编译单个源码模块(目录下要有Android.mk才好编
make -j8 2>&1 | tee -a build-log.txt 全编并打印log
./mk project_name new 2>&1 | tee -a build-log.txt
./mk project_name r 2>&1 | tee -a build-log.txt
make -j8 kernel 2>&1 | tee build-log.txt 单编kernel
如果白天工作下载或是编译代码太浪费时间可以,将任何放在指定时间执行命令自动编译:
sleep 7h && make -j8 2>&1 |tee build-log.txt
在aosp/out/target/common/obj/APPS/DreamCamera2_intermediates/src/R.stamp 每一个项目的资源文件编译后的生成的R文件位置
如果 frameworks/base/services 下有修改,则也要编译
frameworks/base/services/java/ 执行mm 编译 services.jar
或./mk mm frameworks/base/services/java
在Android8.0以上平台的每一个模块都会有TEST项目,如果仍用mmm单编模块,是编不成功的,需指明不编译模块下的TEST项目
mmm frameworks/base/packages/SystemUI:SystemUI
准备好编译环境后,编译Android源码的第一步是 source build/envsetup.sh
,其中source命令就是用于运行shell脚本命令,功能等价于”.”,因此该命令也等价于.build/envsetup.sh
。在文件envsetup.sh
声明了当前会话终端可用的命令,这里需要注意的是当前会话终端,也就意味着每次新打开一个终端都必须再一次执行这些指令。起初并不理解为什么新开的终端不能直接执行make指令,到这里总算明白了。
接下来,解释一下本文开头的引用的命令:
source build/envsetup.sh //初始化编译环境,包括后面的lunch和make指令
lunch //指定此次编译的目标设备以及编译类型
make -j12 //开始编译,默认为编译整个系统,其中-j12代表的是编译的job数量为12。