ubuntu编译Android源码填坑记

前言

13年的时候做过一年Android rom开发,不过当时在公司的ubuntu开发环境都是老员工搭建好的,repo Android源代码,编译都很顺畅没有遇到什么问题。很早之前的一个周末闲来无事用windows台式机装了ubuntu,准备再编译一次Android6.0源代码。不料真是一路的坑,故有这篇填坑记给大伙参考。

开始

电脑配置:海尔 i5 8G内存,GTX750单显
系统:win7 + ubuntu 16.04 双系统
流程参考:https://source.android.com/source/downloading#using-authentication

  1. win7装ubuntu16.04就不顺利,偶尔进入ubuntu直接黑屏。
    解决办法:网上都说显卡的问题,应该进入bios禁用双显卡,这个一般都是针对笔记本。我的是台式机,启动双系统时迅速选择ubuntu可以进入,进去后软件更新》附加驱动》选择显卡驱动,比如我的是nvidia选择这个:


    image.png
  2. repo sync同步代码出错: error: Exited sync due to fetch errors
    由于我是用ss搭建了完美的翻墙网络,google什么的毫无鸭梨,直接用官方地址拉取代码:

repo init -u https://android.googlesource.com/a/platform/manifest
repo sync

报错:error: Exited sync due to fetch errors
google官网给出解决办法:


image.png

点击 密码生成器,进入:


image.png

按照他的提示执行以下命令,然后重新执行同步代码,一切OK然后是漫长的等待。

大概需要30小时左右,13G的源代码就下载下来了。如果你不具备翻墙环境可以用一些国内的代理仓库,效果我就不清楚了。

  1. 执行make命令编译源代码,报错:error: unsupported reloc 43
//开启8条线程编译源代码
make -j8

这个是ubuntu 16.04编译Android源码的bug,编译之前我们应改一个配置:

在android源码文件下art/build/Android.common_build.mk这个文件中找到

# Host.
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
  # By default, host builds use clang for better warnings.
   ART_HOST_CLANG := true
endif

后面两个true改为false,这个设置对Android5.0和5.1无效还是编不过,对6.0可以,其他版本未做测试。so建议装ubuntu 14.04

不限于这个报错,很多其他报错你也可以尝试这个修改。

  1. 路径错误,把源码路径修改为英文即可。

  2. 报错:Cannot launch Jack Server
    解决办法:把$HOME/.jack中的配置文件中的SERVER=true设成false,不用jack

可能还有其他一些我记录下来,只能靠不断google不断找答案尝试。请记住每次报错导致编译停止,重新开始前执行下clean:

make clean

最后大概需要3-4小时左右,make成功执行然后在这个目录:
./out/target/product/generic 生成4个img文件代表编译sucsess:
-system system.img
-data userdata.img
-ramdisk ramdisk.img

  1. 安装genymotion后一直连不上adb
    解决办法:进入genymotion发开调试开关,在型号选择界面settings 》adb 中配置SDK路径,重启genymotion

  2. 执行adb指令提示 ADB server didn't ACK, 5037端口被占用
    解决办法: 有两个原因,一是其他软件占用5037端口,二是重复安装了adb组件

第一步,netstat -ap | grep 5037 查找哪些进程占用了5037端口

第二步,cd proc/ 接着执行:ls -ail 这个里面存放所有进程,进程PID为文件夹名称

第三步,根据第一步占用PID 查找对应进程文件路径,exe 表示路径

第四步,kill pid 杀掉可疑进程,重新设置sdk环境,重启adb

  1. 准备导入源码到android studio前执行: mmm development/tools/idegen/ 报错 /bin/bash: jar: 未找到命令
    解决办法:在编译android环境时,java -version 命令明明能够正确表示java已经安装成功,环境设置正确。但是,在编译android时,检查java版本却通不过去:提示/bin/bash: java: command not found 问题,
    重装jdk几次仍是出现这种问题,没办法只好做个软链接了。
sudo ln -s /jdk1.6.0_21/bin/jar /bin/jar
sudo ln -s /jdk1.6.0_21/bin/java /bin/java
sudo ln -s /jdk1.6.0_21/bin/javac /bin/javac
sudo ln -s /jdk1.6.0_21/bin/javah /bin/javah
sudo ln -s /jdk1.6.0_21/bin/javadoc /bin/javadoc

后记

由于台式机ubuntu太卡了,打算把源代码copy到mac mini上,不了中途移动硬盘卡死导致部分文件丢失,不过还好frameworks和packages都是完整考过来了:


image.png

刚已经把源码的关键部分上传到网盘,有需要的朋友自取:

frameworks(Android核心代码):
链接:https://pan.baidu.com/s/1nwyOmJB 密码:huxw
packages (Android 内置app,系统servcie,provider等):
链接:https://pan.baidu.com/s/1kWVwtqn 密码:hh2c

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容