Почему intent.getStringextra () возвращает NULL, когда трансляция отправляется с использованием команды Shell "Am"?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему intent.getStringextra () возвращает NULL, когда трансляция отправляется с использованием команды Shell "Am"?

Сообщение Anonymous »

У меня есть приложение, которое работает как UID 1000 (System), и я хочу запустить команды Shell в качестве пользователя системы через это приложение и отображать вывод как тост.

Код: Выделить всё

package com.ishacker.android.cmdreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Objects;

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);
}
}
}
android manifest.xml:

Код: Выделить всё












< /code>
Это команда, которую я использовал для трансляции: < /p>
am broadcast com.ishacker.android.cmdreceiver/.CmdReceiver --es Cmd "whoami"
По -видимому, intent.getstringextra ("cmd") всегда возвращает null по какой -то причине.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... using-am-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»