starting zygote from command line (x86)

by Zia » Thu, 05 Feb 2009 01:41:13 GMT

Sponsored Links
 I got myself in a console now after compiling installer img with
zygote service commented out in the init.rc file. Instead I placed /
system/bin/sh service in the init.rc .

After reboot, I got the prompt. On the command line when I attempt to
start zygote (to enter Android UI),
app_process -Xzygote /system/bin --zygote

first I got ANDROID_SOCKET_zygote environment variable error. I fixed
that, and now I am getting error when binding to socket 666. Seems
like i'm missing /dev/socket/zygote. The problem is, I dont know how
to create socket on this command shell now. Another thing could be the
missing socket binder service.

Any ideas or suggestions to recover from this?

Ultimately, I'm planning to enter a console, start zygote to enter
Android UI. On the console I plan to run dropbear or telnetd to
remotely connect to the box.




starting zygote from command line (x86)

by dingerjun » Thu, 05 Feb 2009 02:31:43 GMT

 There is another method to start the zygote from command line.

You could add the lines after the service zygote.
on property:zygote.enable=1
    start zygote
on property:zygote.enable=0
    stop zygote

and add a line "setprop zygote.enable 0" in front of file /init.rc

----- Original Message ----- 
From: "Zia" <>
To: "android-porting" <>
Sent: Thursday, February 05, 2009 9:40 AM
Subject: [android-porting] starting zygote from command line (x86)



Sponsored Links

starting zygote from command line (x86)

by dingerjun » Thu, 05 Feb 2009 02:33:42 GMT

 When you want to start the zygote, you could input setprop zygote.enable 1 in 
command line
----- Original Message ----- 
From: "dingerjun" <>
To: <>
Sent: Thursday, February 05, 2009 10:31 AM
Subject: [android-porting] Re: starting zygote from command line (x86)



starting zygote from command line (x86)

by Weihua Wu » Thu, 05 Feb 2009 03:07:30 GMT

 The init.rc is not a shell script in normal linux. You have to register the
service in init.rc during Android init. The following line in init.rc is to
create the socket. The socket is created when the init.rc is parsed by
android init.
    socket zygote stream 666
Android use that way to create socket for security concern probably.

You could learn more about init.rc from system/core/init/readme.txt

Hope it's helpful.
Weihua(Jackie) Wu



starting zygote from command line (x86)

by Zia » Fri, 06 Feb 2009 20:32:35 GMT

 Thanks for your replies. However, so far not much luck here. I got the
zygote socket created in /dev/socket and the environment variable
ANDROID_SOCKET_zygote set to 666.

Now i'm getting

java.lang.RuntimeException: Error binding to local socket '666'

the command line i'm using is
#app_process -Xzygote /system/bin --zygote

and the init.rc is like this

setprop zygote.enable 0

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --
       socket zygote stream 666
           on property:zygote.enable=1
              start zygote
           on property:zygote.enable=0
              start zygote

typing setprop zygote.enable 1 on the command line doesn't do anything
either. What am I missing here now?





starting zygote from command line (x86)

by Weihua Wu » Mon, 09 Feb 2009 03:38:01 GMT

 hat dingerjun wrote is :
on property:zygote.enable=1
start zygote
on property:zygote.enable=0
stop zygote

But yours are
on property:zygote.enable=1
start zygote
on property:zygote.enable=0
start zygote

So I think in your case, the zygote has been started when you run command.
You can check with ps first.
If the zygote is started through command line, other lines after that in
init.rc should be also changed since some depend on the zygote, which is the
most important to start Android.

Why do you need to start that on command line? Did you start zygote
successfully with normal way instead of command line?

Jackie Wu
On Sat, Feb 7, 2009 at 4:32 AM, Zia <> wrote:



starting zygote from command line (x86)

by Zia » Tue, 10 Feb 2009 01:07:55 GMT

 h dang it. thanks for spotting that. I will try the fix tonight and
post the results.

The reason I would like to enter commandline mode before UI:
1) to understand how everything stacks up
2) run any sort of SSH/Telnet server and access the box remotely.


On Feb 8, 7:37pm, Weihua Wu <> wrote:


starting zygote from command line (x86)

by jerryfan2000 » Fri, 10 Apr 2009 14:01:07 GMT

 f set service option to disabled, how do I manually start the service
by command line?

On 20 97 Zia <> wrote:


Other Threads

1. TextView looks great, but drawText() looks crummy !

If you look closely at a TextView, you will see that it is clean and
clear because it uses half-tone shading to avoid that pixelated look.
But in my custom view I am calling drawText, and the results are not
as good.  The stuff drawn with drawText looks a bit ragged because it
does not use any half-tone shading.  Every pixel is either completely
black or completely white.  How can I get Canvas.drawText() to look as
good as the text in a TextView?


2. SOAP response : URL data causes error

import java.util.ArrayList;
import java.util.List;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.os.Bundle;
import android.widget.TextView;

public class Cylexwebservice extends Activity {

        private static final String SOAP_ACTION = "
        private static final String METHOD_NAME = "FetchCompanyData";
        private static final String NAMESPACE = "";
        private static final String URL = "";

        TextView tv;
    public void onCreate(Bundle savedInstanceState) {

    tv = (TextView)findViewById(;

    SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
    Request.addProperty("country","United States");

    SoapSerializationEnvelope SoapEnv = new
    SoapEnv.dotNet = true;

    HttpTransportSE aht = new HttpTransportSE(URL);

    {, SoapEnv);

        SoapObject resultString = (SoapObject)SoapEnv.getResponse();
        SoapObject details =
        List<CharSequence> list = new

        int detailPropertycount = details.getPropertyCount();
        for (int i = 0; i < detailPropertycount ; i++) {
            Object property = details.getProperty(i);

            if (property instanceof SoapObject) {
                SoapObject compdetail = (SoapObject) property;
                String table =

                int compPropCount = compdetail.getPropertyCount();

                for(int j=0;j<compPropCount;j++)
                        Object CompProperties = compdetail.getProperty(j);

                        if(CompProperties instanceof SoapObject)
                                SoapObject CompInfo = (SoapObject) 
                                String information =
                                String teleinformation =
                                String urlinformation =

                                list.add("\nResult:"+j+"\nCompany Name:" +
                                                + "\nTelephone:" + 
                                                + "\nAddress:" + 

    catch(Exception err)
        tv.setText("Some error occured!" + err.getMessage());


3. Layout sizes not determined when I need them

4. ListView Divider not showing when color changed

5. Google Maps "heat map" type overlay?

6. Accelerometer sensor keep on generating events

7. Setting proxy di galaxy ace