Jamy
V2EX  ›  Android

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

  •  
  •   Jamy · Jun 23, 2021 · 13387 views
    This topic created in 1823 days ago, the information mentioned may be changed or developed.

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

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

    应该不会由于 adbd 被结束,而导致成为孤儿进程
    Osk
        3
    Osk  
       Jun 23, 2021
    参考黑域的脚本
    Jamy
        4
    Jamy  
    OP
       Jun 23, 2021
    @gam2046 多谢建议,我试试启动 app_process 会不会一样被 kill 掉.
    Jamy
        5
    Jamy  
    OP
       Jun 23, 2021
    @AoEiuV020 已经 nohup 了.他父进程是 1 了,跟 adbd 没啥关系了吧,应该不是孤儿进程的问题
    Jamy
        6
    Jamy  
    OP
       Jun 23, 2021
    @Osk 多谢建议
    AoEiuV020
        7
    AoEiuV020  
       Jun 23, 2021
    @Jamy 我意思是,既然连孤儿进程都会被杀,说明高版本安卓就是故意不允许你在 adb 关闭情况继续跑 adb 权限的脚本,是特地做的限制,
    这种魔高一尺道高一丈的情况我不认为会有办法绕过谷歌的限制,
    Jamy
        8
    Jamy  
    OP
       Jun 23, 2021
    @AoEiuV020 好吧 看起来是有这个可能
    pipilu
        9
    pipilu  
       Jun 23, 2021
    用 android 7 上模拟 android 8
    Jamy
        10
    Jamy  
    OP
       Jun 23, 2021
    @pipilu 啥意思?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2493 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 125ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    ♥ Do have faith in what you're doing.