Android RIL 调试分析全记录

本文详细记录了Android RIL(Radio Interface Layer)的调试过程,包括从零开始调试RIL以实现拨号的成功步骤。内容涵盖源码、脚本文件、所需工具、设备文件、常用AT命令、RIL启动过程分析以及遇到的问题和解决方案。重点讨论了网络注册状态、pppd拨号流程,并提供了一些调试技巧和常见问题分析。
摘要由CSDN通过智能技术生成

 以前没有调试过RIL的东西, 从零开始, 花了两周时间,终于拨号成功,这里发表出来与大家共享经验,少走弯路.

    上一篇文章是一个成功拨号的Android RIL log, 这里主要结合上一篇log进行分析, 分享一些注意事项, 由于时间有限,尽量言简意概, 主要要自己尝试去实践才会有所收获。

(本文所指的log行号,是指上一篇文章所标记的行号)

1. 所要了解的一些源码及脚本文件:

android/hardware/ril/reference_ril/   (reference_ril.c)

android/hardware/ril/rild

android/extern/ppp/pppd

android/extern/ppp/chat

android/data/etc/apn-conf-sdk.xml

android/system/core/rootdir/etc/ppp/init.gprs-pppd

android/system/core/rootdir/etc/ppp/peers/cmnet

android/system/core/rootdir/etc/ppp/chat/cmtc-isp

android/vendor/xxxxx/xxxx/system.prop

reference_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/ttyACM2

921600

nocrtscts

nocdtrcts

local

usepeerdns

defaultroute

noipdefault

ipcp-accept-local

ipcp-accept-remote

user cmnet

password cmnet

lock

nodetach

connect "/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'

""    AT

OK    AT+CGDCONT=1,"IP","CMNET"

OK    AT+CGEQREQ=1,2,128,384,0,0,0,0,"0E0","0E0",,0,0

OK    AT

OK    AT

OK    ATS0=0

OK    AT

OK    AT

OK    ATDT*98*1#

CONNECT

system.prop

rild.libpath=/system/lib/libreference-ril.so

rild.libargs=-d /dev/ttyACM0

2. 所要具备的调试工具:

microcom:  可在linux下通过发送AT命令调试硬件模块,在较新版本busybox中可以找到此模块。如命令:

#./microcom -t 12000 /dev/ttyACM0

注: -t 12000 为延迟退出ms时间,不宜太长时间,时间太长,会感觉 像死机,时间太短,经常会命令没输完就退出了。

ppp(pppd, chat):可手拨号连接GPRS,如命令:

# pppd call cmnet &

3. 设备文件

1)/dev/ttyACM0, /dev/ttyACM1, /dev/ttyACM2

    这是usb transceiver 模拟串口的设备文件,如果是直接串口连接,可能是/dev/ttyS0, /dev/mux0等。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值