我可以在rooted设备上使用busybox在后台安装apk吗?
我看到类似的东西,但它不起作用
process install;
CommandCapture command = new CommandCapture(0, "chmod 777 /data/app");
RootTools.getShell(true).add(command).waitForFinish();
CommandCapture command2 = new CommandCapture(0, "chmod 777 /system/xbin/busybox");
RootTools.getShell(true).add(command2).waitForFinish();
install = Runtime.getRuntime().exec("/system/xbin/busybox install " + Environment.getExternalStorageDirectory() + "/Download/" + "xxx.apk /data/app/xxx.apk");
答案 0 :(得分:3)
不使用busybox
install = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(install.getOutputStream());
os.writeBytes("pm install "+APKFile.apk+"\n");
os.writeBytes("exit\n");
os.flush();
install.waitFor();
答案 1 :(得分:2)
它看起来为busybox二进制文件使用两个路径。首先,您chmod
/system/xbin
,然后从system/bin
调用它。确保使用正确的路径。 chmod 777 /data/app
看起来非常糟糕。
答案 2 :(得分:1)
如果你在root shell中运行su -c pm install myapp.apk
,你应该可以在后台安装(注意'pm')部分。这与busybox无关,你可以使用任何shell,你当然不需要更改/data/app
的权限。