4. Android 编译

4.1. 编译环境搭建

4.1.1. 准备工作

编译 Android 对机器的配置要求较高:

  • 64 位 CPU
  • 16GB 物理内存+交换内存
  • 300GB 空闲的磁盘空间

4.1.2. 编译环境安装

建议使用 Ubuntu 18.04 操作系统

  • 修改source 源文件
sudo vi /etc/apt/sources.list

添加以下内容

deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
  • buntu 14.04 软件包安装参考
sudo apt-get update
sudo apt-get install bison g++-multilib git
sudo apt-get install gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip build-essential
  • Ubuntu 16.04 或 18.04 软件包安装参考
sudo apt-get update
sudo apt-get install bison build-essential curl flex g++-multilib gcc-multilb \
gnupg gperf lib32z-dev lib32z1 libc6-dev-i386 libgl1-mesa-dev libncurses5 \
lib32ncurses5-dev libssl-dev libx11-dev libxml2-utils m4 unzip x11proto-core-dev \
xsltproc zip zlib1g-dev bsdmainutils cgpt libswitch-perl bc rsync xxd git-core \
parallel

由于每个人的PC系统版本和环境配置不一样,安装软件包后编译并不一定都会成功,可能会出现缺少某些软件包而引起的错误,此时根据报错信息去安装缺少的软件包即可。

4.2. 解压源代码

如果有源码,一般使用 cat MT67*** | tar -zxvf - 来解压源码

4.3. 编译方法

  • 首先,加载编译环境设置
source build/envsetup.sh
  • 其次,选择编译项目,下面其中的一个
51. full_k65v1_64_bsp-eng
52. full_k65v1_64_bsp-user
53. full_k65v1_64_bsp-userdebug

运行 lunch,输入 52,选择 full_k65v1_64_bsp-user 也可以选择 53,编译 usedebug 版本.

  • 编译 little kernel
make –j30 lk 2>&1 | tee build.log
  • 编译内核并生成 bootimage dtboimage
make –j30 bootimage dtboimage 2>&1 | tee build.log
  • 单独编译某个app或者module
mmm vendor/mediatek/proprietary/packages/apps/MtkSettings/
mmm vendor/mediatek/proprietary/external/libshowlogo/
  • 生成 recoveryimage
make –j30 recoveryimage 2>&1 | tee build.log
  • 完整编译整个工程
make –j30 2>&1 | tee build.log