2012-09-06 56 views
3

是否有可能在android中监听第三个paty应用程序意味着我想了解第三方应用程序的所有日志,例如星期四凌晨2:30的应用程序xyz访问联系列表。如何获得android的第三方应用程序的细节?

我们可以像任何应用程序在sqlite框架类上运行任何查询都会生成一个日志那样更改框架代码吗?我认为它应该有可能通过扎根设备,但不知道如何实现这一点。

回答

2

我们可以像任何应用程序在sqlite框架类上运行任何查询时都会生成一个日志那样更改框架代码吗?

通过分流Android来添加您的更改,创建您自己的ROM Mod,其中包含Android的分叉副本,并在设备上安装该ROM Mod。

我觉得应该是有可能通过扎根设备

在最好的情况,你可以跳过“创建自己的ROM国防部”的步骤,并尝试将修订的框架JAR复制到扎根设备。但是,如果该框架JAR不与您的操作系统的其他部分保持一致,则各种事情可能无法正常工作。这就是为什么唯一安全的方法是通过全ROM模块。

+0

你是对的先生,我试图改变contact.apk,但在此之后,力量关闭在许多其他地方。 –

2

这似乎是显而易见的,但无论如何,我会说出来。您可以阅读Eclipse LogCat中的任何应用程序的日志。

如果您知道应用程序名称,并且它实际上创建了日志(即启用了日志),则可以对它们进行过滤以查看特定于该应用程序的日志。

+2

“您可以在Eclipse的LogCat中读取任何应用程序的日志。” - 不像果冻豆。 – CommonsWare

1

也许你可以IMPL为Android一个AOP框架...

4

一种方式来改变框架知道谁访问任何的ContentProvider是改变

enforceReadPermissionenforceWritePermission在ContentProvider.java来记录包正在调用的ContentProvider,

Log.d(TAG,""+getCallingPackages() +" app called provider "+ uri.getAuthority()); 

getcallingpackages起作用

private Collection<String> getCallingPackages() { 
    int caller = Binder.getCallingUid(); 
    if (caller == 0) { 
     return null; 
    } 
    return Lists.newArrayList(mContext.getPackageManager().getPackagesForUid(caller)); 
} 
相关问题