Docker on Android?

2017-07-30 22:05:29 +08:00
 fox0001
近来为了追番某动画而装了优酷客户端,即使用“冰箱”封了,且禁用非必要权限,还是生成一堆垃圾文件,感觉手机被 QJ 了!真是逼死强迫症!

于是想,能不能给它个类似 docker 的环境?关闭程序后,就自动清理生成在 sdcard 的垃圾文件?

或者说能不能修改 ART,把提供给它的 sdcard 目录设置为虚拟目录(或者是存放在内存的临时目录)之类?

甚至可否做个软件,可以设置特定 apk 所获得访问的 sdcard 路径为用户设定的虚拟目录?

如果实现了这个需求,那么,Android 手机应该就可以放心使用任何国产流氓 apk 了吧?
17338 次点击
所在节点    Android
41 条回复
anheiyouxia
2017-07-31 10:19:49 +08:00
kamen
2017-07-31 10:26:29 +08:00
@anheiyouxia #21 基于 AOSP 的系统
ivechan
2017-07-31 13:04:33 +08:00
这不是 MIUI 的分身功能吗? 不过 MIUI 分身比较臃肿就是了.
ysc3839
2017-07-31 13:37:00 +08:00
@anheiyouxia 亲测,三星 S5,刷了 Lineage OS,装了 SD 卡。Soild Explorer 文件管理器,不授权存储空间权限,内部存储和 SD 卡都不能访问。
anheiyouxia
2017-07-31 19:11:07 +08:00
@ysc3839 Lineage OS 的功能如何?对付国内流氓的唤醒有妙招吗?现在用一加 3T 的氢 OS,动不动就杀后台,加入白名单都还杀
@kamen 好的,谢谢告知。
ysc3839
2017-07-31 19:43:05 +08:00
@anheiyouxia 对于我来说缺少网速显示,可以考虑刷 RR,其他好像没什么。唤醒问题我用绿色守护,但是京东还是能唤醒。
yingfengi
2017-07-31 20:05:15 +08:00
手机很久没打开文件管理了
lovesky
2017-07-31 20:25:15 +08:00
虚拟目录 你这个需求用安卓多开就可以办到
zuolan
2017-07-31 20:31:35 +08:00
想把 Docker 移植到 Android,内核就不够吧,Android 连 user namespace 都没有。感觉是个麻烦事。
cmzy
2017-07-31 20:33:01 +08:00
我正在做一个类似的 app,叫闪电盒子。近期上线,大家可以试试。。完全满足你的要求。
goodmani
2017-07-31 21:12:09 +08:00
移动版 Ubuntu 才是未来
anheiyouxia
2017-07-31 21:27:05 +08:00
@ysc3839 好的谢谢
weiyichen2011
2017-08-01 09:38:18 +08:00
"把提供给它的 sdcard 目录设置为虚拟目录"
是有的,在以前没和谐的酷安上见到过。现在的话搜索 sdcard 出来的全是不相关 app,很遗憾找不到了。
fox0001
2017-08-01 12:01:04 +08:00
@weiyichen2011 谢谢。另外,酷安已经不是以前的酷安了
Arnie97
2017-08-01 13:10:47 +08:00
@fox0001 自从 Android 2.3 就开始用酷安了,实名制一折腾有点无所适从
fox0001
2017-08-01 16:30:56 +08:00
@Arnie97 当时发现酷安的 apk 是 market (现在叫 Play )上直接拉下来的,然后一直很放心用这个网站上的 apk。现在只能直接访问 Play 了
fox0001
2017-08-01 16:31:43 +08:00
@goodmani 洗洗睡吧,官方已不再开发了
onemoo
2017-08-01 23:58:09 +08:00
我也有这样的需求。类似于给每个选定的 app 一个独立的沙盒环境。
目前在用 island,只不过它利用 work profile 只是相当于开了另一个虚拟环境,并不是针对每个 app 的。不过至少做到了和主环境的隔离,联系人也是隔离的。 我是把我讨厌的 app 都扔到 island 中了。


@cmzy # 30 期待您的作品! 可以先介绍下它的工作方式吗?是提供虚拟目录?还是更进一步地沙盒化 app ?
codehz
2017-08-02 09:58:02 +08:00
安卓默认阉割了命名空间功能,OverlayFS 等等(这些功能都是 docker 启动的必备之物),不过可以修改编译配置来重新启用。
不过关键问题在于,即使用上了 docker (还有很多兼容问题难以解决),也是只能跑终端应用——因为安卓系统服务采用的 binder 和命名空间是不兼容的。。。在 docker 中启动的 zygote 并不能正确的显示界面——直接段错误退出了,因此,如果要实现 Docker for Android,势必要给内核打补丁,修改 Binder 的实现,以期和命名空间机制相互兼容。(这就非常困难了)
不过考虑到大多数人的需求,我觉得只需要隔离文件就可以了——仅仅用 FileSystem Namespace 做的话,应该就差不多了,每个 userid 建立一个命名空间(只在首个进程启动时建立,随后启动的进程直接复用原有的命名空间)然后每个命名空间挂载不同的 sdcard。。删除用户时删除对应的文件夹
qyxx
2017-08-04 13:19:40 +08:00
跟 Docker 完全没联系的东西,被标题骗了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379091

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX