手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)

手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)

前言

前面的篇章和方案中,我们说到可以使用蓝牙、USB等方式把声音从手机中提取出来,但对于SIM通话,因为手机进行了层层封锁的原因,实时的通话语音数据和打通/没打通的事件数据比较难提取得到。

我们回过头看,别听作者扯犊子,屁的难提取到。想想看我们平时是怎么打电话的:用手在电话拨号盘中拨出某个号码,然后打通后把手机贴到耳朵旁收听和说话,如果不想贴到耳边可以开免提或者插个耳机进去接听。你看,看出问题来没有:****耳机本身就可以接收和发送语音数据!!****如果我们把3.5mm耳机(传输模拟信号)替换成USB数字耳机(传输数字信号),这个通话效果照样能成立。

那还说啥"难获取到"?忽悠谁呢?这就是一个非常基础的能力。

我们从技术路线的理论出发,也能过滤出上述的选型区间,详细看我们前面的篇章《手机实时提取SIM卡打电话的信令和声音-(三、安卓提权与特权应用Mock Bluetooth)https://blog.csdn.net/limingade/article/details/132584959

以下是节选的内容:

我们针对输入输出的音频设备进行逐个分析,发现:

  1. HDMI口,大部分手机都不预留此物理接口,实现此功能的都是通过USB转换。
  2. 听筒/扬声器,就是我们此次提取和拦截的目标。
  3. 3.5mm圆孔耳机,传输的是模拟音频信号,可以用来充电、接电话、传数据,理论上,这个口可以利用起来实现本文的目标。但有部分新手机已取消3.5mm圆孔耳机接口。
  4. USB耳机,同3.5mm圆孔耳机,使用专用设备插入可实现本文的目标。
  5. 蓝牙耳机,蓝牙接口有标准的HF协议和HFP协议,扩展性良好。

因此,从这个角度来看,若不动手机的操作系统和专用硬件,直接可实现我们需求的音频通道有:HDMI、USB耳机、蓝牙耳机

在分析之前,我们先简单的联想一下:我也不要什么命令触发、也不用接收振铃挂断等事件响应,纯粹使用adb自动点击坐标的方式录入号码、拨打呼叫、挂断通话,然后手机直接插一个耳机线,线的另一头能够提取声音(做A/D转换成数字)然后发到网上。那么这样的架构能不能实现我们的预期的目的呢?答案是可以的。

这样做会涉及手机对SIM卡功能的封锁和拦截吗?并不会,因为这是最常规的手机用法,唯一能限制它的只有道德和法律。^V^。

方案分析

它的拓扑架构大概如下:

我们可以使用USB耳机或其它数字信号的耳机,省略A/D(模拟转数字信号)转换的步骤,对它进行精简一下。精简后的拓扑架构如下:

那么,使用耳机线的方案和我们蓝牙的方案,差异在什么地方呢?由前文可知,蓝牙方案的拓扑架构大致为:

这么看起来,好像也没啥太大的差别,该增加的外部配件还是要增加。该占用的type-c充电口还是会占用。减少了一条蓝牙链路但增加了一个很小众的【USB耳机转Net网络】的配件,而且还把原来蓝牙HFP对信令和事件的交互协议给丢了(因为引用了间接的交互方式)。

咋一看,这样的做法除了避免了蓝牙的跳频干扰之外,好像也没有可取之处。是这样的吗?

事实上,这一轮的转换将SIM卡语音的方案从原先的依托于蓝牙链路和蓝牙模块,扭转到了以USB开发为基础的USB语音链路中,这是一个重大的转折方向,也是我们后续对《手机实时提取SIM卡打电话的信令和声音》进行轻量化和简易化封装的基准前提。

我们将在后续篇章中,使用大约5个篇幅对这个方向、以及USB开发的深入挖掘方式进行探索。有兴趣的读者可以跟随我们一起进行分析。

总结

我们基于前期"蓝牙电话"的方案,在其它方向上继续探索手机实时提取SIM卡打电话的信令和声音这个领域新的候选方案。从手机用户的日常使用习惯出发,论证了USB方向的其它可能性,探索轻量化操作的其它方法。但不管怎么说,我们最初的需求始终未变:

我们最朴素的念头,是希望在当世大量手机的存量市场的前提下,采用一种所有手段都无法约束的标准化方式,打通互联网/移动互联网 与传统电话网络之间的隔离。用分布式、离散化的方式,让全世界各国的民众,都能简单的使用这种能力。

并且我们将在原先蓝牙电话的做法之上,探索了另外的轻量级和高稳定性方案的可行性。


上一篇:手机实时提取SIM卡打电话的信令和声音-新的方案-开篇

下一篇:正在编写中。

相关推荐
钡铼技术1 分钟前
通过iFIX在ARMxy边缘计算网关上实现维护管理
人工智能·物联网·边缘计算·钡铼技术·armxy边缘计算网关
华清远见IT开放实验室3 小时前
【项目案例】物联网比较好的10+练手项目推荐,附项目文档/源码/视频
物联网·音视频
艾泊宇产品战略咨询3 小时前
苹果为什么不做折叠屏手机?
智能手机
编程零零七3 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
GEEKVIP4 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
jiao000015 小时前
数据结构——队列
c语言·数据结构·算法
迷迭所归处6 小时前
C++ —— 关于vector
开发语言·c++·算法
leon6257 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林7 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先