Android用户空间文件系统驱动程序在非rooted设备上?

我可以编写一个自定义的用户空间文件系统,可以通过标准的可用实用程序在非根植的工厂设备上运行吗?

我意识到fuse-android的存在,但据我所知,它需要一个根植的设备。 如果不是这样,请纠正我。

我试图实现的目标是创build一个实际上挂载到文件的“假”FS。

Solutions Collecting From Web of "Android用户空间文件系统驱动程序在非rooted设备上?"

前段时间我也有同样的需要,到了不得不承认根本不可能的地步(主要是)。 为Android构buildlibfuse应该不是问题,Java包装也没有问题。

真正的问题是,我所看到的大部分系统都不是用保险丝支持构build的,也不是提供可能被加载的模块(这将需要根,但无论如何)。

通过读取/ proc / filesystems可以很容易地发现熔丝是否被启用。 它应该列出保险丝,否则你将需要根。 但是很可能大多数Android设备都是在没有保险丝支持的情况下构build的。

我的其他想法是使用另一个文件系统来“伪造”保险丝之类的东西。 这可以用nfs或其他networking文件系统,你可以自己实现服务器。 这可以让你写一个假的引信,但我不认为这是值得的。

编辑:即使许多设备将具有保险丝支持buildin的机会很高,他们不会让你作为一个用户安装它,你需要root访问,因为你的应用程序将无权安装fuse文件系统。

Luminger几乎有正确的想法。 这是我在我的Galaxy S3(在Verizon上)find的:

/ proc / filesystems 存在适当的保险丝。 所以一定要使用它,很可能是系统。 但是,当我试图执行“fusermount”,我得到“不能执行 – 权限被拒绝”。

所以它看起来像所有的FUSE的东西在那里,但我不知道我是否可以直接使用它(dropbox?sshfs?),而不需要root设备。

这取决于你的实现。 对我来说,听起来是你想要一个物理文件来代表一个完整的用户空间文件系统。 也许类似于一个安装的.iso。 如果是这种情况,我想不出任何需要root的理由:你只需要在/ sdcard /之类的地方创build/安装文件,然后在你的文件系统上“mount”你的文件系统。

也就是说,如果您希望文件系统可以从其他不受控制的应用程序访问,那么您将需要root权限,否则应用程序将在Android沙盒中运行。