2011-12-15 55 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)系統調用將其添加到組「系統」中。

它很好用!