- 积分
- 412
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 loquat 于 2009-5-13 18:33 编辑
Run java-machine with start 1st midlet
只有运行java时,才启动java虚拟机,如果不运行java或者上网已经全elf的话,这个就很有必要了。
如果不运行java就会有多很多的RAM(我的S7C刷后增加了大概4M多的RAM),是这个补丁的完美MP版本。
http://mobile.0110.cn/viewthread.php?tid=410281- ;RAM up to 8M
- ;(c) funmarkus
- ;(p) loquat
- 0x00A16BC0: CD5402EB 0000A0E1       ;S7Cv47
复制代码- ;E71Cv41
- ;FIX version
- ;* Run java-machine with start 1st midlet *
- ;(c) @ndreS/PRM
- ;(idei) Miha_r, DronSPB
- ;(p) binghelingxi
- ;和“Java-machine killer”和“扩大空余RAM到8MB”这个补丁冲突
- ;首次运行需要调用java的程序,就会开始运行java虚拟机,在此之前,和“扩大空余RAM到8MB”这个补丁有相同的效果
- ;JAVA软件都正常使用,但是导致主菜单无法打开,请使用其他方法打开,如ELF,或Native Menu,
- ;也可以从“开发人员”——>“Java”——>“Start Flexmenu”
- 0A2FB2C: 873103EB 73FFD8FA ;a
- 0A2460C: 87C9FFFB C046C046 ;b
- ;(c) Miha_r
- 0A2FA28: 04 00 ;c
- #pragma enable old_equal_ff
- 006F900: 01B506480478FB2C03D101BC024CA047
- 006F910: 00BDFB24047001BD,0xA0AFC150,0xA8D88F00 ;d,free ram
- #pragma disable old_equal_ff
- /*
- a: //48 D0 8D E2 F0 81 BD E8 53 49 45 4D-4,BLX 0x6F900
- b: //00 40 86 E5 70 D0 8D E2 70 80 BD E8-4
- c: //00 00 55 E3 0D 00 00 0A 10 10 8D E2 04 51 81 E7-4
- d: //07 10 A0 11 DC 10 8F 02 00 60 A0 E1 00 00 56 E3-8
- */
复制代码- ;ELC1v41
- ;FIX version
- ;* Run java-machine with start 1st midlet *
- ;(c) @ndreS/PRM
- ;(idei) Miha_r, DronSPB
- ;(p) snoopyhzy
- ;和“Java-machine killer”和“扩大空余RAM到8MB”这个补丁冲突
- ;首次运行需要调用java的程序,就会开始运行java虚拟机,在此之前,和“扩大空余RAM到8MB”这个补丁有相同的效果
- ;JAVA软件都正常使用,但是导致主菜单无法打开,请使用其他方法打开,如ELF,或Native Menu,
- ;也可以从“开发人员”——>“Java”——>“Start Flexmenu”
- ;另外关闭主菜单后可以运行双JAVA
- 0A36314: AF3503EB 79E5D8FA ;a
- 0A2ADF4: 87C9FFFB C046C046 ;b
- ;(c) Miha_r
- 00A36210: 04 00
- #pragma enable old_equal_ff
- 006F900: 01B506480478FB2C03D101BC024CA047
- 006F910: 00BDFB24047001BD,0xA0B039D8,0xA8D88EF0 ;d,free ram
- #pragma disable old_equal_ff
- /*
- a: //48 D0 8D E2 F0 81 BD E8 53 49 45 4D-4,BLX 0x6F900
- b: //00 40 86 E5 70 D0 8D E2 70 80 BD E8-4
- c: //00 00 55 E3 0D 00 00 0A 10 10 8D E2 04 51 81 E7-4
- d: //07 10 A0 11 DC 10 8F 02 00 60 A0 E1 00 00 56 E3-8
- */
复制代码 这个是冰大教我的简单移植RAM的方法,我还一直没试验过。- ROM:0xA0000000-0xA3FFFFFF
- RAM:0xA8.......,S68/E71/EL71还有0xAC...,0xAD....,不过其0xA8....中的一部分不是RAM,大概是未定义的
- 识别,简单的方法,反汇编之后很容易看出来
- 直接观察就看四字节对齐双位取反之后是否是A0..A1..A8.....
- RAM地址移植:
- a为要移植的地址,A为原机型FUBU,B为移植目标机型FUBU
- 搜索工具用SMELTER
- 1.将a双位取反在A中搜索,如果搜不到,略去后两位搜索(如:0xA8000000,搜索特征码就是??0000A8),
- 2.找到最相近的,记为b,记它与a的差为c,
- 3.接下来用移植ROM中地址的方法来移植b在B中的位置,记为d,
- 4.读取d的4字节数据双位取反,记为e,e是一个RAM地址,如果不是,重新做第2步,找次相近的
- 5.e+c,就是我们要的结果
- 上面的方法,其实是比较粗糙的,用armdebugger直接调试,重要的是明白其原理
复制代码
|
|