源码刷机-环境搭建(ubuntu 14.04.5 编译Android 4.4.4 r1源码)

Android刷机步骤

  1. jdk安装
  2. ubuntu环境配置
  3. android源码下载
  4. 驱动下载
  5. 编译
  6. 刷入手机
  7. 源码阅读

一·JDK安装

编译Android4.x的源码是不能用OpenJDK,需要用Oracle JDK 1.6,Oracle JDK 1.7目前是不支持的;编译Android 5.x版本以后的源码不再能使用Oracle JDK,需要使用OpenJDK 7版本。从下载页 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR
下载Linux x64bit版本Oracle JDK 1.60_45.

  1. 解压
    1
    2
    3
    cd /home/androidcode/AndroidDevlop
    sudo chmod u+x jdk-6u45-linux-x64.bin
    sudo ./jdk-6u45-linux-x64.bin
  2. 环境变量
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sudo gedit /etc/profile

    # 添加java环境变量
    export JAVA_HOME=/home/androidcode/AndroidDevlop/jdk1.6.0_45
    export JRE_HOME=${JAVA_HOME}/jre
    export PATH=$PATH:${JAVA_HOME}/bin
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

    source /etc/profile
    javac

二.ubuntu环境配置

  1. ssh配置 参考博客:linux免密钥登陆
  2. 编译环境配置
    1
    2
    3
    4
    5
    6
    $ sudo apt-get update

    $ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev

    $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    # 注:遇到问题参考 http://www.voidcn.com/article/p-fxftmkft-bpy.html
  3. 我遇到的安装错误
    1
    2
    3
    4
    5
    6
    7
    8
    #libcheese7
    $ sudo apt-get remove libcheese-gtk23 libcheese7
    $ sudo apt-get install libcheese-gtk23 libcheese7

    #g++
    $ sudo apt-get install g++
    $ sudo apt-get install g++-multilib

三.android源码下载

  1. 安装repo
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ git config --global user.name "lang"
    $ git config --global user.email "lang@gmail.com"

    # 下载repo 脚本 (一个依赖python2.7 文件下载脚步。可以换网址)
    $ mkdir android
    $ cd android
    $ curl https://storage.googleapis.com/git-repo-downloads/repo > repo
    $ chmod a+x repo

    # 替换源repo脚步中的源
    # REPO_URL = 'https://aosp.tuna.tsinghua.edu.cn/git-repo'
  2. android源码下载
    1
    2
    3
    $ repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1

    $ repo sync
  3. 涉及问题 repo脚步获取需要翻墙,也可以用国内源代替
  4. 也可以从百度云下载源码 http://pan.baidu.com/s/1ngsZs

四.驱动下载

1
2
3
4
在https://developers.google.com/android/drivers#hammerheadktu84p 下载对应版本驱动 这里是 KTU84P,下载文件有如下,移动到Android源码解压后运行里面 .sh 生成vendor文件夹
1. lge-hammerhead-ktu84p-49419c39.tgz
2. qcom-hammerhead-ktu84p-f159eadf.tgz
3. broadcom-hammerhead-ktu84p-5a5bf60e.tgz

五.编译

1
2
3
4
5
6
7
8
# 初始化环境
$ source build/envsetup.sh

# 选择编译版本
$ lunch 7

# 编译性能参数 8=电脑核心数*2
$ make -j8

六.刷入手机

1
2
3
4
5
# 连接电脑
$ sudo adb reboot bootloader
# 查看手机状态 如果没有,查看fastboot 权限
$ fastboot devices
$ fastboot -w flashall

七.源码阅读

1
2
3
4
5
6
第一步,这行命令的意思是编译idegen这个项目,生成idegen.jar文件。
$ mmm development/tools/idegen/
如果你看到了绿色的 #### make completed successfully ####,说明这步是ok的。
第二步,这行命令的意思是生成:android.iws, android.ipr, android.iml这个三个文件。
$ sh ./development/tools/idegen/idegen.sh
第三步, as 导入 android.ipr