zoukankan      html  css  js  c++  java
  • Android源码4.4.4_r1下载和编译

    系统:ubuntu 16.04.2 TLS

    1.源码下载:

    sudo apt-get install curl
    curl https://storage.googleapis.com/git-repo-downloads/repo > repo
    chmod a+x repo
    
    mkdir srcAndroid
    cd srcAndroid
    git config --global user.name "xunbu7"
    git config --global user.email "xunbu7@gmail.com"
    repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1
    repo sync

    选择目标版本源码,参考编译版本标签对照表:

    https://source.android.com/source/build-numbers

    2.驱动下载:

     https://developers.google.com/android/drivers

    将下载下来的3个压缩包加压到源码目录,分别执行3个sh文件,输入“I ACCEPT”。可以看到源码目录多了一个vendor目录。删除sh文件即可。

    3.环境配置

    3.1 jdk环境

    4.4.4_r1需要jdk6环境,而标准库不支持旧版本,所以下载方式如下:

    Open the terminal and execute below commands one by one. It will install JDk as well as JRE. No need to configure anything. It will take care of everything.

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    
    sudo apt-get install oracle-java6-installer //JDK 6 along with JRE
    sudo apt-get install oracle-java7-installer //OR FOR JDK 7

    有时候不知道java安装在哪里了,通过whereis java命令不能知道java真实的安装路径,可以通过update-alternatives --config java命令查看

    bean@ubuntu :~$ update-alternatives --config java
    There is only one alternative in link group java: /usr/lib/jvm/java-7-oracle/jre/bin/java
    Nothing to configure.

    或者官网下载到本地后

    seven@ThinkPad:~/Downloads$ chmod a+x jdk-6u45-linux-x64.bin
    seven@ThinkPad:~/Downloads$ ./jdk-6u45-linux-x64.bin
    移动到自定义目录:
    seven@ThinkPad:~/Documents/Android$ mv -f ~/Downloads/jdk1.6.0_45/ .
    seven@ThinkPad:~/Documents/Android/jdk1.6.0_45$ pwd
    /home/seven/Documents/Android/jdk1.6.0_45

    修改配置文件:

    seven@ThinkPad:~$ vim .bashrc
    内容:
    export JAVA_HOME=/home/seven/Documents/Android/jdk1.6.0_45
    export JRE_HOME=${JAVA_HOME}/jre
    export PATH=$PATH:${JAVA_HOME}/bin
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    
    seven@ThinkPad:~$ source .bashrc
    seven@ThinkPad:~$ javac -version
    javac 1.6.0_45

    3.2 安装make

    ubuntu16.04自带的make版本过高,无法编译。因此需要将make降至3.82.

    下载地址ftp://ftp.gnu.org/gnu/make/

    下载后到Downloads下将文件拷到其他目录(home下即可),然后解压

    tar -zxvf make3.8.2.tar.gz

    解压后进入到make3.8.2的目录下

    ./configure
    make
    sudo make install

    执行完后在/usr/local/bin中可得到新版本的make,复制到/usr/bin中即可

    seven@ThinkPad:/usr/local/bin$ sudo mv make /usr/bin

    注:make过程中可能会出现错误,不用理会,只要make install能够成功执行即可。

     3.3 安装其他编译环境

    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
    sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
    sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
    sudo apt-get install git-core gnupg flex bison gperf build-essential
    sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
    sudo apt-get install libc6-dev-i386
    sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
    sudo apt-get install lib32z-dev ccache
    sudo apt-get install  unzip m4

    4.编译

    echo export USE_CCACHE=1 >> ~/.bashrc
    prebuilts/misc/linux-x86/ccache/ccache -M 50G source build/envsetup.sh lunch aosp_hammerhead-userdebug //虚拟机中当时必须用sudo su (切换su,root下:否则上面5儿子配置会被虚拟机配置覆盖),后来用真实机不用也ok。 make –j8

    5.刷机

    源码编译完成后,我们开始将编译好的系统烧录进手机中。首先,先将我们的Nexus 5连接到电脑上,注意一定要打开USB调试,连接后手机可能会提示电脑要调试这台手机,允许即可。然后,我们令手机进入recovery模式,还是刚才的terminal(在源码根目录下),输入以下命令:

    seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ ./adb reboot bootloader
    seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ./fastboot devices(用sudo,否则发现不了设备)
    [sudo] password for seven: 
    072ba3800ae5fd9c fastboot
    seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ANDROID_PRODUCT_OUT=/home/seven/srcAndroid/src4.4.4_r1/out/target/product/hammerhead ./fastboot flashall -w(用sudo,否则发现不了设备)

    或者也可以一个个img刷入:

    0、重启进入刷机模式
    adb reboot bootloader
    1、依次刷入其他镜像文件:
    fastboot flash recovery recovery.img
    fastboot flash boot boot.img
    fastboot flash system system.img
    2、强烈建议双清(注意备份数据):
    fastboot flash cache cache.img
    fastboot flash userdata userdata.img
    3、再次重启:
    fastboot reboot
  • 相关阅读:
    MySQL初始化以及更改密码
    对付小白的ARP的简单介绍
    PXE批量安装CentOS7操作系统
    20不惑
    辩论会
    学习
    JAVA语言的特点
    程序流程图对新手来说很重要。
    浅谈博客、微博与轻博客的区别与联系
    要学好JAVA要注意些什么?
  • 原文地址:https://www.cnblogs.com/xunbu7/p/6905801.html
Copyright © 2011-2022 走看看