android 8 系统以上,关闭 USB 调试后,adb shell 启动的后台进程会被 kill 掉的

2021-06-23 09:27:09 +08:00
 Jamy

开启 usb 调试之后, 用 adb shell nohup test.sh & 开启一个后台脚本, android 7 系统关闭 usb 调试之后后台脚本依然存活, 而 android 8 以上的会被 kill 掉. 请问 android 8 怎么样才能让不让脚本被 kill 掉.

5069 次点击
所在节点    Android
10 条回复
AoEiuV020
2021-06-23 10:02:51 +08:00
孤儿进程也会被杀,这是安全考虑故意限制的吧,设计上应该不会有例外,除非有漏洞,或者用 root 权限运行,
gam2046
2021-06-23 10:17:28 +08:00
未测试,尝试用 app_process 启动一个 Stub 进程,然后再调用你的脚本。这样进程的父进程会成为 zygote,同时由于是 shell 用户启动的,权限也是与 shell 用户一致。

应该不会由于 adbd 被结束,而导致成为孤儿进程
Osk
2021-06-23 10:35:36 +08:00
参考黑域的脚本
Jamy
2021-06-23 10:47:34 +08:00
@gam2046 多谢建议,我试试启动 app_process 会不会一样被 kill 掉.
Jamy
2021-06-23 10:48:57 +08:00
@AoEiuV020 已经 nohup 了.他父进程是 1 了,跟 adbd 没啥关系了吧,应该不是孤儿进程的问题
Jamy
2021-06-23 10:49:53 +08:00
@Osk 多谢建议
AoEiuV020
2021-06-23 10:57:12 +08:00
@Jamy 我意思是,既然连孤儿进程都会被杀,说明高版本安卓就是故意不允许你在 adb 关闭情况继续跑 adb 权限的脚本,是特地做的限制,
这种魔高一尺道高一丈的情况我不认为会有办法绕过谷歌的限制,
Jamy
2021-06-23 10:59:26 +08:00
@AoEiuV020 好吧 看起来是有这个可能
pipilu
2021-06-23 12:26:40 +08:00
用 android 7 上模拟 android 8
Jamy
2021-06-23 14:50:19 +08:00
@pipilu 啥意思?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/785223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX