在Android(已root)上更改另一个应用程序的权限

3
我看到了一些关于这个问题的帖子,但是没有一个真正涉及到我想做的事情。我正在尝试编写一个应用程序,将拒绝另一个应用程序连接到互联网(IE防火墙)。基于我正在创建的算法,它将确定该应用程序是恶意的。该应用程序将在已经root过的手机上运行。然后我想要:

  1. 从应用程序中剥夺所有权限
  2. 拒绝其特定权限(互联网访问)
  3. 强制卸载该应用程序。

我知道已经有几个程序可以实现这个功能,但是我想自己编写代码:]]

说到这里,有人能指点我吗?

谢谢!

编辑:所以我找到了这个:

public static void killRunningPackage(final Context context, String packageName)
       { 
        ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 
        activityManager.killBackgroundProcesses(packageName); 
       }

我需要传递什么参数作为上下文?我查看了在线上下文,但我并没有真正理解它们。

这取决于您在哪里运行此代码。如果它是一个Activity/Service,您需要使用该特定组件正在使用的上下文。Activity将以getApplicationContext()、getBaseContext()的形式拥有上下文。您很可能会注册您的服务并使用传递给您的服务的上下文。 - JoxTraex
1个回答

2

构建视角

即使你的手机已经取得了root权限,因为这是由框架处理的,我非常怀疑你能够实现像这样的事情。

具体而言,除非你拥有源代码并且能够编译新手机的源代码,否则你无法做到这一点。

SDK视角

此外还有另一件事情,就是你不能“剥夺”一个应用程序的权限,因为它在Manifest.xml中,这个文件被嵌入到应用程序的.apk中,这是一个二进制文件,并且已经在PackageManager中注册。

这远远超出了SDK的范畴。

可以关闭一个应用程序,如果它不符合你的要求。 PackageManager将是你最好的选择,但是这已经是你所能做到的极限了。

更新

看看这个: http://android.amberfog.com/?p=98


好的,强制卸载程序怎么样...或者拒绝应用程序尝试建立的出站连接呢? - PeterL
看起来很不错!不过还有一个问题。 - PeterL
如果这篇文章帮助/解决了你的问题,请不要忘记将其标记为答案。如果您有任何更新,请在原始帖子中添加。 - JoxTraex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接