美文网首页
Ubuntu14.04 64位下载编译Android源码,刷机N

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

作者: 拿刀砍人手别抖 | 来源:发表于2018-06-19 16:23 被阅读0次

    安装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

    相关文章

      网友评论

          本文标题:Ubuntu14.04 64位下载编译Android源码,刷机N

          本文链接:https://www.haomeiwen.com/subject/gnoaeftx.html