如何在不停止应用程序的情况下停止由应用程序自行启动的内容?

How would I stop something that was started by an app for itself without stopping the app?

注意:在使用 shell 和 commands/scripting 时,我对 linux/android 还很陌生,所以如果我提供了一些不相关的信息,或者我正在尝试做一些不可能的事情,请告诉我什么是不相关的,为什么有些事情是不可能的,并解释其他任何事情以帮助我在这方面做得更好。


我正在尝试制作一个脚本,在我退出 Orfox 应用程序时自动停止 Orbot 的 Tor 网络。到目前为止,除了 Tor 的停止部分外,我已经完成了大部分编码。我相信我可以在 shell 脚本中使用某些东西来停止 Tor 网络,对吗?

目前,我的脚本使用命令

# am force-stop org.torproject.android

停止应用程序(停止 Tor 网络),但我知道这不是唯一的方法...


我知道当我按下“开始”按钮(在 Orbot 应用程序中)或打开 Orfox 时,它会启动 Tor 网络...使用时

# ps | grep torproject

2次(启动Tor前后),我发现

仅在 Tor 开启时显示。

使用后我也发现

# ps | grep u0_a291

(与上一条命令相同)启动了两个shell:

仅当 tor 开启时。


我假设一些命令 运行 通过一个或两个 shell 会给我一个提示,告诉我我可能需要什么命令来停止 tor 网络在我的脚本中,但我不知道如何查看它们或是否可以查看它们。有没有办法查看它们,或者我可能会尝试找出如何以错误的方式阻止 Tor?所以请大家帮帮我。


我终于弄明白了,我不需要我提供的任何信息... facepalm

我通过查看 base.apk(在 /data/app/org.torproject.android 中)作为存档,找到了我需要的服务和意图操作。我像查看文本文件一样查看 AndroidManifest.xml,发现该服务及其意图操作是

  • .service.TorService
  • org.torproject.android.intent.action.Start

我通过使用它来停止 tor 服务来结束我的脚本...我打赌这可能会在将来帮助其他人。

# am stopservice -n org.torproject.android/.service.TorService -a org.torproject.android.intent.action.START