编译命令

/home/shrimp/fireprime/
$ sudo . build.sh
$ sudo make -j8

最后出现

#### make completed successfully (01:05:07 (hh:mm:ss)) ####

编译成功

目标构建模式

目标构建模式有三种,分别为用户模式user、用户调试模式userdebug和工程模式eng

默认目标构建模式为 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 文件系统格式