在Rooted手机上阅读/data/data/****/**.db

时间:2014-12-14 21:38:49

标签: android database sqlite root

我制作的应用程序可以读取来自Whatsapp,Viber,邮件等的消息并对其进行分组,这样您就可以在一个应用程序中阅读一个人对您说的所有信息。

为此,我尝试读取每个App在/ data / data目录中的* .db文件,但遇到了两个问题。

由于我是新手为root用户手机编程的,我不知道这是如何工作的,也没有找到好的教程或任何文档。你有任何我能理解的内容吗?

一旦我知道如何使用root访问/ data / data,如何在不复制的情况下读取* .db。许多其他主题说我应该将* .db文件复制到一个文件夹并在那里阅读,但是从它的位置读取它会不会更简单?

1 个答案:

答案 0 :(得分:3)

应用程序,无论手机是否植根,都只能读取自己拥有的文件或公共文件(例如,在SD卡上)。这是因为虽然手机可能已植根,但应用程序本身无法获得root权限。

相反,在手机上,您有一个名为su的可执行文件,可让应用运行root命令。但是,默认情况下,它拒绝让任何应用程序运行任何根命令。当您使用手机时,可以使用新的修改版本替换此可执行文件,该版本允许已批准的应用程序运行root命令。通过使用这些root命令,您可以获得对系统的间接 root访问权。

现在,由于您只对应用程序进行间接root访问,因此您不能只读取文件系统中的任何文件。但是如果你运行root命令将它复制到你自己的私人目录,你有权阅读它,你的应用程序可以直接从那里读取它。

(注意:您可以技术读取文件而不先复制它们,使用su可执行文件,但除非有真正原因导致您无法复制首先,你实际上知道你在做什么,你可能不应该打扰,因为它很少值得麻烦,特别是对于sqlite数据库而言。)

有关如何使用su运行root命令的详细信息,请参阅this link(Gumbo在上述评论中发布的内容)。