【问题标题】:Getting 'root" permission for Android App获得 Android 应用程序的“root”权限
【发布时间】:2014-02-06 07:16:33
【问题描述】:

我想知道我们如何才能从 android 应用程序获得 root 权限? android 市场上有没有应用程序?

我尝试了下面的代码行来列出文件,但什么也没发生

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

我尝试在清单文件中授予 TEST_FACTORY 权限,但出现“允许系统应用”错误

如何让我的应用成为系统应用?

我需要帮助来开始使用这些东西(如果可能的话,制作应用程序以获得 root 权限)非常感谢任何关于这方面的帮助。在此先感谢:)

【问题讨论】:

  • 具有root权限的应用程序和系统应用程序之间存在很大差异。你需要哪一个?
  • 嗯。重新阅读您的问题,当您尝试编写自己的“supersu”替代方案时,它会接缝?如果是这样:你不能在 Java 中做到这一点。您需要 C 来编程和编译可以在 Android 内核上本地运行的可执行文件。那当然可以插入任何处理用户交互的 Java APK,但您仍然需要 su 可执行文件来调用您的 Java 应用程序。
  • @Simaon 我基本上是想从我的应用程序中更改 Android 内核。我不知道该怎么做。请帮帮我。为此目的开始的正确方法是什么?
  • @Johannes 我基本上是想从我的应用程序中更改 Android 内核。我不知道该怎么做。请帮帮我。为此目的开始的正确方法是什么?
  • 使用su 调用shell 命令是到达那里的正确方法。您只需要弄清楚要调用哪些命令 - 以及哪些命令是可用的。要做的第一件事:学习如何使用 linux shell。 Android 具有 bourne-shell,因此您可以使用 bourne-shell 特定语法。

标签: android root android-kernel


【解决方案1】:

这里有一个很好的答案 - ANDROID: How to gain root access in an Android application?

“据我所知,你只能使用 root 权限运行命令行命令。你可以使用我制作的这个通用类,它在你的代码中包装了 root 访问权限:http://muzikant-android.blogspot.com/2011/02/how-to-get-root-access-and-execute.html

【讨论】:

    【解决方案2】:

    首先:请注意,您只能使用 su 执行 shell 命令(= 您只能以 root 身份使用 shell 命令,而不是 java 代码)。

    第二:不确定这是否适用于所有 su 应用,但这是我手机上su 的帮助消息:

    Usage: su [options] [--] [-] [LOGIN] [--] [args...]
    
    Options:  
      --daemon                      start the su daemon agent  
      -c, --command COMMAND         pass COMMAND to the invoked shell  
      -h, --help                    display this help message and exit  
      -, -l, --login                pretend the shell to be a login shell  
      -m, -p,  
      --preserve-environment        do not change environment variables  
      -s, --shell SHELL             use SHELL instead of the default /system/bin/sh  
      -u                            display the multiuser mode and exit  
      -v, --version                 display version number and exit  
      -V                            display version code and exit,  
                                    this is used almost exclusively by Superuser.apk  
    

    这意味着:您必须运行su -c something(或su -c something - root,但无论如何root是默认值)。基本上这在大多数 Linux 系统上等于 su,除了守护进程,因为在常规 linux 系统上没有守护进程和 su 调用。

    如果其他 su 命令的行为不同(这是可能的),打开一个流到 shell,执行su,评估它的返回码,然后继续执行其他命令,最后执行exit,会更安全。

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 2011-06-21
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2016-08-18
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多