can i install apk in background using busybox on rooted device ???
i see something like that but it doesn't work
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");
If you run su -c pm install myapp.apk
in a root shell, you should be able install in the background (note the 'pm') part. This has nothing to do with busybox, you can use any shell and you certainly don't need to change permission of /data/app
.
without using 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();
It looks you use two paths for your busybox binary. First you chmod
it in /system/xbin
, but then you invoke it from system/bin
. Ensure you use right path. And chmod 777 /data/app
looks VERY BAD.