Android OTG U盘无法显示在系统文件管理的修改
文件:frameworks\base\services\core\java\com\android\server\StorageManagerService.java
函数:private void onVolumeCreatedLocked(VolumeInfo vol)
如下修改:
private void onVolumeCreatedLocked(VolumeInfo vol) {......if (vol.type == VolumeInfo.TYPE_EMULATED) {......} else if (vol.type == VolumeInfo.TYPE_PUBLIC) {......// Adoptable public disks are visible to apps, since they meet// public API requirement of being in a stable location./**********************************************************************///if (vol.disk.isAdoptable()) { //注释掉这个判断vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;//}/**********************************************************************/......}
上面的修改,在U盘mount的时候会起作用:
文件:system/vold/model/PublicVolume.cpp
函数:status_t PublicVolume::doMount()
status_t PublicVolume::doMount() {// TODO: expand to support mounting other filesystemsreadMetadata();......setInternalPath(mRawPath);if (getMountFlags() & MountFlags::kVisible) { //这里有判断,使用storage挂载路径setPath(StringPrintf("/storage/%s", stableName.c_str()));} else {setPath(mRawPath);}......if (!(getMountFlags() & MountFlags::kVisible)) { //这里也有判断,会继续执行后面的创建用户空间文件系统// Not visible to apps, so no need to spin up FUSEreturn OK;}......return OK;
}