2012-09-26 32 views
8

¿puedo instalar apk en el fondo usando busybox en el dispositivo rooteado ???instalar apk en el fondo usando busybox

veo algo así, pero no funciona

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

Respuesta

1

Si ejecuta su -c pm install myapp.apk en un shell raíz, debe poder instalarlo en segundo plano (observe la parte 'pm'). Esto no tiene nada que ver con busybox, puedes usar cualquier shell y ciertamente no necesitas cambiar el permiso de /data/app.

+0

gracias u por su respuesta, pero quiero instalar apk programación no desde la cáscara –

+1

Eso es exactamente lo que su bacalao anterior está tratando de hacer: inicia un shell ('busybox') con un comando (' install') y un parámetro ('xxx.apk'). El problema es que no existe tal comando 'install', necesitas usar' pm install'. ¿De dónde copió este código? Lea sus documentos/léame para comprender lo que realmente hace. –

+0

no hay un comando de instalación en busybox que solo copie el apk y lo coloque en/data/app solamente y cuando reinicie el dispositivo instalando start –

2

Parece que utilice dos caminos para su binario busybox. Primero, chmod en /system/xbin, pero luego lo invoca desde system/bin. Asegúrese de usar la ruta correcta. Y chmod 777 /data/app parece MUY MALO.

+1

Ok he corregido el camino de busybox –

3

sin utilizar 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(); 
Cuestiones relacionadas