Hardware: MTK6737

Android: 6.0(API 23)

Kernel: Linux 3.4.67

安装编译环境并编译

安装编译环境依赖包

2>ubuntu < 12.04

sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-4.4 g++-4.4 g++-4.4-multilib g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc wine

3>ubuntu = 14.04

sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib g++-4.8-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libc6-dev-i386 lib32z1 lib32ncurses5 lib32bz2-1.0 lib32readline-gplv2-dev wine

安装无问题

ubuntu = 16.04

sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib g++-4.8-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libc6-dev-i386 lib32z1 lib32ncurses5 lib32bz2-1.0 lib32readline-gplv2-dev wine

报错有如下无法定位:

libwxgtk2.8-dev mingw32

lib32bz2-1.0 lib32readline-gplv2-dev

在 Ubuntu16.04 中

libwxgtk2.8-dev 已经升级为 libwxgtk3.0-dev;

lib32bz2-1.0 已经升级为 libbz2-1.0:i386;

lib32readline-gplv2-dev 已经升级为 lib32readline6-dev;

所以:

sudo apt install libwxgtk3.0-dev lib32readline6-dev libbz2-1.0:i386

mingw32 需要在 sudo vi /etc/apt/sources.list添加源:

deb http://us.archive.ubuntu.com/ubuntu trusty main universe

之后如下即可

sudo apt update

sudo apt install mingw32

bootloader 和 kernel 编译

全编译:

cd runyee/scripts/

./auto.sh IoT_bd6737m_35g_b_m0_ry_smt_hd720_pcb_v1 v00 eng

了解到现在我们的模块 lunch 的是 bd6737m_35g_b_m0 这个 project

模块编译:

首先通过 get_build_var 获得 project name:

get_build_var TARGET_DEVICE

op_project_name

get_build_var TARGET_BUILD_VARIANT

eng

分模块编译的时候可以传入

preloader:

1. 单独编译

make -j4 pl 2>&1 | tee pl_build.log

会生成 bootable/bootloader/preloader/bin

build 脚本编译:

cd bootable/bootloader/preloader

TARGET_PRODUCT=$op_project_name ./build.sh 2>&1 | tee preloader_build.log

lk:

make -j4 lk 2>&1 | tee lk_build.log

会生成 bootable/bootloader/lk/build-xx

Kernel:

1. 单独编译

cd kernel-3.18

mkdir out

make -j4 O=out 2>&1 | tee kernel_build.log

会生成 kernel-3.18/out/arch/arm64/boot/Image.gz-dtb

build 脚本编译

make -j8 n k && make -j8 r bootimage

clean:

# Clean ALL

make clean

# Clean PL

make clean-pl

# Clean lk

make clean-lk

# Clean kernel

make clean-kernel

Android 编译

# 1. 环境变量

source build/envsetup.sh

# 2. 选择工程

lunch full_bd6737m_35g_b_m0-eng

# 3. MTK 环境变量

source mbldev.sh

# 4. 编译

make -j4 2 > &1 | tee mtk_build.log

打包

# pack boot image

make -j4 bootimage

# pack system image 根据依赖规则重新生成所有要打包的文件

make -j4 systemimage

# pack system image 快速打包 system image

# (如果所修改模块与其他模块没有依赖关系,直接 build 对应模块并用 snod 命令打包)

make -j4 snod

# pack ota image

make -j4 otapackage

硬件参数

MTK6737

4 x 1.3GHz 28nm

LTE supported

GPU: MailT720

Check SDK Version

vi build/core/version_defaults.mk

PLATFORM_VERSION := 6.0

PLATFORM_SDK_VERSION := 23 #Android6.0

vi kernel/Makefile

VERSION = 3

PATCHLEVEL = 18

SUBLEVEL = 19

编译中碰到的问题

clang 问题

clang: error: linker command failed with exit code 1 (use -v to see invocation)

build/core/host_shared_library_internal.mk:51: recipe for target 'out/host/linux-x86/obj/lib/libart.so' f

ailed

make: *** [out/host/linux-x86/obj/lib/libart.so] Error 1

解决方法:

代码 art/build/Android.common_build.mk 中

# By default, host builds use clang for better warnings.

-- ART_HOST_CLANG := true

++ ART_HOST_CLANG := false

STATIC_LIBRARIES SHARED_LIBRARIES 类型的问题

比如下面这些

make: *** No rule to make target 'out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.halmemory_intermediates/export_includes', needed by 'out/target/product/bd6737m_35g_b_m0/obj/SHARED_LIBRARIES/libcam_platform_intermediates/import_includes'。 停止。

make: *** 正在等待未完成的任务....

target thumb C++: libcam.device3.base <= vendor/mediatek/proprietary/hardware/mtkcam/legacy/v3/device/Cam3DeviceFactory.cpp

make: *** No rule to make target 'out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.halmemory_intermediates/export_includes', needed by 'out/target/product/bd6737m_35g_b_m0/obj/SHARED_LIBRARIES/libcam_platform_intermediates/import_includes'。 停止。

make: *** 正在等待未完成的任务....

target StaticLib: libcam.device3.base (out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.device3.base_intermediates/libcam.device3.base.a)

可以参考 安装编译环境依赖包 进行安装必要的包

烧录

mtk编译android,[Android6.0][MTK6737] MTK 编译环境搭建相关推荐

  1. [Android6.0][MTK6737] MTK 编译环境搭建

    Hardware: MTK6737 Android: 6.0(API 23) Kernel: Linux 3.4.67 安装编译环境并编译 安装编译环境依赖包 bootloader 和 kernel ...

  2. 16.04编译android 7.0,ubuntu16.04 编译Android5.1报错

    hi kylin team, 我使用 ubuntu16.04 构建 android 编译环境后编译 android5.1 时出现如下报错.请向开发团队反馈看能否给出解决方案,谢谢! 当我使用 ubun ...

  3. Ubuntu 16.04 编译Android 6.0系统源码

    准备环境 1.安装open-jdk7 [使用open-jdk8会报错],原因是: 在build/core/main.mk中默认指定的是jdk1.7 # Check for the correct ve ...

  4. 团队环境搭建:MTK平台,Android 9.0内销TV编译服务器配置

    团队环境搭建:MTK平台,Android 9.0内销TV编译环境配置 文章目录 团队环境搭建:MTK平台,Android 9.0内销TV编译环境配置 一.前言 二.硬件环境要求 四 .替国内换源:so ...

  5. Ubuntu16.04编译Android 6.0系统源码过程简要记录总结

    一,安装VMware Workstation,百度网盘下载(内含注册机) 链接: https://pan.baidu.com/s/1wz4hdNQBikTvyUMNokSVYg 提取码: yed7 V ...

  6. [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟 ...

  7. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  8. 全志 H6 Orange Pi Lite 2 Android 7.0 源码编译

    编译环境 Ubuntu-18.04.1 16GB RAM 下载源码 目前所用的源码版本为H6-2018-1-2,大家可以到香橙派官网下载,顺便记录下这个源码编译所遇到的一些坑. 下载源码所得的目录 l ...

  9. Android 8.0 odex预编译与空间占用相关设置探究

    目录 Android 8.0 odex预编译与空间占用相关设置探究 1.引言 2.odex全局设置 3.APK设置 Android 8.0 odex预编译与空间占用相关设置探究 1.引言 所谓Odex ...

  10. 输入法智能联想 Java_[Android6.0][MTK6737] 修改默认输入法为 Sogou

    title: [Android6.0][MTK6737] 修改默认输入法为 Sogou tags: grammar_cjkRuby: true Hardware:MT6737 DeviceOS:And ...

最新文章

  1. 微信小程序之 SideBar(侧栏分类)
  2. [转载]如何判断js中的数据类型
  3. 怎么创建python django项目_创建Django项目图文实例详解
  4. css如何将元素水平居中
  5. MFC开发IM-第七篇、mfc设置默认编辑框内容
  6. python数据符号函数等一切皆对象_第一章:Python高级编程-Python一切皆对象
  7. day16 Python 类的继承关系
  8. android apk 对应目录,android 如何预置APK到 data 和system/app目录
  9. 树莓派十周年,回顾它的发展历程
  10. 小白如何连续两年美赛斩获M奖
  11. 通达信版弘历软件指标_背离王 通达信副图源码 为弘历软件破释公式
  12. 盘点wps函数公式大全
  13. 我国期货市场发展潜力和方向
  14. 【U8+】U8+自动备份不成功BackupDB日志中显示“数据源.未找到”
  15. pycharm-03-工程结构
  16. 个人总结-网络安全学习和CTF必不可少的一些网站
  17. Base64(本地存储加密解密)
  18. 一名程序员心态的重要性
  19. 天载配资总结指数很健康,现在新高
  20. 机器学习 day3 决策树算法

热门文章

  1. MySQL5.7.xx安装卡在Staring the server解决方案--亲测有效
  2. 世硕电子发放员工证件随手扔地上,其实是一种服从性测试
  3. SpringBoot入门(四)Service、Dao
  4. Navigator的正确打开方式
  5. navigator 导航标签
  6. 使用golang链接达梦数据库
  7. 这有几个常见的电脑故障解决方法,需要的朋友快来
  8. java获取时分秒毫秒_Calendar获取年月日时分秒毫秒
  9. Golang ToLower和ToLowerSpecial源码探究
  10. Java 知识点总结笔记(篇1)