關聯閱讀 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 下載下傳去吧。
- 建立目錄
sudo mkdir -p /usr/lib/jvm/open-jdk
- 解壓下載下傳檔案後的檔案到建立的目錄
- 配置環境變量,編輯 ~/.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
-
使用 java -version 測試是否成功source ~/.bashrc
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/