刷YunOS贏魅族MX3
首先要感謝下網上其他網友的經驗,沒有這些經驗有的問題還是不太好解決~
先介紹下編譯環境,操作系統是 CentOS 6.5 64位 (最小桌面版本安裝,除了最基本的組件外,類似 java 什么的都沒有安裝),系統是在 vmware 虛擬機上安裝的,virutalbox 也安裝過,不過相對于 vmware 在多線程編譯時,virutalbox 似乎不能完全用到 CPU 資源。官方 github 上的文檔說明是基于 ubuntu 的,和 CentOS 還是有些差別的,主要是一些包的名稱和用法不太一樣。正是基于這些差別,所以才把 CentoOS 上的編譯過程和大家分享一下。另外,本說明是通過 git 直接獲取最新源碼,來進行編譯的,和官方的每日構建版本差不多,只不過加入了天貓魔盒硬解相關的編譯參數。
下面開始逐步介紹下如何進行編譯,其實主要步驟還是參照上面提到的官方編譯文檔,只是有些地方遇到問題,把如何解決的介紹下,類似一些切換編譯目錄什么的,如果沒有說清楚還需要參照官方文檔來對照下。
1、安裝編譯需要的環境支持:
yum install git curl autoconf unzip zip gawk gperf cmake gcc gcc-c++
2、因為是 64 位的 CentOS,所以還需要安裝 32 位支持,官方文檔上介紹的方式是 ubuntu 特有的,不適用于 CentOS
yum install glibc-2.12-1.80.el6.i686
yum install libstdc++-4.4.6-4.el6.i686
yum install zlib-1.2.3-29.el6.i686
注:如果編譯過程中提示某些 .so 文件有問題,可以通過 yum whatprovides 來查找對應的安裝包,如上述三個包其實就是通過這種方式找到的
yum whatprovides */ld-linux.so.2
yum whatprovides libstdc++.so.6
yum whatprovides libz.so.1
3、由于官方文檔中說明需要使用 android api 版本是 14,gcc 版本是 4.8,CentOS 6.5 提供的 gcc 版本是 4.4 的,所以需要手動編譯下最新版本的 gcc,我這里用到的是 4.8.2 版本的,編譯過程參考的是這篇文章:http://blog.csdn.net/yanxiangtianji/article/details/12782839
4、從 oracle 下載 1.6 版本的 JDK 并安裝,配置 .bashrc,這里只演示下大概的操作
chmod 755 jdk-6u41-linux-x64.bin
./jdk-6u41-linux-x64.bin
進入當前登錄用戶的 HOME 目錄,我使用 root 登錄的
cd ~
vim .bashrc
JAVA_HOME=寫入上面 jdk 的安裝路徑
export JAVA_HOME
export $PATH=$PATH:$JAVA_HOME/bin
5、下載并安裝 android sdk
wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz
tar zxvf android-sdk_r22.3-linux.tgz
cd android-sdk-linux/tools
./android update sdk -u -t android-14,platform-tool
這里有點和官網文檔不一樣,官網上的命令會下載所有 android 的 api 相關的包,下載量相當大,網速不佳的情況下非常耗時,所以這里精簡了一下。使用這種方式下載的 platform-tools 是 r19 版本的,而實際上編譯到最后會執行類似的命令 /home/android/android-sdk-linux/platform-tools/aapt p -f -I /home/android/android-sdk-linux//platforms/android-14/android.jar -S tmp/res/ -M xbmc/AndroidManifest.xml -F images/xbmcapp-debug-skeleton.apk -J xbmc/src。也就是要在 platform-tools 中運行命令 aapt。上述安裝的 platform-tools 的版本是 r19,僅僅有 adb 等工具,相比于 r14 版本,少了很多東西,所以需要用 r14 版本的進行替換。r14 版本下載地址為 http://dl-ssl.google.com/android/repository/platform-tools_r14-linux.zip,下載完成后解壓縮到 /home/android/android-sdk-linux/ 即可。
6、下載并安裝 ndk
當前的 XBMC 源碼必須使用 android-ndk-r9 版本的 NDK,r9b 不行,后面會報錯。參考:http://forum.xbmc.org/showthread.php?tid=177292。下載完成解壓縮后,執行
./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=/home/android/arm-linux-androideabi-4.8-vanilla/android-14 --platform=android-14 --toolchain=arm-linux-androideabi-4.8 --system=linux-x86_64
7、生成簽名密鑰,參考官方文檔
8、到這里 XBMC 需要的環境基本準備完畢,根據官方文檔通過 git 下載源碼后,開始編譯 XBMC
先加入天貓魔盒平臺需要的編譯參數,在/xbmc-android/tools/depends/target/xbmc/Makefile 中加入
CONFIGURE += --enable-codec=amcodec
CONFIGURE += --enable-player=amlplayer
MakeFile 文件修改完成后,執行配置
./configure --with-tarballs=/home/android/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=/home/android/android-sdk-linux/ --with-ndk=/home/android/android-ndk-r9 --with-toolchain=/home/android/arm-linux-androideabi-4.8-vanilla/android-14/ --prefix=/home/android/xbmc-depends
此處注意 --with-toolchain 必須與第 6 步中的 --install-dir 一致,否則會報 pcre-8.33 編譯錯誤
9、make -j20,make -C 成功后輸出:
————————
XBMC Configuration:
————————
git Rev.: 20131217-4da7cfb
Shared lib Yes
Debugging: Yes
Profiling: No
Optimization: Yes
SWIG Available: Yes
JRE Available: Yes
Doxygen Available: No
Crosscomp.: Yes
Native Root: /home/android/xbmc-depends/x86_64-linux-gnu-native
target ARCH: arm
target CPU: cortex-a9
OpenGLES: Yes
ALSA: No
DBUS: No
VDPAU: No
VAAPI: No
CrystalHD: No
VTBDecoder: No
OpenMax: No
Joystick: No
XRandR: No
Waveform: Yes
Spectrum: Yes
GOOM: No
RSXS: Yes
FishBMC: No
ProjectM: No
Skin Touched: Yes
X11: No
Wayland: No
Bluray: Yes
TexturePacker:Yes
MID Support: No
ccache: No
ALSA Support: No
PulseAudio: No
HAL Support: No
DVDCSS: Yes
Google Test Framework Configured: No
Avahi: No
mDNSEmbedded: Yes
Non-free: Yes
ASAP Codec: No
MySQL: Yes
Webserver: Yes
libssh support: Yes
libRTMP support: Yes
libsmbclient support: Yes
libnfs client support:Yes
libafpclient support: Yes
AirPlay support: Yes
AirTunes support (libshairplay): Yes
UPnP support: Yes
Optical drive: No
libudev support: No
libusb support: Yes
libcec support: Yes
libmp3lame support: Yes
libvorbisenc support: Yes
libcap support: No
additional players: Yes, amlplayer
additional codecs: Yes, amcodec
External FFmpeg: No
PVR add-ons: No
prefix: /home/android/xbmc-depends/arm-linux-androideabi-android-14
10、執行
make
make apk
編譯完成。
經測試編譯后的 apk 是可以在天貓魔盒上使用的,不過 XBMC 上顯示的分辨率是 1280×720,root 以后,也是如此。參考小米上網友的方案,通過 rootexplorer 修改 /system/build.prop 里面的縮放和寬高參數,XBMC 是可以識別到 1920×1080 的,但此時整個盒子系統的 UI 就很不正常了。
2013-12-25 更新
經過測試,正確 root 后雖然 XBMC 里面仍然顯示分辨率是 1280×720,不過已經可以自動全屏顯示了。用的 root 工具是壇子里面提供的一鍵 root 工具,里面用的是 kingroot,所以理論上 kingroot 可以直接 root。
看有網友想要個編譯好的版本,上傳到了百度上,需要的自己下吧:http://pan.baidu.com/s/1jGLVOz0
?