2017-01-27 4 views
-3

У меня есть Android-телефон с доступом root и su. Я хотел бы перехватить все намерения, запущенные любым приложением и их пакетами дополнений в приложении для Android. Есть ли способ сделать это без написания пользовательского ROM-ROM? Можно ли изменить работу Zygote или ActivityManager?Перехватить все намерения Android

Я знаю, что использование «adb shell dumpsys» предоставит исторический взгляд на прошлые намерения, но ему не хватает полезной нагрузки.

У меня есть список всех имен действующих намерений, которые могут быть запущены и добавлены в мой androidmanfiest.xml. Но некоторые из них маршрутизируются в определенные пакеты или ограничены разрешениями безопасности.

Есть ли подход одного размера для всех, кто перехватит все намерения в Android?

+6

Думаю, вам придется идти в обычном ПЗУ. Ваша заявка даже не сообщается о намерении, если это невозможно. –

+0

_ «Можно ли изменить работу Zygote или ActivityManager?» _ Нет, если вы не настроили AOSP. Вы можете отключить их. _ «Есть ли подход, основанный на одном уровне, который перехватит все намерения в Android?» _ Я бы рекомендовал вас в [jtrace] (http://newandroidbook.com/tools/jtrace.html), инструмент, разработанный Джонатаном Левиным aka [@Technologeeks] (http://stackoverflow.com/users/1734439/technologeeks?tab=profile). Хотя вам может потребоваться дополнительные усилия, чтобы заставить его работать ** в приложении **. – Onik

+0

@Onik, вы можете мне помочь с использованием 'jtrace'? У меня проблема: Я использую процессор x86-64 на базе эмулятора 'adb'. Я нажал jtrace.x86 на своем устройстве (эмулированное устройство), и когда я его запустил: 'adb shell'; 'cd/data/local/tmp'; './jtrace' У меня есть ошибка:'/system/bin/sh: ./jtrace: Нет такого файла или каталога'. Однако файл существует. –

ответ

4

Вы пытались использовать Xposed framework? Это в основном позволяет перехватывать любой метод (например, Context.startService() или любой из ActivityManager) и добавлять свой собственный код.