鸿蒙5.0无法正常使用aidlux

在正常授权后且初始化后直接变成终端

而且除了光标没有其他任何东西,如图

只是没装桌面吧,试一下
sudo aid-pkg -i aid-desktop

请问具体应该怎么操作

执行命令 sudo aid-pkg -i aid-desktop

请问应该怎么执行命令,回车键是换行,esc同样没有反应。

所给出的图片中反馈了你的aidlux没有初始化成功,鸿蒙越往后对Android兼容越差;
请尝试 清了AidLux数据,然后用adb取消了虚进程限制再试下,可根据帖子:https://forum.aidlux.com/t/topic/71958;
(鸿蒙5.0能不能用adb也需要试一下)

详情同上

您好,这个帖子无法打开。

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
  1. 使用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
  1. 在 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]
  1. 再次使用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, 无侵入性, 秒连.

参考