2017-01-27 1 views
-3

Ich habe ein Android-Handy mit Wurzel und so Zugang bekommt. Ich möchte alle Absichten abfangen, die durch irgendeine APP und ihre Extrakostenbündel in meiner Android-App abgefeuert werden. Gibt es eine Möglichkeit, das zu tun, ohne ein benutzerdefiniertes aosp ROM zu schreiben? Ist es möglich, die Funktionsweise von Zygote oder ActivityManager zu ändern?Intercept alle Android Absichten

Ich weiß „adb shell dumpsys“ verwendet, wird eine historische Sicht auf Vergangenheit Absichten bieten, aber es ist die Absicht Nutzlast fehlt.

Ich habe eine Liste aller Aktionsnamen Absichten bekommt, die abgefeuert werden können und die meine androidmanfiest.xml hinzugefügt. Einige werden jedoch an bestimmte Pakete weitergeleitet oder hinter Sicherheitsberechtigungen eingeschränkt.

Gibt es einen one-size-fits-all Ansatz, der alle Absichten in Android abfangen werden?

+6

Ich glaube, Sie gehen Custom ROM haben, zu gehen. Ihre Bewerbung wird nicht einmal über eine Absicht informiert, wenn sie nicht möglich ist. –

+0

_ "Ist es möglich, die Funktionsweise von Zygote oder ActivityManager zu ändern?" _ Nein, es sei denn, Sie passen AOSP an. Sie können diese nur deaktivieren. _ "Gibt es einen einheitlichen Ansatz, der alle Absichten von Android abfängt?" _ Ich würde Ihnen empfehlen, [jtrace] ein von Jonathan Levin alias [@Technologeeks] entwickeltes Tool (http://stackoverflow.com/users/1734439/technologeeks?tab=profile). Obwohl Sie möglicherweise zusätzliche Anstrengungen unternehmen müssen, um es ** innerhalb einer App ** funktionieren zu lassen. – Onik

+0

@Onik, kannst du mir helfen, 'jtrace' zu ​​benutzen? Ich habe ein Problem: Ich benutze 'adb' Emulator-basierte x86-64 CPU. Ich schob jtrace.x86 auf mein Gerät (emuliertes Gerät) und wenn ich es starte: 'adb shell'; 'cd/data/local/tmp'; './jtrace' Ich habe einen Fehler:'/system/bin/sh: ./jtrace: Keine solche Datei oder dieses Verzeichnis'. Die Datei existiert jedoch tatsächlich. –

Antwort

4

Haben Sie versucht Xposed framework mit? Es erlaubt Ihnen grundsätzlich, jede Methode (wie Context.startService() oder irgendeinen ActivityManager) abzufangen und Ihren eigenen Code hinzuzufügen.