@@ -14,6 +14,7 @@ import (
14
14
15
15
const (
16
16
virtualNetwork = "/boot/usb.rndis0"
17
+ virtualMedia = "/boot/usb.disk0"
17
18
virtualDisk = "/boot/usb.disk1"
18
19
)
19
20
31
32
"/etc/init.d/S03usbdev start" ,
32
33
}
33
34
35
+ mountMediaCommands = []string {
36
+ "touch /boot/usb.disk0" ,
37
+ "/etc/init.d/S03usbdev stop" ,
38
+ "/etc/init.d/S03usbdev start" ,
39
+ }
40
+
41
+ unmountMediaCommands = []string {
42
+ "/etc/init.d/S03usbdev stop" ,
43
+ "rm -rf /sys/kernel/config/usb_gadget/g0/configs/c.1/mass_storage.disk0" ,
44
+ "rm /boot/usb.disk0" ,
45
+ "/etc/init.d/S03usbdev start" ,
46
+ }
47
+
34
48
mountDiskCommands = []string {
35
49
"touch /boot/usb.disk1" ,
36
50
"/etc/init.d/S03usbdev stop" ,
@@ -49,10 +63,12 @@ func (s *Service) GetVirtualDevice(c *gin.Context) {
49
63
var rsp proto.Response
50
64
51
65
network , _ := isDeviceExist (virtualNetwork )
66
+ media , _ := isDeviceExist (virtualMedia )
52
67
disk , _ := isDeviceExist (virtualDisk )
53
68
54
69
rsp .OkRspWithData (c , & proto.GetVirtualDeviceRsp {
55
70
Network : network ,
71
+ Media : media ,
56
72
Disk : disk ,
57
73
})
58
74
log .Debugf ("get virtual device success" )
@@ -80,6 +96,15 @@ func (s *Service) UpdateVirtualDevice(c *gin.Context) {
80
96
} else {
81
97
commands = unmountNetworkCommands
82
98
}
99
+ case "media" :
100
+ device = virtualMedia
101
+
102
+ exist , _ := isDeviceExist (device )
103
+ if ! exist {
104
+ commands = mountMediaCommands
105
+ } else {
106
+ commands = unmountMediaCommands
107
+ }
83
108
case "disk" :
84
109
device = virtualDisk
85
110
0 commit comments