大伙我又回分享开发心得了,今天是对wifi与以太网共存在系统上的调试。
网上有很多案例,我这边也是根据网上某些文章以及现有板卡的情况进行调试得出来的结果,废话不多说。
1.系统板卡情况:公司提供的已经弄好的板卡,已经wlan0与eth0两者存在;
2.原生系统 KR3399 优化步骤:
一:代码修改
修改这里的位置代码,防止已连上的网卡被关闭
- private static final boolean ENABLE_NETWORK_COEXIST = true;//新增
-
-
- private void teardownUnneededNetwork(NetworkAgentInfo nai) {
- if (nai.numRequestNetworkRequests() != 0) {
- for (int i = 0; i < nai.numNetworkRequests(); i++) {
- NetworkRequest nr = nai.requestAt(i);
- // Ignore listening requests.
- if (nr.isListen()) continue;
- loge("Dead network still had at least " + nr);
- break;
- }
- }
- //nai.asyncChannel.disconnect(); 删除
- //新增
- if(!ENABLE_NETWORK_COEXIST){
- nai.asyncChannel.disconnect();
- }
- }
- private final static int NETWORK_SCORE = 30;//将 70 降低到 30
-
- private static final SparseArray
sTransports = new SparseArray(); - static {
- // LowpanInterfaceTracker.NETWORK_SCORE
- sTransports.put(NetworkCapabilities.TRANSPORT_LOWPAN,
- new TransportInfo(ConnectivityManager.TYPE_NONE, 30));
- // WifiAwareDataPathStateManager.NETWORK_FACTORY_SCORE_AVAIL
- sTransports.put(NetworkCapabilities.TRANSPORT_WIFI_AWARE,
- new TransportInfo(ConnectivityManager.TYPE_NONE, 1));
- // EthernetNetworkFactory.NETWORK_SCORE
- sTransports.put(NetworkCapabilities.TRANSPORT_ETHERNET,
- new TransportInfo(ConnectivityManager.TYPE_ETHERNET, 30));//将 70 降低到 30
- // BluetoothTetheringNetworkFactory.NETWORK_SCORE
- sTransports.put(NetworkCapabilities.TRANSPORT_BLUETOOTH,
- new TransportInfo(ConnectivityManager.TYPE_BLUETOOTH, 69));
- // WifiNetworkFactory.SCORE_FILTER / NetworkAgent.WIFI_BASE_SCORE
- sTransports.put(NetworkCapabilities.TRANSPORT_WIFI,
- new TransportInfo(ConnectivityManager.TYPE_WIFI, 60));
- // TelephonyNetworkFactory.TELEPHONY_NETWORK_SCORE
- sTransports.put(NetworkCapabilities.TRANSPORT_CELLULAR,
- new TransportInfo(ConnectivityManager.TYPE_MOBILE, 50));
- }
二:新增脚本
PRODUCT_COPY_FILES += $(CUR_PATH)/wifi/xxx.sh:$(TARGET_COPY_OUT_VENDOR)/bin/xxx.sh - type xxx, domain;
- type xxx_exec, exec_type, vendor_file_type, file_type;
-
- init_daemon_domain(xxx)
/vendor/bin/xxx\.sh u:object_r:xxx_exec:s0