V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Jamy
V2EX  ›  Android

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

  •  
  •   Jamy · 2021-06-23 09:27:09 +08:00 · 9131 次点击
    这是一个创建于 1251 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    应该不会由于 adbd 被结束,而导致成为孤儿进程
    Osk
        3
    Osk  
       2021-06-23 10:35:36 +08:00
    参考黑域的脚本
    Jamy
        4
    Jamy  
    OP
       2021-06-23 10:47:34 +08:00
    @gam2046 多谢建议,我试试启动 app_process 会不会一样被 kill 掉.
    Jamy
        5
    Jamy  
    OP
       2021-06-23 10:48:57 +08:00
    @AoEiuV020 已经 nohup 了.他父进程是 1 了,跟 adbd 没啥关系了吧,应该不是孤儿进程的问题
    Jamy
        6
    Jamy  
    OP
       2021-06-23 10:49:53 +08:00
    @Osk 多谢建议
    AoEiuV020
        7
    AoEiuV020  
       2021-06-23 10:57:12 +08:00
    @Jamy 我意思是,既然连孤儿进程都会被杀,说明高版本安卓就是故意不允许你在 adb 关闭情况继续跑 adb 权限的脚本,是特地做的限制,
    这种魔高一尺道高一丈的情况我不认为会有办法绕过谷歌的限制,
    Jamy
        8
    Jamy  
    OP
       2021-06-23 10:59:26 +08:00
    @AoEiuV020 好吧 看起来是有这个可能
    pipilu
        9
    pipilu  
       2021-06-23 12:26:40 +08:00
    用 android 7 上模拟 android 8
    Jamy
        10
    Jamy  
    OP
       2021-06-23 14:50:19 +08:00
    @pipilu 啥意思?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.