如何让Nokia S30+的MRE vxp文件在Nokia 225上正常运行
Nokia 225运行自行编译的MRE VXP文件报错问题求助
开发环境配置
已完成如下开发环境搭建:
- 安装90天试用版Visual Studio 2008
- 从对应GitHub issue获取MRE SDK 3.0
- 安装Sourcery Codebench Lite for ARM EABI
- 已安装ARM Realview Development suite 3.1,因该套件需要商业授权未进行破解,且更倾向使用开源GCC而非商业软件,最终将编译器设置为Sourcery Codebench提供的GCC
当前已实现:在联发科(Mediatek)官方模拟器上可正常编译并运行vxp文件。
遇到的问题
针对ARM平台完成编译后,将[project_dir]\arm路径下输出的Default.vxp文件拷贝至Nokia 225的SD卡中,手机端打开该文件时提示Can't open this app at the moment。后续尝试在SD卡、手机内置存储中分别新建appmanager文件夹,将vxp文件存入该目录,但手机应用列表仍仅显示系统预装应用,vxp文件始终无法被识别、运行。
排查过程
- 从公开MRE资源站点下载部分第三方vxp文件存入SD卡测试:其中部分文件(如《Asphalt 6》)可正常运行,部分文件(如《Gold rush》)运行时报同样的
Can't open this app at the moment错误。 - 通过
file命令检测文件格式:可正常运行的《Asphalt 6》vxp文件格式识别为data,自行编译的Default.vxp为ELF格式,初步推测文件格式差异是问题根源,但暂不清楚如何将ELF转换/打包为设备可运行的vxp格式。 - 使用binwalk分析《Asphalt 6》的vxp文件,解析得到2个zlib压缩包、2个作为游戏图标的GIF文件。解压两个压缩包后验证:
- 其中一个压缩包包含大量资源文件名(如
splash_320x240.bsprite、font_small.bsprite等),判定为资源文件包 - 另一个压缩包包含代码段,从中可找到
Unknown signal、Divide By Zero等异常提示字符串,以及vm_get_mre_modules、vm_get_mre_version等疑似S30+平台API的标识
- 其中一个压缩包包含大量资源文件名(如
- 先后尝试调整适配屏幕分辨率、更换3个版本的SDK,均无法解决问题。
目前无法确定问题具体诱因,待排查方向包括:屏幕分辨率适配问题、SDK版本匹配问题、文件格式问题、编译器差异问题(现有公开教程大多推荐使用RVCS编译器,当前编译使用的是GCC),现寻求可行的解决方案。如果排查需要相关编译文件、配置参数,可随时提供。
内容的提问来源于stack exchange,提问作者raspiduino
相关产品推荐
相关产品推荐

