android6.0 mount failed

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();
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值