首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测到ADB服务器是否运行在Android上?

检测到ADB服务器是否运行在Android上?
EN

Stack Overflow用户
提问于 2015-01-11 05:48:52
回答 1查看 8.7K关注 0票数 6

我正试图检测adb server是否在安卓设备上运行,这是我的免费游戏的防作弊实现的一部分。

具体来说,我想停止使用adb shell input tap x,y,因为游戏是一个竞争性的多人益智游戏。

我尝试过的事情:

  1. 使用电池信息,我可以检测USB是否插入。嗯,这也是合法使用。
  2. 使用Settings.SecureSettings.Global,我可以查询ADB_ENABLED,但如果启用了亚行,则总是返回1。它没有考虑到亚行连接与否!
  3. 查询所有系统服务,但我看不到任何看起来像亚行服务的东西。

在这一点上,我已经没有想法了。希望其他人知道怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-11 15:16:46

您可以检查是否运行adbd进程或查询init.svc.adbd系统属性:

代码语言:javascript
运行
复制
$ ps adbd
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      14947 1     4596   208   ffffffff 00019358 S /sbin/adbd

$ getprop init.svc.adbd
running

在安卓系统中,adb驱动程序是作为通用usb驱动程序实现的。您可以检查当前启用的usb函数的(逗号分隔)列表,以查看它是否包括"adb"

代码语言:javascript
运行
复制
$ cat /sys/devices/virtual/android_usb/android0/functions
mtp,adb

但是,当你的应用程序在用户控制的设备上完全运行时,你就无法停止作弊。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27884372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档