不管怎么样,还是想发表这文章,是为了提供一个下载android源码方法,来帮助像我一样无助的人来获得android源码。
一.硬盘下安装ubuntu
1.下载ubuntu
2.下载easyBCD,官网点non-commercia注册就可以免费。
3.win7下空出一个e盘格式化 计算机-》管理-》磁盘管理-》删除卷
4.安装easyBCD,add new entry -》neo grub -》install-》configue
5.在弹出的menu.list中添加
title Install Ubuntu
root (hd0,4)
kernel (hd0,4)/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-12.04.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,4)/initrd.lz
6.把下载好的ubuntu-12.04.iso复制到d盘,解压ubuntu-12.04.iso中文件夹里的vmlinuz.efi和initrd.lz到d盘。
7.重启安装到了ubuntu桌面环境下按Ctrl+Alt+T 打开终端,输入代码:sudo umount -l /isodevice;
8.点安装ubuntu-》其他安装选择-》添加-》exft4文件系统/20g-》swap 2g-》exft4文件系统/home 85g
二.ubuntu获取windows下共享文件
sudo apt-get install samba
sudo apt-get install smbfs
smbclient //192.168.0.1/share -U zhang
get file1 file2
三.获取源码和编译
参考以下网址,但没有最佳的解决方案,问题最终发现是仓库网址的问题。
http://yuanshuilee.blog.163.com/blog/static/21769727520131130102626998/
http://blog.csdn.net/xwwxxw123321/article/details/12321695
https://www.googlesource.com/new-password?state=android&code=4/EKuFpY9EEJcpeBbXog4Rjel29QTR.oo6tagnY3BwUgrKXntQAax1-DlATiAI
http://862123204-qq-com.iteye.com/blog/1992973
http://blog.csdn.net/liwendovo/article/details/8224090
我最终通过以下方法解决:
1.获得repo。
mkdir ~/bin
//curl http://git-repo.googlecode.com/files/repo-1.19 > ~/bin/repo
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo
chmod a+x ~/bin/repo
2.添加E82E4209。
ftp://ftp.gnu.org/gnu/grub/ 下载grub-2.00.tar.xz.sig和grub-2.00.tar.xz然后进入这入这两个文件的目录中
gpg --verify --verbose grub-2.00.tar.xz.sig grub-2.00.tar.xz
gpg --recv-keys E82E4209
gpg --verify --verbose grub-2.00.tar.xz.sig grub-2.00.tar.xz
3.得到.repo仓库。
mkdir ~/androidsrc
cd ~/androidsrc
repo init -u https://android.googlesource.com/a/platform/manifest -b android-2.3.5_r1
上面这一步会得到一个.repo的仓库,ls -all 才能看见,cd .repo 后可以看到manifest.xml文件。
这是一个仓库,那么我们还可以从这一步打印的信息中找到的到这个仓库的网址git://codeaurora.org。
从这个网址就可以得到android源码的其他仓库了。
gedit manifest.xml & 将fetch对应的字符串替换成:“git://codeaurora.org/” ###android源代码库
选择低版本是因为代码量少,下载和编译时简单,时间也短,另外可以方便研究。
4.添加ip。
nslookup googlesource.com
nslookup android.googlesource.com
根据上面步骤打印的信息在/etc/hosts文件添加:
sudo gedit /etc/hosts
添加内容:
74.125.237.1 dl-ssl.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.173cache.pack.google.com
5.配置获得android源码仓库的网址。
gedit manifest.xml & 将fetch对应的字符串替换成:“git://codeaurora.org/” ####android源代码库
//gedit manifest.xml & 将fetch对应的字符串替换成:“git://Android.git.linaro.org/” ####android源代码库
“git://Android.git.linaro.org/”这仓库网址也可以下载,速度特别慢,
我开始用来下载android4.4的源码不关机用了一周还下载失败了。
6.下载仓库到本地。
vim download.sh
#!/bin/bash
echo "=======start rep sync============"
repo sync -j4
while [$? == 1]; do
echo "=======sync failed, re-sync again========"
sleep 3
repo sync -j4
done
chmod a+x download.sh
./download.sh
(下载过程中如果出问题,可以删除.repo/下除了project的文件,并重复3到6的步骤。
//repo init -u git://git.omapzoom.org/a/platform/manifest -b android-2.3.5_r1
//repo init -u git://codeaurora.org/platform/manifest.git -b android-2.3.5_r1
挂机2到3天
下载完成后 出现几个100%。
编译:
7.配置编译环境。
编译需要环境(以下是ubuntu12.04 64位的环境配置,
其他版本的同学可以参考官网http://source.android.comsource/initializing.html)
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
$ 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-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
8.编译,链接
source ./build/envsetup.sh
lunch aosp_arm-eng
make -j4
编译时遇到的错误是因为内存不够用和g++版本过高
关闭其他程序
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo apt-get install g++-4.4-multilib
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
挂机3到4小时
完成后./out/target/product/generic/下出现3个.img文件,system.img ,userdata.img ,ramdick.img
9.编译链接得到工具sdk包。
source ./build/envsetup.sh
lunch sdk-eng
make sdk
完成后./out/target/product/generic/下出现sdk包,这个包就是官网的SDK包,可以用来安装开发第三方android应用。
10.运行。
export PATH=$PATH:~/androidsrc2.3.5_r1/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/androidsrc2.3.5_r1/out/target/product/generic
emulator
//emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu
//emulator -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
//emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
11.android内核源码下载和编译,链接,运行。
mkdir ~/androidsrc2.3.5_r1/kernel
cd ~/androidsrc2.3.5_r1/kernel
git clone http://android.googlesource.com/kernel/goldfish.git
//git clone git://Android.git.linaro.org/kernel/goldfish.git
cd goldfish
git branch -a
git checkout remotes/origin/archive/android-gldfish-2.6.29
export PATH=$PATH:~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
vim Makefile
# ARCH ?= (SUBARCH)
# CROSS_COMPILE?=
ARCH ?= arm #体系结构为arm
CROSS_COMPILE ?= arm-eabi- #交叉编译工具链前缀,
参考~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin目录
make goldfish_defconfig
//make menuconfig
make
emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage &
export PATH=$PATH:~/androidsrc2.3.5_r1/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/androidsrc2.3.5_r1/out/target/product/generic
adb shell
cd proc
cat version
. ./build/envsetup.sh
mmm packages/apps/Email/
make snod
四.android源码分析
http://quanminchaoren.iteye.com/blog/853106
http://blog.csdn.net/luoshengyang
http://blog.csdn.net/maxleng/article/details/5471557
一.硬盘下安装ubuntu
1.下载ubuntu
2.下载easyBCD,官网点non-commercia注册就可以免费。
3.win7下空出一个e盘格式化 计算机-》管理-》磁盘管理-》删除卷
4.安装easyBCD,add new entry -》neo grub -》install-》configue
5.在弹出的menu.list中添加
title Install Ubuntu
root (hd0,4)
kernel (hd0,4)/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-12.04.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,4)/initrd.lz
6.把下载好的ubuntu-12.04.iso复制到d盘,解压ubuntu-12.04.iso中文件夹里的vmlinuz.efi和initrd.lz到d盘。
7.重启安装到了ubuntu桌面环境下按Ctrl+Alt+T 打开终端,输入代码:sudo umount -l /isodevice;
8.点安装ubuntu-》其他安装选择-》添加-》exft4文件系统/20g-》swap 2g-》exft4文件系统/home 85g
二.ubuntu获取windows下共享文件
sudo apt-get install samba
sudo apt-get install smbfs
smbclient //192.168.0.1/share -U zhang
get file1 file2
三.获取源码和编译
参考以下网址,但没有最佳的解决方案,问题最终发现是仓库网址的问题。
http://yuanshuilee.blog.163.com/blog/static/21769727520131130102626998/
http://blog.csdn.net/xwwxxw123321/article/details/12321695
https://www.googlesource.com/new-password?state=android&code=4/EKuFpY9EEJcpeBbXog4Rjel29QTR.oo6tagnY3BwUgrKXntQAax1-DlATiAI
http://862123204-qq-com.iteye.com/blog/1992973
http://blog.csdn.net/liwendovo/article/details/8224090
我最终通过以下方法解决:
1.获得repo。
mkdir ~/bin
//curl http://git-repo.googlecode.com/files/repo-1.19 > ~/bin/repo
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo
chmod a+x ~/bin/repo
2.添加E82E4209。
ftp://ftp.gnu.org/gnu/grub/ 下载grub-2.00.tar.xz.sig和grub-2.00.tar.xz然后进入这入这两个文件的目录中
gpg --verify --verbose grub-2.00.tar.xz.sig grub-2.00.tar.xz
gpg --recv-keys E82E4209
gpg --verify --verbose grub-2.00.tar.xz.sig grub-2.00.tar.xz
3.得到.repo仓库。
mkdir ~/androidsrc
cd ~/androidsrc
repo init -u https://android.googlesource.com/a/platform/manifest -b android-2.3.5_r1
上面这一步会得到一个.repo的仓库,ls -all 才能看见,cd .repo 后可以看到manifest.xml文件。
这是一个仓库,那么我们还可以从这一步打印的信息中找到的到这个仓库的网址git://codeaurora.org。
从这个网址就可以得到android源码的其他仓库了。
gedit manifest.xml & 将fetch对应的字符串替换成:“git://codeaurora.org/” ###android源代码库
选择低版本是因为代码量少,下载和编译时简单,时间也短,另外可以方便研究。
4.添加ip。
nslookup googlesource.com
nslookup android.googlesource.com
根据上面步骤打印的信息在/etc/hosts文件添加:
sudo gedit /etc/hosts
添加内容:
74.125.237.1 dl-ssl.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.173cache.pack.google.com
5.配置获得android源码仓库的网址。
gedit manifest.xml & 将fetch对应的字符串替换成:“git://codeaurora.org/” ####android源代码库
//gedit manifest.xml & 将fetch对应的字符串替换成:“git://Android.git.linaro.org/” ####android源代码库
“git://Android.git.linaro.org/”这仓库网址也可以下载,速度特别慢,
我开始用来下载android4.4的源码不关机用了一周还下载失败了。
6.下载仓库到本地。
vim download.sh
#!/bin/bash
echo "=======start rep sync============"
repo sync -j4
while [$? == 1]; do
echo "=======sync failed, re-sync again========"
sleep 3
repo sync -j4
done
chmod a+x download.sh
./download.sh
(下载过程中如果出问题,可以删除.repo/下除了project的文件,并重复3到6的步骤。
//repo init -u git://git.omapzoom.org/a/platform/manifest -b android-2.3.5_r1
//repo init -u git://codeaurora.org/platform/manifest.git -b android-2.3.5_r1
挂机2到3天
下载完成后 出现几个100%。
编译:
7.配置编译环境。
编译需要环境(以下是ubuntu12.04 64位的环境配置,
其他版本的同学可以参考官网http://source.android.comsource/initializing.html)
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
$ 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-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
8.编译,链接
source ./build/envsetup.sh
lunch aosp_arm-eng
make -j4
编译时遇到的错误是因为内存不够用和g++版本过高
关闭其他程序
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo apt-get install g++-4.4-multilib
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
挂机3到4小时
完成后./out/target/product/generic/下出现3个.img文件,system.img ,userdata.img ,ramdick.img
9.编译链接得到工具sdk包。
source ./build/envsetup.sh
lunch sdk-eng
make sdk
完成后./out/target/product/generic/下出现sdk包,这个包就是官网的SDK包,可以用来安装开发第三方android应用。
10.运行。
export PATH=$PATH:~/androidsrc2.3.5_r1/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/androidsrc2.3.5_r1/out/target/product/generic
emulator
//emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu
//emulator -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
//emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
11.android内核源码下载和编译,链接,运行。
mkdir ~/androidsrc2.3.5_r1/kernel
cd ~/androidsrc2.3.5_r1/kernel
git clone http://android.googlesource.com/kernel/goldfish.git
//git clone git://Android.git.linaro.org/kernel/goldfish.git
cd goldfish
git branch -a
git checkout remotes/origin/archive/android-gldfish-2.6.29
export PATH=$PATH:~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
vim Makefile
# ARCH ?= (SUBARCH)
# CROSS_COMPILE?=
ARCH ?= arm #体系结构为arm
CROSS_COMPILE ?= arm-eabi- #交叉编译工具链前缀,
参考~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin目录
make goldfish_defconfig
//make menuconfig
make
emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage &
export PATH=$PATH:~/androidsrc2.3.5_r1/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/androidsrc2.3.5_r1/out/target/product/generic
adb shell
cd proc
cat version
. ./build/envsetup.sh
mmm packages/apps/Email/
make snod
四.android源码分析
http://quanminchaoren.iteye.com/blog/853106
http://blog.csdn.net/luoshengyang
http://blog.csdn.net/maxleng/article/details/5471557