• 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、

  • 相关阅读:
    ADB高级应用
    struts2 结合extjs实现的一个登录实例
    css3中关于伪类的使用
    漫谈并发编程(三):共享受限资源
    awk依照多个分隔符进行切割
    3星|《财经天下周刊》2017年21期:海外购几乎是亚马逊中国的最后一根救命稻草
    3星|《迷失的盛宴:中国保险产业1978-2014》:序言比正文精彩
    3星|《超级运营术》:互联网社区运营老手经验谈
    3星|《百年流水线》:流水线与工业、社会、艺术的交互史
    5星|戴蒙德《为什么有的国家富裕,有的国家贫穷》:为什么有的国家能发展出好制度
  • 原文地址:https://www.cnblogs.com/codeskilla/p/5423924.html
Copyright © 2020-2023  润新知