Android平台开发-3G function porting-3G功能移植

一、pppd相关文件

Android ril相关的代码和脚本主要有:
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

1、reference_ril.c: RIL的一些AT命令操作,通过一些onRequest接口操作,对不同的硬件,需作一
些修改调整。

2、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>

3、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 $* //调用脚本/system/etc/peers/cmnet

/system/xbin/pppd connect 'chat -v "" "AT" "ATDT#777 CONNECT"' user \
CARD password CARD /dev/ttyUSB2 115200 nodetach crtscts \
debug usepeerdns defaultroute
//直接用参数,其中/dev/USB2是控制端口。
PPPD_EXIT=$?
PPPD_PID=$!
/system/bin/log -t pppd "pppd exited with $PPPD_EXIT"
/system/bin/setprop "net.gprs.ppp-exit" "$PPPD_EXIT"
4、cmnet:pppd拨号option脚本:
/dev/ttyUSB3
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"
5、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
如果要连联通的WCDMA,就用
OK AT+CGDCONT=1,"IP","3GNET"
OK ATDT*99# //拨号命令

6、system.prop:
rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyS0
wifi.interface=eth1
二、RIL配置支持
在Android中RIL是通过pppd实现的,要启动pppd,需要在init.rc中添加:
service pppd_gprs /system/etc/init.gprs-pppd
user root
group radio cache inet misc
disabled
oneshot
service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so --
-d /dev/ttyUSB3 -u /dev/ttyUSB0
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio

Modem插入USB口模拟串口,驱动会检测到两个serial端口的,一个是控制的,一个是数据的。
这里/dev/ttyUSB3表示控制端口。
三、RIL流程分析
一开机启动pppd后,如果检测到Modem(通过/dev/ttyUSB*设备来判断),pppd_gprs daemon就调用
init.gprs-pppd连接,
正常通信后,会显示连接到3G网络标志。
然后设置APN,保存好之后重启,就会自动连接到internet。
四、手动测试3G modem

1、加载驱动
如果驱动加载成功,会出现/dev/ttyUSB*设备的。

2、进入/etc/ppp/peers目录,执行
pppd call cmnet &

这里cmnet是一个包含拨号命令的文件。
3、设置DNS
把由pppd自动产生的/etc/ppp/resolv.conf复制到/etc/resolv.conf。

4、前面都成功的话,这是应该能ping通网络的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值