Android S 多网络共存&网络优先级调整补丁说明
Author:[email protected]
1、补丁概要:由于不同客户对网络共存和优先级这方面的需求不同,但以往的patch并未统一起来,本patch提供了一种适用面较多的场景下满足该需求的方法。
2、适用场景:最多适用于Data + 单WiFi + 以太网加其他一个网络(默认是双以太网),再新增其他网络需求请提redmine。
3、设计目的:
a、4G、WiFi和双以太网均能共存;
b、客户只需要通过调整补丁中的系统属性以调整网络初始分值来调整网络优先级。
4、补丁说明:
a、修改Android S中网络评分机制,变更为仅按照网络分值来选取最优网络;默认路由和默认网络是跟随最优网络的;
b、修改ConnectivityService的逻辑使以上四个网络可以共存;
c、添加通过读取系统属性的方式来设置网络初始分值,方便大家管理和debug;
d、修改了WiFi内部的评分规则,使其按照网络初始分值上报ConnectivityService;
e、frameworks/opt/net/ethernet/java/com/android/server/ethernet目录下EthernetNetworkFactory.java和EthernetTracker.java变更为只监听eth0,新增EthernetNetworkFactoryExt.java用于监听eth1或者其他网络节点.
f、策略路由中添加了main表并提高路由规则优先级(9999优先级),保证网络使用时较先匹配该路由规则;
g、由于此patch会修改AOSP的网络评分逻辑,若还有其他网络需要使用请提redmine。
5、使用说明:
a、patch中包含了修改多种网络(data、WiFi、以太网)打分的逻辑,客户请按需合入;
b、客户只需要修改每个网络对应的系统属性,即可作用到每个网络的分值,分值越高优先级越高;
c、网络分值的设置 建议参照patch分值间隔设置大一点(比如100),比如最高为400分,则下一个优先级的网络依次减100;客户可自行尝试调整,修改属性后reboot检查是否符合需求后方可合入版本。
eg:默认分值如下
PRODUCT_PROPERTY_OVERRIDES += \
persist.net.data.score=200 \
persist.net.wifi.score=300 \
persist.net.eth0.score=400 \
persist.net.eth1.score=100
由于eth0 > wifi > data > eth1,那么eth0优先级最高(访问外网),如果eth0未连接则WiFi优先级最高,依次类推,需要哪个网络优先级高就把哪个分数抬高。
评论0