普通手机app不依赖电脑-如何获取ADB权限
--ADB应用浅析
-
上一篇:本地AI电话机器人-将手机电话通话声音通过udp传输到局域网的Python脚本
下一篇:编写中
-
一、前 言
在之前的篇章中,我们花了好多的篇幅在ADB连接的专题上,如
《ADB连接专题-跨互联网远程adb连接到手机》等等系列的文章。我们在这些系列的篇章中分门别类的论述了:如何在手机已经开启了tcpip 5555端口的情况下,充分利用Android手机中的ADB指令和功能,实现复杂的扩展功能和应用的能力。
但是这一切,都绕不开一个根本的问题:我们一个普通的手机,如何让它能获取得到ADB权限呢?
前面的篇章《ADB点击实战-做一个自动点广告播放领金币的脚本app(下)》文中,我们罗列了常规的、依赖电脑操作的标准方式:
【开发者选项】->【USB调试开关】->【USB的OTG线插到电脑】->【电脑解压platform-tools.rar】->【电脑运行adb.exe tcpip 5555】
通过这几个级联的步骤和操作,开启的手机ADB权限(复杂度其实挺高的)。
这个方式也是绝大多数Android应用开发者和用户使用ADB去操控手机的前提步骤。现在的各种AI手机方案基本也是采用这样的方式来"间接"操控手机屏幕界面和事件操作。
那问题来了,就如我们去年底遇到的情况一样:哪天你出门向你的客户展示你的方案,客户觉得不错,拿出它的手机,让你在它手机上也装一个APP试试。你咋办?要告诉他APP要依赖电脑,要先插电脑上授权一个ADB然后才能工作吗?还是告诉他今天出门你没带电脑,授权不了手机ADB?^V^。
因此,我们回过头来反思:凡是不能在手机本身实现闭环的应用或者方案,都踏马的是垃圾!一个手机应用APP,居然不能独立工作,要依赖其它CPU设备的干预,才能正常跑起来,那不扯蛋呢吗!
后来我们就痛定思痛,在Android手机ADB授权的基础上,弄出了"普通手机app不依赖电脑-直接获取ADB权限"的方案和能力,也即本篇内容的由来。
经过此步骤的安卓手机,不再需要插入电脑进行ADB授权,也可正常在手机内部独立完成手机的ADB授权操作。哪怕是手机重启或恢复了出厂设置的Android,均可完整的实现手机ADB的授权。
体验和下载地址:
ADB无线调试-测试App: http://120.78.211.195:8060/adbtest.apk
或 智能拨号器App: http://120.78.211.195:8060/Dialer.apk
- 二、APP操作测试界面
当前的测试APP共有以下的三大依赖项(需要在应用操作过程中手动授权允许):
1、依赖百度飞桨的paddle-lite的OCR识别(测试APP自带)
2、依赖手机开发者选项中的【无线调试】的入口(参考下章节的步骤手动操作)
3、依赖Android默认MediaProjection的录制屏幕的能力(需手动授权)。
测试APP界面上只有两个按钮和顶部的状态进度文字显示区域,如下图所示:

通常只需要按下第一个按钮【申请录制屏幕权限】,即可正常的加载ocr识别库和模型、弹出录屏的授权提示框,并自动跳转到手机的"开发者选项",自动完成级联操作。
申请录屏权限后,手机会弹出录屏的授权提示框,如下图所示:

此时部分手机需要选择"共享整个屏幕"的选项,再点击确定按钮,即可允许应用APP对整个手机进行屏幕画面的提取。
授权了手机录屏权限后,测试APP自动跳转到Android手机的【开发者选项】的界面。
- 三、手机无线调试的操作入口
一般的手机,如果该手机之前从未开启过【开发者选项】,就需要进"关于手机"中,狂点某个条目(如下图左侧的版本号),开启手机的开发者模式。如果手机已开启过【开发者模式】的,在上面录屏授权后会直接跳转到【开发者选项】的界面。
在开发者选项中,点击【无线调试】的条目,进入无线调试的配置界面(不用开启USB调试,开不开都可以),如下图右侧所示:

无线调试的界面中,用户需要手动打开"无线调试"的开关,然后手动点击【使用配对码配对设备】。让它弹出如下图那样具有"WLAN配对码"(通常是6位数字)内容的弹窗界面,如下图所示:

至此就可以了,耐心的等待弹窗消失。测试APP在前面授权了录制屏幕的权限后,就一直会捕获手机屏幕的画面,当测试APP从当前界面中识别出有"无线调试配对--配对码和连接IP地址端口"后,会自动进行配对和连接。连接成功后当前弹出的【与设备配对】界面会自动消失。当这个配对码弹窗消失了,说明测试APP已完成预期的【普通手机app不依赖电脑-直接获取ADB权限】的功能。
这个过程是很快的(约2~5秒左右),假设如果等待10秒,配对弹窗仍未消失,用户不放心的可以点击"取消"按钮,再次点击【使用配对码配对设备】条目,重新弹出配对弹窗等待测试APP主动读取识别即可。通常不需要这样操作都能直接快速的完成配对。
- 四、ADB无线调试-测试App的配对和连接过程
如果读者对技术有求知欲,并且可以查看测试APP的Logcat日志,可以在日志中过滤"com.ade.adbtest"字样,就可以很清晰的看到测试APP的录屏和OCR识别的经过,如下图所示:

从图中的日志信息,我们可以很容易的看出当前配对成功的手机WLAN的IP地址、配对端口、配对码,以及手机无线调试的连接端口。测试APP就使用这4个属性的值,来独立完成手机的ADB授权操作。
- 五、总结
我们前面一直依赖电脑来给Android做ADB授权操作,对于一个手机应用APP和用户而言,确实是很不方便的。这个问题也困扰了我们好久。
得益于GitHub上的开源方案和思路,以及DeepSeek强大的编程能力,我们通过各种方案和思路的尝试,最终还是搞定了这个课题。实现了手机本身就可以实现【对应用APP做adb的授权】,从此不再依赖电脑做adb授权。
我们前期在互联网上,并没有看到有人做过此类尝试,至少截至目前,方案具备足够的先进性,我们也算是这个方向开拓的先驱^V^。
感兴趣的朋友可以自行下载测试APP,试用和体验一下手机无线调试配对和ADB连接授权的效果。本文的探索方向和思路,对Android手机操控和应用,也具有一定的实践意义。