• Android 4.4 U盘挂载【转】


    本文转载自:https://blog.csdn.net/mill_li/article/details/50134301

    在Android4.4系统下,ES文件浏览器读取不到U盘,但是在设置->存储里面是可以看到U盘的,另外一块板子是4.2系统的,一切正常,用串口看了下发现

    正常的板子,U盘挂在/mnt/udisk下,不正常的那个在/mnt/media_rw/udisk下,于是乎就想要更改U盘的挂载路径.

    百度了一番发现了一片好文章,让我解决了这个问题

    http://blog.csdn.net/jingxia2008/article/details/25787039

    因为对Android系统并不是很了解,所以没法讲的特别透彻,感兴趣的可以去看看上面那篇文章,我大概是改了三个地方

    1.init.rc

    系统启动的时候肯定是要从这里启动的,所以就看了看,发现果然有关于udisk的东西,飞思卡尔的imx6平台下

    /project/device/fsl/imx6/etc/init.rc里面有这样一段话

    [plain] view plain copy
     
    1. mkdir /mnt/media_rw 0751 media_rw media_rw  
    2. mkdir /storage 0751 root sdcard_r  
    3.   
    4. mkdir /mnt/media_rw/extsd 0755 system system  
    5. symlink /mnt/media_rw/extsd /storage/extsd  
    6. mkdir /mnt/media_rw/udisk 0755 system system  
    7. symlink /mnt/media_rw/udisk /storage/udisk  


     

    
    

    看来是在这里创建了挂载的目录,但是这里只是创建了目录,系统并不知道要挂载到这里,而且为什么要创建两个连接呢?百度一番后发现Android有Vold这个东西,机制上的东西我就不说了,也讲不明白,具体可以百度下,于是乎我将这里改成了

    [html] view plain copy
     
    1. #mkdir /mnt/media_rw 0751 media_rw media_rw  
    2. mkdir /storage 0751 root sdcard_r  
    3.   
    4. mkdir /mnt/extsd 0755 system system  
    5. symlink /mnt/extsd /storage/extsd  
    6. mkdir /mnt/udisk 0755 system system  
    7. symlink /mnt/udisk /storage/udisk  

    2.fstab

    系统会在这里面将挂载点告诉Vold,让他可以去检测热插拔事件,如果没有在这里注册,Vold就不会去检测,这里因为我是freescale平台,所以在/project/device/fsl/sabresd_6dq/

    这个目录下有fstab.freescale文件,里面有这样几句话

    [html] view plain copy
     
    1. /devices/platform/sdhci-esdhc-imx.2/mmc_host/mmc1 /mnt/media_rw/extsd vfat defaults voldmanaged=extsd:auto  
    2. /devices/platform/fsl-ehci /mnt/media_rw/udisk vfat defaults voldmanaged=udisk:auto  
    3.   
    4.    

    第一个是SD卡的注册,第二个是U盘的注册

    于是将这里改成了

    [plain] view plain copy
     
    1. /devices/platform/sdhci-esdhc-imx.2/mmc_host/mmc1 /mnt/extsd vfat defaults voldmanaged=extsd:auto  
    2. /devices/platform/fsl-ehci /mnt/udisk vfat defaults voldmanaged=udisk:auto  

    3.Vold

    上面两个改了以后发现问题还是没有解决,于是就在/project/system/vold/目录下看,发现有Volume.cpp文件,里面这样写的

    [html] view plain copy
     
    1. const char *Volume::MEDIA_DIR           = "/mnt/media_rw";  

    于是将这个目录也改了之后问题解决了。。。

    最后还有一点,关于U盘的挂载信息,可以用logcat -s Vold MountService看,我就是这样发现挂载目录有问题的

  • 相关阅读:
    Silverlight4实现三维企业网站
    (学)Lazarus 字符串压缩、解压缩
    (原)Oracel 函数返回 Decimal 丢失小数位问题
    (原)如何提高软件运行速度
    (转) ORA01033: ORACLE 正在初始化或关闭
    (学)正在写一个陌生行业的方案,努力ing
    (学)Telerik GridFoot 如何加合计
    (思)爱的路上千万里
    (学)Telerik RadGridView 中Column 数据字段绑定
    写在2011年伊始
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/9132032.html
Copyright © 2020-2023  润新知