如何为Android应用程序提供系统权限

时间:2017-05-15 16:27:12

标签: android google-glass wso2-emm wso2iot

我正在开发 google-glass 项目,我必须以编程方式安装/更新应用,在我的研究中我有以下复杂功能:

  1. 获取系统对话框操作,以编程方式执行单击
  2. 为了以编程方式安装,意图导致系统对话框获取用户权限,但无法以编程方式激活系统对话框的操作。这个解决方案是不可能link

  3. 使用 EMM 解决方案(WSO2 IOT)
  4. 我使用 WSO2-IOT ,但由于 google-glass 没有device policy manager,所以即使安装代理apk也不会有帮助,因为我无法利用EMM(WSO2 IOT)提供的任何服务,(安装或更新我的应用程序)

  5. 获取系统权限无根
  6. 要使用以下权限:
    • < uses-permission android:name =“android.permission.INSTALL_PACKAGES”/>
    • < uses-permission android:name =“android.permission.DELETE_PACKAGES”/&gt ;
    我的应用程序需要系统权限,以静默方式安装/删除/更新应用程序。

    根据我的知识和研究,目前唯一的解决方案是第三种解决方案,即获得系统权限。为了得到它,我也尝试了Sigined the APK with the system certificate.
    我仍然得到错误:
    java.lang.SecurityException: Neither user 10056 nor current process has android.permission.INSTALL_PACKAGES.
    此外,我已尝试将android:sharedUserId="android.uid.system添加到清单中,如here

    所述

    到目前为止,实现它并没有成功。我想知道如何在后台静默安装应用程序,而无需设备生根

    任何有用的建议都会受到高度的欢迎。

    谢谢。

1 个答案:

答案 0 :(得分:2)

当您需要在设备中安装/更新应用时,您必须使用相关详细信息触发Package Manager。但是为了触发程序包管理器,您必须具有上述权限(android.permission.INSTALL_PACKAGES& android.permission.DELETE_PACKAGES),因此设备管理员权限。正如您所说,无法自动执行系统对话框的操作,系统对话框会提示您获取管理员权限。

如果存在设备策略管理器,也可以使用Device Owner概念。因此,您必须找到替代方案。

我可以为您提供一个轻量级的代理,它可以成功注册IoT服务器,而不会让您的谷歌眼镜麻烦。但我担心不可能做任何需要设备策略管理器的任务。 请在此处找到来源:https://github.com/milanperera/android-glass-agent