在个别手机项目中进程可以见到sdcard不识别,sdcard已损坏等问题
该问题分析方法,一般都是底层问题巨多。
在kernel log中可以搜索 msdc 关键字。
在android main 或system log中搜索vold 和mountservice。
例如
1.sdcard已损坏的问题
在上层查到:
04-04 10:46:44.484937 225 1382 V vold : public:179,129 mFsType:
04-04 10:46:44.484974 225 1382 E vold : public:179,129 unsupported filesystem
04-04 10:46:44.484998 225 1382 W vold : public:179,129 setState: 6
04-04 10:46:44.485061 225 1382 D SocketClient: SocketClient sendData done: 651 public:179,129 6
04-04 10:46:44.485105 225 1382 W vold : power_control_for_external_sd, state=15
04-04 10:46:44.485271 225 1382 W vold : ioctl error!
04-04 10:46:44.494502 1169 1238 W MountService: mount volume fail, ignored=com.android.server.NativeDaemonConnector$NativeDaemonFailureException: command '6 volume mount public:179,129 2 0' failed with '400 6 Command failed'
04-04 10:46:44.494975 1169 1238 W MountService: mount volume fail, vol=VolumeInfo{public:179,129}:
04-04 10:46:44.494975 1169 1238 W MountService: type=PUBLIC diskId=disk:179,128 partGuid=null mountFlags=VISIBLE
04-04 10:46:44.494975 1169 1238 W MountService: mountUserId=0 state=UNMOUNTABLE
04-04 10:46:44.494975 1169 1238 W MountService: fsType=null fsUuid=null fsLabel=
04-04 10:46:44.494975 1169 1238 W MountService: path=null internalPath=null
04-04 10:46:44.494975 1169 1238 W MountService: , return code=400
400 返回码去查
95 /**
96 * Test if event represents a remote native daemon error.
97 */
98 public boolean isClassServerError() {
99 return mCode >= 400 && mCode < 500;
100 }
各种信息表明是 mountservice去发送mount, vold执行,vold本地native那边出现的问题。
在kernel log:
<4>[