爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3526|回复: 7
收起左侧

[求助] 冰大,纯希望,知道你很忙。^_^

  [复制链接]
发表于 2009-4-20 23:23:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
S7Cv47的这个补丁
  1. ;Turn off illumination during the call
  2. ;(c) ThE TrIFoN, Serega_1
  3. ;Version: 2.0
  4. ;S7Cv47
  5. 422A64: C986DEA0 A10054A1

  6. #pragma enable old_equal_ff
  7. 15400A0: 08B5024B9847024B984708BD,0xA0DE86C9
  8. 15400B0: 0xA09902EF
  9. #pragma disable old_equal_ff
复制代码

拨号的时候就关闭了键盘灯,能不能帮忙搞成接通后关闭键盘灯?
纯粹是希望,很忙的话可以置后考虑或者不考虑。希望......

另外,有一个想法:
播放音乐时自动启动MediaPlayerPlus.elf


能不能教我一个,做这种小补丁的万能法?
就是到了指定事件之后运行一个文件或者功能地址。
比如接通关闭键盘灯、播放音乐自动启动MediaPlayerPlus。
发表于 2009-4-21 00:20:58 | 显示全部楼层
没有什么万能的方法。

要想自己做补丁,armdebugger是必须要掌握的,还要掌握IAR或KEIL之类的编译器的使用,
armdebugger很难吗?打上CGSN补丁,联机,参考VC或者TC的调试器操作摸索
编译器,参考已有的工程模仿摸索
如此而已,我就是这么来的

拨号的时候就关闭了键盘灯,能不能帮忙搞成接通后关闭键盘灯?
在接通振动补丁之后再做一个 HOOK

播放音乐时自动启动MediaPlayerPlus.elf
在播放音乐的CSM的oncreate做HOOK启动,onclose做HOOK关闭

思路上如此。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-21 10:03:18 | 显示全部楼层
都是摸索,现在我还在慢慢学习摸索汇编语言。汗
冰大,哪天有空你给把这两个补丁做出来吧?
希望.......
回复 支持 反对

使用道具 举报

发表于 2009-4-21 11:44:03 | 显示全部楼层
没需要,不做,做起来也未必这么容易
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 10:09:34 | 显示全部楼层
播放音乐时自动启动elf,这里是我抄袭嵌套的源码。
有一个地方不会处理。。。
不知道这个代码还有没有问题。汇编很不懂啊。。。
    RSEG BODY

BODY:
    PUSH    {R0-R4,LR}
    SWI         0x01F8
    CMP     R0, #1          //播放器暂停
    BEQ     OPEN
    CMP     R0, #2  //正在播放
    BEQ     OPEN
    B       EXIT
OPEN:
  PUSH    {R0-R7,LR}
  MOV     R0, #0x80
  SWI     0xC7    //  C7: SWI_C7
  LSL     R5, R4, #4
  ADD     R6, R0, #0
  ADR     R1, s_0ZbinAppElfsi ; "0:\\ZBin\\App\\ElfsInHotKeys.elf"   //这里不会处理...
  MOV     R2, #0x80
  SWI     0xC7   
  LSL     R4, R5, #5
  MOV     R2, #0
  MOV     R1, #0
  ADD     R0, R6, #0
  SWI     0x94    //94: int ExecuteFile(WSHDR *filepath, WSHDR *mimetype)
  ADD     R0, R6, #0
  SWI     0xC7   
  LSL     R1, R5, #4
  POP     {R0-R7,PC}
  LDR        R0, =CLOSE
  SWI        0x4D    //void GBS_StartTimerProc(void *htimer, long ms, void ptr())定时运行
  POP {R0-R4}
  MOV        R0, #0   
  POP    {PC}
CLOSE:
  PUSH       {LR}
  MOV        R0, #0
  SWI     0x94  //94: int ExecuteFile(WSHDR *filepath, WSHDR *mimetype)
  POP        {PC}
EXIT:
END
回复 支持 反对

使用道具 举报

发表于 2009-7-26 10:31:32 | 显示全部楼层
加一句
s_0ZbinAppElfsi
DCB "0:\\ZBin\\App\\ElfsInHotKeys.elf"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 11:59:00 | 显示全部楼层
还有一个,第一次自己尝试把接通振动的补丁从依赖lib的补丁改为常规的。。。
我修改的。
  1. #define        _RAMTMR                        0xA8A7F180
  2. #define        GBS_StartTimerProc       0xA0093278
  3. #define        SetVibration                       0xA01B11F3
  4.        RSEG        VIBRA_AT_STATT_START_HOOK
  5.        CODE16
  6.        LDR        R4, =VIBRA_AT_CALL_START
  7.        BLX        R4

  8.         RSEG        VIBRA_AT_CALL_START_BODY
  9.         CODE16
  10. VIBRA_AT_CALL_START
  11.        MOV     R1, LR
  12.        ADD     R1, #4
  13.        ADD     R0, #0x17
  14.        PUSH    {R0,R1}
  15.        NOP
  16.        NOP
  17.        NOP
  18.        PUSH    {R0}
  19.        LDR     R0, =_RAMTMR  
  20.        LDR     R1, =TIME
  21.        LDR     R2, =VIBRA_OFF
  22.        ADD     R2, #1
  23.        LDR        R3, =GBS_StartTimerProc
  24.        BLX        R3

  25.       POP     {R0}
  26.       LDR      R0, =POWER
  27.       LDR        R1, =SetVibration
  28.       BLX        R1

  29.       ADD     R2, R5, #0
  30.       ADD     R3, R5, #0
  31.       MOV     R1, #9
  32.       POP     {R0,PC}
  33. VIBRA_OFF:
  34.       PUSH    {LR}
  35.       MOV     R0, #0
  36.       LDR        R1, =SetVibration
  37.       BLX        R1

  38.       POP     {PC}
  39.       DATA
  40. TIME
  41.       DCD        100
  42. POWER
  43.       DCD        50
  44.       END
复制代码
反汇编得到的。
  1. ROM:A0063800             ; ---------------------------------------------------------------------------
  2. ROM:A0063800 71 46                       MOV     R1, LR
  3. ROM:A0063802 04 31                       ADD     R1, #4
  4. ROM:A0063804 17 30                       ADD     R0, #0x17
  5. ROM:A0063806 03 B4                       PUSH    {R0,R1}
  6. ROM:A0063808 C0 46                       NOP
  7. ROM:A006380A C0 46                       NOP
  8. ROM:A006380C C0 46                       NOP
  9. ROM:A006380E 01 B4                       PUSH    {R0}
  10. ROM:A0063810 07 48                       LDR     R0, =0xA8A7F230
  11. ROM:A0063812 64 21                       MOV     R1, #0x64
  12. ROM:A0063814 04 A2                       ADR     R2, loc_A0063828
  13. ROM:A0063816 01 32                       ADD     R2, #1
  14. ROM:A0063818 4D DF                       SWI     0x4D   //4D: void GBS_StartTimerProc(void *htimer, long ms, void ptr())
  15.                                             //0xA0093278
  16. ROM:A006381A 01 BC                       POP     {R0}
  17. ROM:A006381C 1E 20                       MOV     R0, #0x1E
  18. ROM:A006381E 7C DF                       SWI     0x7C
  19. ROM:A0063820 2A 1C                       ADD     R2, R5, #0
  20. ROM:A0063822 2B 1C                       ADD     R3, R5, #0
  21. ROM:A0063824 09 21                       MOV     R1, #9
  22. ROM:A0063826 01 BD                       POP     {R0,PC}
  23. ROM:A0063826
  24. ROM:A0063828             ; ---------------------------------------------------------------------------
  25. ROM:A0063828
  26. ROM:A0063828           loc_A0063828                            ; DATA XREF: ROM:A0063814o
  27. ROM:A0063828 00 B5                       PUSH    {LR}
  28. ROM:A006382A 00 20                       MOV     R0, #0
  29. ROM:A006382C 7C DF                       SWI     0x7C   // 7C: unsigned int SetVibration(unsigned int power)    0xA01B11F3
  30. ROM:A006382E 00 BD                       POP     {PC}
  31. ROM:A006382E
  32. ROM:A006382E             ; ---------------------------------------------------------------------------
  33. ROM:A0063830 30 F2 A7 A8 dword_A0063830  DCD 0xA8A7F230          ; DATA XREF: ROM:A0063810r
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-26 12:01:39 | 显示全部楼层
上面的源码编译不过。

  1. -carm
  2. -Z(CODE)VIBRA_AT_CALL_START_BODY=A1562000-FFFFFFFF
  3. -Z(CODE)VIBRA_AT_CALL_START_HOOK=A0EAF160-FFFFFFFF
复制代码
还是这个提示。
Fatal Error[e72]: Segment VIBRA_AT_STATT_START_HOOK must be defined in a segment definition option (-Z, -b or  
-P)

检查了很多遍了,IAR的配置貌似没有问题。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-7 20:23

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表