刷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