关联阅读 Ubuntu 16.04 配置android源码开发/编译环境

1. 安装依赖包

安装编译依赖包,这个摘自下面的XDA 链接的内容,略有改动。

sudo apt-get install git bc bison build-essential curl flex g++-multilib gcc-multilib gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc yasm zip zlib1g-dev python

有很多渠道可以获得类似的依赖列表,大都大同小异。如果编译的时候提示缺少依赖,请根据提示安装。

1.1 安装openjdk

首先 sudo apt install openjdk-8-jdk肯定是可以的,但是对于网速不好又可能有多次重装系统的用户来说,还是有个离线包要方便些。

遗憾的是 http://jdk.java.net/8/ 上openjdk8 项目已经终止了,不提供下载了。

The JDK 8 Early Access Program has concluded. Current versions of JDK 8 can be found on www.oracle.com/javadownload

然后oracle 上的jdk8 又不是jdk 8,那读者自行寻找openjdk8 下载去吧。

  1. 创建目录 sudo mkdir -p /usr/lib/jvm/open-jdk

  2. 解压下载文件后的文件到创建的目录

  3. 配置环境变量,编辑 ~/.bashrc

     # set java env
     if [ -d "/usr/lib/jvm/open-jdk" ] ; then
         JAVA_HOME="/usr/lib/jvm/open-jdk"
         PATH="$JAVA_HOME/bin:$PATH"
     fi
    
  4. source ~/.bashrc 使用 java -version 测试是否成功

2.安装repo工具

android 源码是由repo 管理的,所以我们还需要安装repo。

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

为确保repo 可用,编辑~/.bashrc

export PATH=~/bin:$PATH

其实这一步在某些系统上已经默认配置了。

3. adb 环境配置

再一个首先,android-tools-adb 肯定也是可以的,但是这个命令安装下来的adb 版本较低,一些新增的命令不能用,比如adb disbale-verity,而且新版的adb 工具push 文件速度要快很多。

建议下载下载单独的platform-tools 工具包(google 有提供),或者你有下载过Sdk 的话,指向Sdk/platform-tools 也是好的,而且可以在线升级。

还是编辑 ~/.bashrc

# add Android SDK platform tools to path
if [ -d "$HOME/Android/Sdk/platform-tools" ] ; then
    PATH="$HOME/Android/Sdk/platform-tools:$PATH"
fi

source ~/.bashrc 使用adb –version 检查有没有生效

4. 配置adb 可访问device 列表

在GNU / Linux系统下(特别是在Ubuntu系统下),普通用户默认情况下不能直接访问USB设备。 系统需要配置为允许此类访问。 建议的方法是创建一个文件/etc/udev/rules.d/51-android.rules(作为root用户)。 运行以下命令下载51-android.rules文件(科学上网),

$ wget -S -O - http://source.android.com/source/51-android.txt | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

估计很多人不能科学上网,请参考我之前的博客(Ubuntu 16.04 配置android源码开发/编译环境)第五节,列表太长了,不想写。

之后重启udev 服务,命令:sudo /etc/init.d/udev restart

PS: 这个命令可能在有些系统上不生效,可以重启,重启肯定生效。

PPS: 这里面包含了大多数厂商的设备信息,如果你的设备不在其中,请自行修改添加。执行lsusb 然后添加对应信息。

5. 重要的设置

这条命令至关重要,必须设置了才能编译成功。

export LC_ALL=C 关联ubuntu 18.04 编译android 8.1 问题记录

6. 用到的链接

  • https://forum.xda-developers.com/android/general/build-aosp-extended-ubuntu-18-04-bionic-t3796500
  • https://nathanpfry.com/how-to-setup-ubuntu-18-04-lts-bionic-beaver-to-compile-android-roms/
  • https://askubuntu.com/questions/175514/how-to-set-java-home-for-java
  • https://vitux.com/how-to-setup-java_home-path-in-ubuntu/
  • https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • https://www.azul.com/downloads/zulu/