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();
}
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();
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories