android网络模块

前言

在某些情况下,android测试机是需要隔绝外部网络环境,但是有需要可以连接内网,因此近日将研究下了android如何通过usb共享上网以及如何去除wifi、蓝牙、数据等功能。

各个通信模块

wifi模块

HAL层
/frameworks/opt/net/wifi/service/jni/com_android_server_wifi_nan_WifiNanNative.cpp
驱动层
/frameworks/opt/net/wifi/service/jni/com_android_server_wifi_nan_WifiNanNative.cpp

蓝牙模块

HAL层
/system/bt/btcore/src/hal_util.cc
驱动层
/kernel/lge/hammerhead/drivers/bluetooth/

NFC模块

/system/nfc/halimpl/bcm2079x/nfc_nci.c

伪造网络连接状态

/frameworks/base/core/java/android/net/ConnectivityManager.java

ublic NetworkInfo getActiveNetworkInfo() {
    NetworkInfo result = null;
    try { 
        result = mService.getActiveNetworkInfo();
    } catch (RemoteException e) {
        throw e.rethrowFromSystemServer();
    }
    //~~~ Forge result 
    if(result ==null){
        result = new NetworkInfo(1,0,"WIFI","");
        result.setExtraInfo("Test");
        result.setIsAvailable(true);
    }
    //~~~ 
    return result;
}

手机adb shell命令实现配置

1、USBTether开启USB网络共享

service call connectivity 33 i32 1

调用connectivity服务的int setUsbTethering(boolean enable)

  • 33表示在文件IConnectivityManager.aidl中是第33个api函数;
  • i32表示int32
  • 1表示true;

在android不同版本下命令如下,8.0后该函数参数个数改变,具体还需分析源码:

 service call connectivity 32 i32 1 on Ice Cream Sandwich (4.0)
 service call connectivity 33 i32 1 on Jelly Bean (4.1 to 4.3)
 service call connectivity 34 i32 1 on KitKat (4.4)
 service call connectivity 30 i32 1 on Lollipop (5.0)
 service call connectivity 31 i32 1 on Lollipop (5.1)
 service call connectivity 30 i32 1 on Marshmallow (6.0), untested
 service call connectivity 41 i32 1 on Samsung Marshmallow (6.0)
 service call connectivity 33 i32 1 on Nougat (7.0)
 service call connectivity 39 i32 1 on Samsung Nougat (7.0)

2、配置ip

ifconfig rndis0 192.168.137.101 netmask 255.255.255.0 up

3、创建新接口

ndc network create 1

4、修改接口

先把rndis0从老接口移除,不确定是否一定99,可以通过下个命令的日志来看

ndc network interface remove 99 rndis0

5、配置路由

创建路由表,网关根据自己实际设置

ndc network route add 1 rndis0 0.0.0.0/0 192.168.137.1

6、指定DNS

ndc resolver setnetdns 1 localdomain 192.168.102.81 192.168.102.82

7、指定缺省的网络接口

ndc network default set 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章