Android 5.0編譯無法使用之前原廠提供的VM來進行,必須重新安裝Ubuntu 14.04以及安裝開發環境,相關資訊請參考Android Open Source官網資訊:
https://source.android.com/source/initializing.html
下面是開發環境安裝的步驟:
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo update-alternatives –config java
sudo update-alternatives –config javac
sudo apt-get install gcc-multilib g++ g++-4.8-multilib
sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
sudo apt-get install lzop u-boot-tools
原始碼的部份,請參考先前的文章從開發板官網取得;解壓縮與編譯的部份,請參考以下步驟:
tar xvf wandboard_lp-5.0.0_fullsource_20150422.tar.xz
cd wandboard_lp-5.0.0_fullsource_20150422/
source build/envsetup.sh
lunch wandboard-userdebug
make -j4
將結果安裝到MicroSD卡的步驟目前還有點問題,請參考開發板原廠的論壇討論:
http://forums.wandboard.org/viewtopic.php?f=11&t=914
以下是參考步驟:
sudo mkdir /media/one;
sudo fdisk -l
sudo umount /dev/sdb*
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1
sudo device/wand/wandboard/wand_fsl_sdcard-part.sh /dev/sdb
sudo dd if=out/target/product/wandboard/SPL of=/dev/sdb bs=1k seek=1;
sudo sync;
sudo mount -t vfat /dev/sdb1 /media/one;
sudo mkdir -p /media/one/boot;
sudo cp out/target/product/wandboard/u-boot.img /media/one/boot/;
sudo sync
sudo cp out/target/product/wandboard/kernel /media/one/boot/zImage;
sudo sync;
sudo cp out/target/product/wandboard/imx6q-wandboard.dtb /media/one/boot/;
sudo sync;
sudo cp device/wand/wandboard/uenv/uEnv.txt /media/one/boot/;
sudo sync;
sudo cp -rf device/wand/wandboard/logo /media/one/;
sudo sync;
mkimage -A arm -O linux -T ramdisk -C none -a 0x10800800 -n “Android Root Filesystem" -d out/target/product/wandboard/ramdisk.img out/target/product/wandboard/uramdisk.img
sudo cp out/target/product/wandboard/uramdisk.img /media/one/boot/;
sudo sync;
sudo dd if=out/target/product/wandboard/system.img of=/dev/sdb5;
sudo sync;
sudo umount /dev/sdb*;
sudo resize2fs /dev/sdb5 760M;
sudo sync;
sudo rm -rf /media/one;
若照上面步驟做出來的MicroSD卡是可以開到U-BOOT,但要開進Kernel與Android在U-BOOT命令列下要做以下幾個步驟:
setenv fdt_file boot/imx6q-wandboard.dtb
saveenv
bootd
上述部份的編譯筆記可從此處下載。順帶一提的是Android 5的原碼分析書籍(簡體中文)已經出版:
有興趣朋友請自行參閱,也可以搭配Wandboard Android Lollipop Source Code進行程式碼的分析與修改驗證。目前看起來Android的主要架構並沒有太大的變動(除了JVM外),跟著我們一路從Android 4.2走過來的朋友要瞭解Android 5應該不會碰到太大的困難;後續規劃有幾篇文章來概略分享該書的內容,讓大家能跟上新版本的進展。