0
我有我的根深蒂固仿真器(虽然我不知道它的 相关)Android的 - 不能在模拟器执行简单的CD
我试图建立一个根的应用程序为我的当按下按钮时,它试图找到一个数据库文件。
我已经到了要尝试从应用程序(java代码)中的 执行shell命令的地步,但我所能做的只是
ls
。当我试图
cd
到另一个文件夹,它不起作用。在执行cd
后,我执行pwd
或ls
,其仍给出/
的结果。下面是
Button btn_read = (Button) findViewById(R.id.button); btn_read.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /*String s; try { Process p = Runtime.getRuntime().exec("ls -al"); p = Runtime.getRuntime().exec("adb shell"); p = Runtime.getRuntime().exec("cd data/data"); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); // read the output from the command Log.d("ReadDB", "Here is the standard output of the command:\n"); while ((s = stdInput.readLine()) != null) { Log.d("ReadDB", s); } // read any errors from the attempted command Log.d("ReadDB", "Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { Log.d("ReadDB", s); } System.exit(0); } catch (IOException e) { Log.d("ReadDB", "Exception happened - here's what I know: "); e.printStackTrace(); System.exit(-1); }*/ executeCommand(new String[] { "sh", "-c", "ls -l" }); /*executeCommand(new String[] { "sh", "-c", "cd /mnt" });*/ executeCommand(new String[] { "sh", "-c", "ls -l data/data" }); executeCommand(new String[] { "sh", "-c", "pwd" }); } }); } private static void executeCommand(String[] commands) { Process p; try { p = Runtime.getRuntime().exec(commands); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = ""; while ((line = reader.readLine())!= null) { Log.d("ReadDB", line + "\n"); } Log.d("ReadDB", "--------------------------------------------------------------------------------------"); } catch (Exception e) { Log.d("ReadDB", "Exception occured"); e.printStackTrace(); } }
谁能帮助我的代码的相关部分?
谢谢!它似乎在工作 – Warmaster 2014-12-05 13:54:18