我们都知道android模拟器是有一个默认的电话号码的和 移动国家码(MCC),以及移动网络码(MNC).那么如何修改这些默认的信息呢?
首先,模拟器源码下载以及编译请见此 http://blog.csdn.net/sphinner/article/details/79505559
这两处修改的代码在 AOSP/external/qemu/android/android-emu/android/telephony/ 文件下面
MCC, MNC 为modem.c 文件中
#define OPERATOR_HOME_INDEX 0
#define OPERATOR_HOME_MCC 460
#define OPERATOR_HOME_MNC 01
#define OPERATOR_HOME_NAME "联通"
#define OPERATOR_HOME_MCCMNC STRINGIFY(OPERATOR_HOME_MCC) \
STRINGIFY(OPERATOR_HOME_MNC)
#define OPERATOR_ROAMING_INDEX 1
#define OPERATOR_ROAMING_MCC 460
#define OPERATOR_ROAMING_MNC 00
#define OPERATOR_ROAMING_NAME "移动"
#define OPERATOR_ROAMING_MCCMNC STRINGIFY(OPERATOR_ROAMING_MCC) \
STRINGIFY(OPERATOR_ROAMING_MNC)
默认的电话号码修改在sim_card.c中 最后一段
if (!strcmp("+CRSM=178,28480,1,4,32", cmd)) {
snprintf( sim->out_buff, sizeof(sim->out_buff), "+CRSM: 144,0,ffffffffffffffffffffffffffffffffffff0781515525%d1%d%df%dffffffffffff", (sim->port / 1000) % 10, (sim->port / 10) % 10, (sim->port / 100) % 10, sim->port % 10);
return sim->out_buff;
}
for (nn = 0; answers[nn].cmd != NULL; nn++) {
if ( !strcmp( answers[nn].cmd, cmd ) ) {
return answers[nn].answer;
}
}
ffffffffffffffffffffffffffffffffffff0781515525%d1%d%df%dffffffffffff"
该行代码即为默认的电话号码. 不过 1515525 进行位置互换 后面4位端口号.
另外各位如果有兴趣懂得AT命令 可以自行修改 asimcard_io 方法中的信息.
注意: 该代码 是基于 模拟器 emu-2.5-release 版本的. 主线版本 代码与此有区别.