AidLux在Android12+/鸿蒙3+服务进程被杀解决方案

AidLux 在 Android 12+ / HarmonyOS 3+ 服务进程被杀解决方案

总结

只想快速解决此问题, 就不用查看后续章节, 只需要执行以下命令:

  • root 设备, 用su执行:

    su -c "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
    su -c "/system/bin/device_config set_sync_disabled_for_tests persistent"
    
  • 非 root 设备, 用adb执行:

    adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
    adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
    

    adb的使用请查看ADB 使用教程

原因

Android 12 via 15755084 和更新 5706277f 增加了一种机制来监视应用程序启动的分支子进程( 以下称虚进程 ),如果发现其运行的数量超过默认的 32 ( 针对所有应用程序启动的分支子进程之和 ),则杀死它们.

如果应用程序或虚进程使用过多的 CPU, 它们也可能被杀死, 以前也是这样的, 但仅限于应用程序进程本身.

HarmonyOS 3 使用的 Android 版本提升到了 12, 所以也引入了此特性.

检查

检查允许运行的最大虚进程

  • root

    su -c "/system/bin/dumpsys activity settings | grep max_phantom_processes"

  • adb

    adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"

执行结果:

$ adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"
  max_phantom_processes=32

检查被监视运行的虚进程

  • root

    su -c "/system/bin/dumpsys activity processes -a"

  • adb

    adb shell "/system/bin/dumpsys activity processes -a"

执行结果:

$ adb shell "/system/bin/dumpsys activity processes -a"
...
  All Active App Child Processes:
    proc #0: PhantomProcessRecord {8f40e4b 18733:18405:bash/u0a236}
      user #0 uid=10236 pid=18733 ppid=18405 knownSince=-11m52s638ms killed=false
      lastCpuTime=0 oom adj=-1000 seq=82
    proc #1: PhantomProcessRecord {5472028 19126:18405:bash/u0a236}
      user #0 uid=10236 pid=19126 ppid=18405 knownSince=-11m52s638ms killed=false
      lastCpuTime=0 oom adj=-1000 seq=82
    proc #2: PhantomProcessRecord {2051141 19128:18405:python2/u0a236}
      user #0 uid=10236 pid=19128 ppid=18405 knownSince=-11m52s638ms killed=false
      lastCpuTime=50 timeUsed=+450ms oom adj=-1000 seq=82
    ...
...

如果没有这部分信息, 拔插电源触发一个更新, 然后再查看.

检测被杀死的虚进程

当你检测到虚进程被杀死, 执行adb命令:

adb logcat -d -e '^Killing PhantomProcessRecord'

执行结果:

$ adb logcat -d -e '^Killing PhantomProcessRecord'
--------- beginning of system
03-21 14:59:47.660  1033  1377 I ActivityManager: Killing PhantomProcessRecord {8f40e4b 18733:18405:bash/u0a236}: Trimming phantom processes
03-21 14:59:47.660  1033  1377 I ActivityManager: Killing PhantomProcessRecord {5472028 19126:18405:bash/u0a236}: Trimming phantom processes
03-21 14:59:47.660  1033  1377 I ActivityManager: Killing PhantomProcessRecord {2051141 19128:18405:python2/u0a236}: Trimming phantom processes
...

手动触发杀死虚进程

如果想进行一次测试体验虚进程被杀死的过程, 可按以下流程执行

  1. 启动 AidLux, 查看当前运行的进程:

    root@localhost:/home# ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    10236    27057   742  0  2020 ?        00:00:03 com.aidlux
    10236    27108   742  0  2020 ?        00:00:01 com.aidlux:remote
    10236    27165   742  0  2020 ?        00:00:01 com.aidlux:local
    10236    27226     1  0  2020 ?        00:00:00 sshd
    10236    27227 27224  0  2020 pts/2    00:00:00 python2 .startx
    10236    27328     1  0  2020 pts/2    00:00:00 python3 .startssh
    10236    27364     1  0  2020 pts/2    00:00:01 python3 /root/.startdesktop
    10236    27381     1  0  2020 pts/2    00:00:01 python3 /root/.sset/.Apkbuild
    10236    27385     1  0  2020 pts/2    00:00:00 filebrowser -a 0.0.0.0 -r / --noauth
    10236    27395     1  0  2020 pts/2    00:00:00 python3 app.py
    10236    27399     1  0  2020 ?        00:00:00 /usr/sbin/sshd
    10236    27414 27413  0  2020 pts/2    00:00:00 python3 -m EditOnline -d /
    10236    27485 27303  0  2020 /proc/27228/fd/2 00:00:00 /usr/bin/python3 /usr/local/bin/ps -ef
    
  2. 使用adb检查当前被监视运行的虚进程:

    $ adb shell "/system/bin/dumpsys activity processes -a"
    ...
        All Active App Child Processes:
          proc #0: PhantomProcessRecord {fd581a0 11377:11166:bash/u0a236}
            user #0 uid=10236 pid=11377 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #1: PhantomProcessRecord {d272159 11393:11166:bash/u0a236}
            user #0 uid=10236 pid=11393 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #2: PhantomProcessRecord {9a8811e 11398:11166:python2/u0a236}
            user #0 uid=10236 pid=11398 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=140 timeUsed=+1m2s460ms oom adj=-1000 seq=514
          proc #3: PhantomProcessRecord {f4a4dff 11399:11166:aidboot/u0a236}
            user #0 uid=10236 pid=11399 ppid=11166 knownSince=-16h37m15s432ms killed=false
            lastCpuTime=260 timeUsed=+58s600ms oom adj=-1000 seq=514
          proc #4: PhantomProcessRecord {8a117cc 11412:11166:sshd/u0a236}
            user #0 uid=10236 pid=11412 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #5: PhantomProcessRecord {59f7a15 11452:11166:bash/u0a236}
            user #0 uid=10236 pid=11452 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=10 timeUsed=0 oom adj=-1000 seq=514
          proc #6: PhantomProcessRecord {d57912a 11470:11166:python3/u0a236}
            user #0 uid=10236 pid=11470 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=110 timeUsed=+44s100ms oom adj=-1000 seq=514
          proc #7: PhantomProcessRecord {cffcb1b 11537:11166:python3/u0a236}
            user #0 uid=10236 pid=11537 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=310 timeUsed=+1m29s560ms oom adj=-1000 seq=514
          proc #8: PhantomProcessRecord {aade4b8 11541:11166:ttyd/u0a236}
            user #0 uid=10236 pid=11541 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=70 timeUsed=+39s700ms oom adj=-1000 seq=514
          proc #9: PhantomProcessRecord {60aa291 11554:11166:python3/u0a236}
            user #0 uid=10236 pid=11554 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=510 timeUsed=+2m30s980ms oom adj=-1000 seq=514
          proc #10: PhantomProcessRecord {d3595f6 11556:11166:filebrowser/u0a236}
            user #0 uid=10236 pid=11556 ppid=11166 knownSince=-16h37m15s431ms killed=false
            lastCpuTime=10 timeUsed=+420ms oom adj=-1000 seq=514
          proc #11: PhantomProcessRecord {5c5fdf7 11565:11166:python3/u0a236}
            user #0 uid=10236 pid=11565 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #12: PhantomProcessRecord {cb89464 11571:11166:sshd/u0a236}
            user #0 uid=10236 pid=11571 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #13: PhantomProcessRecord {125d6cd 11578:11166:bash/u0a236}
            user #0 uid=10236 pid=11578 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
          proc #14: PhantomProcessRecord {41d1b82 11586:11166:python3/u0a236}
            user #0 uid=10236 pid=11586 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=120 timeUsed=+45s400ms oom adj=-1000 seq=514
          proc #15: PhantomProcessRecord {7528293 11590:11166:bash/u0a236}
            user #0 uid=10236 pid=11590 ppid=11166 knownSince=-16h37m15s430ms killed=false
            lastCpuTime=0 oom adj=-1000 seq=514
    ...
    

    一共有16个虚进程

  3. 使用adb确认允许运行的最大虚进程:

    $ adb shell "/system/bin/dumpsys activity settings | grep max_phantom_processes"
    max_phantom_processes=32
    
  4. 在 AidLux 的 terminal 中运行 30 个sha256sum进程:

    root@localhost:/home# for i in $(seq 30); do sha256sum /dev/zero & done
    [1] 19196
    [2] 19197
    [3] 19198
    [4] 19199
    [5] 19200
    [6] 19201
    [7] 19202
    [8] 19203
    [9] 19204
    [10] 19205
    [11] 19206
    [12] 19207
    [13] 19208
    [14] 19209
    [15] 19210
    [16] 19211
    [17] 19212
    [18] 19213
    [19] 19214
    [20] 19215
    [21] 19216
    [22] 19217
    [23] 19218
    [24] 19219
    [25] 19220
    [26] 19221
    [27] 19222
    [28] 19223
    [29] 19224
    [30] 19225
    

    现在就有16+30=46个虚进程

  5. 将 AidLux 置于后台, 连接或断开电源, 返回 AidLux 查看, 现在会显示:

    root@localhost:/home# [Process completed (signal 9) - press Enter]
    
  6. 再次使用adb检查当前被监视运行的虚进程:

    $ adb shell "/system/bin/dumpsys activity processes -a"
      All Active App Child Processes:
        proc #0: PhantomProcessRecord {41d1b82 11586:11166:python3/u0a236}
          user #0 uid=10236 pid=11586 ppid=11166 knownSince=-23h34m14s610ms killed=false
          lastCpuTime=120 timeUsed=+53s220ms oom adj=-1000 seq=736
        proc #1: PhantomProcessRecord {7528293 11590:11166:bash/u0a236}
          user #0 uid=10236 pid=11590 ppid=11166 knownSince=-23h34m14s610ms killed=false
          lastCpuTime=27020 timeUsed=+6h19m1s680ms oom adj=-1000 seq=736
        proc #2: PhantomProcessRecord {6b1297 19196:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19196 ppid=11166 knownSince=-6h35m14s519ms killed=false
          lastCpuTime=5290 timeUsed=+1h28m4s970ms oom adj=-1000 seq=736
        proc #3: PhantomProcessRecord {50b1c84 19197:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19197 ppid=11166 knownSince=-6h35m14s518ms killed=false
          lastCpuTime=6830 timeUsed=+1h28m25s700ms oom adj=-1000 seq=736
        proc #4: PhantomProcessRecord {a838c6d 19198:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19198 ppid=11166 knownSince=-6h35m14s518ms killed=false
          lastCpuTime=8310 timeUsed=+1h29m3s290ms oom adj=-1000 seq=736
        proc #5: PhantomProcessRecord {81a30a2 19199:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19199 ppid=11166 knownSince=-6h35m14s518ms killed=false
          lastCpuTime=6000 timeUsed=+1h29m29s220ms oom adj=-1000 seq=736
        proc #6: PhantomProcessRecord {d444133 19200:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19200 ppid=11166 knownSince=-6h35m14s518ms killed=false
          lastCpuTime=5590 timeUsed=+1h27m32s960ms oom adj=-1000 seq=736
        proc #7: PhantomProcessRecord {25f7cf0 19201:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19201 ppid=11166 knownSince=-6h35m14s517ms killed=false
          lastCpuTime=6910 timeUsed=+1h28m0s300ms oom adj=-1000 seq=736
        proc #8: PhantomProcessRecord {c598269 19202:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19202 ppid=11166 knownSince=-6h35m14s517ms killed=false
          lastCpuTime=4870 timeUsed=+1h29m15s970ms oom adj=-1000 seq=736
        proc #9: PhantomProcessRecord {e0eb4ee 19203:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19203 ppid=11166 knownSince=-6h35m14s506ms killed=false
          lastCpuTime=5830 timeUsed=+1h27m50s700ms oom adj=-1000 seq=736
        proc #10: PhantomProcessRecord {577bd8f 19204:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19204 ppid=11166 knownSince=-6h35m14s506ms killed=false
          lastCpuTime=4510 timeUsed=+1h29m55s770ms oom adj=-1000 seq=736
        proc #11: PhantomProcessRecord {b57781c 19205:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19205 ppid=11166 knownSince=-6h35m14s506ms killed=false
          lastCpuTime=7980 timeUsed=+1h27m46s430ms oom adj=-1000 seq=736
        proc #12: PhantomProcessRecord {c7edc25 19206:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19206 ppid=11166 knownSince=-6h35m14s506ms killed=false
          lastCpuTime=4640 timeUsed=+1h28m47s320ms oom adj=-1000 seq=736
        proc #13: PhantomProcessRecord {2b531fa 19207:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19207 ppid=11166 knownSince=-6h35m14s506ms killed=false
          lastCpuTime=5750 timeUsed=+1h29m40s600ms oom adj=-1000 seq=736
        proc #14: PhantomProcessRecord {dbca3ab 19208:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19208 ppid=11166 knownSince=-6h35m14s505ms killed=false
          lastCpuTime=9510 timeUsed=+1h28m28s370ms oom adj=-1000 seq=736
        proc #15: PhantomProcessRecord {471fa08 19209:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19209 ppid=11166 knownSince=-6h35m14s505ms killed=false
          lastCpuTime=6320 timeUsed=+1h30m28s630ms oom adj=-1000 seq=736
        proc #16: PhantomProcessRecord {8e615a1 19210:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19210 ppid=11166 knownSince=-6h35m14s505ms killed=false
          lastCpuTime=7320 timeUsed=+1h29m33s470ms oom adj=-1000 seq=736
        proc #17: PhantomProcessRecord {1473c6 19211:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19211 ppid=11166 knownSince=-6h35m14s505ms killed=false
          lastCpuTime=5030 timeUsed=+1h28m34s990ms oom adj=-1000 seq=736
        proc #18: PhantomProcessRecord {51fcf87 19212:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19212 ppid=11166 knownSince=-6h35m14s505ms killed=false
          lastCpuTime=8890 timeUsed=+1h30m28s450ms oom adj=-1000 seq=736
        proc #19: PhantomProcessRecord {930aeb4 19213:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19213 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=6800 timeUsed=+1h28m16s510ms oom adj=-1000 seq=736
        proc #20: PhantomProcessRecord {22d6add 19214:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19214 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=5250 timeUsed=+1h27m59s660ms oom adj=-1000 seq=736
        proc #21: PhantomProcessRecord {7d40652 19215:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19215 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=5180 timeUsed=+1h28m49s510ms oom adj=-1000 seq=736
        proc #22: PhantomProcessRecord {49fdd23 19216:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19216 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=5400 timeUsed=+1h30m26s100ms oom adj=-1000 seq=736
        proc #23: PhantomProcessRecord {9840220 19217:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19217 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=7340 timeUsed=+1h30m12s430ms oom adj=-1000 seq=736
        proc #24: PhantomProcessRecord {a9ad7d9 19218:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19218 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=4360 timeUsed=+1h28m28s440ms oom adj=-1000 seq=736
        proc #25: PhantomProcessRecord {c88359e 19219:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19219 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=6750 timeUsed=+1h29m35s820ms oom adj=-1000 seq=736
        proc #26: PhantomProcessRecord {c89287f 19220:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19220 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=6910 timeUsed=+1h28m52s630ms oom adj=-1000 seq=736
        proc #27: PhantomProcessRecord {1f7204c 19221:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19221 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=7650 timeUsed=+1h28m55s830ms oom adj=-1000 seq=736
        proc #28: PhantomProcessRecord {8d81895 19222:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19222 ppid=11166 knownSince=-6h35m14s504ms killed=false
          lastCpuTime=4640 timeUsed=+1h29m3s30ms oom adj=-1000 seq=736
        proc #29: PhantomProcessRecord {3be0daa 19223:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19223 ppid=11166 knownSince=-6h35m14s503ms killed=false
          lastCpuTime=7060 timeUsed=+1h28m17s230ms oom adj=-1000 seq=736
        proc #30: PhantomProcessRecord {b91cd9b 19224:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19224 ppid=11166 knownSince=-6h35m14s503ms killed=false
          lastCpuTime=6250 timeUsed=+1h28m38s110ms oom adj=-1000 seq=736
        proc #31: PhantomProcessRecord {a9bf538 19225:11166:sha256sum/u0a236}
          user #0 uid=10236 pid=19225 ppid=11166 knownSince=-6h35m14s503ms killed=false
          lastCpuTime=6370 timeUsed=+1h29m42s830ms oom adj=-1000 seq=736
    

    剩下32个虚进程

  7. 检测被杀死的虚进程, 查看日志:

    $ adb logcat -d -e '^Killing PhantomProcessRecord'
    --------- beginning of system
    03-22 10:30:08.262  1031  1387 I ActivityManager: Killing PhantomProcessRecord {fd581a0 11377:11166:bash/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {d272159 11393:11166:bash/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {9a8811e 11398:11166:python2/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {f4a4dff 11399:11166:aidboot/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {8a117cc 11412:11166:sshd/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {59f7a15 11452:11166:bash/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {d57912a 11470:11166:python3/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {cffcb1b 11537:11166:python3/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {aade4b8 11541:11166:ttyd/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {60aa291 11554:11166:python3/u0a236}: Trimming phantom processes
    03-22 10:30:08.263  1031  1387 I ActivityManager: Killing PhantomProcessRecord {d3595f6 11556:11166:filebrowser/u0a236}: Trimming phantom processes
    03-22 10:30:08.264  1031  1387 I ActivityManager: Killing PhantomProcessRecord {5c5fdf7 11565:11166:python3/u0a236}: Trimming phantom processes
    03-22 10:30:08.264  1031  1387 I ActivityManager: Killing PhantomProcessRecord {cb89464 11571:11166:sshd/u0a236}: Trimming phantom processes
    03-22 10:30:08.264  1031  1387 I ActivityManager: Killing PhantomProcessRecord {125d6cd 11578:11166:bash/u0a236}: Trimming phantom processes
    

    杀掉了14个虚进程, 46-32=14 , 验证逻辑正确.

解决

禁用杀死虚进程

根据源代码中的trimPhantomProcessesIfNecessary() for循环, 将max_phantom_processes设置为Integer.MAX_VALUE(2147483647), 以禁止杀死虚进程, 因为if (mService.mConstants.MAX_PHANTOM_PROCESSES < mPhantomProcesses.size())条件将总是失败

  • root

    su -c "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"

  • adb

    adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"

但存在以下 3 种情况可能将该值重置为默认值:

  • Android 系统重启
  • Android 系统崩溃
  • gms 同步更新配置

可以在禁用杀死虚进程之前通过禁止设备配置同步来解决此问题

禁止设备配置同步:

  • root

    su -c "/system/bin/device_config set_sync_disabled_for_tests persistent"

  • adb

    adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"

但该设置存在系统无法从无限重启, 崩溃和错误配置值中恢复的风险!

如果没有gms服务, 我觉得没必要设置, 可以自行测试一下.

另附重新启用设备配置同步检查设备配置同步状态方法

重新启用设备配置同步:

  • root

    su -c "/system/bin/device_config set_sync_disabled_for_tests none"

  • adb

    adb shell "/system/bin/device_config set_sync_disabled_for_tests none"

检查设备配置同步状态:

  • root

    su -c "/system/bin/device_config is_sync_disabled_for_tests"

  • adb

    adb shell "/system/bin/device_config is_sync_disabled_for_tests"

禁用杀死虚进程后进行测试, 然后检查被监视运行的虚进程:

$ adb shell "/system/bin/dumpsys activity processes -a"
  ...
    All Active App Child Processes:
      proc #0: PhantomProcessRecord {e95d78f 32041:31842:bash/u0a236}
        user #0 uid=10236 pid=32041 ppid=31842 knownSince=-1m3s420ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #1: PhantomProcessRecord {5148a1c 32064:31842:bash/u0a236}
        user #0 uid=10236 pid=32064 ppid=31842 knownSince=-1m3s420ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #2: PhantomProcessRecord {97b8625 32069:31842:python2/u0a236}
        user #0 uid=10236 pid=32069 ppid=31842 knownSince=-1m3s420ms killed=false
        lastCpuTime=20 timeUsed=0 oom adj=-1000 seq=768
      proc #3: PhantomProcessRecord {21593fa 32070:31842:sshd/u0a236}
        user #0 uid=10236 pid=32070 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #4: PhantomProcessRecord {3a25dab 32071:31842:aidboot/u0a236}
        user #0 uid=10236 pid=32071 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=20 timeUsed=0 oom adj=-1000 seq=768
      proc #5: PhantomProcessRecord {1ee2c08 32125:31842:bash/u0a236}
        user #0 uid=10236 pid=32125 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #6: PhantomProcessRecord {a035fa1 32144:31842:python3/u0a236}
        user #0 uid=10236 pid=32144 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=10 timeUsed=0 oom adj=-1000 seq=768
      proc #7: PhantomProcessRecord {218f5c6 32209:31842:python3/u0a236}
        user #0 uid=10236 pid=32209 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=30 timeUsed=0 oom adj=-1000 seq=768
      proc #8: PhantomProcessRecord {ca72987 32213:31842:ttyd/u0a236}
        user #0 uid=10236 pid=32213 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #9: PhantomProcessRecord {73e00b4 32228:31842:python3/u0a236}
        user #0 uid=10236 pid=32228 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=40 timeUsed=0 oom adj=-1000 seq=768
      proc #10: PhantomProcessRecord {8d554dd 32232:31842:filebrowser/u0a236}
        user #0 uid=10236 pid=32232 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #11: PhantomProcessRecord {29ea852 32240:31842:python3/u0a236}
        user #0 uid=10236 pid=32240 ppid=31842 knownSince=-1m3s419ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #12: PhantomProcessRecord {642d723 32246:31842:sshd/u0a236}
        user #0 uid=10236 pid=32246 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #13: PhantomProcessRecord {147420 32252:31842:bash/u0a236}
        user #0 uid=10236 pid=32252 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #14: PhantomProcessRecord {4d761d9 32253:31842:python3/u0a236}
        user #0 uid=10236 pid=32253 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=10 timeUsed=0 oom adj=-1000 seq=768
      proc #15: PhantomProcessRecord {65af79e 32264:31842:bash/u0a236}
        user #0 uid=10236 pid=32264 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=0 oom adj=-1000 seq=768
      proc #16: PhantomProcessRecord {e61c27f 32468:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32468 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=11970 timeUsed=0 oom adj=-1000 seq=768
      proc #17: PhantomProcessRecord {61cb24c 32469:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32469 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=11090 timeUsed=0 oom adj=-1000 seq=768
      proc #18: PhantomProcessRecord {b534295 32470:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32470 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=15150 timeUsed=0 oom adj=-1000 seq=768
      proc #19: PhantomProcessRecord {4faefaa 32471:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32471 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=10570 timeUsed=0 oom adj=-1000 seq=768
      proc #20: PhantomProcessRecord {b5a079b 32472:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32472 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=15140 timeUsed=0 oom adj=-1000 seq=768
      proc #21: PhantomProcessRecord {88a738 32473:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32473 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=12280 timeUsed=0 oom adj=-1000 seq=768
      proc #22: PhantomProcessRecord {a727311 32474:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32474 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=14780 timeUsed=0 oom adj=-1000 seq=768
      proc #23: PhantomProcessRecord {1f05c76 32475:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32475 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=16040 timeUsed=0 oom adj=-1000 seq=768
      proc #24: PhantomProcessRecord {8c78277 32476:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32476 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=12790 timeUsed=0 oom adj=-1000 seq=768
      proc #25: PhantomProcessRecord {5bcfee4 32477:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32477 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=17500 timeUsed=0 oom adj=-1000 seq=768
      proc #26: PhantomProcessRecord {f7a2f4d 32478:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32478 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=14440 timeUsed=0 oom adj=-1000 seq=768
      proc #27: PhantomProcessRecord {3fdca02 32479:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32479 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=14330 timeUsed=0 oom adj=-1000 seq=768
      proc #28: PhantomProcessRecord {627cf13 32480:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32480 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=15050 timeUsed=0 oom adj=-1000 seq=768
      proc #29: PhantomProcessRecord {bbd2550 32481:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32481 ppid=31842 knownSince=-1m3s418ms killed=false
        lastCpuTime=10950 timeUsed=0 oom adj=-1000 seq=768
      proc #30: PhantomProcessRecord {cc77349 32482:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32482 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=15340 timeUsed=0 oom adj=-1000 seq=768
      proc #31: PhantomProcessRecord {982844e 32483:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32483 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=17530 timeUsed=0 oom adj=-1000 seq=768
      proc #32: PhantomProcessRecord {336496f 32484:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32484 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=10520 timeUsed=0 oom adj=-1000 seq=768
      proc #33: PhantomProcessRecord {357467c 32485:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32485 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=11180 timeUsed=0 oom adj=-1000 seq=768
      proc #34: PhantomProcessRecord {38afb05 32486:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32486 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=17740 timeUsed=0 oom adj=-1000 seq=768
      proc #35: PhantomProcessRecord {586975a 32487:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32487 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=17250 timeUsed=0 oom adj=-1000 seq=768
      proc #36: PhantomProcessRecord {6080d8b 32488:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32488 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=13000 timeUsed=0 oom adj=-1000 seq=768
      proc #37: PhantomProcessRecord {a104e68 32489:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32489 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=10440 timeUsed=0 oom adj=-1000 seq=768
      proc #38: PhantomProcessRecord {d454281 32490:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32490 ppid=31842 knownSince=-1m3s417ms killed=false
        lastCpuTime=14090 timeUsed=0 oom adj=-1000 seq=768
      proc #39: PhantomProcessRecord {186cf26 32491:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32491 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=14180 timeUsed=0 oom adj=-1000 seq=768
      proc #40: PhantomProcessRecord {6e7f767 32492:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32492 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=16500 timeUsed=0 oom adj=-1000 seq=768
      proc #41: PhantomProcessRecord {ecfe914 32493:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32493 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=13990 timeUsed=0 oom adj=-1000 seq=768
      proc #42: PhantomProcessRecord {10285bd 32494:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32494 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=12440 timeUsed=0 oom adj=-1000 seq=768
      proc #43: PhantomProcessRecord {b7b2 32496:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32496 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=11560 timeUsed=0 oom adj=-1000 seq=768
      proc #44: PhantomProcessRecord {df2a303 32497:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32497 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=15530 timeUsed=0 oom adj=-1000 seq=768
      proc #45: PhantomProcessRecord {54c8280 32498:31842:sha256sum/u0a236}
        user #0 uid=10236 pid=32498 ppid=31842 knownSince=-1m3s416ms killed=false
        lastCpuTime=9950 timeUsed=0 oom adj=-1000 seq=768
    ...

一共46个虚进程全部存活

Android 12LAndroid 13

添加设置切换虚进程监视在开发选项的新补丁已经被合并到了Android 12LAOSP中,使用Android 12LAndroid 13的设备可以依据此特性解决此问题.

经验证, 该特性虽然已经被合并, 但是在生产设备中该功能菜单并未显示, 所以只能通过标识符去关闭:

adb shell settings put global settings_enable_monitor_phantom_procs false

其他

  • adb
  • scrcpy 这里推荐一个开源软件, 其自带 adb 依赖, 提供了显示和控制通过 USB (或通过 TCP/IP) 连接的 Android 设备的功能, 不需要 root, 无侵入性, 秒连.

参考

```

清晰

请问一下为什么鸿蒙系统用adb调了之后就不能自动息屏了呀

请问运行命令说找不到device_config文件呢?

自动息屏跟这个没关系的,看下是不是其他原因导致的.

上个图看看

这是什么情况呢

其实这个指令是不完整的 完整的指令是 device_config put activity_manager max_cached_processes 2147483647 device_config put activity_manager max_phantom_processes 2147483647

AidLux里面没有su的,用能获取root权限的应用执行,或者用PC的adb执行

您好您好,请问我这边在刚进入应用程序,返回我安卓桌面的时候,再进入到aidlux会报错,

error: no devices/emulators found 有大佬知道报这个错这个怎么办吗

报错内容发出来看看呐

你这个感觉是Android系统把后台服务杀掉了,记得给AidLux电量优化无限制的权限,然后内存优化这些,也把AidLux加入白名单

你这是用的adb吧?你先看下adb怎么和设备连接啊

感觉就是BUG,一个要杀死,一个要占用,你不占用那麽多不就不杀你了

我的会报错,CANNOT LINK EXECUTABLE "/system/bin/sh":"/usr/lib/aarch64-linux-gnu/libc.so" has bad ELF magic: 2f2a2047

root设备在本机执行,要用su,sh不行的

鸿蒙2.0可以用这个方法吗