龙空技术网

零遁开发板(通讯领域)介绍,改安卓底层随意使用docker

旋律果子 281

前言:

现时你们对“docker跑安卓”都比较关注,姐妹们都想要知道一些“docker跑安卓”的相关内容。那么小编也在网络上收集了一些关于“docker跑安卓””的相关知识,希望各位老铁们能喜欢,你们快快来了解一下吧!

1.USB共享网络还有意义吗?企业临时办公场地的网络如何搭建?

Hi,大家好,我是旋律果子,一个网络极客,也是linux开发者。现在是2022年了,手机USB共享网络还有意义吗?

有这么一个场景,例如在户外一个临时办公场地,不方便迁宽带过来,就会面临没有网络的情况。有人说直接打开手机热点不就行了。这样虽然能够满足单个电脑上网,但是缺点也有不少。第一是手机通过Wi-Fi分享出来的热点本身就不稳定,其一存在兼容性问题,有些设备是很难连上的;其二是万一手机熄屏等原因可能导致热点消失。第二,在工作场地电脑非常多的情况下,分享出来的Wi-Fi热点会互相干扰,影响很严重。第三,很难建立局域网,如果办公场地的电脑之间需要实现局域网内通讯,那分享Wi-Fi热点的方式就非常差了,即便是很多台电脑同时连接到一个手机上,局域网传输的压力也会非常大,去局域网的流量占用了去公网的带宽,很轻易会导致断网。

那么这个时候,USB网络共享就很有意义了。通过手机连接运营商的网络,通过USB和网线共享出来,直接插入办公场地的交换机中。这样只有到公网的流量会经过手机,到局域网的流量会直接走交换机,不经过手机,就不会影响稳定性了,效率非常高。

(临时办公场地USB转以太网共享网络示意图,内部主机之间数据交换直接走交换机)

以上的情况是较为理想的情况。现实的问题是,原始的安卓系统的网络比较复杂,很不方便管理。为此,零遁开发板就很好地解决了这一个需求。零遁通过修改安卓系统的源代码,重新编译了安卓的内核,增加了docker网络层面的所有内核依赖,例如MAC-Vlan、iptables、bridge等,目前支持docker以及依赖cgroup的特性。

(零遁开发板su进入底层后,可以使用iptables)

在我的粉丝中,我想openwrt大家应该不陌生,一个非常著名的软路由系统。相比家用路由器,你可以通过openwrt几乎完全控制你的网络,例如实现屏蔽广告,代理上网,VPN,多网络聚合,根据流量特征进行分流,流量控制,vlan等多个特性,也支持和安全性相关的自定义防火墙规则。功能非常强大。如果分享网络使用的是这么一个强大的系统,那么对于临时办公场所,只需要一台零遁开发板加一台交换机(有必要的时候)就完全够用了!

(零遁开发板中内置的openwrt系统管理页面,左边为概况,右边为防火墙规则)

2.零遁开发板不止能搞网络,看看安卓内核怎么改的

零遁开发板里面安装了一个openwrt,这个到底是怎么实现的呢?openwrt的功能是全的吗?零遁开发板上还能做其他的开发吗?我想这些应该是大家关心的问题。

零遁通过修改安卓的源代码,添加了对docker的支持,修复了docker网络层面所有的内核依赖,如macVlan、iptables以及bridge等。也就是说,这个openwrt的功能是完整的,也可以自定义安装不少应用。

另外,修改的安卓代码也增加了很多实用功能,例如支持通电自动开机;docker也添加到了系统启动项中,并且以root权限运行,权限级别高意味着功能没有被阉割。另外,修改的代码也增加了不少硬件支持,以及USB相关的扩展设备。可以连接更多的网卡、串口、摄像头、采集卡等;也方便扩展各种仪器仪表。

安卓系统自身的权限也是一个问题,修改的代码取消了su命令(以root权限运行)的权限检测,例如“su rm -rf /*”这样的命令也可以执行成功了,虽然我们不会这么执行,但足以体现我们开发者获得的权限之高。

刚才说了不少依赖和权限的问题,依赖问题决定了我们安装的东西能不能用,权限同样也是。当依赖和权限都解决了之后,我们就可以任意发挥了。例如刚才的openwrt就是运行在这么一个环境中。Wi-Fi或者USB网络共享,也是运行在这种环境中。我们同样也可以安装其他系统和应用,例如运行nginx,mysql,宝塔面板,甚至centos7和其他linux,或者结合传感器以及其他的仪器仪表实现物联网类似的功能。

(零遁开发板中安装了宝塔面板的docker,承载宝塔面板的系统为centos7)

(宝塔面板中可以继续安装其他组件)

3.零遁开发板目前的网络架构,分享出来的网络是绕开安卓系统的限制的?

我们刚才讲了一个openwrt的例子,这个openwrt是零遁预装的。安卓底层有两个流量出口,一个是安卓系统本身的Wi-Fi,一个安卓系统本身的流量卡,不过Wi-Fi和流量卡只会使用其中的一个,如果需要同时使用则需要继续进行开发。Openwrt也有两个wan口,wan1口的默认网关也对应着Wi-Fi或流量卡,openwrt的wan2口则是给继续开发预留的接口,开发者可以继续开发这个接口,依据协议特征给流量分流与多wan聚合等。Openwrt默认有一个lan口,这个就是真正分享给我们局域网的应用了,也就是我们局域网的流量都是通过openwrt控制的,安卓底层只是将openwrt出来的流量再进行了一次转发。

(零遁开发板网络架构图)

由于openwrt接管我们局域网的所有流量,在openwrt上就可以搞很多事情了,例如可以实现广告屏蔽,代理上网,流量控制与拦截,VPN等功能,非常方便。因为openwrt本身也是操作系统,在openwrt上也是可以安装应用的,那么也非常方便开发了。这些都归功于零遁破除了权限的限制与补充了内核依赖。

零遁开发板虽然用openwrt来接管整个局域网中的流量,而且openwrt的默认网关却是安卓底层,那么大家是不是担心,万一有要使用公网IP的情况,公网IP落不到openwrt上面?其实除了openwrt之外,安卓底层的iptables也是可以正常使用的,那么直接在安卓底层中使用iptables添加DNAT等端口映射,内部的openwrt也是可以享受与公网IP相同的效果的。

4.零遁开发板目前的外观、硬件特性与价格优势

之所以现在才讲到外观是因为系统以及内核源代码的修改才是核心。这次收到的测试机外观也是满足一些基础功能,也没有外接传感器。设备需要使用安卓手机,一个3D打印的壳子,内部安装了一个type-c扩展坞,扩展出了1个usb type-C,两个usb type-A、一个HDMI,一个千兆以太网口。在扩展坞上还可以扩展更多的传感器以及仪器仪表,为后面的AI人工智能,物联网等应用做出准备。

(零遁开发板外观)

零遁开发板cpu使用的是高通骁龙865,性能强劲。“芯参数”网站中有cpu的评测对比数据。

目前国内主流开发板使用RK3399比较多,下面是与RK3399的数据:

(高通骁龙865与RK3399对比)

使用树莓派开发板的也很多,下面是与树莓派4B的对比数据:

(高通骁龙865与树莓派4B对比)

因为要控制安卓底层的命令行,扩展出来的usb口可以接键盘,同样也可以连接蓝牙键盘等设备。这款开发板的待机时间也是一个亮点,主要是厂商对安卓cpu级别的使用进行了功耗管理。从源代码上看,每个程序回指定使用cpu的哪个核心。市面上普通开发板+4G模块,同样电池大小,大概4小时就没电了。而零遁的这款开发板可以待机24小时左右。

虽然这个开发板对电池的待机做了不少优化,不过为了能连续使用,充电还是很有必要的。扩展坞中的type-c口也可以反向向开发板充电,这样如同在临时办公场地中分享网络,监控这种需要不间断运行等类似的应用就可以连续运行了。

在流量卡速度方面,这个开发板也是支持5G的。相比于市面上的开发板有非常大的价格优势,定价大概在1500元左右。目前市面上支持5G的开发板基本上在5000元左右。

5.总结

希望本期文章能让你对零遁开发板有一个相对清晰的认识,如果你有这方面的需求,可以联系零遁厂家咨询。如果有任何疑问,可以在评论区留言。这期分享就到这里了,我是旋律果子,希望大家多多支持,我们下期再见。

标签: #docker跑安卓