Android захватывает данные из намерения - PullRequest
0 голосов
/ 01 марта 2019

У меня есть приложение, которое отправляет намерение в точное приложение.У меня есть доступ к корневой оболочке, и я могу изменить AOSP, но я не знаю, где искать.

Получил это в logcat:

START u0 {act = com.app.Action.OPEN cmp = com.app / .SomeActivity (имеет дополнения)} от uid 10052

Как захватить это (has extras)?Или, по крайней мере, ключи (не значения), используемые в намерениях, потому что моя главная цель - запустить внешнюю активность приложения с параметрами (с корневым доступом), но это закрытый источник, и я не знаю, как называется дополнительный строковый ключ.

Чтобы прояснить вопрос, я должен сказать, что намерение вызывается из приложения к самому себе, и у меня нет источников этого приложения.

1 Ответ

0 голосов
/ 01 марта 2019

Один из возможных способов получить данные о намерениях - создать пакет с точно таким же именем пакета и настроенными фильтрами намерений, а затем заменить исходный пакет поддельным пакетом в качестве нового получателя намерений.только тогда может быть использовано решение, представленное в этом ответе - потому что, если намерение не получено, нечего перечислять.


при возможности построить AOSP из источника,Вы все еще можете отредактировать класс Intent и добавить дальнейшее ведение журнала.Uri mData - это данные, которые вы ищете;где один конструктор в строке 6130 кажется наиболее часто используемым:

Intent(String action, Uri uri, Context packageContext, Class<?> cls)

, поэтому должна быть возможность войти в систему из этого конструктора (условие if является необязательным):

public Intent(String action, Uri uri, Context packageContext, Class<?> cls) {

    setAction(action);
    mData = uri;
    mComponent = new ComponentName(packageContext, cls);

    if(cls.getSimpleName().equals("SomeActivity")) {
        Log.d("Intent", "has leaked: " + action + ": " + uri.toString());
    }
}
...