版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

需求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中。