如何授予从源代码,而不是生根的ROM中的特定应用程序根目录的访问?(How to grant roo

2019-09-01 03:40发布

我从源代码编译一个Android ROM,和我有我希望它预装,并将它与root权限运行一个应用程序。

我怎样才能授予此特定的应用程序的root访问权限,没有生根整个ROM?

Answer 1:

希望你不需要根...

典型的股票的Android ROM的提供root权限很少有东西,在与线最小权限原则 。 相反,应用程序被授予他们所需要的精确权限。

到底为什么你需要这个程序有root权限? 你应该先浏览列表中的所有内部未公开的Android权限 ,以看看是否有一个你想要做什么。 既然你正在构建一个系统的应用程序,你甚至可以使用signature权限的,一般都不会提供给其他应用程序。 你只需要确保您的应用程序是通过与您建立在Android ROM的密钥签名 - 那么你可以用ROM或单独发布它,它仍然将有机会获得您所需要的权限。

做这种方式的优点是:

  • 如果你的程序被泄露或越野车,其影响是有限的。
  • 您的实际Java代码具有这些权限,所以没有必要手艺繁琐的命令行。

所以,如果你能做你的任务就这样,做的。

但是,如果你真的...

如果你真的需要根,然后事情就变得棘手。

你有三个选择。 在优先顺序排列:

  • 添加一个新的系统服务。
  • 添加一些另类的setuid根二进制文件,做了你需要的东西。
  • 修改su二进制检查究竟是谁打来的。

如果你真的需要根,那么我会添加一个新的系统服务 。 这可以以root身份运行。 然后,您可以添加额外的合适API,以便您的应用程序可以调用它-和权限可signature -电平,以便只有您的系统应用程序可以调用它。 这是建筑上“正确”的方式做到这一点在Android的土地。

第二个或第三个选项涉及创建一些命令行工具,你想要做什么,但我不知道这样的工具来检查谁喊它的安全方式。 这是可以接受的,以允许任何应用程序调用此功能。 如果是这样,一个新的setuid-root可执行文件可能是要走的路。 然而,正如我说的,我不知道一个办法阻止其他应用程序运行它。



文章来源: How to grant root access to a specific application from source code instead of rooting the ROM?
标签: android root