[TOC]
# 编译命令
~~~
/home/shrimp/fireprime/
$ sudo . build.sh
$ sudo make -j8
~~~
最后出现
~~~
#### make completed successfully (01:05:07 (hh:mm:ss)) ####
~~~
编译成功
# 目标构建模式
目标构建模式有三种,分别为用户模式user、用户调试模式userdebug和工程模式eng
>[info] 默认目标构建模式为 **userdebug**
* 用户模式user
* 仅安装标签为user的模块
* 设定属性 ro.secure=1,打开安全检查功能
* 设定属性 ro.debuggable=0,关闭应用调试功能
* 默认关闭 adb 功能
* 打开 Proguard 混淆器
* 打开 DEXPREOPT 预先编译优化
* 用户调试模式userdebug
* 安装标签为 user、debug 的模块
* 设定属性 ro.secure=1,打开安全检查功能
* 设定属性 ro.debuggable=1,启用应用调试功能
* 默认打开 adb 功能
* 打开 Proguard 混淆器
* 打开 DEXPREOPT 预先编译优化
* 工程模式eng
* 安装标签为 user、debug、eng 的模块
* 设定属性 ro.secure=0,关闭安全检查功能
* 设定属性 ro.debuggable=1,启用应用调试功能
* 设定属性 ro.kernel.android.checkjni=1,启用 JNI 调用检查
* 默认打开 adb 功能
* 关闭 Proguard 混淆器
* 关闭 DEXPREOPT 预先编译优化
# 指定目标构建模式
在`make`命令中加入参数
~~~
$ sudo make -j8 PRODUCT-rk312x-user
$ sudo make -j8 PRODUCT-rk312x-userdebug
$ sudo make -j8 PRODUCT-rk312x-eng
~~~
# 打包映像
~~~
$ sudo ./mkimage.sh
~~~
这将重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 `rockdev/Image-rk312x/` 中,包括了:
* boot.img :Android 的初始文件映像,负责初始化并加载 system 分区
* kernel.img :内核映像
* misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递
* recovery.img :急救模式映像
* resource.img :资源映像,内含开机图片和内核的设备树信息
* system.img :Android 的 system 分区映像,ext4 文件系统格式