android仅创建一个硬盘逻辑盘
来源:互联网 发布:网络歌曲大赛 编辑:程序博客网 时间:2024/06/05 22:52
手动操作挂载ssd到pc上唯一的逻辑盘
echo "/dev/block/vold/8:0">/sys/devices/platform/sw_usb_udc/gadget/lun0/file //pc挂载ssd
echo "">/sys/devices/platform/sw_usb_udc/gadget/lun0/file //pc卸载ssd
==============================================================================
android部分保证强制操作硬盘
android4.0/system/vold/Volume.cpp
shareVol函数中强制指定写入字段和节点路径
#if 0//kll
snprintf(nodepath,
sizeof(nodepath), "/dev/block/vold/%d:%d",
MAJOR(d), MINOR(d));
#else
snprintf(nodepath, sizeof(nodepath), "/dev/block/vold/8:0");
#endif
if(1/*mSharelun[i] == 0*/)//kll
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun/file");//这个file链接文件指向/sys/devices/platform/sw_usb_udc/gadget/lun0/file
else
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun%d/file", mSharelun[i]);
unshareVol函数强制指定卸载节点路径
if(1/*mSharelun[i] == 0*/)//kll
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun/file");//这个file链接文件指向/sys/devices/platform/sw_usb_udc/gadget/lun0/file
else
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun%d/file", mSharelun[i]);
==============================================================================
内核部分保证只创建一个逻辑盘节点/sys/devices/platform/sw_usb_udc/gadget/lun0
lichee/linux-3.0/drivers/usb/gadget/Android.c
mass_storage_function_init函数中config->fsg.nluns = g_android_usb_config.luns;
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
lichee/linux-3.0/drivers/usb/gadget/Composite.c
static struct android_usb_config g_android_usb_config;//申明一个usb配置结构
static s32 get_android_config(struct android_usb_config *config)//将usb配置fetch到config结构
s32 get_android_usb_config(struct android_usb_config *config)//将config中的数据转移到 g_android_usb_config 结构
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
从sys_config1.fex读取luns值(在pc上呈现的可移动盘符数)
echo "/dev/block/vold/8:0">/sys/devices/platform/sw_usb_udc/gadget/lun0/file //pc挂载ssd
echo "">/sys/devices/platform/sw_usb_udc/gadget/lun0/file //pc卸载ssd
==============================================================================
android部分保证强制操作硬盘
android4.0/system/vold/Volume.cpp
shareVol函数中强制指定写入字段和节点路径
#if 0//kll
snprintf(nodepath,
sizeof(nodepath), "/dev/block/vold/%d:%d",
MAJOR(d), MINOR(d));
#else
snprintf(nodepath, sizeof(nodepath), "/dev/block/vold/8:0");
#endif
if(1/*mSharelun[i] == 0*/)//kll
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun/file");//这个file链接文件指向/sys/devices/platform/sw_usb_udc/gadget/lun0/file
else
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun%d/file", mSharelun[i]);
unshareVol函数强制指定卸载节点路径
if(1/*mSharelun[i] == 0*/)//kll
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun/file");//这个file链接文件指向/sys/devices/platform/sw_usb_udc/gadget/lun0/file
else
snprintf(umslun, sizeof(umslun), "/sys/class/android_usb/android0/f_mass_storage/lun%d/file", mSharelun[i]);
==============================================================================
内核部分保证只创建一个逻辑盘节点/sys/devices/platform/sw_usb_udc/gadget/lun0
lichee/linux-3.0/drivers/usb/gadget/Android.c
mass_storage_function_init函数中config->fsg.nluns = g_android_usb_config.luns;
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
lichee/linux-3.0/drivers/usb/gadget/Composite.c
static struct android_usb_config g_android_usb_config;//申明一个usb配置结构
static s32 get_android_config(struct android_usb_config *config)//将usb配置fetch到config结构
s32 get_android_usb_config(struct android_usb_config *config)//将config中的数据转移到 g_android_usb_config 结构
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
从sys_config1.fex读取luns值(在pc上呈现的可移动盘符数)
- android仅创建一个硬盘逻辑盘
- 锁硬盘逻辑盘程序
- 锁硬盘逻辑盘程序
- 硬盘知识,硬盘逻辑结构
- 再论制硬盘逻辑锁
- 制硬盘逻辑锁
- VB硬盘序列号(逻辑)
- 硬盘逻辑锁问题
- 硬盘逻辑结构
- 硬盘逻辑结构简介
- 硬盘逻辑结构
- 硬盘逻辑结构简介
- 硬盘“逻辑锁”解决办法
- 硬盘逻辑锁
- 话说有关precision 5520(大电池版无机械硬盘,仅一个nvme硬盘)上作ubuntu系统的教程step by step
- POSIX打开和创建一个IPC对象的逻辑过程
- 一个类继承父类后创建时,代码执行逻辑问题
- Android 创建一个Widget
- JBoss 系列二十三:JBossCache 架构
- 扩展欧几里得算法的笔记
- java线程同步的各种方法
- c++模拟反射机制-方法2
- 黑马程序员_银行业务调度系统 _11
- android仅创建一个硬盘逻辑盘
- linux常用的makefile模版编写
- HDU 2874 Connections between cities 在森林里面求最小距离
- C# 提取字体点阵字模数据
- grunt-contrib-watch 结合 connect-livereload 实现修改文件后,理解刷新页面
- jersey参数拦截注入
- Spring AOP与动态代理
- JBossESB教程(四)——如何监测一个文件夹下(本地)
- 函数局部变量所需存储空间分配