【问题标题】:Rooting VS permissions生根VS权限
【发布时间】:2011-12-16 20:19:28
【问题描述】:

首先,我不参与任何类型的 Android 开发。我只是好奇。

问题是:获得root权限的app是否还需要在manifest中声明其需要的权限?

我的意思是,如果我的应用没有声明它需要获取摄像头输入,它是否可以在 成为 root 后调用一些 API 或可执行文件并获取摄像头?

我知道这听起来很愚蠢,但我再说一遍,我只是对 Android 功能感到好奇。

【问题讨论】:

  • 当然,在 Linux 中的良好感觉和专业知识告诉这是可能的,因为当你是 SU 时,你可以在系统上做任何你想做的事情。我不知道我在这种情况下是否正确

标签: android permissions root


【解决方案1】:

在典型的根植 Android 设备(将使用 Superuser 应用程序及其对应的 su 二进制文件)上,请求 root 访问权限的应用程序只能通过 su 二进制文件以 root 身份运行命令。

所以是的,因为应用程序本身仍然作为低权限的用户进程运行,所以它需要使用“普通”API 执行的任何操作仍然需要正确的权限。因此,如果您想(如您的示例中)使用普通 Java API 访问相机,除非您声明了该权限,否则您不能这样做。

但是不,如果你的应用程序requests and receives root privileges 通过su 二进制文件,你可以在该命令中做任何你想做的事情。因此,如果您编写了一个特殊的二进制文件或脚本,可以在正常 API 方法之外访问相机,那可能会起作用。 (我怀疑这将比它的价值更麻烦。)

【讨论】:

  • 问题的第二部分不清楚。您说该应用程序可以通过 su 以完全权限运行 root 命令,但调用 API 作为非特权。然后,只要不存在执行未声明功能的 sudoable 可执行文件(即获取相机输入并允许正在运行的应用程序使用其流或任何其他东西的命令),那么应用程序无法运行未声明的内容。我说的对吗?
  • 是的,(我可能在您编写答案的同时编辑了答案)root 访问权限仅限于您的su 生成的进程。您的应用程序保留其在 Java 世界中的现有权限。您必须想办法在普通 Java API 之外访问相机,除非您想办法以 root 身份启动另一个 Java 应用程序。
  • 另一个有趣的评论。所以,以 root 身份启动 Java 应用程序并不是那么简单,不是吗?我对android开发真的不太了解,但我对它很感兴趣
  • 正确;我不相信这很简单。您可能会设法运行 Java 应用程序,但我不确定您是否可以让它显示 UI,因为此时您不在 Android OS 提供的 UI 框架之外,该框架并非旨在运行结束- 由于明显的安全风险,用户应用程序为 root。 (实际上有一个工厂测试模式,但没有为生产设备启用)
猜你喜欢
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 2014-02-19
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
相关资源
最近更新 更多