安装Android系统应用程序,无声更新,无需在根目录设备上播放Google。

士隆

我正在尝试让我的应用以apk的新版本形式从ftp站点下载更新。下载后,apk应该以静默方式安装,未经用户确认。我已经控制了下载部分。我也可以在得到用户确认的情况下进行此操作。问题是静默更新部分。

据我所知,唯一的方法是将应用安装为系统应用。这是我需要帮助的地方。

我尝试了很多东西。我获得的最大成功是:

  1. 根设备。
  2. 将* android:sharedUserId =“ android.uid.system”添加到清单。
  3. 向清单添加以下权限:

    android.permission.ACCESS_SUPERUSER和android.permission.INSTALL_PACKAGES

  4. 使用如下所示的签名,使用Android Studio-> Build-> Generate Signed APK ...对apk进行签名:

    ./keytool-importkeypair -k google_certificate.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

我从GitHub上的Android源镜像获得pk8和pem文件。

  1. 将已签名的APK移动到设备上的系统/应用程序,然后单击安装。

我得到的第一件事是应用程序正在请求的大量权限,而从未执行过。所以我想这是系统应用程序拥有的权限,到目前为止还不错:)

我收到消息后立即:

应用未安装。

Google无法说出为什么会发生此错误,所以我在这里问。

我在正确的道路上吗?

为什么未安装该应用程序?

士隆

因此,几年后,我再次遇到了这个问题,并且设法解决了这个问题。因此,最重要的部分是使手机正确生根:这是通过SuperSU应用程序完成的。

下载.apk文件之后,将使用类似于以下内容的方法来安装更新:

private Boolean Install(String path)
{
    File file = new File(path);
    if(file.exists()){
        try {
            Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","pm install -r -d " + path});
            proc.waitFor();
            BufferedReader input = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
            String line;
            Boolean hasError = false;
            while ((line = input.readLine()) != null) {
                if(line.contains("Failure")){
                    hasError = true;
                }
            }
            if(proc.exitValue() != 0 || hasError){
                return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }

        return true;
    }

    return false;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查ANY应用程序是否在Android设备上播放任何类型的媒体?

获取Android设备上已安装的应用程序数量?

在真实设备上安装应用程序后,“除非您更新Google Play服务,否则该应用程序将无法运行”

在设备上安装暂存和正式版iOS / Android应用程序

Android Studio不会在设备上安装最新的应用程序

在iPhone设备上的离子应用程序中播放视频时无声音

Service Fabric应用程序的根目录

如何在Android设备上静默安装应用程序?

开发时,在没有根目录的真实设备上的system / priv-app文件夹中运行应用程序

安装Web应用程序后更改文档根目录

react-native run-android“无法在设备上安装应用程序...”

在Android 2.3设备上安装应用程序时出错

设备上的Android应用程序

已安装Android应用程序,但无法在设备上打开

错误“未在Android设备上安装应用程序”。

限制应用程序仅在特定的imei android设备上安装

通过Java代码获取android设备上已安装的应用程序的.apk文件

无法从Chrome操作系统上的Chrome网上应用店安装Android / ARC应用程序

无法在其他Android设备上安装我的应用程序

连接到Linux系统时,自动在Android设备上安装多个应用程序

在不使用Google Play商店的情况下在Android设备上安装Sencha Touch 2应用程序

Android:无需安装即可在物理设备上运行应用程序?

使用Google Map的Android应用程序在设备上崩溃

是否可以从Android设备更新缓存文件而无需删除应用程序?

Google地图无法在某些设备上播放,并且应用程序崩溃

设备锁定时停止播放android应用程序的音频

具有不同包名的 Android 应用程序无法安装在同一设备上。

Android Studio 更新后,Android 应用程序无法从传输到新设备进行安装

android 应用程序如何自动更新,而我无需在 Playstore 上更新它?