ZC_源码编译真机烧写_20160423

1、

  1.1、参考网址:http://www.cnblogs.com/codeskilla/p/5157675.html

  1.2、虚拟机:ubuntu12.04_desktop_amd64__VMwareTool.rar

    ZC: 虚拟机 分配的磁盘空间为120G。个人建议如果下载Android4.4以上版本的源码,并且f/q不稳定 会时常断开的话,虚拟机的磁盘空间需要更大。

2、准备工作(事先需要安装好的一些软件包)

  2.1、提升权限 "sudo -i"

  2.2、路径切换至"/mnt/hgfs/Linux_SharedFolder/HuanJing_beforeMake/archives#",也就是我备份的文件夹"..HuanJing_beforeMakearchives".

    2.2.1、"dpkg -i *"

      会有类似如下的错误信息:

      “

        正在处理用于 libc-bin 的触发器...
        ldconfig deferred processing now taking place
        在处理时有错误发生:
        libncurses5_5.9-4_i386.deb
        libncurses5-dev:i386

      ”

    2.2.2、手动安装 libncurses5相关的包

      "dpkg -i libncurses5*"

    2.2.3、再次 "dpkg -i *"

      这下,这些 包 都安装OK了

3、准备工作(安装 jdk)

  3.1、jdk-6u45-linux-x64-rpm.bin

  3.2、安装/配置 的过程,使用下面的方式:

    ubuntu安装jdk-6u45-linux-x64.bin___ZC_20160423

4、加大 系统的内存swap

  参考网址 : http://blog.csdn.net/nxh_love/article/details/8834849

  4.1、查看系统虚拟内存,命令:free -m

  4.2、创建一个 Swap 文件

root@33zzz:/home# dd if=/dev/zero of=/home/6GB.swap bs=1024 count=6144000
记录了6144000+0 的读入
记录了6144000+0 的写出
6291456000字节(6.3 GB)已复制,14.2532 秒,441 MB/秒
root@33zzz:/home#

    上面命令中的 count 即代表swap文件大小,即增加的虚拟内存大小。

  4.3、把生成的文件转换成 Swap 文件

root@33zzz:/home# mkswap /home/6GB.swap
Setting up swapspace version 1, size = 6143996 KiB
no label, UUID=a73661a5-c9c6-482b-8e21-060fc74e0cda
root@33zzz:/home#

  4.4、激活 Swap 文件。

root@33zzz:/home# swapon /home/6GB.swap
root@33zzz:/home#

5、编译 源代码

  5.1、我使用的 源码是 android_4.4_r1.tar.gz,放在 目录"/home"下,即"/home/android_4.4_r1.tar.gz"(还有一个 备份,名为 android-4.4_r1.tar.gz)

    5.1.1、tar zxvf android_4.4_r1.tar.gz

      解压之后,得到 文件夹"root",里面是 文件夹"android_4.4_r1"

    5.1.2、将 "/home/root/android_4.4_r1" 移动到 "/home/android_4.4_r1"

root@33zzz:/home/root# mv android_4.4_r1/ /home/android_4.4_r1
root@33zzz:/home/root#

  5.2、设置环境变量

export ANDROID_HOME=/home/android_4.4_r1
export PATH=$PATH:${ANDROID_HOME}/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=${ANDROID_HOME}/out/target/product/mako

  5.3、配置 源码刷手机 必须要用到的驱动文件

    5.3.1、3个驱动文件,分别为:

      (1)、broadcom-mako-krt16s-f54c9ff9.tgz
      (2)、lge-mako-krt16s-23ef7d53.tgz
      (3)、qcom-mako-krt16s-cc4bd932.tgz

    5.3.2、解压到源码根目录(也就是 "/home/android_4.4_r1")

root@33zzz:/home/android_4.4_r1# tar zxvf broadcom-mako-krt16s-f54c9ff9.tgz
extract-broadcom-mako.sh
root@33zzz:/home/android_4.4_r1# tar zxvf lge-mako-krt16s-23ef7d53.tgz
extract-lge-mako.sh
root@33zzz:/home/android_4.4_r1# tar zxvf qcom-mako-krt16s-cc4bd932.tgz
extract-qcom-mako.sh
root@33zzz:/home/android_4.4_r1#

    5.3.3、运行三个解压后的sh文件, 在根目录下会多出vendor目录, 这就是硬件驱动目录

root@33zzz:/home/android_4.4_r1# ./extract-broadcom-mako.sh
root@33zzz:/home/android_4.4_r1# ./extract-lge-mako.sh
root@33zzz:/home/android_4.4_r1# ./extract-qcom-mako.sh

  5.4、开始编译

    5.4.1、导入编译android环境变量: source build/envsetup.sh

root@33zzz:/home/android_4.4_r1# source build/envsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including sdk/bash_completion/adb.bash
root@33zzz:/home/android_4.4_r1#

    5.4.2、选择编译终端类型: 

root@33zzz:/home/android_4.4_r1# lunch

You're building on Linux

Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_x86-eng
3. aosp_mips-eng
4. vbox_x86-eng
5. aosp_hammerhead-userdebug
6. aosp_mako-userdebug
7. aosp_manta-userdebug
8. aosp_grouper-userdebug
9. aosp_deb-userdebug
10. aosp_flo-userdebug
11. aosp_tilapia-userdebug
12. mini_x86-userdebug
13. mini_armv7a_neon-userdebug
14. mini_mips-userdebug

Which would you like? [aosp_arm-eng] 6

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4
TARGET_PRODUCT=aosp_mako
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.2.0-23-generic-x86_64-with-Ubuntu-12.04-precise
HOST_BUILD_TYPE=release
BUILD_ID=KRT16M
OUT_DIR=out
============================================

root@33zzz:/home/android_4.4_r1#

    5.4.3、root@33zzz:/home/android_4.4_r1# make

    5.4.4、ZC: 废了好久时间(绝对超过8小时),才编译完成...

      可能的原因:

        (1)、机器原因。否决,以前编译过,没有花这么长时间...

        (2)、ccache 没有配置。以前编译的时候,也没有配置这个,也没有花这次这么长时间。

        (3)、这次用的是"make" 而非"make -j4"。估计是这个原因,下次尝试看看 是不是这个原因。

6、

  ZC: 编译好之后,把 目录"/home/android_4.4_r1/out/target/product/mako"下的几个img文件复制出来了,备用。

7、

  ZC: 貌似教程中,直接就在linux里面把手机刷了,我还没有这样弄,过几天试试。

8、

9、

原文地址:https://www.cnblogs.com/codeskilla/p/5423924.html