从Android Q(10)开始,Google引入了一种新的机制,加快了app的启动时间
bash
adb shell
su
ps -A | grep usap
root 9917 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9928 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9939 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9950 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9961 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9972 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
root 9983 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64
解决方法
bash
adb shell
su
setprop persist.device_config.runtime_native.usap_pool_enabled false
setprop persist.sys.usap_pool_enabled false
reboot
bash
getprop|grep usap
[persist.device_config.runtime_native.usap_pool_enabled]: [false]
[persist.sys.usap_pool_enabled]: [false]
This is what i do for samsung A50 and worked
bash
adb shell
su
mount -o remount,rw '/'
chmod 777 /
adb shell "su -c setenforce 0"
setprop persist.device_config.runtime_native.usap_pool_enabled false
settings put system screen_off_timeout 100000000
exit
exit
bash
adb查看enforce
adb shell 命令可以让你在连接到 Android 设备的情况下,通过 shell 访问设备的 Linux 环境。在这个环境中,你可以运行很多 Linux 命令,包括 getenforce。
getenforce 是一个用来查看 SELinux 状态的命令,SELinux 是一种安全子系统,它对应用程序的行为进行严格的限制。
要通过 adb 查看 SELinux 的状态,你可以在命令行中执行以下命令:
adb shell getenforce
这条命令会返回 SELinux 的状态,可能的返回值有:
Enforcing:SELinux 正在强制模式下运行,限制严格。
Permissive:SELinux 正在宽容模式下运行,违规记录下来但不强制执行。
Disabled:SELinux 被禁用。
如果你想要临时改变 SELinux 的状态,你可以使用 setenforce 命令:
adb shell setenforce 0 # 设置为 Permissive 模式
adb shell setenforce 1 # 设置为 Enforcing 模式
请注意,通常情况下你不应该临时更改 SELinux 的状态,这可能会导致安全风险。更改 SELinux 状态应该在完全理解后果的情况下进行,并且通常需要在设备的整个生命周期内保持一致性。
参考资料
Failed to spa
wn: unexpectedly timed out while waiting for app to launch
frida TimedOutErro