ubuntu16.04下Android8.1/10.0源码编译环境搭建

1、安装ubuntu 16.04.6 LTS操作系统。

ubnutu官网下载系统镜像。

安装ssh。sudo apt-get install openssh-server

2、替换ubuntu系统更新源为阿里源

/etc/apt/sources.list

# deb cdrom:[ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
 

3、安装以下软件

python3.6安装方法

sudo apt-get install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt-get update

sudo apt-get install python3.6

------------------------

sudo apt-get install openjdk-8-jdk

sudo apt-get install git

扫描二维码关注公众号,回复: 17100256 查看本文章

sudo apt-get install git-core 
sudo apt-get install gnupg 
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install build-essential
sudo apt-get install curl
sudo apt-get install libc6-dev
sudo apt-get install libssl-dev
sudo apt-get install libncurses5-dev:i386
sudo apt-get install libxml2-utils
sudo apt-get install zlib1g-dev:i386
sudo apt-get install libx11-dev:i386
sudo apt-get install libreadline6-dev:i386
sudo apt-get install libgl1-mesa-dev
sudo apt-get install g++-multilib
sudo apt-get install tofrodos
sudo apt-get install python-markdown
sudo apt-get install python-mako
sudo apt-get install x11proto-core-dev
sudo apt-get install xsltproc
sudo apt-get install dpkg-dev
sudo apt-get install ccache

4、SAMBA配置

安装

sudo apt-get install samba

sudo apt-get install samba-common

修改配置文件/etc/samba/smb.conf

[homes]

   comment = Home Directories

   browseable = no

# By default, the home directories are exported read-only. Change the

# next parameter to 'no' if you want to be able to write to them.

   read only = no

# File creation mask is set to 0700 for security reasons. If you want to

# create files with group=rw permissions, set next parameter to 0775.

   create mask = 0755

# Directory creation mask is set to 0700 for security reasons. If you want to

# create dirs. with group=rw permissions, set next parameter to 0775.

   directory mask = 0755

添加home下的某个用户

sudo smbpasswd -a user

#user为添加的用户名,输入命令后需要设置密码,输入两次设置的密码

重启

sudo service smbd restart

现在可以用win10映射用户目录到网络磁盘

5、下载Android源码

AOSP 镜像使用帮助
https://mirrors.ustc.edu.cn/help/aosp.html

初始同步方法 1

第一次同步数据量特别大,如果网络不稳定,中间失败就要从头再来了。所以我们提供了打包的 AOSP 镜像,为一个 tar 包,大约 100G(单文件 100G,注意你的磁盘格式要支持)。这样你 就可以通过 HTTP(S) 的方式下载,该方法支持断点续传。

下载地址 https://mirrors.ustc.edu.cn/aosp-monthly/

请注意对比 checksum。

然后根据下文 已有仓库如何改用科大源 的方法更改同步地址。

解压后用命令 repo sync 就可以把代码都 checkout 出来。

Note: tar 包为定时从 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/ 下载。

初始同步方法 2

按照 Google 官方教程 https://source.android.com/source/downloading.html

将 https://android.googlesource.com/platform/manifest 替换为git://mirrors.ustc.edu.cn/aosp/platform/manifest 。

具体做法摘录如下:

首先下载 repo 工具。

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用下面的:
## curl -sSL  'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo

然后建立一个工作目录(名字任意)

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

初始化仓库:

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
## 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:
## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

如果需要某个特定的 Android 版本(Android 版本列表):

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1

同步源码树(以后只需执行这条命令来同步):

repo sync

已有仓库如何改用科大源

如果您已经从官方同步了 AOSP 仓库,现在希望使用科大的 AOSP 仓库,请修改.repo/manifests.git/config ,将

url = https://android.googlesource.com/platform/manifest

修改成

url = git://mirrors.ustc.edu.cn/aosp/platform/manifest

即可。

通过 HTTP 协议同步

如果由于某种原因不能通过 git 协议同步,请修改 .repo/manifests.git/config ,将

url = git://mirrors.ustc.edu.cn/aosp/platform/manifest

修改成

url = http://mirrors.ustc.edu.cn/aosp/platform/manifest

不推荐使用 HTTP 协议同步,因为 HTTP 服务器不支持 repo sync 的 --depth 选项,可能导致部分仓库同步失败。

通过 HTTP 同步过程中可能提示 clone.bundle 404 错误,这是正常现象,可以忽略。

说明

  1. 本镜像每天凌晨 04:30 同步一次。同步可能需要较长时间,因此使用本镜像时建议避开凌晨 04:30 ~ 06:00 这段时间。

  2. 由于硬盘 I/O 资源有限,Git 服务器每 IP 限制 5 个并发连接。 repo sync 命令默认使用 4 个并发连接,请勿使用 -j 参数增加并发连接数。

附录:Brillo

Brillo 项目的代码托管在 AOSP 项目中,Mirrors 镜像的是整个 AOSP 项目,所以自然也能从本镜像下载 Brillo 项目代码。

参考 Brillo 官方文档 https://developers.google.com/brillo/docs/reference/downloads 进行下载,将其中源码 manifest 地址 改为 git://mirrors.ustc.edu.cn/aosp/brillo/manifest 。 即:

repo init 时,使用 repo init -u git://mirrors.ustc.edu.cn/aosp/brillo/manifest -b master

6、常见编译错误

Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'

原因是编译时用的是open-jdk默认禁用了TLSv1, TLSv1.1,
从/etc/java-8-openjdk/security/java.security中取消TLSv1, TLSv1.1 禁用:

#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves
修改后:

 #   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

猜你喜欢

转载自blog.csdn.net/XiaoKing2008/article/details/119963673
今日推荐