auto.js无障碍被应用检测到,怎么解决

auto.js运行脚本需要开启无障碍,有些应用会检测手机里是否有应用开启无障碍权限,检测到了会提示不让指定应用或者提示涉嫌作弊等,高价求解决办法 最多只能给500 但是可以给5位数

回答引用于gpt:

该回答引用于gpt,望采纳:
这是因为应用检测到了您的手机开启了无障碍权限,而一些应用会将这种行为视为潜在的作弊行为。以下是一些可能有助于解决您遇到的问题的建议:

  1. 将您的脚本设置为使用普通操作而非无障碍服务来执行您的任务。
  1. 安装一些可以隐藏无障碍服务的应用程序,例如"Hide Mock Locations"或"Secure Settings"。这些应用程序可以模拟您已关闭了无障碍服务,让应用程序不会检测到您的权限。
  1. 可以尝试在Rooted设备上运行您的脚本,这样您就可以使用更高级别的权限来控制您的设备,从而规避某些安全限制。

如果您使用的是Android系统,那么大多数自动化工具(如Auto.js)都需要开启无障碍服务才能正常运行。但是,一些应用程序确实会检测某些权限是否被授予,并且如果它们发现无障碍服务已经启用,则可能会阻止该应用程序运行或显示警告消息。

  1. 使用模拟器:您可以尝试在模拟器中运行自动化脚本,而不是在实际设备上运行。模拟器通常不受应用程序的限制,因此您可以尝试在模拟器中运行自动化脚本。
  1. 更改自动化工具:最后,您可以尝试使用其他自动化工具,例如Tasker或Robolectric,这些工具可能不需要无障碍服务权限或可以更好地处理应用程序的限制。

希望这些方法对您有所帮助!

看一下哦

在 Android 应用中,开启无障碍权限是为了让应用能够模拟用户操作,实现自动化功能。有些应用会检测手机是否开启了无障碍权限,以此来防止自动化程序的运行。

为了绕过这种检测,您可以尝试以下方法:

  1. 使用 Root 权限:在 Root 后的设备上,可以使用一些工具(如 Xposed 框架)来绕过应用的检测。
  1. 使用模拟器:如果您在模拟器中运行自动化脚本,则不需要开启无障碍权限。但是,模拟器的性能可能会受到一定的影响,而且一些应用也会检测模拟器环境。
  1. 尝试其他自动化框架:除了 Auto.js,还有一些其他的自动化框架,如 Appium、UI Automator 等,它们的原理与 Auto.js 类似,但可能不需要开启无障碍权限,或者可以通过其他方式绕过应用的检测。

这个问题可能由于自动化脚本被检测到而导致。为了避免被检测出来,您可以尝试使用以下方法:

  • 尝试在自动化操作之前通过手动方式进行相同的操作,以便应用程序不会检测到有任何异常。
  • 尽量避免对游戏和应用程序进行过多的重复自动化操作,因为这样可能会被检测到。
  • 尝试减慢自动化脚本运行的速度,这样可以更加模拟人类的操作,并且减少应用程序检测到异常的可能性。
  • 如果您使用的是 Android 系统,请确保您的手机已经 root,并且使用 Xposed 框架或 Magisk 来隐藏自动化脚本的相关信息,从而避免被检测到。

这些方法并不能完全保证您不会被检测到,但它们可以帮助你减少被检测到的风险。

开启无障碍权限的确是许多自动化脚本的必要条件,但是一些应用可能会检测到该权限的状态,从而禁止或限制脚本的运行。

以下是一些可能有帮助的解决办法:

使用Root权限:如果您的设备已经获得了Root权限,可以尝试使用Root权限来运行自动化脚本。许多自动化工具(例如Xposed框架和Tasker)提供了Root版本,这些版本可以更轻松地模拟用户操作并避免一些检测。

使用模拟器:将手机上的应用移植到模拟器中,以模拟器的身份运行自动化脚本,这样可以规避一些安全限制。

避免使用自动化脚本:尝试使用其他方式来实现您的需求。例如,您可以通过与开发者合作,获得应用程序提供的API,以便更好地与应用程序交互。或者您可以尝试手动完成需要自动化的操作,以便避免触发应用程序的安全限制。

避免使用公开的自动化框架:一些应用可能会检测到常见的自动化框架(如UI Automator和Appium),因此可以尝试使用不同的自动化框架或者编写自己的自动化脚本。

尝试使用隐身模式:一些自动化工具提供隐身模式,以避免应用程序检测到它们的存在。例如,Auto.js提供了无障碍隐身模式和Shell隐身模式,这些模式可以帮助您更隐蔽地运行自动化脚本。

需要注意的是,避免触发应用程序的安全限制并不等同于违反应用程序的使用条款或者从事其他违法活动。在使用任何自动化工具或脚本时,请务必遵守应用程序的使用条款,并避免从事任何违法或不当的活动。

这种情况下,您可以尝试以下方法

  1. 切换应用运行方式:有些应用可能只会在无障碍服务运行auto.js时才会检测,您可以尝试在应用正常运行时切换运行方式(如:使用模拟点击的方式进行操作)。
  2. 使用Root权限:如果您的手机已Root,可以尝试获取Root权限并使用auto.js的root方式运行脚本,这样可以绕过检测。
  3. 避免被检测:根据实际情况,您可以尝试修改脚本代码,使用更加自然的操作方式,避免被应用检测到作弊。
  4. 修改应用权限:有些应用可能在开启无障碍服务时会检测手机内所有应用的权限,您可以尝试在手机设置中将该应用的相关权限关闭,这样可能可以避免被检测到。
  5. 使用其他工具:如果auto.js无法满足您的需求,您也可以尝试使用其他类似的工具实现自动化操作,比如Tasker等
  6. 模拟用户操作:有些应用可能会检测自动化工具的操作是否过于机械化,您可以尝试使用auto.js的手势操作功能,模拟用户真实的手势操作。这样可能可以避免被检测到。
  7. 修改应用包名:有些应用检测无障碍权限时会根据包名进行检测,您可以尝试修改auto.js的应用包名,这样可能可以绕过应用的检测。
  8. 使用虚拟机运行:您可以在虚拟机中安装auto.js和需要操作的应用,并在虚拟机中运行脚本,这样可能可以避免被应用检测到auto.js的存在。
  9. 更新auto.js版本:auto.js开发者会不断更新版本,修复一些已知的漏洞和问题,您可以尝试更新最新版本的auto.js,看是否可以解决检测问题。
  10. 反编译应用程序:如果您有足够的技术能力,可以尝试反编译应用程序,查找应用检测auto.js作弊的方法,并进行相应的修改。
  11. 使用其他无障碍服务:如果上述方法仍然无法解决问题,您可以考虑使用其他无障碍服务,比如Tasker、Accessibility Scanner等。这些应用也可以实现一定程度的自动化操作,相对于auto.js可能更加安全和稳定。
  12. 多设备轮流使用:如果您需要在多个设备上运行脚本,可以轮流使用这些设备,避免在同一设备上不断运行脚本,导致被应用检测到。

无解,因为应用程序已经可以通过代码判断了谁用了AccessbilityService了,只要你用了无障碍服务,那么就躲避不掉,也绕不掉。

不用做无用的功。

参考GPT和自己的思路:由于auto.js需要使用无障碍服务才能模拟用户操作,因此一些应用可能会检测到auto.js的运行并提示涉嫌作弊。以下是几种可能的解决方案:

1 使用root权限:如果您的手机已经root,那么可以使用root权限代替无障碍服务。在auto.js中,您可以选择“使用root权限”选项,以使用root权限运行脚本。这样应用检测就不会检测到auto.js的无障碍服务了。

2 使用虚拟机:您可以在虚拟机中安装auto.js和需要运行的应用,并使用虚拟机提供的无障碍服务来运行auto.js。这样应用检测不会检测到您的真实设备上是否开启了无障碍权限。

3 使用其他工具:除了auto.js,还有一些其他的工具可以模拟用户操作,例如Xposed模块和Magisk模块。如果您的设备已经root,可以尝试使用这些工具来模拟用户操作,而无需使用无障碍服务。

4 尝试其他版本的auto.js:如果您的auto.js版本过旧或过新,可能会被应用检测到。您可以尝试使用其他版本的auto.js来解决这个问题。
以下是一个使用auto.js进行点击的示例代码,其中包含处理无障碍服务的代码:

// 导入auto.js模块
var auto = require("auto");

// 检查无障碍服务是否已启用
if (!auto.accessibilityIsEnabled()) {
    // 如果无障碍服务未启用,则提示用户启用无障碍服务
    toastLog("请先启用无障碍服务");
    auto.waitFor();
}

// 执行点击操作
click(500, 1000);


在这个示例代码中,首先通过accessibilityIsEnabled()函数检查无障碍服务是否已启用。如果无障碍服务未启用,则使用waitFor()函数等待用户启用无障碍服务,并在用户启用无障碍服务后继续执行。然后使用click()函数执行一个点击操作,模拟用户点击屏幕上的坐标(500, 1000)。

这个示例代码可以帮助您处理auto.js需要使用无障碍服务的情况,并在无障碍服务未启用时提示用户启用。当然,您可以根据实际需求进行修改和扩展。
您的这个需求就算绕开了,也是有时限的,一段时间被发现就得再修改。

auto.js运行脚本开启无障碍后,会被有些应用检测到的问题:
你最直接的做法就是找一部手机或者安装一个模拟器,里面只安装需要的应用,以此来较少其它应用对无障碍模式的检测。
其次,你可以考虑对是手机进行root,root后,可以不用开启无障碍模式。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
对于这个问题,有一些解决方案:

  1. 利用Root权限

如果你的手机具有Root权限,那么可以使用Root权限来绕过无障碍检测。具体实现方式可以参考如下过程:

a. 获取Root权限

在获取Root权限之前,首先需要保证设备已经解锁了Bootloader,才能启动TWRP等第三方Recovery,然后通过magisk,从而获取Root权限。

b. 修改系统文件

获取Root权限之后,就可以修改系统文件了。你需要找到/data/system/users/0/settings_fecure.xml文件,在其中加入如下代码:

    <setting id="accessibility_enabled" name="accessibility_enabled" value="1" />
    <setting id="enabled_accessibility_services" name="enabled_accessibility_services" value=""/>

该设置实际上是模拟了开启无障碍服务的操作。

c. 重启系统

修改系统文件后,需要重启手机才能生效。

需要注意的是,对于有些ROM可能不适用,因此这种方法并不是适用所有情况,但是如果操作正确,可以解决一定的问题。

  1. 使用特殊版本的Auto.js

为了应对这种无障碍检测,Auto.js官方团队已经针对检测无障碍服务的问题发布了特殊的版本。在这个版本中,使用的是控制台实现,而不是使用辅助功能。这个版本无需开启无障碍服务,因此避免了无障碍服务被检测的问题。需要注意的是,该版本还处于测试阶段。

这个版本的下载地址为:https://www.coolapk.com/apk/sour%E5%BA%BE%E8%B1%AB/MHXYAutoJs%E3%80%82

  1. 使用系统自带无障碍功能

一些大厂手机自带的无障碍服务可能不会被应用程序检测到。你可以在手机设置中找到无障碍功能,然后启用其中的某个服务,比如点按和滑动,然后在代码中通过AccessibilityService来模拟人手操作。示例如下:

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function click(x, y) {
  console.log('Click', x, y);
  const clickEvent = [
    {
      eventType: 'DOWN',
      x,
      y,
      eventTime: Date.now(),
    },
    {
      eventType: 'UP',
      x,
      y,
      eventTime: Date.now() + 100,
    },
  ];
  await device.sendEvent(clickEvent);
  await delay(100);
}
  1. 使用机型破解版的无障碍服务

部分工具的创作者会针对特定机型系统做一些破解,比如将修改过系统的无障碍服务替换成了自己修改的版本,这样可以绕过应用对原始服务版本的判断。

总之,不同的情况可能需要不同的方案,上面提到的方案仅供参考。和你合法使用该设备,学

参考GPT,Auto.js运行脚本需要开启无障碍服务来模拟用户操作,但有些应用对此进行了检测,如果检测到了会提示不让指定应用运行脚本,这是因为开启无障碍服务可以让应用自动化脚本更容易干扰应用操作和收集用户隐私,所以应用开发者会采取措施来避免此类风险。

以下是几种可能解决此问题的方法:

1.尝试使用其他版本的 Auto.js
尝试使用 Auto.js 的其他版本,比如 Pro 版本可能可以绕过一些应用的检测。您可以在 Auto.js 的官方网站上下载不同版本的 Auto.js。

2.更改应用开启无障碍的名称
有些应用会检测设备上是否有特定名称的无障碍服务正在运行,您可以尝试更改 Auto.js 打开无障碍服务的名称,这样可能会绕过一些应用的检测。

3.增加时间延迟
有些应用可能会检测用户操作的速度和时间间隔是否正常,如果您的脚本操作速度过快或者时间间隔过短,可能会被应用检测到。您可以在脚本中增加一些时间延迟,让脚本操作看起来更像自然操作。

4.使用自动点击方案
尝试使用 Auto.js 中的 "click" 函数进行自动点击,而不是使用 "gesture" 函数进行滑动操作,因为自动点击看起来更像自然操作。

5.更改设备的无障碍设置
尝试更改设备的无障碍设置,关闭不必要的无障碍服务,这样可能会让应用检测到的概率降低。

6.不要使用 Auto.js 运行脚本
在一些应用中,使用 Auto.js 运行脚本可能会被检测到,而使用其他脚本工具进行自动化可能会更好。您可以尝试使用 Python 或者 Appium 等其他脚本工具进行自动化操作。

需要注意的是,绕过应用的脚本检测可能会违反应用的使用协议,会被视为作弊等行为被封号,因此在使用自动化脚本时需要谨慎,建议仔细阅读应用的使用协议,并合法使用自动化脚本。

启用无障碍的最佳解决方案脚本源代码:



"ui";

//此代码由飞云脚本圈整理提供(www.feiyunjs.com)

// 误区一:使用线程开启无障碍
// 浪费CPU和内存资源,不必要的线程
// threads.start(function() {
//      auto.waitFor();
// });


// 误区二:直接使用auto()
// 对用户不友好
// auto();

// 正确示范:
// 通过一个开关表示无障碍权限是否开启
// 如果用户没有开启直接运行则提示

ui.layout(
    <vertical>
        <appbar>
            <toolbar title="UI脚本使用无障碍服务的最佳实践"/>
        </appbar>
        <Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="15sp"/>
        <frame height="200" gravity="center">
            <text text="相关配置..." gravity="center"/>
        </frame>
        <button id="start" text="开始运行"/>
    </vertical>
);

ui.autoService.on("check", function(checked) {
    // 用户勾选无障碍服务的选项时,跳转到页面让用户去开启
    if(checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if(!checked && auto.service != null){
        auto.service.disableSelf();
    }
});

// 当用户回到本界面时,resume事件会被触发
ui.emitter.on("resume", function() {
    // 此时根据无障碍服务的开启情况,同步开关的状态
    ui.autoService.checked = auto.service != null;
});

ui.start.on("click", function(){
    //程序开始运行之前判断无障碍服务
    if(auto.service == null) {
        toast("请先开启无障碍服务!");
        return;
    }
    main();
});


function main() {
    // 这里写脚本的主逻辑
    threads.start(function () {
        log("开始运行");
        sleep(2000);
        log("运行结束");
    });
}


可以看看这个
https://www.cnblogs.com/gfwei/p/13169190.html

基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦、”(最新版更智能,功能更加强大)

这个问题可能需要使用一种方式来隐藏或欺骗应用程序,使其无法检测到您正在使用auto.js无障碍服务。以下是一种可能的解决方案:

  1. 对于Root设备,您可以使用Xposed框架及其模块来实现这个功能。其中一个模块名为"应用变量"(App Settings),可以改变某些应用的特定设置,包括禁用无障碍检测。
  2. 对于非Root设备,您可以尝试使用虚拟环境应用,如VirtualXposed。这些应用可以在一个独立的环境中运行其他应用程序,从而保护您的主设备环境。您可以在虚拟环境中运行目标应用程序,同时在主环境中运行auto.js,以规避无障碍检测。
  3. 还有一种方法是修改auto.js应用本身,以隐藏其无障碍服务。但这需要一定的编程知识和Android开发经验。您可以尝试对auto.js的源代码进行修改,以使其具有更低的检测风险。

这里提供一种在Xposed框架中使用的解决方案,需要安装Xposed框架和一个名为XPrivacyLua的Xposed模块。安装好之后,请按照以下步骤操作:

  1. 打开Xposed Installer应用。
  2. 转到模块页面,启用XPrivacyLua模块。
  3. 重启设备。
  4. 打开XPrivacyLua应用。
  5. 在应用列表中找到要隐藏无障碍服务的应用,点击它。
  6. 找到"系统(System)"项,点击进入。
  7. 勾选"getInstalledServices"以限制该应用检测已安装服务的权限。
  8. 返回并应用设置。

现在,目标应用应该无法检测到auto.js无障碍服务了。请注意,此方法可能会影响到目标应用的其他功能,所以请谨慎使用。

如果以上方法都不适用或者效果不理想,您还可以尝试以下方法:

  1. 在Auto.js中修改或创建一个新的无障碍服务,以降低被检测到的可能性。具体而言,您可以更改服务名称、应用包名或无障碍服务的显示名称。这需要对Auto.js的源代码进行修改,然后重新编译应用。
  2. 使用Tasker应用自动化控制无障碍服务的开启和关闭。通过创建一个Tasker任务,当您需要运行Auto.js脚本时,自动启用无障碍服务;当您进入需要检测无障碍服务的应用时,自动关闭无障碍服务。这样可以有效减少在使用敏感应用时被检测到的风险。
  3. 使用代理服务器来掩盖您的真实设备信息。某些应用可能会通过网络连接获取您的设备信息,从而检测到您正在使用Auto.js。通过使用代理服务器,您可以保护自己的真实设备信息,从而降低被检测到的风险。
  4. 最后,您可以寻求第三方开发者的帮助,让他们为您定制一个具有更高隐蔽性的Auto.js应用。这可能需要一定的费用,并且可能涉及版权问题,因此请确保您了解相关法规和政策。

这些方法都是为了提高您在使用Auto.js时的隐蔽性。然而,请注意,这些方法并不能保证您完全避免被检测到。在使用这些方法时,请确保您遵守了相关法律法规和应用程序的使用协议。

你这个不太能实现啊,正如三楼所说的,除非运行脚本之前关闭无障碍权限,或者你可以尝试使用uiautomator或appium等自动化服务来模拟用户操作,可能都不太容易实现

https://www.cnblogs.com/gfwei/p/13169190.html

该回答引用GPTᴼᴾᴱᴺᴬᴵ
为您提供了七大类的操作方法
一些应用确实会检测手机是否有应用开启无障碍权限,以防止作弊行为的出现。针对这种情况,可以尝试以下解决办法:

  1. 修改应用名称:在Auto.js的设置中,可以将应用名称改为其他名称,这样有些应用就无法检测到Auto.js了。
  2. 使用Root权限:如果您的手机已经root,可以使用Xposed框架中的一些插件来伪装无障碍服务,从而避免被检测到。
  3. 使用虚拟机:可以在PC上安装虚拟机,并在虚拟机中安装Auto.js,这样可以避免手机上被检测到。
  4. 使用其他自动化工具:如果Auto.js无法满足您的需求,可以尝试使用其他的自动化工具,例如Appium等。

需要注意的是,使用一些未经授权的方法可能会违反应用的使用协议或者法律法规,建议仅在合法、合理的情况下使用。

除了使用 root 来关闭应用检测无障碍权限外,还有一个可能比较麻烦但是可以解决的方法,就是使用 VirtualXposed 这个工具。

VirtualXposed 是一个支持在非 root 环境下运行的 Android 虚拟环境,它可以模拟出一个独立的应用运行环境,让你在其中安装和运行自己的应用,而这些应用可以在真实环境中被检测到,但在 VirtualXposed 环境中不会被检测到。

你可以在 VirtualXposed 中安装并运行 Auto.js,然后使用 Auto.js 来自动化测试、自动化操作等,这样就可以避免被应用检测到使用无障碍权限的情况了。

除了关闭或者卸载检测无障碍的应用,还有一些其他的解决方法:

  1. 尝试使用其他的无障碍服务,例如Tasker、Automate等。
  2. 使用模拟点击等方式模拟用户操作,而不是使用无障碍服务。
  3. 尝试使用Magisk Hide等工具来隐藏Root和Xposed等框架,因为这些框架可能会被应用检测到并且触发警报。
  4. 修改应用程序的代码,绕过检测无障碍权限的功能。这种做法需要一定的编程技能,而且可能会违反应用程序的使用条款。
  5. 向应用程序的开发者反馈问题,希望他们能够解决检测无障碍权限的问题。

如果以上方法都不行,可以考虑使用其他的自动化测试工具。比如 Appium,它支持 Android 和 iOS 平台,可以使用多种编程语言编写测试脚本。另外,也可以考虑使用一些 Xposed 模块或者 Magisk 模块,来绕过应用的检测。但需要注意的是,这些模块可能会涉及到手机的 root,使用前请仔细阅读文档,谨慎操作。

如果尝试了以上方法依然无法解决问题,可以考虑以下几点:

  1. 检查应用的检测机制:有些应用可能会通过检测无障碍服务的进程名或者包名来判断是否是Auto.js运行的脚本,如果是,就会提示不允许或者涉嫌作弊等。可以尝试使用其他的无障碍服务(比如“无障碍服务助手”)或者修改包名来规避检测。
  2. 使用root权限:如果你的手机已经root,可以尝试使用root权限来运行Auto.js脚本,这样就不需要使用无障碍服务了。
  3. 模拟手指触摸:如果Auto.js主要是用来模拟手指触摸进行操作的话,可以考虑使用其他的模拟手指触摸的库(比如“MonkeyRunner”),不需要使用无障碍服务。
  4. 与应用开发者沟通:如果你使用的应用是自己开发的,可以考虑与应用开发者沟通,请求他们取消对无障碍服务的检测。

Auto.js的无障碍服务被应用检测到,可能是因为你使用了一些被认为是“可疑”的操作,例如模拟用户输入、获取应用窗口信息等。这种情况下,可以考虑以下两种方式解决:

降低脚本执行速度
在Auto.js中,可以通过sleep()函数来控制脚本执行速度。如果脚本执行过快,可能会被应用检测到。此时,可以适当增加sleep()函数的调用次数,从而降低脚本的执行速度。

使用root权限
如果脚本需要进行一些高级操作,例如模拟点击系统按钮、修改系统设置等,那么可以考虑获取root权限。获取root权限后,可以直接调用系统API来完成操作,不再需要通过无障碍服务模拟用户操作。

综上所述,如果Auto.js的无障碍服务被应用检测到,可以通过降低脚本执行速度或者获取root权限来解决问题。同时,还应该尽量避免使用被认为是“可疑”的操作,以免引起应用的注意。

以下是一些例句来说明Auto.js无障碍服务被应用检测到的解决方法:

降低脚本执行速度
例如,当你使用Auto.js编写一个自动化脚本时,发现脚本在执行过程中始终无法正常运行,可能是因为无障碍服务被应用检测到。此时,你可以使用sleep()函数来控制脚本执行速度,例如:

// 控制脚本执行速度为每300毫秒执行一次
while(true){
    // 脚本代码
    sleep(300);
}

通过增加sleep()函数的调用次数,可以降低脚本的执行速度,从而避免被应用检测到。

使用root权限
例如,你需要使用Auto.js编写一个脚本来模拟点击系统按钮,但是发现无障碍服务被应用检测到。此时,你可以考虑获取root权限,以便直接调用系统API来完成操作,例如:

// 获取root权限
if(!requestScreenCapture()){
    toast("请求截图失败");
    exit();
}

// 模拟点击home键
var cmd = "input keyevent KEYCODE_HOME";
shell(cmd, true);

通过获取root权限,可以避免使用无障碍服务模拟用户操作,从而不容易被应用检测到。

综上所述,无障碍服务被应用检测到时,可以尝试降低脚本执行速度或者使用root权限来解决问题。同时,在编写自动化脚本时,还应该尽量避免使用被认为是“可疑”的操作,以免引起应用的注意。