我从源代码编译一个Android ROM,和我有我希望它预装,并将它与root权限运行一个应用程序。
我怎样才能授予此特定的应用程序的root访问权限,没有生根整个ROM?
我从源代码编译一个Android ROM,和我有我希望它预装,并将它与root权限运行一个应用程序。
我怎样才能授予此特定的应用程序的root访问权限,没有生根整个ROM?
典型的股票的Android ROM的提供root权限很少有东西,在与线最小权限原则 。 相反,应用程序被授予他们所需要的精确权限。
到底为什么你需要这个程序有root权限? 你应该先浏览列表中的所有内部未公开的Android权限 ,以看看是否有一个你想要做什么。 既然你正在构建一个系统的应用程序,你甚至可以使用signature
权限的,一般都不会提供给其他应用程序。 你只需要确保您的应用程序是通过与您建立在Android ROM的密钥签名 - 那么你可以用ROM或单独发布它,它仍然将有机会获得您所需要的权限。
做这种方式的优点是:
所以,如果你能做你的任务就这样,做的。
如果你真的需要根,然后事情就变得棘手。
你有三个选择。 在优先顺序排列:
su
二进制检查究竟是谁打来的。 如果你真的需要根,那么我会添加一个新的系统服务 。 这可以以root身份运行。 然后,您可以添加额外的合适API,以便您的应用程序可以调用它-和权限可signature
-电平,以便只有您的系统应用程序可以调用它。 这是建筑上“正确”的方式做到这一点在Android的土地。
第二个或第三个选项涉及创建一些命令行工具,你想要做什么,但我不知道这样的工具来检查谁喊它的安全方式。 这是可以接受的,以允许任何应用程序调用此功能。 如果是这样,一个新的setuid-root可执行文件可能是要走的路。 然而,正如我说的,我不知道一个办法阻止其他应用程序运行它。