Recientemente he rooteado mi teléfono para poder instalar SL4A. Quiero ejecutar algunos comandos a través de un Python script, específicamente desactivar Google voice para todas las llamadas, hacer la llamada y luego volver a activarlo. Supongo que necesito acceso a lo que sea el binario, pero no parece haber una carpeta /bin/, así que ¿dónde están instaladas mis aplicaciones? (p.d. La búsqueda desde el navegador de mi móvil no funciona en SE, así que si esto es un duplicado, por favor, enlazadme y borraré la pregunta).
Respuesta
¿Demasiados anuncios?Las aplicaciones de Android no son binarios. Son archivos .apk, similares a los archivos .jar de Java, y a los archivos .dex u .odex cuando están en forma de bytecode. Se ejecutan en la máquina virtual Dalvik, de nuevo muy similar a una VM de Java.
Puedes lanzar una aplicación desde un shell de la siguiente manera:
am start -a android.intent.action.MAIN -n <package name>/<activity name>
Por ejemplo, Angry Birds:
am start -a android.intent.action.MAIN -n com.rovio.angrybirds/com.rovio.ka3d.app
El nombre de la actividad se encuentra en el archivo AndroidManifest.xml dentro del .apk en //manifest/application/activity/@name. En el caso de Google Voice hay bastantes actividades, y es posible que tengas que utilizar otros intents. No tengo SL4A.
También puedes desactivar aplicaciones temporalmente con esto:
pm disable <package name>
Y vuelve a activarlo:
pm enable <package name>