android 手机通过mode上网流程

一 usb 识别和 mode 转换
1: 识别usb-otg
     根据 pid vid 识别设备
2: switcmode
     通过pid 从 android 资源目录下assets 的 config 文件包找到对应的文件获取里面的信息,通过串口通信写入设备,写入成功后重新扫描获取设备;
Opening port type SERIAL


二 AT 指令拨号
 
     AT指令通信是通过usb串口通信实现的;不能使用脚本

/dev/ttyUSB0
115200
nocrtscts
modem
debug
nodetach
usepeerdns
defaultroute
user "3gnet"
#connect '/usr/sbin/chat -s -v -t 15  "" "ABORT BUSY" "" "ABORT ERROR" "" "ABORT NO CARRIER" "" AT "" "OK AT+CGDCONT=1,IP,3GNET" "" "OK ATDT*99#" "" CONNECT "" '

原因:插入3gmoden 手机没有识别出 ttyUSB ( 188)设备,通过命令查看cat /proc/devices 不支持ttyUSB
脚本说明:
   PPP连接关系密切的有两个脚本是chat和options两个脚本。其中,chat脚本是用来进行AT呼叫和控制的脚本,而options脚本就影响PPP连接的 
 nsitd_config:为 options , nsitd_config_chat: 为chat;
执行脚本:pppd nsitd_configs

1:  usb modeswitch 转换完成后发送的命令,确保SIM卡是否正常;
 
          >
          ATE0
         <
          ATE0
          OK
        >
        AT+CGSN
        <
      867142015776539

      OK
     --> device S/N: 867142015776539
      >
     AT+CPIN?
     <
     +CPIN: READY

     OK
 AT+CPIN?
命令解释:检查登入移动设备(ME)的密码.
命令格式:AT+CPIN?
命令返回:+CPIN:  状态
           其中状态值可能是:
READY(表示 SIM卡正常,同时不需要登入密码),
SIM PIN (表示 ME等待提供 SIM卡的 PIN 码)
SIM PUK (表示 ME等待提供 SIM卡的  PUK码)
SIM PIN2 (表示 ME等待提供 SIM 卡的 PIN2 码)
SIM PUK2 (表示 ME等待提供 SIM卡的  PUK2 码)
PH-SIM PIN (表示设备被锁 SIM卡,ME等待提供从手机到 SIM卡的密码)
PH-NET PIN (表示设备被锁网络,ME等待提供提供网络个性化密码)
ERROR (表示 SIM卡失败或没有插入 SIM卡)
测试结果:AT+CPIN?
          +CPIN: READY
           表示SIM卡正常,同时不需要登入密码。
>
AT+CIMI
<
460011025049611

OK
 --> SIM S/N: 460011025049611

SIM is ready to use

2 : SIM卡准备好,点击 connect 进行连接,发送AT 指令

>
AT+CPIN?
<
+CPIN: READY

OK
>
AT+CFUN?
<
+CFUN: 1

OK
( AT+CFUN= 0,
modem不可以打电话,发短信,但是可以有其他操作,比如读 sim卡之类的。
AT+CFUN= 1,
modem可以打电话,发短信...所以叫做full functionality)

>
AT+CGDCONT=1,"IP","3gnet"
<
OK
>
ATD*99# (填写内容参考下图 “三大运营商拨号设置” )
 <
CONNECT


OK
Dialling complete

AT拨号完成


GPRS模块 首先通过AT命令拨号如中国移动的“*99***1#”,如果   CONNECT   OK的话,那么就说明物理层已经连通了。 
那么接着要做的工作就是连通数据链路层,那么就是PPP协议了。PPP协议包括 LCP(链路控制协议),NCP(网路控制协议),也就是说物理层连通之后,首先就要通过LCP协议来配置串口线路的各项数据格式,和双方的传送数据的约定(详见RFC),之后就是NCP协议了,NCP   主要是获得IP地址,以及以后在PPP封装中的IP报文的一些具体约定。

对于会话管理层消息流程来说,PDP上下文激活和ATD*99#是完全一样地效果。但是ATD*99#除了激活PDP上下文,MODEM内部一些状态也会发生改变,不会再保持AT命令状态,转而进入分组数据收发模式,这样才可以进行PPP协商。



三 PPP 交互 

参考  ppp 协议,ppp协议为用于建立网络链路工作在 数据链路层

Now start PPP negotiation ...
>
ff03c021010000140206000000000506f7adb02907020802a565
<
ff03c021010000190206000000000305c2230505060106aaaa0702080218d8
>
ff03c021030000080304c023f7d7
<
ff03c021020000140206000000000506f7adb029070208024e0c
<
ff03c021010100180206000000000304c02305060106aaaa070208020aed
>
ff03c021020100180206000000000304c02305060106aaaa07020802c600
>
c023010100100564756d6d790564756d6d79f4d3
<
ff03c0210b0200080106aaaad2c0
<
c0230201000500fd30
>
802101000016030600000000810600000000830600000000627c
<
80210300001c81060a0b0c0d83060a0b0c0e82060a0b0c0d84060a0b0c0e0951
<
80210100000467c3
>
802102000004aae6
<
80210300001603060ad2fcd781067b7b7b7b83067b7b7b7c851a
>
80210101001603060ad2fcd781067b7b7b7b83067b7b7b7c4277
<
80210201001603060ad2fcd781067b7b7b7b83067b7b7b7cb484

Local IP: 10.210.252.215/32
 Peer IP: 10.64.64.64
    DNS1: 123.123.123.123
    DNS2: 123.123.123.124
Send initial IP packet ...
First IP packet received - we are online
PPP negotiation finished

四  创建VPN

修改route 表,并启动自定义的 VpnServicePpp设置vpn,开始上网

下面为修改route表 
>
pwd

setprop ctl.start ril-daemon
( patch 掉系统的一些服务,例如 installd, rild 之类, 杀掉原来的进程,然后重新启动新进程。系统的服务最好用 setprop 来停止和启动
setprop ctl.stop ril-daemon
setprop ctl.start ril-daemon  
patch 掉原来的服务了,整个过程不需要重新启动手机
)

export LD_LIBRARY_PATH=/vendor/lib:/system/lib

export CLASSPATH=12d1/jc.jar

su -cn r:u:system_app:s0 -c "./start ./ com.android.commands.jc.Jc connected 19_460011025049611 TypeError: 10.37.24.92 10.64.64.64 123.123.123.123 123.123.123.124 </dev/null" & 

ip route add default dev tun0 2>/dev/null

ip route add default dev tun0 2>/dev/null

ip route add default dev tun0 2>/dev/null

ip route add default dev tun0 2>/dev/null

ip route add default dev tun0 2>/dev/null

exit 







































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值