I'm trying to port Android
7.0 into a customized HW platform and have zygote
running background. But when I tried to start an app by using am start <>
, it gives error "Can't connect to activity manager; is system running?". After that I did service list
and found out that the activity:[android.app.IActivityManager]
is not running (I don't know why). I'm actually kinda new to AOSP, but how could I start the AM
service by typing a single shell command?
I have attached the error message and logcat prints.
From the source code the ActivityManagerNative
tries to getDefault()
of ActivityManagerService
, which is not available, so how to start ActivityManagerService
or which process actually trigger it?
AndroidException: Can't connect to activity manager; is the system running?
means ActivityManagerService
is not running as well as other core system services as reflected in the list of running services.
The cause of the problem is SystemServer
. Started by zygote
the system_server
process acts like a host process for most of the system services to run in. It tries to start the services and dies in case of failure.
How to start
ActivityManagerService
or which process actually trigger it?
You can't do it manually. SystemServer
is responsible for starting the service.
So maybe I need to disable both DisplayManagerS and Battery Service?
Despite the fact that you can effect the startup behavior of SystemServer
by modifying the ro.factorytest
and ro.headless
system properties, for disabling these particular services you should edit SystemServer.java
manually by commenting out the corresponding lines of code.