我正在移植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
。