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

devtools/2024/9/22 20:13:14/

手机实时提取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.ppmy.cn/devtools/115628.html

相关文章

基于SpringBoot+Vue+MySQL的校园一卡通系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会的快速发展,校园一卡通已成为大学生活中不可或缺的一部分。它不仅承载着校园消费的功能,还集成了学生身份证明、图书馆借阅、门禁系统等多种服务。然而,传统的一卡通管理系统往往…

MySQL内存(Buffer Pool)

Buffer Pool MySQL 的数据存在磁盘,但是不能每次读取数据都从磁盘里去,这样磁盘IO太频繁,存在性能问题。 InnoDB设计了一个缓存池(Buffer Pool),缓冲池在内存中。 默认配置Buffer Pool大小为128MB&#xf…

LeetCode 每周算法 6(图论、回溯)

LeetCode 每周算法 6(图论、回溯) 图论算法: class Solution: def dfs(self, grid: List[List[str]], r: int, c: int) -> None: """ 深度优先搜索函数,用于遍历并标记与当前位置(r, c)相连的所有陆地&…

Redis 的三个并发问题及解决方案(面试题)

Redis 作为一种高性能的内存数据库,在很多应用场景中被广泛使用。然而,在并发环境下,Redis 可能会面临一些问题。本文将详细介绍 Redis 的三个常见并发问题,并提供相应的解决方案。 一、数据一致性问题 (一&#xff0…

网络协议全景:Linux环境下的TCP/IP、UDP

目录 1.UDP协议解析1.1.定义1.2.UDP报头1.3.特点1.4.缓冲区 2.TCP协议解析2.1.定义2.2.报头解析2.2.1.首部长度(4位)2.2.2.窗口大小2.2.3.确认应答机制2.2.4.6个标志位 2.3.超时重传机制2.4.三次握手四次挥手2.4.1.全/半连接队列2.4.2.listen2.4.3.TIME_…

django之中间件

Django 中间件是一个轻量级的、底层的插件系统,用于全局地处理请求和响应。中间件可以用于各种任务,如请求和响应的处理、用户认证、缓存、会话管理等。 Django 默认的中间件配置 在 settings.py 中,Django 默认的中间件配置如下&#xff1…

华为HarmonyOS地图服务 6 - 侦听事件来实现地图交互

本章节包含地图的点击和长按、相机移动(华为地图的移动是通过模拟相机移动的方式实现的)、以及“我的位置”按钮点击等事件侦听。 接口说明 以下是地图侦听事件相关接口,以下功能主要由MapComponentController提供,更多接口及使…

仿真软件PROTEUS DESIGN SUITE遇到的一些问题

仿真软件PROTEUS DESIGN SUITE遇到的一些问题 软件网上有很多下载地址自己找哈! 首先如果遇到仿真 没有库 ,需要在网上下载库文件替换到DATA目录下 如果不是默认安装到C盘需要手动修改这些地址,不然会报错!! 当遇到点击仿真出现报错 : 检查这个设置地址是否正确: 随便在库文…