权限静默拦截(想了好久最简单的方案)

最近自己晚上在研究Supersuser。apk 权限控制软件。当然自己的想法需求很简单:1、能拦截任何软件偷偷权限请求2、允许我们自己程序有权限,其他程序偷偷请求权限,一律KIll掉,不做响应。起初,因为su超级权限,请求是c层的代码,当应用通过以下代码去请求su

Stringcmd=String.format("echo%s>%s\n",arg,mSwitchUsbFileTextEdit.getText().toString());

try{

ProcessexeEcho=Runtime.getRuntime().exec("su");

exeEcho.getOutputStream().write(cmd.getBytes());

exeEcho.getOutputStream().flush();

}catch(IOExceptione){

showMessage("Excuteexception:"+e.getMessage());

}

的时候,su首先会查找 Supersuser.apk是否安装,如果有安装su将会调用sqlite3.c里面的一个查找数据库去查找 请求权限的应用是否是权限允许的。然后确认后,他将会通过am指定跨进程发送该应用的userId 用户id 给 Supersuser 让其去弹出显示 授权的界面。也就是su———->Activity。 前面自己的想法是通过修改su.c增加个sqlite3的一个数据库插入方法,但是迫于对c语法不熟悉,以及JNI之间的调用调试并不是很方便,,因此一直搁浅着 。 今早突然想到,加个中间的Service服务,来做为中间服务。由service是后台界面,我们即可静默的去处理拦截。 具体实现Superuser.apk 请需要的人,自行去同步源码,自行编译。以及NDK 编译su.c 。 su跟Superuser是一一对应的请熟知。

谁说的,人非要快乐不可,好像快乐由得人选择。

权限静默拦截(想了好久最简单的方案)

相关文章:

你感兴趣的文章:

标签云: