编译Android源代码
硬盘空间需要在50G以上,最好100g
系统:ubuntu14.04
交叉工具链:arm-linux-gcc-4.5.1-v6-vfp-20120301
安装 Java 开发环境
$ sudo apt-get install openjdk--jdk openjdk--jre
首先准备android-5.0.2-fs-20150325.tar.gz 文件
解压
$ tar xzf android-5.0.-fs-.tar.gz
在 Ubuntu 下的解压内核并编译,命令为:
$ tar xzf linux-3.0.-.tgz
$ cd linux-3.0./
$ cp tiny4412_android_defconfig .config
$ make zImage
产生zImage文件在/arch/arm/boot目录下
编译 Android 系统
进入上述解压得到的 android-5.0.2, 执行以下命令(注意: “.”号后有一个空格):
$ . setenv
再执行“lunch”命令, 输入“full_tiny4412-eng”前的数字标号, 如下所示:
$ lunch
You're building on Linux
Lunch menu... pick a combo:
. aosp_arm-eng
. aosp_arm64-eng
. aosp_mips-eng
. aosp_mips64-eng
. aosp_x86-eng
. aosp_x86_64-eng
. full_tiny4412-userdebug
. full_tiny4412-eng
. aosp_mako-userdebug
. aosp_hammerhead-userdebug
. aosp_tilapia-userdebug
. aosp_grouper-userdebug
. aosp_deb-userdebug
. full_fugu-userdebug
. aosp_fugu-userdebug
. aosp_flo-userdebug
. aosp_shamu-userdebug
. aosp_manta-userdebug
. mini_emulator_mips-userdebug
. mini_emulator_x86_64-userdebug
. mini_emulator_arm64-userdebug
. m_e_arm-userdebug
. mini_emulator_x86-userdebug
Which would you like? [aosp_arm-eng]
接着执行“make”命令开始编译,也可以在 make 后加上“-j”参数利用 CPU 的多核加快编译
速度,比如在 4 核 CPU 上可以执行“make –j4”。
注意: 编译过程可能持续 4、 5 个小时。
最后,执行以下命令生成映象文件:
$./gen-img.sh
注意: 如果提示如下错误,要先编译 u-boot 以得到 mkimage 工具, 方法见后。
./gen-img.sh: line 31: mkimage: command not found
编译 u-boot 以得到 mkimage 工具的方法:
$ tar xzf uboot_tiny4412-.tgz
$ cd uboot_tiny4412/
$ make tiny4412_config
$ make
$ sudo cp tools/mkimage /usr/bin/
uboot_tiny4412-20130729.tgz在uboot工具中 最终在android-5.0.2目录下产生 android studio工程索引文件 android.ipr android.iml
系统镜像文件 system.img ramdisk-u.img userdata.img userdata-4g.img userdata-8g.img userdata-16g.img
编译Android源代码的更多相关文章
- [转]编译Android源代码常见错误解决办法
1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when ...
- 【转】如何单独编译Android源代码中的模块--不错
原文网址:http://blog.csdn.net//article/details/6566662/ 第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命 ...
- 如何单独编译Android源代码中的模块
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...
- 编译Android源代码与内核总结
这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.and ...
- 【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码
下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...
- 下载 编译 Android源代码 和 Android kernel源代码
下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...
- Ubuntu 下编译Android 源代码
1.配置JDK 1.6 或者1.7(看情况配置,有的Android版本不能在1.7下运行) 2.配置环境:终端:(CTRL+ALT+T) $ sudo apt-get install git gnup ...
- Android源代码编译过程及指令
编译Android源代码分为两种情况: 1. 完整编译源码: ./mk_aliphone.sh --> 完整编译脚本 --> 6735 输入对应的编号 --> userdebug ...
- 在mac os下编译android -相关文章
1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...
随机推荐
- C常量与变量
/** * C中的常量与变量 * 常量的值在程序中是不可变化的,其在定义时必须给一个初始值 * 常量的定义方式: * 1.#define 定义宏常量 * 2.const 定义const常量 * 对于# ...
- WPF多线程更新UI的一个解决途径
那么该如何解决这一问题呢?通常的做法是把耗时的函数放在线程池执行,然后切回主线程更新UI显示.前面的updateTime函数改写如下: private async void updateTime() ...
- Flask-Login的实现
Flask-Login Flask-Login 为 Flask 提供用户 session 的管理机制.它可以处理 Login.Logout 和 session 等服务. 作用: 将用户的 id 储存在 ...
- SurfaceView的基本使用(转)
转自:https://www.cnblogs.com/zhangyingai/p/7087371.html SurfaceView的基本使用 一.引入: Android提供了View来进行绘图处理 ...
- wireshark简单的过滤条件
http://blog.csdn.net/blue_jjw/article/details/8467885 一.IP过滤:包括来源IP或者目标IP等于某个IP比如:ip.src addr==192.1 ...
- GitHub区域和工作流程
workspace:工作区 index:暂存区 repository:本地版本库 remote:远程仓库 首先到托管服务器上创建一个空版本库,例如在github.coding.oschina等 然后克 ...
- python plotly 使用教程
1.plotly介绍 lotly的Python图形库使互动的出版质量图表成为在线. 如何制作线图,散点图,面积图,条形图,误差线,箱形图,直方图,热图,子图,多轴,极坐标图和气泡图的示例. 推荐最好使 ...
- centos7 安装PHP5.3 报错undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
系统:centos 7 原有PHP版本:5.6.27,5.4.45 试着安装nginx+多php版本,首先安装了5.6和5.4的版本,一帆风顺,但是在安装5.3.29版本时,出现问题了,configu ...
- Oracle中start with...connect by (prior)子句的用法
connect by 是结构化查询中用到的,基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3; 例:select * ...
- es6 常用的语法
1.es6 模块化 你import 和 export export default 为默认到处,而export能导出多个方法或变量. 2. es6——class与普通构造函数的区别 class的继承方 ...