With Android using more and more APEX files the mount command can return more data than the default read buffer can handle. Calling process.waitFor without reading the buffer first will result in waitFor waiting indefinitely.
Here's an SO post that describes the issue in more detail. I'm open to submitting a pull request, but it might be best to look through the source and find/fix any other instances of this just to be safe.
Process proc = new ProcessBuilder().command("mount")
.redirectErrorStream(true).start();
proc.waitFor(); // this needs to be moved to the end
InputStream is = proc.getInputStream();
BufferedReader r = new BufferedReader(
new InputStreamReader(is, UTF8_CHARSET));
With Android using more and more APEX files the mount command can return more data than the default read buffer can handle. Calling
process.waitFor
without reading the buffer first will result inwaitFor
waiting indefinitely.Here's an SO post that describes the issue in more detail. I'm open to submitting a pull request, but it might be best to look through the source and find/fix any other instances of this just to be safe.
https://github.com/deptofdefense/AndroidTacticalAssaultKit-CIV/blob/22d11cba15dd5cfe385c0d0790670bc7e9ab7df4/takkernel/engine/src/main/java/com/atakmap/coremap/filesystem/FileSystemUtils.java#L271