当前位置: 首页 > news >正文

Android12 ethernet和wifi共存

1.修改网络优先走wifi 

packages/modules/Connectivity/service/src/com/android/server/connectivity/NetworkRanker.java   @@ -44,7 +44,7 @@ import java.util.Arrays;import java.util.Collection;import java.util.List;import java.util.function.Predicate;
-
+import android.util.Log;/*** A class that knows how to find the best network matching a request out of a list of networks.*/
@@ -85,7 +85,7 @@ public class NetworkRanker {}// Transport preference order, if it comes down to that.
-    private static final int[] PREFERRED_TRANSPORTS_ORDER = { TRANSPORTETHERNET, TRANSPORTWIFI,
+    private static final int[] PREFERRED_TRANSPORTS_ORDER = { TRANSPORTWIFI,TRANSPORTETHERNET,TRANSPORTBLUETOOTH, TRANSPORTCELLULAR };// Function used to partition a list into two working areas depending on whether they

2.修改NETWORK_SCORE(这一步好像没什么用)

 
--- a/java/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -70,7 +70,9 @@ public class EthernetNetworkFactory extends NetworkFactory {private final static String TAG = EthernetNetworkFactory.class.getSimpleName();final static boolean DBG = true;-    private final static int NETWORK_SCORE = 70;
+    private final static int NETWORK_SCORE = 30;@@ -409,8 +412,10 @@ public class EthernetNetworkFactory extends NetworkFactory {sTransports.put(NetworkCapabilities.TRANSPORTWIFIAWARE,new TransportInfo(ConnectivityManager.TYPE_NONE, 1));// EthernetNetworkFactory.NETWORK_SCOREsTransports.put(NetworkCapabilities.TRANSPORT_ETHERNET,
-                    new TransportInfo(ConnectivityManager.TYPE_ETHERNET, 70));
+                    new TransportInfo(ConnectivityManager.TYPE_ETHERNET, 30));// BluetoothTetheringNetworkFactory.NETWORK_SCOREsTransports.put(NetworkCapabilities.TRANSPORT_BLUETOOTH,new TransportInfo(ConnectivityManager.TYPE_BLUETOOTH, 69));

3.修改阻止disable eth0 

packages\modules\NetworkStack\common\moduleutils\src\android\net\ip\InterfaceController.java

 
--- a/common/moduleutils/src/android/net/ip/InterfaceController.java
+++ b/common/moduleutils/src/android/net/ip/InterfaceController.java
@@ -30,7 +30,7 @@ import android.system.OsConstants;import java.net.Inet4Address;import java.net.InetAddress;-
+import android.util.Log;/*** Encapsulates the multiple IP configuration operations performed on an interface.*
@@ -102,6 +102,11 @@ public class InterfaceController {private boolean setEnableIPv6(boolean enabled) {try {
+                       if(mIfName.equals("eth0")&& enabled == false)
+                       {
+                               Log.e("setEnableIPv6","eth0 skip disable +++");
+                               return false;
+                       }mNetd.interfaceSetEnableIPv6(mIfName, enabled);} catch (RemoteException | ServiceSpecificException e) {logError("%s IPv6 failed: %s", (enabled ? "enabling" : "disabling"), e);
@@ -197,6 +202,11 @@ public class InterfaceController {*/public boolean clearAllAddresses() {try {
+                       if(mIfName.equals("eth0"))
+                       {
+                               Log.e("clearAllAddresses","eth0 skip clear +++");
+                               return false;
+                       }mNetd.interfaceClearAddrs(mIfName);} catch (Exception e) {logError("Failed to clear addresses: %s", e);

 4.开机后在rc中自动添加一下路由表配置

路由表设置
ip ru add from all lookup main pref 9000

http://www.lryc.cn/news/156928.html

相关文章:

  • 记录使用layui弹窗实现签名、签字
  • 【AIGC系列】Stable Diffusion 小白快速入门课程大纲
  • 在kali环境下安装Beef-Xss靶场搭建
  • 【Apollo】自动驾驶技术的介绍
  • HTML emoji整理 表情符号
  • 【蒸汽冷凝器型号和PI控制】具有PID控制的蒸汽冷凝器的动力学模型(MatlabSimulink)
  • mall :hutool项目源码解析
  • 【网络编程】TCP传输控制协议(Transmission Control Protocol)
  • 云原生Kubernetes:kubectl管理命令
  • 前端面试的话术集锦第 5 篇:高频考点( 类型转换 深浅拷贝 模块化机制等)
  • 微服务·架构组件之网关
  • Google 开源库Guava详解
  • ISP——3A算法
  • Go语言入门指南
  • 【Hive SQL 每日一题】统计用户连续下单的日期区间
  • RabbitMQ 镜像集群部署
  • SpringMVC框架学习
  • 多通道振弦数据记录仪应用桥梁安全监测的解决方案
  • RDMA 相关bug记录
  • TDengine函数大全-时序库特有函数
  • vue-cli3项目本地启用https,并用mkcert生成证书
  • 包装类笔记
  • TC和TG油封有什么区别?
  • 大数据之MapReduce
  • 《机器人学一(Robotics(1))》_台大林沛群 第 5 周【机械手臂 轨迹规划】 Quiz 5
  • 嵌入式面试/笔试C相关总结
  • 支付宝使用OceanBase的历史库实践分享
  • accelerate 分布式技巧(一)
  • 密码找回安全
  • Spring Boot + Vue的网上商城之商品管理