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