利用国内镜像源下载、编译Android源码
2015-04-28 19:48
330 查看
在国内下载Android可是不太容易,不过从Google断断续续地下载了几天源码后发现清华大学有个TUNA镜像源可以下载Android源码,甚是方便。
参考网站:
http://source.android.com/index.html https://aosp.tuna.tsinghua.edu.cn/
一.环境准备:
现在Android源码的下载和编译在Linux和Mac OS上都可以了,但Mac OS上设置略微复杂点,所以我选择了Ubuntu 14.04 64位的虚拟机。(硬盘建议50G以上,编译的时候给虚拟机加大CPU和内存。)
编译Gingerbread (2.3.x) 及其以上的源码需要64位的系统,以下的可以在32位系统上编译。
1.Java下载和配置
Java 7:适用最新版的源码:
如果系统上有多个Java版本,可以设置默认的:
Java 6: 适用于Gingerbread(2.3)~ KitKat(4.4)
Java 5:适用于 Cupcake(1.5)~ Froyo(2.2)
如果Java安装失败可到Java官网下载后自行安装,略去不表。
2.其它依赖包:
如果是Ubuntu 12.04:
如果是Ubuntu 10.04 — 11.10:
11.10:
10.04:
二、下载源码
1.下载repo:
repo是Google基于Git推出的一款版本管理工具,用python写的。
先配置目录:
下载repo并赋予其可执行权限:
当然由于众所周知的原因,我们往往无法把repo下到本地。这里提供一个我下载并修改好的下载链接:http://jiezhiblog.com/wp-content/uploads/2015/04/repo1.txt
(wp的限制,只能把repo重命名为repo.txt,下载后改回repo即可)
下载放到~/bin目录下,并修改权限即可:
2.初始化repo
进入放置源码的目录,如:
关键的来了,如果想体验好点,建议国内的从清华大学的镜像源下载:
或者指定要下载的分支:
完成后即可和服务器同步了:
该服务器限制了每个IP并发数,也就是你可以使用:
设置并发数为4.,给别人留有余地。
现在应该在从服务器下载源码了,但是如果中途有中断了,继续执行repo sync即可。
如何让repo自动在断开后自动下载:
新建autorepo.sh:
然后执行即可:
如果你之前已经下载了部分AOSP的代码的话,切换到TUNA服务器也很方便,如官网所示:
如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将
aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 git://aosp.tuna.tsinghua.edu.cn/android/
这个方法也可以用来在同步 Cyanogenmod 代码的时候从 TUNA 同步部分代码
三、编译:
当源码下载后,可以看到目录里多出很多源码文件夹:
如果你准备在模拟器里运行,则按照如下步骤编译即可,如果你想刷到手机上则还有一些任务要做(见第四步)。
0.其中由于配置问题,我的代码是放在服务器上编译的:
由于.repo这个隐藏文件夹里的文件占用空间很大,所以在压缩的时候将其排除:
然后利用scp命令将压缩好的文件上传到服务器:
其中username和host是你用户名和服务器地址。
解压:
1.初始化:
2.使用lunch命令选择编译目标,如:
或者直接lunch,会让你选择编译目标的。
其中参数说明:
3.编译
-jN表示用N个线程来编译,如果你是配置是2CPU,每个CPU有4核,每核可跑俩线程,那么你可以make -j16乃至-j32,这样速度将大大加快。.
4.成功
在android4.3_r1/out/target/product/generic目录下可以看到如下文件:
四、刷机
1.模拟器的话,其实直接运行emulator即可运行:
由于不涉及内核,我的做法是把ramdisk.img、system.img和userdata.img复制到sdk/system-images/android-18/default/armeabi-v7a/目录下替换掉原来的文件。(可以把原来的先备份)
然后新建对应的API虚拟机,运行即可。
2.真机
真机我是用Google三太子Galaxy Nexus [maguro] (GSM/HSPA+)做的实验,毕竟亲儿子,驱动方面都很好配置。
a.在第三步编译之前,先把驱动配置好:
然后按照第三步编译即可。
b.连接手机,打开USB调试,进入bootloader模式:
如果bootloader被锁住的话,先解锁:
然后进入system.img等文件的目录:
然后重启即可。
本文首发地址:http://jiezhiblog.com/archives/187
参考网站:
http://source.android.com/index.html https://aosp.tuna.tsinghua.edu.cn/
一.环境准备:
现在Android源码的下载和编译在Linux和Mac OS上都可以了,但Mac OS上设置略微复杂点,所以我选择了Ubuntu 14.04 64位的虚拟机。(硬盘建议50G以上,编译的时候给虚拟机加大CPU和内存。)
编译Gingerbread (2.3.x) 及其以上的源码需要64位的系统,以下的可以在32位系统上编译。
1.Java下载和配置
Java 7:适用最新版的源码:
Java 5:适用于 Cupcake(1.5)~ Froyo(2.2)
如果Java安装失败可到Java官网下载后自行安装,略去不表。
2.其它依赖包:
1.下载repo:
repo是Google基于Git推出的一款版本管理工具,用python写的。
先配置目录:
(wp的限制,只能把repo重命名为repo.txt,下载后改回repo即可)
下载放到~/bin目录下,并修改权限即可:
进入放置源码的目录,如:
现在应该在从服务器下载源码了,但是如果中途有中断了,继续执行repo sync即可。
如何让repo自动在断开后自动下载:
新建autorepo.sh:
如果你之前已经通过某种途径获得了 AOSP 的源码(或者你只是 init 这一步完成后), 你希望以后通过 TUNA 同步 AOSP 部分的代码,只需要将
.repo/manifest.xml把其中的
aosp 这个 remote 的 fetch 从 https://android.googlesource.com 改为 git://aosp.tuna.tsinghua.edu.cn/android/
三、编译:
当源码下载后,可以看到目录里多出很多源码文件夹:
0.其中由于配置问题,我的代码是放在服务器上编译的:
由于.repo这个隐藏文件夹里的文件占用空间很大,所以在压缩的时候将其排除:
解压:
其中参数说明:
BUILD NAME | DEVICE | NOTES |
---|---|---|
aosp_arm | ARM emulator | 包括所有语言、APP和输入法的配置 |
aosp_maguro | maguro | 运行在Galaxy Nexus GSM/HSPA+ ("maguro")上 |
aosp_panda | panda | 运行在 PandaBoard ("panda")上 |
BUILDTYPE | USE |
---|---|
user | limited access; suited for production(有权限限制,适合产品级) |
userdebug | preferred for debugging(适合调试) |
eng | development configuration with additional debugging tools(有额外的调试工具) |
4.成功
在android4.3_r1/out/target/product/generic目录下可以看到如下文件:
1.模拟器的话,其实直接运行emulator即可运行:
由于不涉及内核,我的做法是把ramdisk.img、system.img和userdata.img复制到sdk/system-images/android-18/default/armeabi-v7a/目录下替换掉原来的文件。(可以把原来的先备份)
然后新建对应的API虚拟机,运行即可。
2.真机
真机我是用Google三太子Galaxy Nexus [maguro] (GSM/HSPA+)做的实验,毕竟亲儿子,驱动方面都很好配置。
a.在第三步编译之前,先把驱动配置好:
然后按照第三步编译即可。
b.连接手机,打开USB调试,进入bootloader模式:
本文首发地址:http://jiezhiblog.com/archives/187
相关文章推荐
- 利用国内镜像下载Android源码,并编译生成image镜像文件
- Ubuntu14.04 下载&&编译 Android 5.1.1源码(采用国内清华大学镜像)
- android源码 国内镜像下载地址
- android cygwin 源码下载,国内镜像
- Android源码及SDK国内镜像下载
- Android源码及SDK国内镜像下载
- Ubuntu14.04 编译 Android 5.1.1源码(采用国内镜像)
- 国内镜像 android源码下载,无需翻墙
- Android源码及SDK国内镜像下载
- 国内镜像下载Android源码
- Android源码及SDK国内镜像下载
- Android源码及SDK国内镜像下载
- Android源码及SDK国内镜像下载
- 国内下载android源码镜像地址及方法
- 国内镜像加速 Android 源码下载
- repo 下载Android源码(国内镜像)
- Android(CM)源码国内镜像下载
- 下载android源码的国内镜像