需求1. 建立统一的目录结构:
将android和linux的目录按照volumes融合后进行显示。大致目录结构如下所示:
目录结构
volumes/ └── 8860b8fe-c24e-4df1-bf41-1b54ab2ce18e ├── backup ├── bin -> usr/bin ├── boot ├── cdrom ├── dev ├── etc ├── home ├── lib -> usr/lib ├── lost+found ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin -> usr/sbin ├── snap ├── srv ├── sys ├── tmp ├── usr ├── var └── volumes |
其中8860b8fe-c24e-4df1-bf41-1b54ab2ce18e是挂载在根目录下的设备(或分区)的uuid。通过该结构,可以浏览到该设备下的所有文件。目前简单的做法是将根通过--bind的方式直接绑定到/volumes。
要注意的问题:
volumes下又存在volumes,这样实际上形成了目录循环。如果有文件搜索程序搜索该目录,会导致死循环。
解决方法:
要解决该问题的话,只能将目录独立的挨个挂载。屏蔽不需要的目录,如volumes。
需求2: linux角度看android app产生的文件,属主都是linux用户的uid
将android/data目录在linux这边用fuse重新挂载一次,将文件id都设置为linux用户的uid
需求3: 编写文件浏览器,拷贝linux文件到android目录(同时更改文件uid?)
android app不要求直接访问/volumes ,借助拷贝的形式来访问文件。此时文件的属组id要修改?
android角度
1)android下的目录结构
android下也创建/volumes,然后简单的将linux下的volumes映射到android容器的volumes。
2)android下的目录权限
android下每个应用都有一个用户id,如果希望所有应用能访问该用户home目录下的文件。目前的想法是,在android授权应用访问存储权限时,读取该用户的组id,将应用的id,追加到这个组id中。
0 评论