簡體   English   中英

如何通過Android SDK獲得root權限?

[英]How can I get root permissions through the Android SDK?

我正在學習Android編程,我想創建一個必須以root身份運行的應用程序。 合乎邏輯的是在Android Manifest中添加root權限。

我在文檔中看到了這個鏈接 ,特別注意到FACTORY_TEST權限

public static final String FACTORY_TEST

自:API級別1

作為制造商測試應用程序運行,以root用戶身份運行。 僅在設備以制造商測試模式運行時可用。 常量值:“android.permission.FACTORY_TEST”

這是最好的方式嗎?

如果無法使用SDK,我該如何使“root”應用程序工作?

你需要做的是:

Process root = Runtime.getRuntime().exec("su");

這會導致SuperUser顯示,這允許您從root訪問權限允許或阻止它。 如果用戶未植根,則此方法可能不起作用。 是一種可以測試它的方法。

首先讓我們正確掌握基礎知識。 Android在下面運行Linux內核。 現在,如果您必須以超級用戶權限(以root身份運行)運行您的進程,唯一的方法是通過command line執行您的進程,因為這是您可以直接與內核交互的唯一方法。 在運行任何命令之前,您還需要使用su 正如克里斯在他對第一個答案的評論中提到的那樣

Process process = Runtime.getRuntime().exec("su");

幾乎沒有任何成就。 它只會使用對話框詢問超級使用權限。 您可以做的不是僅執行su而是可以使用su執行您的流程,如下所示

Process process = Runtime.getRuntime().exec(new String[] { "su", "-c", yourCommand});

-c選項

su中最常用的幾個選項是-c,它告訴su to execute the command that directly follows it on the same line 這樣的命令作為新用戶執行,然后運行su的終端窗口或控制台在命令完成執行后或在其啟動的任何程序關閉后立即返回到前用戶的帳戶。( 更多細節

替代選項

替代上述方法可能有效的另一種方法是使用命令行將應用程序復制到/system/app/目錄。 然后您的應用程序將以root權限自動運行(與系統應用程序相同)

SDK不提供以root身份運行應用程序的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM