前段时间XcodeGhost闹的沸沸扬扬,意外发现迅雷下载真的是可以被污染的,详情见对迅雷下载进行投毒的简单尝试,也提醒了开发者不要随意从非官方渠道下载开发工具。

我们都知道Android SDK由于国内网络环境的原因,下载速度很慢,有很多国内搭建的镜像,但镜像服务器下载带宽肯定有一定限制,并且内网一般也会限制下载速度。所以在内网搭建一个Android SDK镜像服务器很有必要,一方面可以保证速度,几兆每秒肯定不成问题,另一方面大家从内网下载,也可以保证安全性。貌似有的团队用FTP存储SDK,还是太Low了,用起来肯定不如镜像方便。

搭建Android SDK镜像服务器,有两个现成的开源解决方案,苏州GDG中科院开源镜像小组,苏州GDG牛皮吹的很响,貌似还在某个会议上发表过演讲,但估计是个人作品,东西不够完善,更新缓慢。中科院开源镜像小组开源的方案非常不错,并且也对外开放了镜像服务,一直运行良好,Github上还有定时同步和Nginx的配置信息。

花了一个下午的时间,搞定了内网Android SDK镜像服务器,下载速度平均5M/s,效果杠杠的。

下载SDK

直接运行android.py脚本,由于SDK下载需要翻墙,所以你可能需要代理。命令行程序默认不走你的全局代理,我在家用sock5代理,在mac下用的是proxychains4,公司内网有Http代理服务器,想在命令行中使用,需要设置http_proxyhttps_proxy环境变量,临时使用直接在终端中输入:

export http_proxy=http://yourproxyaddress:proxyport
export https_proxy=http://yourproxyaddress:proxyport

细看脚本,你会发现脚本会先去下载repository-*.xmladdons_list-*.xml,xml里面是一些文件的具体下载地址,包含sdk、build_tools、support包等等,然后去下载具体的文件。

服务器配置

因为最终搭建的镜像要作为代理服务器,在SDK Manager中配置,所以需要你配置ngnix的虚拟主机。在/etc/nginx/conf.d/default.conf文件中,修改server_name字段:

server_name dl.google.com
dl-ssl.google.com;

因为当SDK Manger配置你的镜像作为代理后,首先会拉取xml配置文件,比如https://dl.google.com/android/repository/repository-11.xml,最终会找到镜像服务器的android/repository/repository-11.xml文件,下载其他SDK文件也是同样,所以需要你把之前运行脚本下载的文件放到正确的目录中。

使用

别人要使用你的镜像,需要配置SDK Manager,直接去看androiddevtools的介绍吧。

文章目錄
  1. 1. 下载SDK
  2. 2. 服务器配置
  3. 3. 使用