如何在诺基亚225手机上运行诺基亚S30+的MRE .vxp文件?

3

安装

好的,让我稍微谈一下安装:

我已经安装了Visual Studio 2008(试用90天版本),从this Github issue下载了MRE SDK 3.0,Sourcery Codebench Lite for ARM EABI以及ARM Realview Development suite 3.1(但它需要许可证,而我懒得去破解它,而且我更喜欢开源GCC而不是商业软件)。我将编译器设置为Sourcery Codebench的GCC。

我可以在联发科技的模拟器上编译和运行vxp文件,没有任何问题。

问题

在ARM平台编译后,这是[project_dir]\arm中的输出: vxp

我尝试将Default.vxp复制到我的诺基亚255的SD卡上,然后在手机上打开该文件,但手机显示暂时无法打开此应用

我还尝试在SD卡上创建一个appmanager文件夹,然后是我的手机内部存储,然后将vxp文件复制到那里,但在应用程序列表中,除了默认应用程序之外仍然没有其他应用程序,并且vxp文件仍然无法运行。

其他vxp文件

我从http://shifat100.xtgem.com/下载了一些vxp文件,将它们放在SD卡上并从中运行。有些会起作用,例如Asphalt 6游戏,但有些不会,例如Gold rush游戏,它们会显示暂时无法打开此应用

我使用file命令检查Asphalt 6游戏的vxp格式,它显示为data。但是我检查了我的Default.vxp,它是ELF格式。我认为这就是问题所在,但不知道如何将ELF转换/打包成vxp。

使用 binwalk 工具分析 Asphalt 6 游戏的 vxp 文件,可以得到两个 zlib 压缩文件和两个 GIF 图片,它们是游戏的图标。其中一个压缩文件解包后包含了许多名称,例如:

splash_320x240.bsprite
splash_menu_320x240_200k.bsprite
splash_menu_split_320x240_200k.bsprite
splash_title.bsprite
hollywood_320x240_200k.bsprite
new.png
font_small.bsprite
font_large.bsprite
interface_font.bsprite
copter.bsprite
car_tourist.bsprite
cars_fx.bsprite
cars_shadow.bsprite

所以我认为这是资源文件。另一个可能包含代码,我在其中找到了一些异常字符串,例如

Unknown signal
Invalid Operation
Divide By Zero
Overflow
Underflow
Inexact Result
: Heap memory corrupted
Abnormal termination
Arithmetic exception:
Illegal instruction
Interrupt received
Illegal address
Termination request
Stack overflow
Redirect: can't open:
Out of heap memory
User-defined signal 1
User-defined signal 2
Pure virtual fn called
C++ library exception

还有一些(可能是)S30+平台的API,例如

vm_get_mre_modules
vm_get_mre_total_mem_size
vm_get_mre_version

那么问题可能是什么呢?屏幕分辨率?我已经更改了它,但仍然不起作用。SDK版本?我也尝试了所有3个版本,但没有运气。文件格式?编译器的差异?(请注意,我正在使用GCC,而大多数留在互联网上的教程建议使用RVCS)我不知道。

有什么想法吗?谢谢!

如果您需要获取任何文件,请告诉我,我会把它放在这里。


似乎手机只能运行已安装应用程序列表和商店中可下载的应用程序,而不能运行其他应用程序。 - raspiduino
不,我可以确认 Nokia 225 可以运行 ELF。Opera mini 的 vxp 文件以 ELF 格式为例。 - raspiduino
1
没有解决方案,只是想告诉你我也对在S30+系列上运行应用程序感兴趣。 - henry
我可以确认它运行成功了!答案将在明天发布在这里! - raspiduino
1个回答

1
来自RE.SE我的回答已发送。
首先我想感谢4pda论坛的人们。请查看他们的主题 这里

你能找出关于MRE VXP格式的信息吗?

好的,我还没有找到,需要进一步研究。

如何签名

简短回答:

步骤1:获取您的SIM 1IMSI号码(不是 IMEI,它们是不同的!

您可以用多种方式做到这一点,但最简单的方法是将SIM 1插入安卓手机并读取。我个人使用ADB读取IMSI(在Android 6+上无需root即可工作):

adb shell service call iphonesubinfo 7

步骤2:前往https://vxpatch.luxferre.top/,输入在第一步获得的IMSI号码。然后选择您的VXP文件,点击“Patch”,您应该能够下载一个修补过的版本。
或者
您可以在项目设置中输入IMSI号码,但请记得在IMSI号码前加上9

imsi

步骤3:将打补丁的版本移动到SD卡中,然后插入手机。 步骤4:找到vxp文件并点击打开,你的应用程序现在应该可以运行了!
详细回答: 有些应用程序不需要指定IMSI,它们可以在任何设备上工作。这是因为它们使用RSA密钥的另一种签名方式。
如果您有兴趣,请阅读这里。文字是俄语的,所以如果您想要的话可以使用谷歌翻译。
我使用了ADS 1.2编译器(我自己破解的,如果你需要告诉我),以及GCC(体积更小+运行非常好),在Nokia 225上进行了测试,并将继续进一步测试!S30+平台上的应用程序是用C(和可选的C++)编写的,因此您可以将许多应用程序移植到S30+。再次感谢4pda论坛的人们!下面是签名后运行的应用程序图像:

image of the app


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接