如何在Android中获取第三方应用程序的详细信息?

时间:2012-09-06 12:09:06

标签: java android

是否有可能在android中监视第三个paty应用程序意味着我想知道第三方应用程序的所有日志,例如应用程序xyz访问联系人列表,在凌晨2:30,星期四。

我们可以更改框架代码,就像任何应用程序在sqlite框架类上运行任何查询时都会生成一个日志吗?我认为应该可以通过root设备但不确定如何实现它。

5 个答案:

答案 0 :(得分:4)

LogCollector安装LOG COLLECTOR应用程序

答案 1 :(得分:4)

更改框架以了解谁访问任何contentProvider的一种方法是更改​​

ContentProvider.java中的

enforceReadPermissionenforceWritePermission用于记录调用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));
 }

答案 2 :(得分:2)

这可能看起来很明显但无论如何我都会说。您可以在Eclipse的LogCat中读取任何应用程序的日志。

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

答案 3 :(得分:2)

  

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

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

  

我认为应该可以通过root设备

充其量,您可以跳过“创建自己的ROM mod”步骤,并尝试将修订后的框架JAR复制到您的root设备中。但是,如果该框架JAR不与您的其他操作系统对齐,则各种操作可能无效。这就是为什么唯一安全的方法是通过完整的ROM模式。

答案 4 :(得分:1)

也许你可以为Android安装一个aop框架......