Android img中的/dev/socket/qemud是用来和qemu虚拟机中的/system/bin/qemud通信的,这个不需要修改,需要做的工作是将qemu虚拟机中的qemud中的gsm channel和串口连接起来,使用./emulator @wulc -radio /dev/ttyS0的方式是正确的,不能收到信号的原因可能是串口的波特率和Modem的不匹配,可以修改位于qemu_char_android.c中的函数qemu_chr_open_tty()中的波特率试试,默认是115200,希望对您有所帮助,谢谢。
解决方案 »
- 点击文本框,软键盘死活弹不出来
- android 计时器,在黑屏情况下不计时,那位大哥帮忙看看···急急急急急急········、
- 如何判断Android系统当前是否有Activity处于开启状态
- eclipse,点击文件改变文件名称或者移动文件位置
- 怎么修改系统的系统时间?就是每次刷机的时候系统的默认时间就是2011.01.01
- android4.0使用panoramagl开发出现signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)错误
- 想学安卓开发。。求指教
- 我的eclipse中的heap看不到任何信息
- Android中的Application
- 想做一个音乐app
- 有一段iphone代码如何转成android呀?
- Android平台到底能不能通过串口发送AT指令呢,急!!!
首先谢谢哥们儿的回复:
1.用原态代码编译,波特率改为跟我的modem(9600)匹配时,页面显示依旧是没信号,此时做MT call, logcat -b radio 显示的log中能看到RING上来,短信也能上来,log 如下:cs@cs-MS-7156:~/work/sdk/android-sdk_eng.csw_linux-x86/platform-tools$ ./adb logcat -b radio
D/RILD ( 32): overriding with -s /dev/socket/qemud
I/RIL ( 32): Opening socket /dev/socket/qemud
D/AT ( 32): AT> ATE0Q0V1
D/AT ( 32): AT< ATE0Q0V1
D/AT ( 32): AT< OK
D/AT ( 32): AT> ATE0Q0V1
D/AT ( 32): AT< OK
D/AT ( 32): AT> ATS0=0
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CMEE=1
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CREG=2
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CGREG=1
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CCWA=1
D/AT ( 32): AT< +CGREG: 0
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CMOD=0
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CMUT=0
D/AT ( 32): AT< +CME ERROR: 3
D/AT ( 32): AT> AT+CSSN=0,1
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+COLP=0
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CSCS="HEX"
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CUSD=1
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CGEREP=1,0
D/AT ( 32): AT< +CME ERROR: 3
D/AT ( 32): AT> AT+CMGF=0
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CFUN?
D/AT ( 32): AT< +CFUN: 1
D/AT ( 32): AT< OK
D/AT ( 32): AT> AT+CPIN?
D/AT ( 32): AT< +CPIN: READY
D/AT ( 32): AT< +CREG: 1,"040A","52E7"
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"
I/PHONE ( 145): Network Mode set to 0
I/PHONE ( 145): Cdma Subscription set to 1
I/RILJ ( 145): Connected to 'rild' socket
I/PHONE ( 145): Creating GSMPhone
D/PHONE ( 145): mDoesRilSendMultipleCallRing=true
D/PHONE ( 145): mCallRingDelay=3000
W/GSM ( 145): Can't open /system/etc/voicemail-conf.xml
W/GSM ( 145): Can't open /system/etc/spn-conf.xml
D/GSM ( 145): [DSAC DEB] registerForPsRestrictedEnabled
D/GSM ( 145): [DSAC DEB] registerForPsRestrictedDisabled
D/GSM ( 145): [GsmDataConnection-1] DataConnection constructor E
D/GSM ( 145): [GsmDataConnection-1] clearSettings
D/GSM ( 145): [GsmDataConnection-1] DataConnection constructor X
D/GSM ( 145): [GsmDataConnection-1] Made GsmDataConnection-1
D/RILJ ( 145): [0000]> RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING
D/RILJ ( 145): [0001]> GET_CURRENT_CALLS
E/GSM ( 145): Wrong network type: 0
E/GSM ( 145): Wrong network type: 0
D/GSM ( 145): Poll ServiceState done: oldSS=[1 home null null null Unknown CSS not supported 0 0RoamInd: 0DefRoamInd: 0EmergOnly: false] newSS=[1 home null null null Unknown CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] oldGprs=1 newGprs=1 oldType=unknown newType=unknown
D/GSM ( 145): [GsmDataConnection-1] DcInactiveState: msg.what=EVENT_RESET, ignore we're already reset
D/GSM ( 145): [GsmDataConnection-1] NotifyDisconnectCompleted
D/GSM ( 145): [DataConnection] Stop poll NetStat
D/GSM ( 145): [GsmDataConnection-1] clearSettings
D/GSM ( 145): [DataConnection] Stop poll NetStat
D/GSM ( 145): [DSAC DEB] trySetupData with mIsPsRestricted=false
D/GSM ( 145): [IccCard] Broadcasting intent ACTION_SIM_STATE_CHANGED NOT_READY reason null
D/RILJ ( 145): WAKE_LOCK_TIMEOUT mReqPending=0 mRequestList=2
D/RILJ ( 145): 0: [0] RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING
D/RILJ ( 145): 1: [1] GET_CURRENT_CALLS
MT call
D/AT ( 32): AT< RING
D/AT ( 32): AT< RING
D/AT ( 32): AT< RING短信
D/AT ( 32): AT< +CMTI: "SM",11
D/AT ( 32): AT< +CREG: 1,"040A","52E7"
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"
D/AT ( 32): AT< +CREG: 1,"040A","52E7"
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"
D/AT ( 32): AT< +CREG: 1,"040A","64F3"
D/AT ( 32): AT< +CREG: 1,"040A","F196"
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"
D/AT ( 32): AT< +CREG: 1,"040A","52E7"
D/AT ( 32): AT< +CREG: 1,"040A","9DE7"2. 另外做了个实验,改了下reference-ril.c 和rild.c中的代码,
把RIL_Init()中个设备号强行改为串口/dev/ttyS2(Unbuntu 上是ttyS0 ,映射到模拟器是ttyS2)
在mainLoop()中 把s_device_path 也强行改为/dev/ttyS2
把rild.c main()中的arg_overrides 也强行改为/dev/ttyS2
用 ./emulator @wulc -qemud -serial /dev/ttyS0 启动, 也是能在log中看到MT call ring,UI显示无信号。
后面添加了 -l /system/lib/libreference-ril.so -- -d /dev/ttyS2 -u /dev/ttyS2没什么作用
敢问楼主这么做的目的是什么?调试modem?还是双模?
如果你也在调类似的功能,加我msn:[email protected] 咱们一起讨论!