最近突然想折腾下 anbox,主要想在 ubuntu touch 上用 anbox。
现在 anbox 有两个不好的方面:只支持 gles2.0 、不支持摄像头。
想在 ubuntu touch 上跑 QQ WX ZFB 这些有强依赖的 APP。
想包 ubuntu touch 做为日常使用系统来用。
在小米 6 上测试发现 QQ 可以跑起来。
微信不能跑:因为登录是的安全认证是通过 webview 加载的,正好 webview 有不能用
webview 在是用 gles 渲染界面时,直接崩溃。
于是在 anbox 的 gles 相关支持代码不断的加日志,期间,在米 6 上弄测试比较慢,就在电脑上用 ubuntu 16.04 来测试。
最后定位到以下原因:
1.egl.getGLString 查询 GL_SHADING_LANGUAGE_VERSION 时返回宿主机实际的值:
2.egl.eglGetConfigAttrib 查询 EGL_RENDERABLE_TYPE 时返回宿主机实际值
3.GLESv2 编码库中 glGetShaderPrecisionFormat_enc 会崩溃并打出 crash 日志
以上修改在电脑 ubuntu16.04 和小米 6 上验证通过。修改内容为 anbox 所使用 android.img 之中的东西。
现在结果,WX、QQ 运行成功。ZFB 未测试。使用米 6 的 ubuntu touch 跑 anbox 后明现比不跑 anbox 卡
接下来就是摄像头的支持。计划把安卓模拟器的摄像头支持代码摘出来合带 anbox 中。计划将 https://github.com/aosp-mirror/platform_external_qemu/tree/emu-2.0-release 中的 android/camera 下代码合并到 anbox 中。预期效果为电脑端可以使用照相机 APP。
PS:现在 ubuntu touch 上 有两个方案在为 ubt 支持安卓软件
https://github.com/ubports/anbox 老方案跑安卓 7.1,定制 LXC 容器。这边测试就是这个。
https://github.com/Anbox-halium/ 新方案 跑安卓 10 ,标准 LXC 容器。但有要求必须是 halium9.0 及以上适配的 ubuntu touch 才支持,新方案会更快。https://github.com/erfanoabdi 为主力在开发。感兴趣的可以持续关注。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于