爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2851|回复: 53
收起左侧

菜鸟补丁移植和修改入门初步(5.1更新:让通话对方听到电池没电提示音的研究)

[复制链接]
发表于 2008-4-17 19:12:24 | 显示全部楼层 |阅读模式

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

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

x
让通话对方听到电池没电提示音的研究
      Xinshou的“通话中播放声音”
http://mobile.0110.cn/viewthread.php?tid=226327&highlight=%CD%A8%BB%B0%D6%D0%B2%A5%B7%C5
吸引了不少机油跟帖。其中播放电池没电的声音,让很多机油联想到可以用于很礼貌的挂断罗嗦电话的方法。但是,qqqingren的跟帖,打破了大家的幻想,也让帖子沉入了大海:“我打了后今天才发现只有我能听到,对方听不到  这是怎么回事???”
    我也进行了测试,并且基本搞清楚怎么回事了。当时没时间,趁着今年五一整理了出来。
    这也算本人帖子“菜鸟补丁移植和修改入门”的续篇。
“通话中播放声音”补丁片段如下:
说明:通话过程中,按“播放”键可发出机内的声音:
Bug:当正在接通时,按“播放”键有时会关机。
0x35ADDA: EA0008AF FAC780D0
0x27D080:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 46FC62003D04E6FC0300DAB5A4D2FAD5
0x27D090: FFFF 08AF
;自定义:
;0x27D082: 62
;
“播放”键

;0x27D088: 03
;
“嘀嘀嘀嘀”声


    这是将补丁挂在了“通话过程中按播放键”的挂钩上了。
    进过测试,通话中包括一分钟提示音、通话结束的提示音对方也是听不见的。只有通话中振动,可以让对方听到“吼声”,记得在哪个帖子里见过。
    但是有一种印象,在真正电池没电时,对方可以听到提示音。为此,我开始寻找“真正没电”时的提示音地址。
    用多个关键词在补丁库中寻找,最后“电池”找到了以下补丁:
静音或鸣音时取消电池警告音 binline 铃声 日期:2006.5.29
0x0ebfe0: DAB502D2 DAB5A4D2
    显然0x0ebfe0是提示音的地址。将该地址做成函数DAAED0BF,用UE做成BIN文件DAAED0BF.BIN在MMC中运行,果然可以播放没电的提示音。
    将这个函数挂到“通话播放键”上,死机!
    在自己的FULL中定位0x0ebfe0,并把代码复制下来:
000ebfd0h: DA D9 72 E9 48 40 2D 02 E0 3C 0D 02 E6 FC 25 00 ; 谫r镠@-.?..纥%.
000ebfe0h: DA B5 02 D2 E6 FC E8 35 E6 FD 0E 00 E6 FE 4D 00 ; 诘.益?5纨..纩M.
    将这两行代码做成补丁如下:
;模拟电池没电提示音 日期:2007-11-11
;作者:ljmstock
0x35ADDA: EA0008AF DAC7A0D6
0x27D6A0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DAD972E948402D02E03C0D02E6FC2500
0x27D6B0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DAB502D2E6FCE835E6FD0E00E6FE4D00
0x27D6C0: FFFFFFFFFFFFFFFF FAB48079EA0008AF

    拨打10086,按播放键,OK!发出了电池没电提示音,并出现文字提示。找到了“真正没电”时的提示音代码和地址。
    接着通话中测试,对方听不到!狂晕,几个晚上就这么白耗了?但通过这次的补丁制作,水平有了明显提高。对于不懂汇编语言的机油,补丁很神秘;但是知道可以用粘粘贴贴的方法也可以弄两个补丁出来,神秘感就消弱了。让更多的机油参与到补丁创作中来,至少补丁移植可以不求人。
    至此,开始怀疑开头的想法了:在真正电池没电时,对方可以听到提示音?
    经实际测试,真正没电时的提示音,对方也是听不到的!
    想到了另一种实现的方法。通话中播放VMO文件,双方都可以听得到,做一个“没电.VMO”!
    最好是进行内录,将没电提示音录制下来。
    要关闭MIC,以关键词“MIC”搜索补丁库,找到补丁:
    使用PTT键开关MIC 春树暮云。对照补丁和自己的FULL,天堂3.8中已集成。
    查“后台录音”,找到补丁:
后台录音时后台录音 RizaPN,Jewes,已集成。
    接着小8录音,关闭MIC,按*键进入MMC,运行DAAED0BF.BIN,发现录音不下来。播放提示音时录音中断,试过几种方法,也搞过补丁,始终没有办法进行内录。绝望啊!
    没招了,只能采用外录。一台小8放音,一台录音。将VMO格式转换为WAV格式,再用Cool Edit进行处理,保存回WAV,转换为VMO。这个效果没有铃声柔和,只能将就点了。
    这里介绍一下Cool Edit。这个软件如同PhotShop,PS是处理图形的,而Cool Edit是处理声音的,处理方法非常相像,是音效处理的绝佳软件。可以将两个声音叠加,将其中的一个声音作为背景音;也可以将声音变频和调速,男声变女声;还可以生成需要的声音,如果搞清楚没电提示音的MIDI,那么就可以制作出效果完全一样的VMO,化了一个晚上也没有搞成。
   现在实现了通话当中双方都可以听得见的没电提示音,可以在不想听下去,又不好意思挂机时使用。去年就做到了这一步。
接下来让真正没电时,也采用这种方式播放提示音,避免突然断电挂机造成误会。本人熬了两个通宵写帖子,做不下去了,请有兴趣的机油接过我的火炬,完成未竟的事业。
   对小8声音功能的总结:
1. 铃声和提示音实际上是同一种播放形式,都是单音音频。单音音频由系统产生后只送到听筒,没有经过MIC回路,所以不可能被通话对方听到;也没有经过语音回路,所以不能被内录。同一个听筒,可以播放语音,但不能播放多频和声的铃声。如果要达到好的录音效果,可能要这样:将两根耳机线进行耳机与MIC的耦合,即一根耳机线的MIC接到另一根的听筒,听筒线接到MIC线上,可能需要阻抗匹配,用电阻-电容或电阻-线圈进行耦合。铃声是经过耳机回路的。
2. 播放VMO和通话是同一种播放形式,双方都可以听得到也可以录音。既通过了语音也通过了MIC回路。
3. MP3播放是相对独立的,只通过耳机线。

下载:没电.VMO
最新的补丁库,加入了收集到的挂钩表
函数库 下载汇总.rar (575.98 KB, 下载次数: 81)

入门初步.rar

559.9 KB, 下载次数: 146

评分

参与人数 1实力分 +1 金钱数 +100 收起 理由
胡同印象 + 1 + 100 感谢你和大家分享经验

查看全部评分

 楼主| 发表于 2008-4-17 19:36:28 | 显示全部楼层

现在知道在哪里改了。只要改变红色部分代码就会改变路径名了,改好后复制下来做成V_Klay普通补丁就可以刷机了。这是个笨办法,初学者使用不谓蠢。这种方法也可以方便的将文本格式的补丁代码转换成十六进制的格式代码。
(三)简单补丁的创作
    在不使用汇编语言而要做个补丁,只能通过有所需要功能的其他补丁进行裁剪拼凑。这时,补丁库、函数库、挂钩库、自己的Fullflash起到很大作用。把这些作为素材库,象PhotShop一样进行拼凑。
补丁创作需要耗费很多时间和精力,需要不断测试修改,需要有很大耐心。做过这方面工作的机油才能体会到,我们有这么多补丁使用,是前辈们辛勤劳动的成,我们应予以尊敬。
    由于时间有限,不能继续写了,有时间再补充。
    补丁库、函数库及本文word版打包下载:在一楼
后记
    写点东西真耗时,熬了好几个通宵。希望初学者能早日成长,全民皆兵,打一场人民战争。原先还要多写一些的,要打道回府了,只能匆匆而就,粗糙了点,请多包涵。
                       ljmstock 于武汉,2008.4.17


[ 本帖最后由 ljmstock 于 2008-4-19 18:58 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2008-4-17 19:45:20 | 显示全部楼层
楼上的你知道修改串口波特率的补丁中几个数据跟波特率的计算关系吗?
回复 支持 反对

使用道具 举报

发表于 2008-4-17 20:29:55 | 显示全部楼层
好文
用例子来说明最容易懂了
感谢楼主
这下在集成版上加补丁会容易得多
回复 支持 反对

使用道具 举报

发表于 2008-4-17 20:49:16 | 显示全部楼层
喜欢小8的静下心来慢慢看
回复 支持 反对

使用道具 举报

发表于 2008-4-17 21:00:41 | 显示全部楼层
好东西!
慢慢研究!
回复 支持 反对

使用道具 举报

发表于 2008-4-17 21:33:05 | 显示全部楼层
lz的前言说出广大菜鸟的心里话,佩服lz的洞察力。
一定好好学,不辜负lz的一片热心!

请lz能否修改一下,
像其他教程那样,
在文中加进一些图片,
让菜鸟按您说的一步一步操练,
这样会更容易上手。
谢谢

[ 本帖最后由 hf1007 于 2008-5-13 09:34 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2008-4-18 00:05:03 | 显示全部楼层
顶 学习  
回复 支持 反对

使用道具 举报

发表于 2008-4-18 09:46:21 | 显示全部楼层
支持楼主。。。。
回复 支持 反对

使用道具 举报

发表于 2008-4-18 09:57:07 | 显示全部楼层
好东西
谢谢LZ了
虽然我的小8已经不行了
回复 支持 反对

使用道具 举报

发表于 2008-4-18 10:59:18 | 显示全部楼层
楼主辛苦,学习学习.
回复 支持 反对

使用道具 举报

发表于 2008-4-18 11:17:06 | 显示全部楼层
::?\dk 感动哇。。。没想到现在还有如此好的补丁修改教程出现。。。
回复 支持 反对

使用道具 举报

发表于 2008-4-18 14:43:23 | 显示全部楼层
支持楼主。。。:/gn
回复 支持 反对

使用道具 举报

发表于 2008-4-18 18:32:00 | 显示全部楼层
这个要支持
回复 支持 反对

使用道具 举报

发表于 2008-4-18 20:21:40 | 显示全部楼层
顶楼主,好文,有时间我再回来研究!
回复 支持 反对

使用道具 举报

发表于 2008-4-19 06:16:12 | 显示全部楼层
很好!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2008-4-19 18:05:50 | 显示全部楼层
这个要支持~~~~~~~~~楼主辛苦了~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-19 19:00:23 | 显示全部楼层
感谢大家,有时间再补充:简单补丁的创作实例
回复 支持 反对

使用道具 举报

发表于 2008-4-19 23:47:08 | 显示全部楼层
说实在话,楼主为广大天堂集成版用户作出过很大贡献,赞一个。一般用集成版的用户都是动手能力弱却又偏偏极爱八哥之人,所以一旦有新补丁出现而又因冲突不能及时刷进机器里,心里那个急啊。这时,楼主往往就会在过后几天里发出自己的修改,详细讲解个中缘由,对集成版用户来说,那可真是雪中送炭。
楼主,我代表广大集成版菜鸟感谢你,希望你再接再厉多为集成菜鸟作贡献,及时把每个新补丁无冲突移植到菜鸟机器里!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-20 14:41:01 | 显示全部楼层
回答提问:
函数库、挂钩库,函数是学习变量的,在这儿是什么意思?还有挂钩的意思,请指教。耽误您时间了,再谢。

做个简单介绍:
    所谓的函数就是一些功能调用,与数学上的函数如三角函数不相干,就是那些以DA开头的语句。DA是汇编语言中调用某个地址代码段的命令,所以DA后面跟着是地址,但后面的地址与实际地址不一样,需要转换。见地址移植那段说明。发生强刷,有时做地址移植也不能解决问题。最好是打开你自己最新的FULL,对比补丁和FULL同地址处的代码,看看强刷有没有问题,如没有问题就强刷,或修改补丁中的原代码以便不强刷。
    挂钩是抢夺控制权的代码,电脑病毒大量要用到挂钩。比如说,原先手机来了短信就保存并显示有新短信提示,现在把显示提示控制权截住,让手机先运行自己的一段代码,然后归还控制权。挂钩要找可中断的位置,如一个函数调用处,不能是在一段功能性代码的中间,否则引起语法错误而死机。所以挂钩往往是两个函数调用,之间用空格隔开,表示将手机里原先的某地址上的某个函数代码替代为后面那个函数代码。与连续执行两个函数不同,连续执行之间没有空格。

[ 本帖最后由 ljmstock 于 2008-4-20 21:31 编辑 ]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 12:51

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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