当前位置: 首页 > article >正文

手机实时提取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卡打电话的信令和声音-新的方案-开篇

下一篇:正在编写中。


http://www.kler.cn/a/311739.html

相关文章:

  • Lodash的常用方法整理
  • 前端web
  • old-cms(原生PHP开发的企业网站管理系统)
  • 希尔排序(C语言)
  • c语言数据结构与算法--简单实现队列的入队和出队
  • 信息网络安全——AES加密算法
  • 【简单记录】Linux系统安装ZooKeeper
  • 【电路笔记】-运算放大器比较器
  • 在线查看 Android 系统源代码 Git repositories on android
  • YOLOv9改进策略【注意力机制篇】| MCAttention 多尺度交叉轴注意力
  • vue和thinkphp路由伪静态配置
  • 前端vue-子组件对于父组件的传值的约束
  • cuda与机器学习
  • C++ ——string的模拟实现
  • 字节跳动的微服务独家面经
  • 详细分析Pytorch中的register_buffer基本知识(附Demo)
  • 9.19工作笔记
  • fmql之驱动程序编写(首次)
  • 浏览器插件利器--allWebPluginV2.0.0.20-beta版发布
  • 安科瑞智能塑壳断路器适用于物联网配电电网中-安科瑞黄安南
  • 算法打卡:第十一章 图论part01
  • 每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数
  • Redis的Key的过期策略是怎样实现的?
  • 【WPF】02 按钮控件圆角配置及状态切换
  • 华为昇腾智算中心-智算中心测试方案与标准
  • JavaEE:网络编程(UDP)