内外SD卡无法挂载的BUG修复方法

社区服务
高级搜索
猴岛论坛电脑百科内外SD卡无法挂载的BUG修复方法
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
1个回复

[资源分享]内外SD卡无法挂载的BUG修复方法

楼层直达
小克9634f

ZxID:58004769

等级: 下士
举报 只看楼主 使用道具 楼主   发表于: 2015-05-27 0
   我们在对安卓ROM进行移植的时候,因为移植相对来说比较麻烦,经常会出现很多的问题,特别是常出现的一个问题,就是ROM移植之后无法挂载内外SD卡。接下来就来看看如何去修复移植ROM后无法挂载内外SD卡的BUG。


  第一步:问题简述


  从这次的移植个例来看,与SD卡挂载相关的文件主要有:


  boot.img解包后的里面的init.ssd.rc或者init.no_ssd.rc;


  /system/bin/vold;/system/etc/vold.fstab;


  /system/framework/framework-res.apk里面的res/xml/storage_list.xml文件;


  第二步:具体解决办法


  替换/system/etc/vold.fstab文件与你机器的官方ROM的该文件。


  替换/system/bin/vold文件,这个文件可能通过beyond compare比较看起来一致,但实际打开比较后就会发现  实际上是不一样的。经过这两个步骤,一般来说外置SD卡都可以正常挂载了。


  解包boot.img,在里面找到init.no_ssd.rc(有的机器可能是init.ssd.rc), 将其中的内容全部替换成官方boot.img里面的同名文件或者init.ssd.rc中的内容。这个步骤操作的目的就是按照官方的init脚本来创建SD卡相关的目录链接等。


  经过上面的3个步骤,在你手机的/storage目录下面应该可以看到sdcard0和sdcard1的权限都不再是000了。此时如果你的文件管理器或者其它应用程序还是不能识别SD卡,那么就需要修改/system/framework/framework-res.apk里面的


  res/xml/storage_list.xml文件。你可以先尝试替换该文件,如果还是不能解决问题那么就需要反编译进行修改了。


  确定内置SD卡,修改storage_list.xml文件。通过在手机终端中输入:ls -al /storage  即可看到/storage下面目录的详细信息,有软链接的一般都是内置SD卡。我的就是sdcard0,此时打开storage_list.xml文件,找到sdcard0的那个节点,然后添加一个属性: android:emulated="true"  ,如果没有添加的话,系统打印出的错误日志大致如下所示:


  W/MountService(  531): getVolumeState(/storage/sdcard0): Unknown volume


  E/MountService(  531): getVolumeState(/storage/sdcard0): ERROR!


  通过上面的第5步的修改,就可以解决上面的日志错误。


  3


  第三步:补充知识说明


  SD卡无法识别或者挂载你可以先进入手机的shell终端,然后输入命令: ls -al /storage 来进行初步查看。/storage目录下面一般都会包含两个目录:sdcard0, sdcard1,通过上面的命令你就可以看到这两个目录的具体操作权限了。


  如果这里的目录的权限都是000,对于外置SD卡来说就说明你的SD卡没有正确挂载,对于内置SD卡来说就说明你还没有正确的创建该目录的软链; 如果你发现这里这里的目录有操作权限,用cd命令进入后也能够看到里面的文件,对于外置SD卡来说,你的外置SD卡挂载是没有问题的,但是对于内置SD卡来说,你的挂载的参数没有设置正确。


  三星d710刷机 sxd710sj.sxingshaji.cn
阿里云服务器

ZxID:12008696

等级: 禁止发言

举报 只看该作者 沙发   发表于: 2015-05-29 0
谢谢分享
« 返回列表
发帖 回复