Android 11.0.0_r11 20201205
tether代码已经被挪到packages\modules\Connectivity\Tethering,参考说明
https://source.android.com/devices/architecture/modular-system/tethering
tetherManager简单封装了接口和回调,在mainline project之前(Q之前?)是没有接口的
tetherManager.startTethering->tethering.startTethering->tethering.enableTetheringInternal->xxxxManager, xxx是Wifi,Usb,Bluetooth等,除了EthernerManager和蓝牙是等回调,其他都是等xxxManager的Action,这样就把接口归一到原来的实现了。
原来的实现:
setting调用xxxManager接口->xxxManager内部逻辑,把网卡准备好,->发送 xxxx Action->tethering.handleXXXAction->tethering.changeInterfaceState->tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED
ipServer不管具体网卡,只管是否静态ip地址,以及是否需要转发(IpServer.STATE_TETHERED,IpServer.STATE_LOCAL_ONLY)
module化的疑问
1. cdd条款里没看到
2. mainline的说明里要求oem保持接口的通用,没说是否闭源
3. google如何闭源,重写一个apk?随gms发布,不允许oem编译且预装?
4. 国内策略?目前是完全不受限制?cts只测接口,不管实现,cdd也没有条款要求。