我正在移植C ++ myToll Linux应用程序,以便使用NDK r10d在Android上运行。 (请注意,这不是具有apk的Android应用程序,而是从外壳程序运行的实用工具。)这是命令行界面,没有GUI,并且正在与NDK一起构建为独立应用程序。

在诸如Centos 5之类的Linux上,该工具读取和写入以下标准目录位置:

/var/run/myTool/   (read/write)
/var/log/myTool/   (read/write)
/etc/myTool/       (read only)
/tmp/              (read-write)


myTool安装在/system/xbin/myTool中,并且可以作为shell中的实用程序在根目录下的android手机上运行,​​但是即使在以root身份运行时也无法在运行时访问这些相同的位置。

myTool也将具有足够的权限在android系统上使用的相应位置,并且应该在Android上常见的此类文件中? root是否可以创建任何位置,以便myTool可以在运行时使用它们而无需root

最佳答案

参照ferzco提供的Android stackexchange answer,我决定使用以下适用于我扎根的Samsung Galaxy S4的解决方案:

/var/run/myTool/  =>  /data/log/myTool/run/
/var/log/myTool/  =>  /data/log/myTool/log/
/etc/myTool/      =>  /etc/myTool/
/tmp/             =>  /data/local/tmp/myTool/


我使用/data/log/myTool作为其中两个目录的基础,而使用/data/local/tmp作为第三个目录的基础,因为它们是我发现的唯一目录,它们提供了对myTool的写许可权,而不是对su的编辑。在安装过程中,我需要root来设置root子目录,但是一旦创建了myTool目录并将myTool设置为chmod 777 myTool,则不再需要用户是root来写入这些子目录。对于第四个root,因为/etc/myTool只需要在运行时从myTool读取信息,所以我将其保留在现有的/etc目录中,因为一旦创建,用户就可以读取(尽管不能写)该信息,能够根据需要将其配置为/etc

10-08 11:51