转载自:雨水:http://blog.csdn.net/gobitan/article/details/24367439

基于Ubuntu 14.04 LTS编译Android4.4.2源代码
        Dennis Hu 2014-4-21
环境准备:
基本环境:ubuntu-14.04-desktop-64bit LTS(裸机或者Windows下虚拟机安装均可,12.04也可以,但10.04目前不支持了)
其他要求:空闲磁盘空间100G以上,代码部分接近10G,其他为git和编译中间和目标文件准备
 
==========================================
第一部分:环境初始化
==========================================
1. 安装Oracle JDK
注意:如果编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。
具体如何安装Oracle JDK,请参见我的另一篇单独的文章,[Ubuntu Linux下安装Oracle JDK] http://blog.csdn.net/gobitan/article/details/24322561.
2. 安装必备工具软件
注意:这里与官方的有个包不同,官方的包会报错.
  1. $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
  2. $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$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
3. 配置USB访问权限
将如下内容加入到/etc/udev/rules.d/51-android.rules文件中
  1. # adb protocol on passion (Nexus One)
  2. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
  3. # fastboot protocol on passion (Nexus One)
  4. SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
  5. # adb protocol on crespo/crespo4g (Nexus S)
  6. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
  7. # fastboot protocol on crespo/crespo4g (Nexus S)
  8. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
  9. # adb protocol on stingray/wingray (Xoom)
  10. SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
  11. # fastboot protocol on stingray/wingray (Xoom)
  12. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
  13. # adb protocol on maguro/toro (Galaxy Nexus)
  14. SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
  15. # fastboot protocol on maguro/toro (Galaxy Nexus)
  16. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
  17. # adb protocol on panda (PandaBoard)
  18. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
  19. # adb protocol on panda (PandaBoard ES)
  20. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
  21. # fastboot protocol on panda (PandaBoard)
  22. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
  23. # usbboot protocol on panda (PandaBoard)
  24. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
  25. # usbboot protocol on panda (PandaBoard ES)
  26. SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
  27. # adb protocol on grouper/tilapia (Nexus 7)
  28. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
  29. # fastboot protocol on grouper/tilapia (Nexus 7)
  30. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
  31. # adb protocol on manta (Nexus 10)
  32. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
  33. # fastboot protocol on manta (Nexus 10)
  34. SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
然后执行如下命令,将上述文件中的username替换为你的用户名。
  1. $sudo sed -i 's/username/dennis/g' /etc/udev/rules.d/51-android.rules
$sudo sed -i 's/username/dennis/g' /etc/udev/rules.d/51-android.rules

4. 配置ccache

安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。
  1. $sudo apt-get install ccache
  2. $source ~/.bashrc
$sudo apt-get install ccache
$source ~/.bashrc
 

==========================================

第二部分:源代码下载
==========================================
1. 安装repo
(1) 创建目录
  1. $ mkdir ~/bin
  2. $ PATH=~/bin:$PATH
$ mkdir ~/bin
$ PATH=~/bin:$PATH

(2) 下载repo工具

注:由于防火墙的原因,官方提供的链接无法使用,需替换为如下:
官方的为curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
可用的:
  1. curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo
(3) 增加可执行权限
  1. $ chmod a+x ~/bin/repo
$ chmod a+x ~/bin/repo
2. 初始化Repo客户端
(1)创建目录
  1. $mkdir aosp
  2. $cd aosp
$mkdir aosp
$cd aosp

(2) 初始化repo

注:后面可能出现网络错误,请先将如下内容加入到/etc/hosts中然后做后面的步骤。
  1. 74.125.71.82 www.googlesource.com
  2. 74.125.31.82 android.googlesource.com
  3. 203.208.46.172 cache.pack.google.com
  4. 59.24.3.173 cache.pack.google.com
74.125.71.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com

至于为什么要出现网络错误,你懂的!

  1. $repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2
$repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2
注意:如果是在虚拟机中执行,需要采用email验证的方式,详细参见参考资料[2].
设置git的用户名和邮件地址,将您的真实email地址和name替换了:
  1. git config --global user.email "you@example.com"
  2. git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
修改aosp/.resp/manifest.xml,将fetch=".."改为:
fetch="https://android.googlesource.com/"
 
3. 下载源代码
  1. $repo sync
$repo sync
注意:系统可能会提示你升级repo,最好不要升级,除非你有十足信息解决升级后的一系列问题。
 
好了,慢慢等吧,短则数小时,长则几天几夜!我花了5个小时
 
==========================================
第三部分:源代码编译
==========================================
1. 设置ccache
注:aosp为源代码根目录
  1. $ cd aosp
  2. $ prebuilts/misc/linux-x86/ccache/ccache -M 50G
$ cd aosp
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G

2. 设置输出目录

略:由于我未分区,因此采用默认的out目录
3. 初始化编译环境
  1. dennis@dubuntu1404:~/devenv/aosp$ . build/envsetup.sh
  2. including device/samsung/manta/vendorsetup.sh
  3. including device/generic/mips/vendorsetup.sh
  4. including device/generic/armv7-a-neon/vendorsetup.sh
  5. including device/generic/x86/vendorsetup.sh
  6. including device/lge/mako/vendorsetup.sh
  7. including device/lge/hammerhead/vendorsetup.sh
  8. including device/asus/tilapia/vendorsetup.sh
  9. including device/asus/deb/vendorsetup.sh
  10. including device/asus/grouper/vendorsetup.sh
  11. including device/asus/flo/vendorsetup.sh
  12. including sdk/bash_completion/adb.bash
  13. dennis@dubuntu1404:~/devenv/aosp$
dennis@dubuntu1404:~/devenv/aosp$ . build/envsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including sdk/bash_completion/adb.bash
dennis@dubuntu1404:~/devenv/aosp$
4. 选择编译目标包
注:目标包的选择跟你的硬件有关。我这里选择9,mako
  1. dennis@dubuntu1404:~/devenv/aosp$ lunch
  2. You're building on Linux
  3. Lunch menu... pick a combo:
  4. 1. aosp_arm-eng
  5. 2. aosp_x86-eng
  6. 3. aosp_mips-eng
  7. 4. vbox_x86-eng
  8. 5. aosp_manta-userdebug
  9. 6. mini_mips-userdebug
  10. 7. mini_armv7a_neon-userdebug
  11. 8. mini_x86-userdebug
  12. 9. aosp_mako-userdebug
  13. 10. aosp_hammerhead-userdebug
  14. 11. aosp_tilapia-userdebug
  15. 12. aosp_deb-userdebug
  16. 13. aosp_grouper-userdebug
  17. 14. aosp_flo-userdebug
  18. Which would you like? [aosp_arm-eng] 9
  19. ============================================
  20. PLATFORM_VERSION_CODENAME=REL
  21. PLATFORM_VERSION=4.4.2
  22. TARGET_PRODUCT=aosp_mako
  23. TARGET_BUILD_VARIANT=userdebug
  24. TARGET_BUILD_TYPE=release
  25. TARGET_BUILD_APPS=
  26. TARGET_ARCH=arm
  27. TARGET_ARCH_VARIANT=armv7-a-neon
  28. TARGET_CPU_VARIANT=krait
  29. HOST_ARCH=x86
  30. HOST_OS=linux
  31. HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
  32. HOST_BUILD_TYPE=release
  33. BUILD_ID=KVT49L
  34. OUT_DIR=out
  35. ============================================
  36. dennis@dubuntu1404:~/devenv/aosp$ make -j4
dennis@dubuntu1404:~/devenv/aosp$ 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_manta-userdebug
6. mini_mips-userdebug
7. mini_armv7a_neon-userdebug
8. mini_x86-userdebug
9. aosp_mako-userdebug
10. aosp_hammerhead-userdebug
11. aosp_tilapia-userdebug
12. aosp_deb-userdebug
13. aosp_grouper-userdebug
14. aosp_flo-userdebug
Which would you like? [aosp_arm-eng] 9
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
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.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=KVT49L
OUT_DIR=out
============================================
dennis@dubuntu1404:~/devenv/aosp$ make -j4

注:j4中的数字跟你的CPU个数和核数有关,详细参见参考资料[3].

整个编译过程,大约花了三个小时。编译成功后会在out目录下生成img文件。
 
5. 将img加载到物理机
(1) 将手机用USB数据线连接到机器
(2) 安装fastboot工具
  1. $ sudo apt-get install android-tools-fastboot
$ sudo apt-get install android-tools-fastboot
(3) 设置ANDROID_PRODUCT_OUT环境变量
将如下部分加入~/.bashrc文件中:
  1. export ANDROID_PRODUCT_OUT=/home/dennis/devenv/aosp/out/target/product/mako
export ANDROID_PRODUCT_OUT=/home/dennis/devenv/aosp/out/target/product/mako
然后保存执行". .bashrc"使其生效。
(4) 以fastboot模式重启手机
  1. $ adb reboot bootloader
$ adb reboot bootloader
此时手机会重启,呈现一个与往不同的fastboot界面
 
(5) 将编译的img刷到目标机
  1. dennis@dubuntu1404:~/devenv/aosp/out$ fastboot flashall -w
  2. --------------------------------------------
  3. Bootloader Version...: PRIMEMD04
  4. Baseband Version.....: I9250XXLJ1
  5. Serial Number........: 0146A0D00600900B
  6. --------------------------------------------
  7. checking product...
  8. FAILED
  9. Device product is 'tuna'.
  10. Update requires 'mako'.
  11. finished. total time: 0.035s
dennis@dubuntu1404:~/devenv/aosp/out$ fastboot flashall -w
--------------------------------------------
Bootloader Version...: PRIMEMD04
Baseband Version.....: I9250XXLJ1
Serial Number........: 0146A0D00600900B
--------------------------------------------
checking product...
FAILED
Device product is 'tuna'.
Update requires 'mako'.
finished. total time: 0.035s
(注:由于我的物理机三星I9250在lunch里没有对应的型号,因此会加载失败,这里这是记录过程)
===================================
如果需要编译其他版本,可执行如下步骤,这里选择虚拟机用的通用版本aosp_arm-eng。
  1. $ cd aosp
  2. dennis@dubuntu1404:~/devenv/aosp$ . build/envsetup.sh
  3. including device/samsung/manta/vendorsetup.sh
  4. including device/generic/mips/vendorsetup.sh
  5. including device/generic/armv7-a-neon/vendorsetup.sh
  6. including device/generic/x86/vendorsetup.sh
  7. including device/lge/mako/vendorsetup.sh
  8. including device/lge/hammerhead/vendorsetup.sh
  9. including device/asus/tilapia/vendorsetup.sh
  10. including device/asus/deb/vendorsetup.sh
  11. including device/asus/grouper/vendorsetup.sh
  12. including device/asus/flo/vendorsetup.sh
  13. including sdk/bash_completion/adb.bash
  14. dennis@dubuntu1404:~/devenv/aosp$ lunch aosp_arm-eng
  15. ============================================
  16. PLATFORM_VERSION_CODENAME=REL
  17. PLATFORM_VERSION=4.4.2
  18. TARGET_PRODUCT=aosp_arm
  19. TARGET_BUILD_VARIANT=eng
  20. TARGET_BUILD_TYPE=release
  21. TARGET_BUILD_APPS=
  22. TARGET_ARCH=arm
  23. TARGET_ARCH_VARIANT=armv7-a
  24. TARGET_CPU_VARIANT=generic
  25. HOST_ARCH=x86
  26. HOST_OS=linux
  27. HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
  28. HOST_BUILD_TYPE=release
  29. BUILD_ID=KVT49L
  30. OUT_DIR=out
  31. ============================================
  32. dennis@dubuntu1404:~/devenv/aosp$ make -j4
  33. ============================================
  34. PLATFORM_VERSION_CODENAME=REL
  35. PLATFORM_VERSION=4.4.2
  36. TARGET_PRODUCT=aosp_arm
  37. TARGET_BUILD_VARIANT=eng
  38. TARGET_BUILD_TYPE=release
  39. TARGET_BUILD_APPS=
  40. TARGET_ARCH=arm
  41. TARGET_ARCH_VARIANT=armv7-a
  42. TARGET_CPU_VARIANT=generic
  43. HOST_ARCH=x86
  44. HOST_OS=linux
  45. HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
  46. HOST_BUILD_TYPE=release
  47. BUILD_ID=KVT49L
  48. OUT_DIR=out
  49. ============================================
  50. including ./abi/cpp/Android.mk ...
  51. including ./art/Android.mk ...
  52. ....中间过程省略
  53. Install system fs image: out/target/product/generic/system.img
  54. out/target/product/generic/system.img+ maxsize=588791808 blocksize=2112 total=576716800 reserve=5947392
$ cd aosp
dennis@dubuntu1404:~/devenv/aosp$ . build/envsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including sdk/bash_completion/adb.bash
dennis@dubuntu1404:~/devenv/aosp$ lunch aosp_arm-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=KVT49L
OUT_DIR=out
============================================
dennis@dubuntu1404:~/devenv/aosp$ make -j4
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=KVT49L
OUT_DIR=out
============================================
including ./abi/cpp/Android.mk ...
including ./art/Android.mk ...
....中间过程省略
Install system fs image: out/target/product/generic/system.img
out/target/product/generic/system.img+ maxsize=588791808 blocksize=2112 total=576716800 reserve=5947392
编译完成,执行如下命令可以将您刚build好的ROM在模拟器里运行起来,第一次启动的时间可能比较长:
$ emulator &
注意:如果提示找不到emulator命令,可将如下环境变量重新初始化一遍(也就是每次重新进入系统运行的时候,都需要初始化一遍),lunch后面的参数要与你编译的ROM选项一致。
  1. $. build/envsetup.sh
  2. $lunch aosp_arm-eng

基于Ubuntu 14.04 LTS编译Android4.4.2源代码的更多相关文章

  1. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码       ...

  2. 基于Ubuntu 14.04 LTS编译Android4.4.2源码

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS ...

  3. 基于Ubuntu 15.04 LTS编译Android5.1.0源代码 (转)

    原文链接:http://blog.csdn.net/yuxiangyunei/article/details/45365235   环境: ubuntu:ubuntu-15.04-desktop-am ...

  4. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  5. Ubuntu 14.04 LTS 64bit 编译SDL的问题

    http://blog.csdn.net/jhting/article/details/38523945 Ubuntu 14.04 LTS 64bit 编译SDL的问题 分类: C/C++2014-0 ...

  6. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  7. ubuntu 14.04.5 编译Android 4.4.4 r1源码(最新)

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54426189 吐槽:ubuntu系统真是让人又爱又恨,也有可能是VMware Wo ...

  8. Ubuntu 14.04 LTS 安装 Juno 版 OpenStack Keystone

    本文介绍如何在Ubuntu 14.04 LTS 上安装Juno版的Keystone, 我们采用的是手动安装的方式, 同时仅针对OpenStack的身份与访问管理系统Keystone. 事实上OpenS ...

  9. Ubuntu 14.04 LTS 安装和配置Bochs

    Ubuntu 14.04 LTS 安装和配置Bochs       系统是:Ubuntu 14.04 LTS 64位 安装的是:bochs-2.6.8 Bochs 需要在 X11 环境下运行,因此你的 ...

随机推荐

  1. Javaweb中利用kaptcha生成验证码

    引入kaptcha-2.3-jdk15.jar包 在web.xml中进行配置 <servlet> <servlet-name>Kaptcha</servlet-name& ...

  2. Aspose.Total 最全的一套office文档管理方案

    百度百科:http://baike.baidu.com/link?url=ymHDlHGW2-6qomYsFneByjeb3OF4JJsHQkyhHFdFlPjcaYR-MT7xFBGttnzdI_W ...

  3. GetSafeHwnd()

    CreateCompatibleBitmap The CreateCompatibleBitmap function creates a bitmap compatible with the devi ...

  4. js 将json字符串转换为json对象的方法解析-转

    例如: JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JS ...

  5. 深度解密Go语言之 map

    目录 什么是 map 为什么要用 map map 的底层如何实现 map 内存模型 创建 map 哈希函数 key 定位过程 map 的两种 get 操作 如何进行扩容 map 的遍历 map 的赋值 ...

  6. Luogu P1607 庙会班车【线段树】By cellur925

    题目传送门 据说可以用贪心做?算了算了...我都不会贪.... 开始想的是用线段树,先建出一颗空树,然后输进区间操作后就维护最大值,显然开始我忽视了班车的容量以及可以有多组奶牛坐在一起的信息. 我们肯 ...

  7. iOS RSA (Objc)

    /* RSA.h @author: ideawu @link: https://github.com/ideawu/Objective-C-RSA */ #import <Foundation/ ...

  8. Helvetic Coding Contest 2017 online mirror (teams allowed, unrated) A

    Description Your search for Heidi is over – you finally found her at a library, dressed up as a huma ...

  9. 不通过ecplise,只通过文件目录 创建最简单的JSP文件

    手动创建最简单的JSP 文件   1.在Tomcat 6.0的安装目录的webapps目录下新建一个目录,起名叫myapp. 2.在myapp目录下新建一个目录WEB-INF,注意,目录名称是区分大小 ...

  10. vue 模拟后台数据(加载本地json文件)调试

    首先创建一个本地json文件,放在项目中如下 { "runRedLight":{ "CurrentPage": 1, "TotalPages" ...