android 使用root权限管理,android – 使用Root权限运行服务或使用root添加权限
这远不是平凡的,但是当您想要监视的应用程序使用sqlite数据库或更通用的方式在文件到达时向其发送消息,但应该起作用.您确实需要对设备进行root访问,因为这违反了android安全系统:编写一个本地进程,以NDK作为守护进程运行,并以root身份启动后生成一次.你现在有三个主要问题要解决:如何发现有什么变化?这是简单的部分.您将需要使用linux inotify接口,应该可以在每个Android
这远不是平凡的,但是当您想要监视的应用程序使用sqlite数据库或更通用的方式在文件到达时向其发送消息,但应该起作用.
您确实需要对设备进行root访问,因为这违反了android安全系统:
编写一个本地进程,以NDK作为守护进程运行,并以root身份启动后生成一次.你现在有三个主要问题要解决:
如何发现有什么变化?
这是简单的部分.您将需要使用linux inotify接口,应该可以在每个Android手机上访问,因为SDK自API 1以来有一个FileObserver,所以你在这里保存.
另一个有趣的事情可能是抓住C2DM消息.我发现一个NDK类叫做BroadcastReceiver,所以NDK可以抓住他们.但我个人不会这样做,窃取意图感觉错了.此外,您也必须重新分配或让他们前往真实的收件人,所以我不会在这里详细描述.它可能会起作用,但可能更难,只能是回退.
所以,当你解决了这个问题,下一个问题出现了:
如何以保存的方式读取更改?
你有一个问题,一个大的,在这里.该文件不属于您,您甚至没有权利知道它在哪里(通常).所以被监控的应用程序不知道你,并且将像文件完全拥有它.如果他们使用一些普通的旧文本文件来写消息,你必须找出一种安全的方式,因为它可能被覆盖或扩展.但是,根据this的说法,当使用sqlite时,你可能会很幸运,只有一个作者只有一个以上的读写器是完全有效的.我们在规格,一切都好了.当你现在读出新的数据,更多的问题要解决:
如何获取新的数据回到主应用程序?
你应该只在这个c / c程序中的最低限度,因为它以root身份运行.您还应该保护您的应用程序用户免受安全漏洞的侵害,因此请记住这个守则程序.我没有真正的想法,这可以工作真的很好,但这里有一些:
>将收集的数据写入您自己的sqlite数据库(容易在c / c和java中)
>将收集的数据写入普通文件(完全不推荐,后方疼痛)
>发送一个包含新数据的意图(可能不是那么容易在c / c,但容易在java中)
>套接字/管道/ …,只是你可以想象的每一个rpc机制,由linux提供给你(与文件相同,不要这样做)
如上文中所述,当您编写此守护程序时,请注意,因为它具有潜在的安全隐患.当您对c / c知之甚少时,也可能很难做到这一点,甚至当您编写简单的程序时,这应该是一件非常简单的任务.
在我通过网络进行搜索时,我发现了我上面提到的这个NDK c类.它可以在google code找到.我没有NDK的经验,也没有c包装,但是当你打算写这个时可能值得一看.
更多推荐
所有评论(0)