【问题标题】:How to install app silently on Android devices?如何在 Android 设备上静默安装应用程序?
【发布时间】:2017-02-13 09:59:17
【问题描述】:

所以,我在#CommonsWare 上找到了这个答案here,关于允许应用程序像 Google Play 一样在手机上静默安装应用程序。在那里,提到应用程序应该使用固件签名证书等进行签名,或者将应用程序添加到系统文件夹。我需要知道的是,如果我将应用程序添加到 system\app\ 或 system\priv-app\,那么是否可以将应用程序静默安装到 Android 设备上?还是我需要使用 INSTALL_PACKAGES 权限?如果有,怎么做?

我问这个问题是因为我只有 10 个声望,所以我不能在那里发表评论。

我找到了#inazaruk here 的答案,但它很复杂,提供的链接已失效。

【问题讨论】:

    标签: android rom silentpush


    【解决方案1】:

    执行安装的应用需要系统签名或驻留在 system/app system/priv-app 中,因为您确实需要持有正确的权限才能安装应用(即使您是系统签名),不同之处在于您完全可以获得必要的许可。您使用权限这一事实与用户收到弹出窗口询问是否可以的事实不同。

    为了安装一个包,你可以调用(ApplicationPackageManager.installPackage): http://androidxref.com/7.1.1_r6/xref/frameworks/base/core/java/android/app/ApplicationPackageManager.java#1561

    public void installPackage(Uri packageURI, PackageInstallObserver observer,
            int flags, String installerPackageName) {
    

    由于 ApplicationPackageManager 上有 @hide ,您将不得不使用反射之类的东西来访问它。当您调用“Context.getPackageManager”时,您会得到一个 ApplicationPackageManager。

    【讨论】:

    • 我想你说这是从应用程序端本身完成的。这是否意味着我们不需要应用程序的固件签名证书来获得设备上的完整安装权限?能说清楚一点吗?
    • 检查第一句 :) “安装的应用程序需要系统签名或驻留在 system/app system/priv-app 中”,即您的安装程序应用程序需要系统签名。
    • 所以,如果我将我的应用程序提供给手机制造商(使其成为他们设备中的系统应用程序),那么他们应该进行系统签名,对吗?
    • 是的,OEM 会进行系统签名,他们不应该与任何人共享他们的系统签名密钥。 :)
    • 这很有帮助。我需要知道的最后一件事。您是否知道有关如何完成此操作的任何流程(OEM 系统签名),或对此的任何引用?到现在我一直在寻找。
    猜你喜欢
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2013-12-18
    • 2015-12-05
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多