What's the diff between these 2 code of textenv?

Hi All.
I’m developing an egl program on android 2.2.
I just found the following 2 sections of code behaves differently.

// option 1
m_gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL11.GL_COMBINE);
m_gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL11.GL_COMBINE_RGB, GL10.GL_ADD);
m_gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL11.GL_COMBINE_ALPHA, GL10.GL_ADD);

// option 2
m_gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_ADD);

my expected result is:
(R G B A)comined = (R G B A)_glcolor + (R G B A)_texture.

option 1 works as I expected on an moto android 2.2 phone.
but not on android emulator (2.2 avd)
option 2 works on emulator as expected but not on that moto phone.

Could anyone tell me why different?
It’s depend on opengl implementation?
Thanks in advance.