我正在尝试执行此代码
Process process = new ProcessBuilder().command("mount").start();
process.waitFor();
查找SD卡位置,然后检查它是否由vold管理,以及文件系统是否为vfat。
我的问题是,无论如何,这段代码可能会被混淆并成为Android中命令注入的候选者。
我身边的情侣点。
它不是用户输入,因此在这种情况下不会有命令注入。是否可以更改整个Android OS环境,以便可以使用mount命令?
欢呼声, Saurav
ok ...目前我正在读取/ proc / mounts替换mount命令。
这是一个很好的方法。
此解决方案的参考 http://renzhi.ca/2012/02/03/how-to-list-all-sd-cards-on-android/ How can I get the list of mounted external storage of android device
下面的代码
reader = new BufferedReader(new FileReader("/proc/mounts"));
String line;
while ((line = reader.readLine()) != null) {
// Output the line of output from the mount command
logger.debug(" {}", line);
if (line.startsWith("/dev/block/vold/")) {
如果这是正确的做法并且没有任何安全问题,任何人都可以请。
欢呼声, Saurav
答案 0 :(得分:1)
正如你所说,只要你没有任何用户输入,你就可以安全地进行这种注射。
唯一可能遇到麻烦的情况是mount二进制文件是否已被某些恶意二进制文件替换。要遇到这种情况,用户必须已使设备生根并用自定义ROM替换操作系统。
我认为您可以假设mount命令应该正常运行。