我正在尝试shell
在我的 Android 应用程序中运行一个命令,以检查是否tcp port
打开了一个命令:
Runtime.getRuntime().exec(arrayOf("/system/bin/sh", "-c", "netstat -tulpn | grep :8080"))
在 Android 版本 < 10 中运行此命令可以正常工作。如果使用了给定的端口,它将进行完整扫描并返回条目。
但在 Android 10 中,它不再工作了。进程 exec 将返回:
Process[pid=9534 ,hasExited=true, exitcode=1]
当读取inputStream
进程时它总是null
,而netstat -tulpn | grep :8080
从终端执行时将返回一个条目,如预期的那样。
跑步
Runtime.getRuntime().exec(arrayOf("/system/bin/sh", "-c", "netstat -tulpn"))
单独,并解析输出,只会显示:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program Name
并且根本没有其他数据。
我只在 Android 10 中遇到这个问题,因为对于旧版本它可以工作。
Android 10 关于 shell 命令有什么变化吗?我有必要运行这个命令。任何帮助,将不胜感激...