您的位置:首页 > 移动开发 > Android开发

android6.0 mount failed

2016-06-02 11:08 459 查看
mount失败有两个原因:

1)配置文件配置出错

android6.0 vold进程中会读取配置文件 /fstab.XXX

 if (process_config(vm)) {

        PLOG(ERROR) << "Error reading configuration... continuing anyways";

    }

std::string DefaultFstabPath() {

    char hardware[PROPERTY_VALUE_MAX];

    property_get("ro.hardware", hardware, "");

    return StringPrintf("/fstab.%s", hardware);

}

把路径加到一个集合中:

void VolumeManager::addDiskSource(const std::shared_ptr<DiskSource>& diskSource) {

    mDiskSources.push_back(diskSource);

}

当插入一个设备时,vold会检测这个设备的是否与配置文件中的设备一值,一致才会进行后续的mount操作。主要检测'DEVPATH=/devices/soc0/soc.0/2100000.aips-bus/2190000.usdhc/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1'

04-23 20:12:56.923   186   211 V vold    : ----------------

04-23 20:12:56.923   186   211 V vold    : handleBlockEvent with action 2

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'DEVPATH=/devices/soc0/soc.0/2100000.aips-bus/2190000.usdhc/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0/mmcblk0p1'

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'MAJOR=179'

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'MINOR=1'

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'DEVNAME=mmcblk0p1'

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'DEVTYPE=partition'

04-23 20:12:56.923   186   211 D NetlinkEvent: NL param 'PARTN=1'

而我的配置文件内容如下:

/devices/soc0/soc.0/2100000.aips-bus/2198000.usdhc/mmc_host* auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata 修改即可

2)setexeccon()函数报错,这个函数跟selinux相关,已经把selinux功能整个去掉了,但是这里还是报错。不知道为什么,没有找到函数实现。屏蔽这个函数就可以了。

if (setexeccon(context)) {

        LOG(ERROR) << "Failed to setexeccon";

        abort();

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android