У меня есть приложение, которое работает как UID 1000 (System), и я хочу запустить команды Shell в качестве пользователя системы через это приложение и отображать вывод как тост.
У меня есть приложение, которое работает как UID 1000 (System), и я хочу запустить команды Shell в качестве пользователя системы через это приложение и отображать вывод как тост.[code]package com.ishacker.android.cmdreceiver;
public class CmdReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String Cmd = intent.getStringExtra("Cmd"); try { Process process = Runtime.getRuntime().exec(Cmd); BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream()));
int read; char[] buffer = new char[4096]; StringBuffer output = new StringBuffer(); while ((read = reader.read(buffer)) > 0) { output.append(buffer, 0, read); } reader.close(); process.waitFor(); if (!Objects.equals(intent.getStringExtra("App"), "yes")) { Toast.makeText(context, output.toString(), Toast.LENGTH_LONG).show(); } else { // Code to handle what happens when it is launched using intent.putExtra("App","yes") } } catch (Exception e) { throw new RuntimeException(e); } } } [/code] [b] android manifest.xml:[/b] [code]
< /code> Это команда, которую я использовал для трансляции: < /p> am broadcast com.ishacker.android.cmdreceiver/.CmdReceiver --es Cmd "whoami" [/code] По -видимому, intent.getstringextra ("cmd") [b] всегда возвращает null [/b] по какой -то причине.>