刷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

转载于:https://www.cnblogs.com/fireflyxml/p/3992137.html

分享下自己编译 XBMC 的过程(zhuan)相关推荐

  1. 个人从源码理解JIT模式下angular编译AppModule的过程

    承接上文.笔者之前将一个angular项目的启动过程分为了两步: 创建平台得到 PlatformRef ,以及执行平台引用提供的方法编译根模块 AppModule .本文就将着眼于创建好的平台,从an ...

  2. Centos下lnmp编译安装详细过程

    整理下lnmp安装步骤: 相关软件用的lnmp一键安装的全包,懒得去到处找软件源 完整版:http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz(66.64MB) ...

  3. 【Linux】CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享

    [Linux]CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享 Ngnix基本概况 Nginx (读作"engine X") 由 ...

  4. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  5. FFmpeg在Windows系统下的编译过程

    由于FFMpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译.要想使用FFMpeg,最先要解决 ...

  6. TrueCrypt简介、在VS2008下的编译过程

    编译过程中用到的工具下载地址: http://download.csdn.net/detail/chenyujing1234/4448383(资源内容:PKCS11.7 + gzip.exe + as ...

  7. Linux下gcc编译c程序生成可执行文件的过程

    Linux下gcc编译c程序生成可执行文件 一.准备 hello.c 文件 1.在当前目录下新建c文件 $:vim hello.c 2.按i进入编辑模式.按esc退出编辑模式,输入源代码 #inclu ...

  8. 历史经验之Linux下PF_RING的编译和安装过程

    历史经验之Linux下PF_RING的编译和安装过程 1)确认是否安装PF_RING 2)从下载网址下载最新版本的PF_RING: 编译和安装PF_RING 1)编译pf_ring内核文件 2)编译p ...

  9. 重温.NET下Assembly的加载过程 ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线...

    重温.NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现 ...

最新文章

  1. string用法总结
  2. 46. Ext中namespace的作用(转)
  3. 【自用】 VS2017 部分快捷键
  4. select事件有哪些_Android 深入底层:Linux事件管理机制 epoll
  5. linux启动过程中内核拷贝,轻松识破linux内核启动过程中的“”套路“”
  6. Linux 命令(116)—— tac 命令
  7. cdlinux 无线网密码破解
  8. 杰·亚伯拉罕的产品营销35种策略完整版
  9. 干货 | 百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践
  10. 墨西哥FBA海运头程货代,墨西哥海运几天到?
  11. 推荐一本 Bulma 的书《使用Bulma来创建用户界面》
  12. android 三星存储位置设置,三星手机如何设置储存位置
  13. laravel-admin模型表格和详情展示关联数据
  14. vue3和vue2不同点总结
  15. 投入产出表分析(交通经济学作业)
  16. centos6 php网页,centos怎样建网站
  17. 滴滴开源基于金融场景的Vuejs组件库Mand Mobile
  18. scrapy框架爬取斗鱼女主播照片,依据颜值排行榜
  19. 计算机算法描述方式有哪些,算法的描述方法有哪几种
  20. win10右键“新建”时响应速度非常缓慢怎么办

热门文章

  1. 联系随笔2---在tomcat服务器上发布servlet应用程序
  2. linux gcc 7.3.0安装,升级gcc到7.3.0
  3. fork source exec区别差异
  4. 基于Libevent的HTTP Server
  5. sizeof(string)
  6. sysbench 1.0.6 mysql_Sysbench 测试mysql数据库性能(version:sysbench-1.1.0)
  7. animate.css动画样式详解
  8. 产品经理思维模型:创新价值曲线
  9. python json是什么_python json详解
  10. c语言求佩尔方程的解设计思路,c语言版 佩尔方程求最小正整数解及第k解(矩阵快速幂)...