Я хочу запустить двоичный файл на /dev/local
с именем native (я протолкнул его через adb) с правами root.Для этого я написал следующий код:
try {
root=Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(root.getOutputStream());
DataInputStream osRes = new DataInputStream(root.getInputStream());
os.writeBytes("/data/local/native\n");
os.flush();
TextView output=(TextView)findViewById(R.id.textview);
output.append(osRes.readLine());
root.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
Toast.makeText(this, e.toString() , Toast.LENGTH_SHORT).show();
}
Это дало мне NullPointerException
. Итак, я попытался изменить его на:
try{
root=Runtime.getRuntime().exec("su");
root.waitFor();
DataOutputStream os = new DataOutputStream(root.getOutputStream());
DataInputStream osRes = new DataInputStream(root.getInputStream());
os.writeBytes("/data/local/native\n");
os.flush();
TextView output=(TextView)findViewById(R.id.textview);
output.append(osRes.readLine());
root.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
Toast.makeText(this, e.toString() , Toast.LENGTH_SHORT).show();
}
С этим яОшибка BrokenPipe.
Пожалуйста, помогите мне, я хочу запустить бинарный файл с правами суперпользователя, есть ли альтернативный способ или что я делаю неправильно?