天天看點

Ubuntu 18.04 配置android 源碼開發/編譯環境1. 安裝依賴包2.安裝repo工具3. adb 環境配置4. 配置adb 可通路device 清單5. 重要的設定6. 用到的連結

關聯閱讀 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

其實這一步在某些系統上已經預設配置了。

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/

繼續閱讀