Android 墙内操作

2015-11-11

一,更新 SDK

各种工具参考 androiddevtools

腾讯 Bugly 使用比较流畅,推荐。

还是 中国科学院开源协会镜像站 的比较靠谱。。

二,编译 Android 源码

编译环境:

操作系统 Ubuntu 14.04.1 x86_64

更换源。ubuntu 自带的源容易发生版本不匹配的问题。

替换源(/etc/apt/source-list)为:

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

更新一下:

    $ sudo apt-get updata

配置编译环境

    $ sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
      lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
      libgl1-mesa-dev libxml2-utils xsltproc unzip

各种安装依赖冲突的情况,都可以通过更换源解决。

安装 java

这个需要根据编译的源码版本而定,比如编译 Android 6.0 需要 OpenJDK 8。但是编译 Android 4.0 需要 Oracle Java 6. 具体安装过程略过。

下载源码

这里使用清华大学的镜像。

参考文章 清华大学 TUNA 镜像源,Android 镜像使用帮助

参考文章 同步、更新、下载Android Source & SDK from 国内镜像站

安装 Repo,

1, 添加 PATH

    $ mkdir ~/bin
    $ PATH=~/bin:$PATH

2, 下载 Repo

    $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo

3., 修改repo

修改环境变量或者直接修改 /git-repo/repo 文件。

将 google 的地址

REPO_URL= 'https://gerrit.googlesource.com/git-repo'

改为清华大学的地址

REPO_URL= 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

4, 下载 manifest

    $ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest

或者选择版本

    $ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-4.0.1_r1
    

5, 同步

    $ repo sync

编译

建立环境

    $ source build/envsetup.sh

这个时候就可以使用 lunch,mmm等命令了

    $ lunch 

lunch负责设置一些环境变量,比如 TARGET_PRODUCT 等等。 结果中 full 表示完全编译,eng表示工程版本,full-eng就是模拟器版本。

开始编译,指定4线程。

    $ make -j4

注意编译过程中的 java 版本问题。

三,更新各种依赖库

暂时没有 jcenter 镜像,也别瞎折腾了,还是搞个 vpn 吧,毕竟党国无耻。


文档信息 by XiaoPingYuan

版权声明:自由转载-非商用-非衍生-保持署名。发表日期:2015-11-11 by XiaoPingYuan(https://xesam.github.io/)