安卓与docker---在旧手机上部署服务
发布网友
发布时间:2024-10-01 10:19
我来回答
共1个回答
热心网友
时间:2024-10-31 10:52
之前为了实现手机作为智能家居控制中心,安装了homeassistant。然而,每次更新版本都让我感到非常不便利,因为需要升级一些组件。如果手机能够运行docker,那么通过一句命令就能更新容器,这无疑将带来极大的方便。经过查询资料,我发现这是可行的,于是着手实现,并记录下整个过程。
为了实现这个目标,我需要具备一些前置技能,包括对Linux有一定的了解,能够根据资料编译内核。此外,我还需要能够刷安卓手机系统并root它。选择设备时,我倾向于选择有大量第三方固件、官方开源较好的手机,如小米、一加、三星等。
在MIUI上直接操作的尝试并没有成功。我找到了MIUI开源的kernel,下载并编译,但发现缺少wifi驱动。虽然官方提供相关材料,但由于材料体积庞大且下载时间过长,我没有成功完成。如果各位大神有成功操作的经验,欢迎分享。
转而选择第三方开源固件,我找到了xda上最新的一个包,并使用orangefox刷入系统。接着,我root了手机,然后开始编译kernel。使用termux作为工具,我执行了一系列操作。在编译过程中,我注意到许多CONFIG处于missing状态,于是记录下需要补全的配置,并将其修改为启用状态。
编译完成后,我备份了当前系统的boot,并保留以备不时之需。使用Android Image Kitchen将boot.img解包,替换Image.gz-dtb为原boot中的.img-kernel,并确保名称一致性。打包完成并刷入boot分区后,我再次使用termux检测,确保大部分配置已启用。
接下来,我安装了docker,运行设置完成。需要注意的是,网络建议使用net而非bridge,具体操作参考相关文档。至此,我已经可以拉取服务运行,例如安装homeassistant和Portainer。
实现手机上运行docker服务还有其他可行方案,如mobian和postmarketos,它们适配了部分手机型号。参考资料包括github上的相关代码库、xda论坛、小米内核项目和小米百科。