Android 通过 busybox 命令行静默安装 apk

yur*_*ife 5 android busybox android-install-apk

我想通过 BusyBox 命令在后台静默安装 .apk。我见过一些类似的问题,比如THIS,但我仍然无法正常工作我的代码......

我有:

  1. 我的 .apk 需要安装在 /sdcard/download/app.apk 上
  2. 已安装 BusyBox

代码(不起作用):

String sss = Environment.getExternalStorageDirectory() + "/download/" + "app.apk";
Process install;
install = Runtime.getRuntime().exec("/system/xbin/busybox pm install " + sss); 
int success = install.waitFor();
Run Code Online (Sandbox Code Playgroud)

如果我使用“install”而不是“pm install”,它会很好地复制文件。

PS 上面的代码是在 AsyncTask 中执行的。没有错误,但也没有任何反应...请帮忙!

我也尝试过这个,但我得到退出值 139 并且没有结果:

        Process process;
        process = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(process.getOutputStream());
        os.writeBytes("pm install /mnt/sdcard/app.apk\n");
        os.flush();
        os.writeBytes("exit\n");
        os.flush();

        int i = process.waitFor();
Run Code Online (Sandbox Code Playgroud)

yur*_*ife 1

经过对许多 Android 设备的大量调查后,我意识到这段代码是正确的并且有效!

只有一台设备(Samsung Galaxy Tab 2 7.0 - 4.0.3 ICS)出现一些问题。也许这就是 ICS 的一些奇怪的功能。将固件更新至 4.1.2 (Jelly Bean) 后问题已得到解决。