2012-12-10 149 views
10

我正在致力於AOSP。我已成功添加我的apk來構建。現在我想讓root訪問我的應用程序。我不想提供對其他應用程序的root訪問權限或在我的構建中安裝超級用戶應用程序。我只想添加我的應用程序以獲得root訪問權限。我怎樣才能做到這一點?如何修改AOSP以允許特定應用獲得root訪問權限?

我通過su.c文件進去路徑系統/演員/蘇但我無法瞭解整個代碼。

當我通過代碼去了,我覺得就可以實現我的目標,如果我能modifysu.c提供給我的應用程序,compile it and add the binary到構建根訪問。我對嗎?

+1

如果*任何*應用程序只能獲得root權限,它會不會是一個巨大的安全Barngate? –

+0

如果您不知道如何執行此操作,那麼在讓它以根用戶身份運行之前,您很難知道如何審覈代碼的安全性。 –

+0

從我發現的代碼中,它給了對shell的根訪問權限,以同樣的方式我想解析data/system/packages.xml中的xml文件,並找到我的應用程序的UID,並允許它具有對系統的根訪問權限 – Neji

回答

6

你正朝着正確的方向前進。您需要檢查su.c的來源您可能會遇到的唯一問題是如何以root身份運行程序。爲此,您需要爲應用程序的可執行文件設置SUID粘滯位。要做到這一點,你需要修改system/core/include/private/android_filesystem_config.h文件(結構android_files[]),例如用於蘇程序,你可以看到此位的設置:

{ 06755, AID_ROOT,  AID_ROOT,  "system/xbin/su" }, 
+1

這種方法不起作用,因爲Android應用程序沒有唯一的可執行文件。相反,它們最終是通用可執行文件的庫。 Zygote要求創建一個應用程序進程,但永遠不會執行exec(),它只是改變UID並將應用程序代碼加載到一個庫中。 –

+0

我不明白。這是蘇的工作方式。我在我的項目中多次使用這種方法。 – Yury

+0

Yury,你能告訴我你在這兩個文件中更新了哪些部分,以便爲你的應用程序提供root權限? – Neji

3

ChainFire寫了一a guide on su以及如何使用它一般應用程式。如果你打算使用自己的電話以外的其他任何東西,我建議這是你遵循的方法。

+0

我沒有任何可執行的二進制文件。我想設置root權限,以預置/預安裝的Apk。我該怎麼辦? –

相關問題