Skip to content

Commit beb64f5

Browse files
authored
Merge pull request #25 from hawkff/feature/amneziawg
feat: AmneziaWG outbound
2 parents fea1121 + 74b1970 commit beb64f5

21 files changed

Lines changed: 1206 additions & 23 deletions

File tree

Lines changed: 374 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,374 @@
1+
{
2+
"formatVersion": 1,
3+
"database": {
4+
"version": 9,
5+
"identityHash": "d7954736b0004f47ab7d670c9699baa6",
6+
"entities": [
7+
{
8+
"tableName": "proxy_groups",
9+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `userOrder` INTEGER NOT NULL, `ungrouped` INTEGER NOT NULL, `name` TEXT, `type` INTEGER NOT NULL, `subscription` BLOB, `order` INTEGER NOT NULL, `isSelector` INTEGER NOT NULL, `frontProxy` INTEGER NOT NULL, `landingProxy` INTEGER NOT NULL)",
10+
"fields": [
11+
{
12+
"fieldPath": "id",
13+
"columnName": "id",
14+
"affinity": "INTEGER",
15+
"notNull": true
16+
},
17+
{
18+
"fieldPath": "userOrder",
19+
"columnName": "userOrder",
20+
"affinity": "INTEGER",
21+
"notNull": true
22+
},
23+
{
24+
"fieldPath": "ungrouped",
25+
"columnName": "ungrouped",
26+
"affinity": "INTEGER",
27+
"notNull": true
28+
},
29+
{
30+
"fieldPath": "name",
31+
"columnName": "name",
32+
"affinity": "TEXT"
33+
},
34+
{
35+
"fieldPath": "type",
36+
"columnName": "type",
37+
"affinity": "INTEGER",
38+
"notNull": true
39+
},
40+
{
41+
"fieldPath": "subscription",
42+
"columnName": "subscription",
43+
"affinity": "BLOB"
44+
},
45+
{
46+
"fieldPath": "order",
47+
"columnName": "order",
48+
"affinity": "INTEGER",
49+
"notNull": true
50+
},
51+
{
52+
"fieldPath": "isSelector",
53+
"columnName": "isSelector",
54+
"affinity": "INTEGER",
55+
"notNull": true
56+
},
57+
{
58+
"fieldPath": "frontProxy",
59+
"columnName": "frontProxy",
60+
"affinity": "INTEGER",
61+
"notNull": true
62+
},
63+
{
64+
"fieldPath": "landingProxy",
65+
"columnName": "landingProxy",
66+
"affinity": "INTEGER",
67+
"notNull": true
68+
}
69+
],
70+
"primaryKey": {
71+
"autoGenerate": true,
72+
"columnNames": [
73+
"id"
74+
]
75+
}
76+
},
77+
{
78+
"tableName": "proxy_entities",
79+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `groupId` INTEGER NOT NULL, `type` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `status` INTEGER NOT NULL, `ping` INTEGER NOT NULL, `uuid` TEXT NOT NULL, `error` TEXT, `socksBean` BLOB, `httpBean` BLOB, `ssBean` BLOB, `ssrBean` BLOB, `vmessBean` BLOB, `trojanBean` BLOB, `trojanGoBean` BLOB, `mieruBean` BLOB, `naiveBean` BLOB, `hysteriaBean` BLOB, `tuicBean` BLOB, `juicityBean` BLOB, `sshBean` BLOB, `wgBean` BLOB, `shadowTLSBean` BLOB, `anyTLSBean` BLOB, `chainBean` BLOB, `nekoBean` BLOB, `configBean` BLOB, `snellBean` BLOB, `awgBean` BLOB)",
80+
"fields": [
81+
{
82+
"fieldPath": "id",
83+
"columnName": "id",
84+
"affinity": "INTEGER",
85+
"notNull": true
86+
},
87+
{
88+
"fieldPath": "groupId",
89+
"columnName": "groupId",
90+
"affinity": "INTEGER",
91+
"notNull": true
92+
},
93+
{
94+
"fieldPath": "type",
95+
"columnName": "type",
96+
"affinity": "INTEGER",
97+
"notNull": true
98+
},
99+
{
100+
"fieldPath": "userOrder",
101+
"columnName": "userOrder",
102+
"affinity": "INTEGER",
103+
"notNull": true
104+
},
105+
{
106+
"fieldPath": "tx",
107+
"columnName": "tx",
108+
"affinity": "INTEGER",
109+
"notNull": true
110+
},
111+
{
112+
"fieldPath": "rx",
113+
"columnName": "rx",
114+
"affinity": "INTEGER",
115+
"notNull": true
116+
},
117+
{
118+
"fieldPath": "status",
119+
"columnName": "status",
120+
"affinity": "INTEGER",
121+
"notNull": true
122+
},
123+
{
124+
"fieldPath": "ping",
125+
"columnName": "ping",
126+
"affinity": "INTEGER",
127+
"notNull": true
128+
},
129+
{
130+
"fieldPath": "uuid",
131+
"columnName": "uuid",
132+
"affinity": "TEXT",
133+
"notNull": true
134+
},
135+
{
136+
"fieldPath": "error",
137+
"columnName": "error",
138+
"affinity": "TEXT"
139+
},
140+
{
141+
"fieldPath": "socksBean",
142+
"columnName": "socksBean",
143+
"affinity": "BLOB"
144+
},
145+
{
146+
"fieldPath": "httpBean",
147+
"columnName": "httpBean",
148+
"affinity": "BLOB"
149+
},
150+
{
151+
"fieldPath": "ssBean",
152+
"columnName": "ssBean",
153+
"affinity": "BLOB"
154+
},
155+
{
156+
"fieldPath": "ssrBean",
157+
"columnName": "ssrBean",
158+
"affinity": "BLOB"
159+
},
160+
{
161+
"fieldPath": "vmessBean",
162+
"columnName": "vmessBean",
163+
"affinity": "BLOB"
164+
},
165+
{
166+
"fieldPath": "trojanBean",
167+
"columnName": "trojanBean",
168+
"affinity": "BLOB"
169+
},
170+
{
171+
"fieldPath": "trojanGoBean",
172+
"columnName": "trojanGoBean",
173+
"affinity": "BLOB"
174+
},
175+
{
176+
"fieldPath": "mieruBean",
177+
"columnName": "mieruBean",
178+
"affinity": "BLOB"
179+
},
180+
{
181+
"fieldPath": "naiveBean",
182+
"columnName": "naiveBean",
183+
"affinity": "BLOB"
184+
},
185+
{
186+
"fieldPath": "hysteriaBean",
187+
"columnName": "hysteriaBean",
188+
"affinity": "BLOB"
189+
},
190+
{
191+
"fieldPath": "tuicBean",
192+
"columnName": "tuicBean",
193+
"affinity": "BLOB"
194+
},
195+
{
196+
"fieldPath": "juicityBean",
197+
"columnName": "juicityBean",
198+
"affinity": "BLOB"
199+
},
200+
{
201+
"fieldPath": "sshBean",
202+
"columnName": "sshBean",
203+
"affinity": "BLOB"
204+
},
205+
{
206+
"fieldPath": "wgBean",
207+
"columnName": "wgBean",
208+
"affinity": "BLOB"
209+
},
210+
{
211+
"fieldPath": "shadowTLSBean",
212+
"columnName": "shadowTLSBean",
213+
"affinity": "BLOB"
214+
},
215+
{
216+
"fieldPath": "anyTLSBean",
217+
"columnName": "anyTLSBean",
218+
"affinity": "BLOB"
219+
},
220+
{
221+
"fieldPath": "chainBean",
222+
"columnName": "chainBean",
223+
"affinity": "BLOB"
224+
},
225+
{
226+
"fieldPath": "nekoBean",
227+
"columnName": "nekoBean",
228+
"affinity": "BLOB"
229+
},
230+
{
231+
"fieldPath": "configBean",
232+
"columnName": "configBean",
233+
"affinity": "BLOB"
234+
},
235+
{
236+
"fieldPath": "snellBean",
237+
"columnName": "snellBean",
238+
"affinity": "BLOB"
239+
},
240+
{
241+
"fieldPath": "awgBean",
242+
"columnName": "awgBean",
243+
"affinity": "BLOB"
244+
}
245+
],
246+
"primaryKey": {
247+
"autoGenerate": true,
248+
"columnNames": [
249+
"id"
250+
]
251+
},
252+
"indices": [
253+
{
254+
"name": "groupId",
255+
"unique": false,
256+
"columnNames": [
257+
"groupId"
258+
],
259+
"orders": [],
260+
"createSql": "CREATE INDEX IF NOT EXISTS `groupId` ON `${TABLE_NAME}` (`groupId`)"
261+
}
262+
]
263+
},
264+
{
265+
"tableName": "rules",
266+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `config` TEXT NOT NULL DEFAULT '', `userOrder` INTEGER NOT NULL, `enabled` INTEGER NOT NULL, `domains` TEXT NOT NULL, `ip` TEXT NOT NULL, `port` TEXT NOT NULL, `sourcePort` TEXT NOT NULL, `network` TEXT NOT NULL, `source` TEXT NOT NULL, `protocol` TEXT NOT NULL, `ruleset` TEXT NOT NULL DEFAULT '', `outbound` INTEGER NOT NULL, `packages` TEXT NOT NULL)",
267+
"fields": [
268+
{
269+
"fieldPath": "id",
270+
"columnName": "id",
271+
"affinity": "INTEGER",
272+
"notNull": true
273+
},
274+
{
275+
"fieldPath": "name",
276+
"columnName": "name",
277+
"affinity": "TEXT",
278+
"notNull": true
279+
},
280+
{
281+
"fieldPath": "config",
282+
"columnName": "config",
283+
"affinity": "TEXT",
284+
"notNull": true,
285+
"defaultValue": "''"
286+
},
287+
{
288+
"fieldPath": "userOrder",
289+
"columnName": "userOrder",
290+
"affinity": "INTEGER",
291+
"notNull": true
292+
},
293+
{
294+
"fieldPath": "enabled",
295+
"columnName": "enabled",
296+
"affinity": "INTEGER",
297+
"notNull": true
298+
},
299+
{
300+
"fieldPath": "domains",
301+
"columnName": "domains",
302+
"affinity": "TEXT",
303+
"notNull": true
304+
},
305+
{
306+
"fieldPath": "ip",
307+
"columnName": "ip",
308+
"affinity": "TEXT",
309+
"notNull": true
310+
},
311+
{
312+
"fieldPath": "port",
313+
"columnName": "port",
314+
"affinity": "TEXT",
315+
"notNull": true
316+
},
317+
{
318+
"fieldPath": "sourcePort",
319+
"columnName": "sourcePort",
320+
"affinity": "TEXT",
321+
"notNull": true
322+
},
323+
{
324+
"fieldPath": "network",
325+
"columnName": "network",
326+
"affinity": "TEXT",
327+
"notNull": true
328+
},
329+
{
330+
"fieldPath": "source",
331+
"columnName": "source",
332+
"affinity": "TEXT",
333+
"notNull": true
334+
},
335+
{
336+
"fieldPath": "protocol",
337+
"columnName": "protocol",
338+
"affinity": "TEXT",
339+
"notNull": true
340+
},
341+
{
342+
"fieldPath": "ruleset",
343+
"columnName": "ruleset",
344+
"affinity": "TEXT",
345+
"notNull": true,
346+
"defaultValue": "''"
347+
},
348+
{
349+
"fieldPath": "outbound",
350+
"columnName": "outbound",
351+
"affinity": "INTEGER",
352+
"notNull": true
353+
},
354+
{
355+
"fieldPath": "packages",
356+
"columnName": "packages",
357+
"affinity": "TEXT",
358+
"notNull": true
359+
}
360+
],
361+
"primaryKey": {
362+
"autoGenerate": true,
363+
"columnNames": [
364+
"id"
365+
]
366+
}
367+
}
368+
],
369+
"setupQueries": [
370+
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
371+
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd7954736b0004f47ab7d670c9699baa6')"
372+
]
373+
}
374+
}

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@
184184
<activity
185185
android:name="io.nekohasekai.sagernet.ui.profile.WireGuardSettingsActivity"
186186
android:configChanges="uiMode" />
187+
<activity
188+
android:name="io.nekohasekai.sagernet.ui.profile.AmneziaWGSettingsActivity"
189+
android:configChanges="uiMode" />
187190
<activity
188191
android:name="io.nekohasekai.sagernet.ui.profile.TuicSettingsActivity"
189192
android:configChanges="uiMode" />

0 commit comments

Comments
 (0)