【问题标题】:How do I give my android app administrator permissions?如何授予我的 android 应用管理员权限?
【发布时间】:2015-09-16 21:52:57
【问题描述】:

我正在创建一种新型安全应用程序,它位于 OSI 第 2/3 层并加密在设备之间流动的数据包。借助这项经过验证的技术,我可以创建诸如 Secure Skype、Private Messenger 等应用程序,并且可以在同一通信通道上执行诸如混合 Triple DES 和 AES 256 位加密(这最终将成为一个开源加密平台)之类的事情.我们在更高级别、更有限的选项(例如 SSL 和 VPN)下运行,并且我们多年来一直在台式机上工作。

问题是我无法弄清楚如何将我的 Linux 版本移植到 Android,因为我的应用需要拥有管理员权限。我不想试图强迫人们根植他们的手机,我正在寻找一些合法的选择。

在 Windows 和 Apple 中,您可以验证您的代码 - 在 Windows 中,这称为 Windows 徽标验证。在这种情况下,您的代码将通过一系列测试,源代码已签名,然后该证书获得管理员权限。

鉴于 Android 的工作原理,似乎应该存在类似的选项,但我找不到任何东西。

有人可以指点我正确的方向吗?

非常感谢您的宝贵时间。

【问题讨论】:

  • 我与一些构建三星操作系统的人交谈过,他们告诉我只有三星这样的制造商或 Verizon 这样的 ISP 才能提供此权限。有人知道如何与这两种类型的公司打交道吗?

标签: android security android-permissions


【解决方案1】:

不幸的是,我很确定在 Android 上获得“管理员”权限的唯一方法是通过手机植根。

如果你决定继续这样做(我知道这不是你想要的),我会推荐libsuperuser。仅使用 Runtime.getRuntime().exec("su ...") 可能无法在所有版本的 Android 中始终如一地工作,这个库提供了一种适用于它们的方法 (source)。在运行任何东西之前,您应该首先检查 root 是否存在,否则您可能最终会在运行时崩溃,因为 su 二进制文件不存在。

【讨论】:

  • 感谢您的图书馆参考 - 不幸的是,生根不是这项工作的一个选项。
  • 顺便说一句 - 一旦我有足够的分数,我会投票给你的答案,它是我使用的一个很棒的替代品(即 Runtime.getRuntime()。libsuperuser 提供了一种更优雅的方式来显示权限给用户的问题。这不是我当前问题的解决方案,但一旦您获得足够的权限,它就是一种很棒的工作方式!
【解决方案2】:

这是 Android 中的一项安全措施。如果您对所有此类数据包具有低级别访问权限,则可以做令人难以置信的邪恶事情。因此,操作系统故意使用户应用程序无法访问。

据我所知,与 Windows 徽标计划最接近的是说服 OEM 使用他们的密钥签署您的应用程序或将其包含在系统分区中。

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2012-03-15
    • 2020-12-11
    • 1970-01-01
    • 2023-04-06
    • 2020-09-04
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多