Android OTG U盘无法显示在系统文件管理的修改

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 filesystems
    readMetadata();
    ......

    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 FUSE
        return OK;
    }

	......
    return OK;
}
相关推荐
EQ-雪梨蛋花汤29 分钟前
【Android笔记】记一次 CMake 构建 Filament Android 库的完整排错过程(安卓交叉编译、CMake、Ninja)
android·c++·filament
tangweiguo030519871 小时前
Android全局网络监控最佳实践(Kotlin实现)
android·kotlin
移动开发者1号2 小时前
Android后台服务保活方案对比分析
android·kotlin
移动开发者1号2 小时前
ContentProvider URI匹配机制详解
android·kotlin
Digitally6 小时前
在 Android 上备份短信:保护您的对话
android
诸神黄昏EX10 小时前
Android Native 之 adbd进程分析
android
Estar.Lee11 小时前
腾讯云开发者社区文章内容提取免费API接口教程
android·云计算·腾讯云·api·免费api·api大全
匆匆整棹还13 小时前
idea配置android--以idea2023为例
android·java·intellij-idea
zhifanxu14 小时前
android协程异步编程常用方法
android·开发语言·kotlin
蓉妹妹14 小时前
React项目在ios和安卓端要做一个渐变色背景,用css不支持,可使用react-native-linear-gradient
android·css·react.js