Ubuntu14.04 64位下载编译Android源码,刷机Nexus5

安装Ubuntu

  • 不好意思,自行百度.- 反正最好分个 180G,然后内存起码 4G

配置环境 下载源码

  • 一般默认 python 版本是 2.x的,所以3.x是会报错
  • Android6的话 ,直接安装openjdk7
  • 其他的话,查看下下面的编译环境配置和编译要求。
    • 先终端输入 java -version
      • 有的话,它会告诉你是哪个版本
      • 没有的话,它会提示你安装指令,照抄呗
      • sudo apt-get install openjdk-7-jdk
    • 配置一下 JAVA_HOME
      • echo $JAVA_HOME
      • 没有输出的话 - 设置呗
    • echo export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/">> ~/.bashrc
    • 重启一下终端设置
    • source ~/.bashrc
    • 输入$JAVA_HOME 看下是不是有输出
  • git
    • sudo apt-get install git
    • git config --global user.name "Github的名字"
    • git config --global user.email "Github的Email"

  • 初始化源码环境

  • 首先下载 repo 工具

        mkdir ~/bin
        PATH=~/bin:$PATH
        curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
        如果上述 URL 不可访问,可以用下面的:
        curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
        chmod a+x ~/bin/repo
    
  • 然后建立一个工作目录(名字任意)

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  • 初始化仓库

    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
    如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
     REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
    
  • 如果需要某个特定的 Android 版本 (Android 版本列表):

    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1(比如4.0)
    
  • 同步源码树(以后只需执行这条命令来同步):

    repo sync
    

  • 初始化同步方法2

    • 注意,因为是要编译指定的源码,所以记得加上Android版本分支
    • Android版本分支
  • 版本分支很重要,别忘了!!!

    • 实在不行,你就把源码目录写成分支名字,因为你要根据这个 分支名字 获取 细分版本号
    • 根据 细分版本号 才能下载到对应的驱动文件
      1529397036(1).jpg
  • 啥?不想,那当我没说过!

  • 这时候,聪明可爱的你肯定已经在开始同步了。

  • 下载驱动!!! 没有这个你是没法开机的,会一直在 Google 这个logo无法开机。

  • 找到你 对应的手机机型,根据上面的 细分版本号 下载驱动 - 两个或者三个,都下载下来。

    1529397122(1).jpg

编译

  • 这时候你已经下载完了把,把刚刚下载的驱动解压到源码目录下

  • 会是多个.sh文件 像这样

    • extract-lge-hammerhead.sh
    • extract-broadcom-hammerhead.sh
    • extract-qcom-hammerhead.sh
  • 源码目录下执行 .sh 文件。

  • 像这样 ./extract-lge-hammerhead.sh

    • 然后就出现一堆英文,不要管它。直接 按Enter一路向下,直到你看到第8条,然后注意 继续Enter,最后会有一个什么什么的,需要你输入 I ACCEPT,一定要全部大写,不然再执行一边呗。
  • 三个都要这样操作 - 这时候,源码路径下就会有一个 vendor 的文件夹- 然后开始编译了 ,假设你环境配置正确。没配置正确?那就慢慢编译呗,再挨个看报错修改东西呗。

  • Linux编译环境配置

  • 编译要求

    • 这里会告诉你哪个Android版本需要哪个jdk版本 - 在Ubuntu 14.04 64位的基础上,编译4.4和6.0实际上只是一个使用jdk6一个使用openjdk7的区别。起码在我自己编译的时候是这样子
    • 还有就是如果开始编译6.0 使用的 apt-get install openjdk7,后面你又打算编译4.4。那么在你安装jdk1.6.0_xxx.bin的时候,记得apt-get remove openjdk-7-jre 什么的,有三个反正不知道啥你就 tab 键,否则 jdk-version 一直是1.7,就算你修改了 /erc/profile 还是 ~/.bashrc 官方说是Android7-8使用openjdk8,5-6使用openjdk7,2.3-4.4使用jdk6 - 编译前配置
    • 在 .bashrc文件中添加:export USE_CCACHE = 1 - echo export USE_CCACE=1 >> ~/.bashrc
      • 为了提高编译效率,设置编译器高速缓存。
    • 执行以下命令:
      • prebuilts/misc/linux-x86/ccache/ccache -M 30G
      • 这个 30G 根据自己的硬盘空间大小继续调整
  • 开始编译

    • 源码路径下

    • source . build/envsetup.sh

    • lunch

      • 比如我是Nexus5,所以选择 19
      • aosp_hammerhead_userdebug
        image

        image
    • user 用于正式产品

    • userdebug 和user类似,但是有root权限,并且可以调试,主要用于调试

    • eng 开发用的选项,配有额外的调试工具。

    • 如果编译后只在模拟器上运行,则lunch后可以就直接输入:1

    • 特定设备上运行编译系统的详细信息

    • 最后,make -j4 或者 make -j8 或者 make -j16,看你配置了。

    • 我是两三个小时直接编译成功,看配置和人品吧,啊哈哈哈哈。

刷机

  • sudo adb reboot bootloader
  • 这个时候可能adb devices 你会发现找不到设备
    • 如果是虚拟机的话,点开上面那个 虚拟机 选项,可移动设备
    • 然后 连接
  • 可以执行下解锁命令
    • fastboot oem unlock
  • fastboot -w flashall
  • 然后就会自动重启,开机。

刷机失败

  • 失败?
    image

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