我有一个将意图发送给确切应用的应用。我具有root shell访问权限,并且可能会修改AOSP,但是我真的不知道在哪里查看。
在logcat中得到它:
START u0 {act = com.app.Action.OPEN cmp = com.app / .SomeActivity(具有 uid 10052)
如何捕获此(has extras)
?或至少是意图中使用的键(不是值),导致我的主要目标是使用参数(具有root访问权限)启动外部应用程序活动,但是它是封闭源代码,我不知道如何命名额外的字符串键。>
为澄清这个问题,我应该说,意图是从应用程序调用到自身,而我没有此应用程序的来源。
答案 0 :(得分:0)
获取意图数据的一种可能方法是创建一个具有完全相同的软件包名称和意图过滤器的软件包,然后用伪造的软件包替换原始软件包,作为新的意图接收者。只有这样,answer中提供的解决方案才可以使用-因为除非收到意图,否则没有任何要列出的内容。
虽然可以从源代码构建AOSP,但仍然可以编辑类Intent
并添加更多日志记录。 Uri mData
似乎是您要查找的数据; line 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());
}
}