I think the best way to ask this question is via example, so I will use a specific app.
The WebKey app for Android has a option to start on boot that I prefer to keep disabled. But I would like to manually start this program via remote SSH console.
My attemp is this command (that, as can be seen, fails):
root@S3:/ # am start -a android.intent.action.MAIN -n com.webkey/.BootStarter
am start -a android.intent.action.MAIN -n com.webkey/.BootStarter
Starting: Intent { act=android.intent.action.MAIN cmp=com.webkey/.BootStarter }
Error type 3
Error: Activity class {com.webkey/com.webkey.BootStarter} does not exist.
It seems I am not referring the correct class. This is how I found that class:
root@S3:/ # dumpsys package resolvers receiver | awk '/android.intent.action.BOOT_COMPLETED/{p=1;next}/:/{p=0}p {print $2}' | grep webkey
com.webkey/.BootStarter
com.webkey/androidx.work.impl.background.systemalarm.RescheduleReceiver
Actually, I don't even know how to obtain the proper classes to start a program knowing its qualified app name.
I don't know if the problem is in the ADB configuration:
root@S3:/ # adb shell
adb shell
* daemon not running. starting it now on port 5038 *
* daemon started successfully *
error: device not found
Could someone give me any ideas to manually start the correct program, please?
Further notes:
- All shell tests have been performed as root (
su
). - The device is rooted. Answer for a non-rooted device are welcome too.
NEW TEST:
Same example with TeamViewer Host:
root@S3:/ # dumpsys package resolvers receiver | awk '/android.intent.action.BOOT_COMPLETED/{p=1;next}/:/{p=0}p {print $2}' | grep team -i
com.teamviewer.host.market/com.teamviewer.host.receiver.BootReceiver
But it does not start, neither:
root@S3:/ # am start -n com.teamviewer.host.market/com.teamviewer.host.receiver.BootReceiver
Starting: Intent { cmp=com.teamviewer.host.market/com.teamviewer.host.receiver.BootReceiver }
Error type 3
Error: Activity class {com.teamviewer.host.market/com.teamviewer.host.receiver.BootReceiver} does not exist.
The BootStarter is an broadcast receiver. So the "am start" command is not correct. You should send broadcast.
I do not know your real expectations but we have documentation about it how you can control the Webkey. Please check this site: https://github.com/webkeydev/webkey-headless-control
Anyway if you have any question contact me. I am lead developer at Webkey.