1{
2    "jobs" : [{
3            "name" : "boot",
4            "cmds" : [
5                "mkdir /config/usb_gadget/g1/functions/mass_storage.usb",
6                "mkdir /config/usb_gadget/g1/functions/fxfer.aoa"
7            ]
8        }, {
9            "name" : "param:sys.usb.config=none && param:sys.usb.configfs=1",
10            "condition" : "sys.usb.config=none && sys.usb.configfs=1",
11            "cmds" : [
12                "write /config/usb_gadget/g1/UDC none",
13                "stop hdcd",
14                "setparam sys.usb.ffs.ready 0",
15                "write /config/usb_gadget/g1/bDeviceClass 0",
16                "write /config/usb_gadget/g1/bDeviceSubClass 0",
17                "write /config/usb_gadget/g1/bDeviceProtocol 0",
18                "rm /config/usb_gadget/g1/configs/b.1/f1",
19                "rm /config/usb_gadget/g1/configs/b.1/rndis.rn0",
20                "rmdir /config/usb_gadget/g1/functions/rndis.rn0",
21                "rm /config/usb_gadget/g1/configs/b.1/mass_storage.usb",
22                "setparam sys.usb.state ${sys.usb.config}"
23            ]
24        }, {
25            "name" : "param:startup.service.ctl.hdcd=5",
26            "condition" : "startup.service.ctl.hdcd=5",
27            "cmds" : [
28                "setparam sys.usb.ffs.ready 0"
29            ]
30        }, {
31            "name" : "param:sys.usb.config=hdc && param:sys.usb.configfs=1",
32            "condition" : "sys.usb.config=hdc && sys.usb.configfs=1",
33            "cmds" : [
34                "start hdcd"
35            ]
36        }, {
37            "name" : "param:sys.usb.ffs.ready=1 && param:sys.usb.config=hdc && param:sys.usb.configfs=1 && param:sys.usb.ffs.ready.hdc=1",
38            "condition" : "sys.usb.ffs.ready=1 && sys.usb.config=hdc && sys.usb.configfs=1 && sys.usb.ffs.ready.hdc=1",
39            "cmds" : [
40                "setparam sys.usb.ffs.ready.hdc 0",
41                "write /config/usb_gadget/g1/UDC none",
42                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration hdc",
43                "rm /config/usb_gadget/g1/configs/b.1/f1",
44                "rm /config/usb_gadget/g1/configs/b.1/f2",
45                "rm /config/usb_gadget/g1/configs/b.1/f3",
46                "rm /config/usb_gadget/g1/configs/b.1/f4",
47                "rm /config/usb_gadget/g1/configs/b.1/f5",
48                "rm /config/usb_gadget/g1/configs/b.1/f6",
49                "rm /config/usb_gadget/g1/configs/b.1/f7",
50                "rm /config/usb_gadget/g1/configs/b.1/f8",
51                "rm /config/usb_gadget/g1/configs/b.1/f9",
52                "rm /config/usb_gadget/g1/configs/b.1/f10",
53                "rm /config/usb_gadget/g1/configs/b.1/f11",
54                "symlink /config/usb_gadget/g1/functions/ffs.hdc /config/usb_gadget/g1/configs/b.1/f1",
55                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
56                "setparam sys.usb.state ${sys.usb.config}"
57            ]
58        }, {
59            "name" : "param:sys.usb.config=hdc_debug && param:sys.usb.configfs=1",
60            "condition" : "sys.usb.config=hdc_debug && sys.usb.configfs=1",
61            "cmds" : [
62                "start hdcd",
63                "write /config/usb_gadget/g1/idProduct 0x5000",
64                "write /config/usb_gadget/g1/os_desc/use 1"
65            ]
66        }, {
67            "name" : "param:sys.usb.ffs.ready=1 && param:sys.usb.config=hdc_debug && param:sys.usb.configfs=1",
68            "condition" : "sys.usb.ffs.ready=1 && sys.usb.config=hdc_debug && sys.usb.configfs=1",
69            "cmds" : [
70                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration hdc",
71                "rm /config/usb_gadget/g1/configs/b.1/f1",
72                "rm /config/usb_gadget/g1/configs/b.1/f2",
73                "rm /config/usb_gadget/g1/configs/b.1/f3",
74                "rm /config/usb_gadget/g1/configs/b.1/f4",
75                "rm /config/usb_gadget/g1/configs/b.1/f5",
76                "rm /config/usb_gadget/g1/configs/b.1/f6",
77                "rm /config/usb_gadget/g1/configs/b.1/f7",
78                "rm /config/usb_gadget/g1/configs/b.1/f8",
79                "rm /config/usb_gadget/g1/configs/b.1/f9",
80                "rm /config/usb_gadget/g1/configs/b.1/f10",
81                "rm /config/usb_gadget/g1/configs/b.1/f11",
82                "symlink /config/usb_gadget/g1/functions/ffs.hdc /config/usb_gadget/g1/configs/b.1/f1",
83                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
84                "setparam sys.usb.state ${sys.usb.config}"
85            ]
86        }, {
87            "name" : "param:sys.usb.config=rndis && param:sys.usb.configfs=1",
88            "condition" : "sys.usb.config=rndis && sys.usb.configfs=1",
89            "cmds" : [
90                "mkdir /config/usb_gadget/g1/functions/rndis.rn0",
91                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration rndis",
92                "symlink /config/usb_gadget/g1/functions/rndis.rn0 /config/usb_gadget/g1/configs/b.1/rndis.rn0",
93                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
94                "setparam sys.usb.state ${sys.usb.config}"
95            ]
96        }, {
97            "name" : "param:sys.usb.config=rndis_hdc && param:sys.usb.configfs=1",
98            "condition" : "sys.usb.config=rndis_hdc && sys.usb.configfs=1",
99            "cmds" : [
100                "mkdir /config/usb_gadget/g1/functions/rndis.rn0",
101                "symlink /config/usb_gadget/g1/functions/rndis.rn0 /config/usb_gadget/g1/configs/b.1/rndis.rn0",
102                "start hdcd"
103            ]
104        }, {
105            "name" : "param:sys.usb.ffs.ready=1 && param:sys.usb.config=rndis_hdc && param:sys.usb.configfs=1",
106            "condition" : "sys.usb.ffs.ready=1 && sys.usb.config=rndis_hdc && sys.usb.configfs=1",
107            "cmds" : [
108                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration rndis_hdc",
109                "symlink /config/usb_gadget/g1/functions/ffs.hdc /config/usb_gadget/g1/configs/b.1/f1",
110                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
111                "setparam sys.usb.state ${sys.usb.config}"
112            ]
113        }, {
114            "name" : "param:sys.usb.config=storage && param:sys.usb.configfs=1",
115            "condition" : "sys.usb.config=storage && sys.usb.configfs=1",
116            "cmds" : [
117                "write /config/usb_gadget/g1/UDC none",
118                "stop hdcd",
119                "setparam sys.usb.ffs.ready 0",
120                "write /config/usb_gadget/g1/functions/mass_storage.usb/lun.0/file null",
121                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration mass_storage",
122                "write /config/usb_gadget/g1/functions/mass_storage.usb/lun.0/cdrom 1",
123                "symlink /config/usb_gadget/g1/functions/mass_storage.usb /config/usb_gadget/g1/configs/b.1/mass_storage.usb",
124                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
125                "setparam sys.usb.state ${sys.usb.config}"
126            ]
127        }, {
128            "name" : "param:sys.usb.config=storage_hdc && param:sys.usb.configfs=1",
129            "condition" : "sys.usb.config=storage_hdc && sys.usb.configfs=1",
130            "cmds" : [
131                "write /config/usb_gadget/g1/functions/mass_storage.usb/lun.0/file null",
132                "write /config/usb_gadget/g1/functions/mass_storage.usb/lun.0/cdrom 1",
133                "symlink /config/usb_gadget/g1/functions/mass_storage.usb /config/usb_gadget/g1/configs/b.1/mass_storage.usb",
134                "start hdcd"
135            ]
136        }, {
137            "name" : "param:sys.usb.ffs.ready=1 && param:sys.usb.config=storage_hdc && param:sys.usb.configfs=1",
138            "condition" : "sys.usb.ffs.ready=1 && sys.usb.config=storage_hdc && sys.usb.configfs=1",
139            "cmds" : [
140                "write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration storage_hdc",
141                "symlink /config/usb_gadget/g1/functions/ffs.hdc /config/usb_gadget/g1/configs/b.1/f1",
142                "write /config/usb_gadget/g1/UDC ${sys.usb.controller}",
143                "setparam sys.usb.state ${sys.usb.config}"
144            ]
145        }
146    ]
147}
148