2012-09-26 109 views
8

我可以安装apk在后台使用busybox rooted设备上?安装apk在后台使用busybox

我看到类似的东西,但它不工作

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"); 

回答

1

如果您在根shell中运行su -c pm install myapp.apk,则应该可以在后台安装(请注意'pm')部分。这与busybox无关,您可以使用任何shell,您当然不需要更改/data/app的权限。

+0

的路径感谢ü的回答,但我想从外壳 –

+1

这正是你的鳕鱼上面尝试做安装APK程序不是:用一个命令('install')和一个参数('xxx.apk')启动一个shell('busybox')。问题是没有这样的'install'命令,你需要使用'pm install'。你从哪里复制这些代码?阅读他们的文档/自述文件以了解它的实际功能。 –

+0

没有在busybox中安装命令,只是复制apk并将其放在/ data/app中,当你重新启动设备安装开始 –

2

看起来您使用两个路径,您的BusyBox的二进制文件。首先你chmod它在/system/xbin,但你从system/bin调用它。确保你使用正确的路径。和chmod 777 /data/app的搭配看起来很不错非常坏

+1

好吧,我修正的busybox –

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();