2011-12-15 29 views
2

嗨,我是为Android新手之间的共同文件夹...请扔一些轻以下问题..安卓:分享Linux应用和Android应用程序

我有一个Linux应用程序创建的文件(用C语言编写),具有S_IRWXU | S_IRWXG权限,并且该文件属于根用户和根用户组。

现在我想以不同的用户身份(比如app_41)将此文件作为Android应用程序进行读取/写入。这是不可能的android应用程序,因为它没有文件的权限。

什么是最好的方式来实现这个(不允许“其他”权限的文件/文件夹)?

原因是我有一个用C编写的守护进程,它创建和管理其他进程使用的命名管道。我试图从Android应用程序写入命名管道(使用本机代码),但我没有正确的权限来执行此操作。

我不会感到惊讶,如果有人说......“嘿这是很简单的..这样做......”

感谢您的帮助!

+0

顺便说一句你要保存你的文件/文件夹? – 2011-12-15 13:40:05

+0

存储/ tmp下的文件 – user1099859 2011-12-15 14:36:42

回答

0

我想出了一个解决方案,它的工作原理...请让我知道如果任何人有任何更好的解决方案..

对于一个Android应用程序共享由根进程owened一个文件,我们需要做的以下

  1. 制作的Android应用程序,以“系统”用户使用

    android:sharedUserId="android.uid.system" 
    
  2. 让其他平台的过程(拥有该文件)属于仍然是一个但是将其添加到组“系统”中。

  3. 现在的问题是如何将一个进程添加到组“system”中。我们想到的一件事就是将进程添加到init.rc并使用“group”关键字并启动它。但Android不允许它发生。

  4. 要将进程添加到组“system”,进程必须从进程内请求groupid。也就是说,使用过程中的setgid(1000)系统调用将其添加到组“系统”中。

它很好用!