Welcome 微信登录

首页 / 操作系统 / Linux / Android RIL 调试分析全记录

以前没有调试过RIL的东西, 从零开始, 花了两周时间,终于拨号成功,这里发表出来与大家共享经验,少走弯路.上一篇文章是一个成功拨号的Android RIL log, 这里主要结合上一篇log进行分析, 分享一些注意事项, 由于时间有限,尽量言简意概, 主要要自己尝试去实践才会有所收获。(本文所指的log行号,是指上一篇文章所标记的行号)1. 所要了解的一些源码及脚本文件:Android/hardware/ril/reference_ril/   (reference_ril.c)android/hardware/ril/rildandroid/extern/ppp/pppdandroid/extern/ppp/chatandroid/data/etc/apn-conf-sdk.xmlandroid/system/core/rootdir/etc/ppp/init.gprs-pppdandroid/system/core/rootdir/etc/ppp/peers/cmnetandroid/system/core/rootdir/etc/ppp/chat/cmtc-ispandroid/vendor/xxxxx/xxxx/system.propreference_ril.c: RIL的一些AT命令操作,通过一些onRequest接口操作,对不同的硬件,需作一些修改调整。apn-conf-sdk.xml: 以下是一个例子,有些不支持的APN,需要自己加上去,否则在log 中会出现类似:No APN found for carrier: 46xxx, 的错误。一般移动的TD USIM是46007, 有些是46000.<apns version="6">    <apn carrier="Android"        mcc="310"        mnc="995"        apn="internet"        user="*"        server="*"        password="*"        mmsc="null"    />    <apn carrier="TelKila"        mcc="310"        mnc="260"        apn="internet"        user="*"        server="*"        password="*"        mmsc="null"    />    <apn carrier="CMCC"        mcc="460"        mnc="00"        apn="cmnet"        user="*"        server="*"        password="*"        mmsc="null"    />        <apn carrier="CHINA MOBILE"                mcc="460"                mnc="07"                apn="cmnet"                user="*"                server="*"                password="*"                mmsc="null"        /></apns>init.gprs-pppd: 调用pppd GPRS拨号的初始化脚本。PPPD_PID=/system/bin/setprop "net.gprs.ppp-exit" ""/system/bin/log -t pppd "Starting pppd"/system/xbin/pppd call cmnet $*PPPD_EXIT=$?PPPD_PID=$!/system/bin/log -t pppd "pppd exited with $PPPD_EXIT"/system/bin/setprop "net.gprs.ppp-exit" "$PPPD_EXIT"cmnet:pppd拨号option脚本:/dev/ttyACM2921600nocrtsctsnocdtrctslocalusepeerdnsdefaultroutenoipdefaultipcp-accept-localipcp-accept-remoteuser cmnetpassword cmnetlocknodetachconnect "/system/xbin/chat -v -t 50 -f /system/etc/ppp/chat/cmtc-isp"cmtc-isp:ABORT "BUSY"ABORT "NO CARRIER"ABORT "ERROR"ABORT "+CME ERROR: 100"""    ATOK    AT+CGDCONT=1,"IP","CMNET"OK    AT+CGEQREQ=1,2,128,384,0,0,0,0,"0E0","0E0",,0,0OK    ATOK    ATOK    ATS0=0OK    ATOK    ATOK    ATDT*98*1#CONNECTsystem.proprild.libpath=/system/lib/libreference-ril.sorild.libargs=-d /dev/ttyACM0