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、