Ubuntu 下编译Android 源代码

时间:2022-05-02 22:40:24

1、配置JDK 1.6 或者1.7(看情况配置,有的Android版本不能在1.7下运行)

2、配置环境:终端:(CTRL+ALT+T)

$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dri libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev dpkg-dev

3、配置USB访问权限

# gedit /etc/udev/rules.d/51-android.rules

把下面的内容添加到文件中

# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="", MODE="", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="d101", MODE="", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="d022", MODE="", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="d00f", MODE="", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="", ATTR{idProduct}=="d010", MODE="", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus )
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus )
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="", OWNER="<username>"
# adb protocol on manta (Nexus )
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="", OWNER="<username>"
# fastboot protocol on manta (Nexus )
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="", OWNER="<username>"

执行下面的命令替换为你的用户名:

# sed -i 's/username/youname/g' /etc/udev/rules.d/51-android.rules

4、配置ccache

安装ccache 并将export USE_CCACHE=1 加入到~/.bashrc中、

# apt-get install ccache

# source ~/.bashrc

5、安装REPO

创建目录

#  mkdir /home/{YourName}/bin/android

# PATH=/home/{YourName}/bin:$PATH

#  cd /home/{YourName}/bin/android

下载并安装REPO工具

# apt-get install phablet-tools

ps:安装了这个后就不用类似(curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo )这样的命令了。

5、初始化REPO

# repo init -u git://git.omapzoom.org/platform/manifest -b android-4.2.1_r1

配置git的用户名和邮件地址:

# git config --global user.name "your name"

# git config --global user.email "your@email.com"

下载(同步)源码

# repo sync

先记录这些,有问题再说。