我正在尝试修改移动操作系统,这样我就可以控制要接听的呼叫,拒绝哪个呼叫,以及运行某些信号处理。
我正在使用Android操作系统,但我需要与基带操作系统进行通信,我确信无论何时我们接到电话,移动操作系统用户界面变得生动,以及我们是否想采取或者拒绝接听电话 - 这个决定可以在移动OS层进行,然后传输到基带OS!
我试图在谷歌找到,但找不到一件事,基带操作系统和移动操作系统之间存在什么样的接口。
非常感谢帮助!
答案 0 :(得分:1)
Android中用于与无线电通信的主要机制是/ dev / smd0,它实现了具有许多扩展命令的AT调制解调器。我不知道该设备是如何实现的,但我建议查看它的来源。我相信它基本上是连续的。
操作系统(如果我还记得)有一个守护程序,它监视和连接该设备。
例如,当手机需要基带在移动网络上注册时,它可以向该设备发送AT+CREG=1
,基带将负责处理(并返回0
)。要拨打电话,它会向该设备发送ATD8005551212
或其他内容。要接听电话,它会发送ATA
;挂断它会发送ATH
,就像调制解调器一样。
该设备上的来电事务看起来像这样。基带将在/ dev / smd0上打印+CRING: VOICE
,操作系统可以发送AT+CLCC
以获取呼叫者ID,其格式为扩展状态消息:+CLIP: "+18555551212",,,,""
或其他。
据我所知,有时设备名称会有所不同;例如,如果基带接口实现为USB串口,则可能为/dev/ttyUSB0
。
你将在系统应用层执行此操作,而不是在内核中执行此操作,我认为这是正确的方法。