首页 > 其他分享 >高通平台自动挂载exFAT格式SD卡和U盘

高通平台自动挂载exFAT格式SD卡和U盘

时间:2024-02-23 17:00:38浏览次数:22  
标签:case U盘 exFAT 修改 auto 挂载 SD

由于工作需要,想实现exFAT格式的U盘和SD卡自动挂载,但目前看到的文章基本都是采用MTK平台,要不就是android4.x,太老了。而且我试了下没有可以挂载成功的,通过一加开源源码修改了一份exFAT的移植方案。基于android7.0 高通平台。

采用noFuse方式添加exFAT文件系统,并实现SD卡自动挂载。

Kernel部分:

  1. 在kernel/fs下新增exFAT驱动
  2. 修改kernel/fs中Makefile文件,使exFAT目录参与编译。

         obj-y                += exfat/

 

修改后在exFAT源码中随便添加个编译报错试一下是否参与了编译。Kernel部分修改完成。

 

System/vold部分

      这部分实现exFAT格式的SD卡自动挂载功能

  1. 在System/vold/fs目录下新建 Exfat.cpp 和 Exfat.h

  2. 修改Disk.cpp

 

      if (table == Table::kMbr) {
                const char* type = strtok(nullptr, kSgdiskToken);
                LOG(WARNING) << "mbr type =  " << type;
                // switch (strtol(type, nullptr, 16)) {
                // case 0x06: // FAT16
                // case 0x0b: // W95 FAT32 (LBA)
                // case 0x0c: // W95 FAT32 (LBA)
                // case 0x0e: // W95 FAT16 (LBA)
                //     createPublicVolume(partDevice);
                //     break;
                // }
                createPublicVolume(partDevice);
            }

            原生代码只支持FAT32这里要将switch判断去掉,让其创建volume;也可以加一个case,但我不确定要加那些case所以就注释掉了

      3. 修改PublicVolume.cpp

        在doMount方法中添加exFAT分支,根据方法中FAT32文件系统的代码添加判断即可。

        else if (mFsType == "exfat") {
        if (exfat::Check(mDevPath)) {
            LOG(ERROR) << getId() << " failed filesystem check";
            return -EIO;
        }
    }

     else if (mFsType == "exfat") {
        if (exfat::Mount(mDevPath, mRawPath, false, false, false,
                AID_MEDIA_RW, AID_MEDIA_RW, 0007, true)) {
            PLOG(ERROR) << getId() << " exfat: failed to mount " << mDevPath;
            return -EIO;
        }
        else
            LOG(VERBOSE) << "exfat: mount succeed " << mDevPath;
    }

 

 

 

        4. 修改Android.mk文件

             添加Exfat.cpp 参与编译

External部分

        修改external/e2fsprogs/lib/blkid/probe.c和external/e2fsprogs/lib/blkid/probe.h 这两个文件。因为SD卡插入后要进行文件系统检查,这里增加blkid命令对exFAT的支持。

这部分是参考https://blog.csdn.net/huolinliang/article/details/86589976 这篇文章。

 

Device部分

       修改fstab.qcom文件,将sd卡的type修改为auto

 

/devices/platform/*usb*   auto vfat defaults      voldmanaged=usb:auto
/devices/platform/fe320000.dwmmc/mmc_host*        auto  auto    defaults        voldmanaged=sdcard1:auto

 

system\sepolicy部分

        以上部分修改完成后,功能可以实现,但是有selinux报错,可以先设置setenforce 0 进行调试。

 

高通平台Android7.0自动挂载exFAT格式SD卡和U盘_android 7 u盘挂载事件-CSDN博客    

标签:case,U盘,exFAT,修改,auto,挂载,SD
From: https://www.cnblogs.com/wanglongjiang/p/18029936

相关文章

  • P4606 [SDOI2018]战略游戏
    P4606[SDOI2018]战略游戏一个感觉比较新颖的题目,搞了一周题目大意:给定一个图,q组询问,每组给定k个点,求图上有几个点,删去后能使这k个点不连通题解:首先考虑删掉的点一定为割点,然后本题极像虚树,就可以考虑建圆方树然后,圆方树上的圆点,在两点路径上的,即为所求于是乎把k个点拎出来......
  • 有效预防重要信息通过U盘、硬盘泄露的方法
    在这个信息高度交流的时代,数据安全问题日益凸显。数据的存储、传输和利用涉及各个层面的信息消费,牵一发而动全身。U盘、硬盘等设备因其便携性和大容量,成为信息传输的主要渠道。然而,如果不加以合理控制和管理,也可能成为重要信息泄露的风险点。要有效预防重要信息的泄露,需要全面且......
  • <kubernetes_sd_config>
    -source_labels:[__meta_kubernetes_service_annotation_prometheus_io_path]action:replacetarget_label:__metrics_path__regex:(.+) 您提供的配置片段是一个Prometheus的relabeling规则。Prometheus使用relabeling来动态地修改......
  • 华为云GaussDB支撑农行超级网银业务,性能和稳定性备受认可
    数据库作为数据驱动业务创新和智慧银行建设的关键基础设施,在银行数字化变革中具有举足轻重的作用。在金融科技发展和国家政策引领下,银行纷纷加快推进数字化转型时代,正在经历一场以科技引领、数据赋能、数字经营为目标的智慧银行数字化变革。数据库作为数据驱动业务创新和智慧银......
  • SDWAN组网是怎么降低网络搭建成本
    在当今数字化时代,企业的网络架构扮演着至关重要的角色,直接影响到业务的高效运转和信息的安全传输。然而,传统的网络架构往往伴随着高昂的搭建和维护成本,对于许多企业来说是一个不小的负担。而SD-WAN组网作为一种新型的网络架构技术,为企业降低网络搭建成本提供了良好的解决方案。 ......
  • 通过SDIO接口+FATFS对SD卡进行读写操作
    摘要:cubemax工程建立(主要描述SDIO和FATFS配置部分,实际上还添加了串口用作调试打印)代码示例主函数、fatfs、sdio接口之间的层次关系 cubemax工程建立:首先,找到SDIO,进行配置。SDIO的模式有1bit、4bits总线模式,根据板子的原理图进行选择。SDIO其他参数保持默认,只修改SDIO时......
  • GaussDB_on_kylinV10SP3_单节点安装过程
    GaussDB_on_kylinV10SP3_单节点安装过程背景OpenGauss的搭建和部署非常简单但是GaussDB的就比较复杂.我理解openGauss的简单版本应该就是PG内核直接使用但是GaussDB的版本应该是更换了存储殷勤,所以部署起来比较复杂.自己的理解可能不正确.注意本次只是进行:单节点中......
  • 如何确保U盘等设备不成为数据泄露渠道?
    在高速信息流动的时代,移动存储设备如U盘的便捷性改变了我们的工作方式,但同时也带来了数据安全的风险。如何有效地防止U盘等设备成为数据泄露渠道,已经成为每个企业亟需解决的问题。首要的一步,就是通过华企盾DSC数据防泄密系统,从源头上管理与控制设备的接入和使用。后台对U盘等移......
  • PSD转换UGUI的方案研究(1):介绍
    在UI做好美术界面到程序拼界面这一流程中,美术切图加批注以及程序拼界面都是很占用时间的工作,为此我们想缩短这个时间来节省时间,所以想利用代码去实现这一步骤,借鉴其他的大佬提供的已有的方案上去修改为自己项目中可以用的方案(文末附上参考链接)。介绍项目已接近尾声,我们这套方案......
  • 【IT日常】U盘在手机上能用,在电脑上没法显示
    解决一个小问题:U盘在手机上能用在Windows11上没法资源管理器中没法查看内容。打开Windows自带的磁盘管理工具,发现了一个名为android的磁盘,大小正好是U盘的空间大小,格式为exFAT。理论上exFAT是各种系统通用的格式,且相比FAT32能够存储4G以上的文件。但是为什么资源管理器中没有呢?因......