Android 源码编译

潜水多年,一直在从别人那里获取经验,如今以为也应当分享分享了;android

今天终于本身亲手编译了一把(在公司,环境都已经配好了);git

 

-------------------------正文--------------------------------markdown

pre:oracle

系统:UBUNTU 14.0.4curl

64 位flex

Android 4.4.2ui

----url

1,源码资源被墙了。(抗X议), 建议不要去瞎折腾了,搜索一下,国内资源;我是从 百度网盘 上下载的。(抱歉地址未保存)es5

2,JDK 须要1.6 (oracle);  也是百度资源xml

3, 解压源码后:

1) cd  源码目录

1) . build/envXXX.sh  (按tab 键吧, 注意 点 后的 空格)

2) make :

4,此时通常都会报错; 根据错误提示处理错误吧;

1) 无写权限问题:直接给 源码目录 递归 增长权限吧;

2) 而后遇到一个 aidl_langugeXXX 问题:是一个 依赖程序没有安装;

sudo apt-get install flex

 

一些听说须要安装的包:

Gnupg
build-essentail
git [预安装,不知是否必须]
flex //[报错.并安装]
bison [预安装,不知是否必须]

gperf
zip[预安装,不知是否必须]

curl[预安装,不知是否必须]

sudo apt-get install libc6-dev-i386
sudo apt-get install g++-multilib
sudo apt-get install lib32z1-dev
xmllint //[报错,并安装]
pip install markdown;//[报错,并安装]

sudo apt-get install lib32ncurses5-dev
sudo apt-get install xsltproc //[报错,并安装]

sudo apt-get install libxml2-utils //[报错,并安装]

 

 

5, 而后就顺畅的跑完了。

 

---------------END-----------------

 

 

没什么技术含量。不过对于android 开发来讲 , 意义仍是比较重大的。

 

 

 

 

-------------------------STEP 2--------------------------

近期准备用本身编译的源码 来刷机。

发现编译后的代码中 缺乏:mkbootimg

1)直接尝试经过 mmm命令单独编译 android_source\system\core\mkbootimg\ 失败。

提示 no rule found : for : libmincrpt 相关;

2,尝试直接经过gcc 编译。

尝试将依赖文件,和 拷贝到编译文件地址, 并修改include 位置。【失败。 缘由: 编译这块比较菜】

搜索发现:

 

$ cd /path/to/android-src

$ cd system/core/libmincrypt/

$ gcc -c *.c -I../include

$ ar rcs libmincrypt.a  *.o

$ cd ../mkbootimg

$ gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a

$ gcc unpackbootimg.c -o unpackbootimg -I../include ../libmincrypt/libmincrypt.a

$ cd ../cpio

$ gcc mkbootfs.c  -o mkbootfs -I../include

 

根据上面,先将依赖 编译成 静态库后, 而后再来编译 mkboot img 。

编译成功。  

相关文章
相关标签/搜索