-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
426 lines (251 loc) · 429 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>𝓗𝓸𝓼𝓱𝓲𝔃𝓸𝓻𝓪</title>
<subtitle>希望阳光很暖,微风不燥,时光不老,你我都好。</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="https://cxyzzz.gtihub.io/"/>
<updated>2020-04-14T04:13:07.000Z</updated>
<id>https://cxyzzz.gtihub.io/</id>
<author>
<name>𝕮𝖍𝖊𝖓</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<follow_challenge>
<feedId>95696125814787072</feedId>
<userId>95674010840381440</userId>
</follow_challenge>
<entry>
<title>使用 RSS 订阅学校校内新闻和通知公告</title>
<link href="https://cxyzzz.gtihub.io/posts/66c8d8e0.html"/>
<id>https://cxyzzz.gtihub.io/posts/66c8d8e0.html</id>
<published>2020-04-14T04:13:07.000Z</published>
<updated>2020-04-14T04:13:07.000Z</updated>
<content type="html"><![CDATA[<p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/Hkvmo8VnIyGM5zP.webp" alt="rss-40674_1280.png"></p><a id="more"></a><p>由于疫情影响学校要求每天到完美校园支付宝小程序上打卡。打卡完成后弹出了个校园新闻栏,点进去看了下正是学校官网校内行为栏的内容。二话不说马上打开了抓包软件,还是同样的味道,只在登录时进行了代理检测,登录后就可以随便弄了。看了下发送的数据包,数据是直接获取的,并没有任何鉴权措施。正好我很久以前就想弄 RSS 订阅学校官网的动态的,就利用完美校园的接口写算了。</p><h2 id="Demo"><a class="header-anchor" href="#Demo">¶</a>Demo</h2><p><a href="http://106.15.194.74:99/feed" rel="external nofollow noopener noreferrer" target="_blank">http://106.15.194.74:99/feed</a></p><p>默认为湖南工业大学通知公告。可选参数:type: 2 为校内新闻,其余任意数字为通知公告cuxtomerId: 学校 ID ,默认为湖南工业大学。</p><h2 id="API接口"><a class="header-anchor" href="#API接口">¶</a>API接口</h2><p>校内新闻和通知公告为同一接口不同请求参数<a href="#%E8%AF%B7%E6%B1%82%E5%9C%B0%E5%9D%80">请求地址</a> | <a href="#%E5%93%8D%E5%BA%94%E6%A0%BC%E5%BC%8F">响应格式</a> | <a href="#http-%E8%AF%B7%E6%B1%82%E6%96%B9%E5%BC%8F">HTTP 请求方式</a> | <a href="#%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E6%8E%88%E6%9D%83">是否需要授权</a> | <a href="#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0">请求参数</a> | <a href="#%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%9C">响应结果</a> | <a href="#%E5%93%8D%E5%BA%94%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E">响应参数说明</a></p><h3 id="请求地址"><a class="header-anchor" href="#请求地址">¶</a>请求地址</h3><p><a href="https://www.17wanxiao.com/campus/campus/schoolinfo/load.action" rel="external nofollow noopener noreferrer" target="_blank">https://www.17wanxiao.com/campus/campus/schoolinfo/load.action</a></p><h3 id="响应格式"><a class="header-anchor" href="#响应格式">¶</a>响应格式</h3><p>JSON</p><h3 id="HTTP-请求方式"><a class="header-anchor" href="#HTTP-请求方式">¶</a>HTTP 请求方式</h3><p>POST</p><h3 id="是否需要授权"><a class="header-anchor" href="#是否需要授权">¶</a>是否需要授权</h3><p>否</p><h3 id="请求参数"><a class="header-anchor" href="#请求参数">¶</a>请求参数</h3><table><thead><tr><th style="text-align:center">参数名</th><th style="text-align:center">必须</th><th style="text-align:center">类型及范围</th><th style="text-align:left">说明</th></tr></thead><tbody><tr><td style="text-align:center">customerId</td><td style="text-align:center">是</td><td style="text-align:center">string 或 int,[784,869]</td><td style="text-align:left">学校 ID</td></tr><tr><td style="text-align:center">type</td><td style="text-align:center">是</td><td style="text-align:center">string 或 int,[0,2]</td><td style="text-align:left">请求数据类型,[0,1] 学校简介,2 校内新闻,3 通知公告</td></tr><tr><td style="text-align:center">pageSize</td><td style="text-align:center">是</td><td style="text-align:center">int</td><td style="text-align:left">一页包含的数据条数</td></tr><tr><td style="text-align:center">currPage</td><td style="text-align:center">是</td><td style="text-align:center">int</td><td style="text-align:left">当前页</td></tr></tbody></table><h3 id="响应结果"><a class="header-anchor" href="#响应结果">¶</a>响应结果</h3><table><thead><tr><th style="text-align:center">参数名</th><th style="text-align:center">类型及范围</th><th style="text-align:center">说明</th></tr></thead><tbody><tr><td style="text-align:center">totalCount</td><td style="text-align:center">int</td><td style="text-align:center">总计页数</td></tr><tr><td style="text-align:center">beginIndex</td><td style="text-align:center">int</td><td style="text-align:center">开始索引地址</td></tr><tr><td style="text-align:center">pageSize</td><td style="text-align:center">int</td><td style="text-align:center">包含的数据条数</td></tr><tr><td style="text-align:center">results</td><td style="text-align:center">list</td><td style="text-align:center">具体内容:{‘contentImages’: ‘[]’, ‘createTime’: ‘创建时间’, ‘creator’: ‘创建者’, ‘customerId’: 学校 ID, ‘enabled’: True, ‘firstImgUrl’: ‘’, ‘id’: (int)文章 id, ‘noticeFlag’: True, ‘summary’: ‘简介’, ‘title’: ‘标题’, ‘type’: 请求数据类型}</td></tr></tbody></table><p>在写的时候发现还有很多个学校也用的这个,大概有四五百个,顺手增加了自定义学校 ID 进行订阅。</p><h2 id="效果图"><a class="header-anchor" href="#效果图">¶</a>效果图</h2><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2020/04/14/5zCHN2JuLlvIDQ8.jpg" alt="Screenshot_2020-04-14-14-42-40-029_com.innologica.inoreader.jpg"><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2020/04/14/yFQP9JSxL4vlrit.jpg" alt="Screenshot_2020-04-14-14-44-48-658_com.innologica.inoreader.jpg"></p>]]></content>
<summary type="html">
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/Hkvmo8VnIyGM5zP.webp" alt="rss-40674_1280.png"></p>
</summary>
<category term="HUT" scheme="https://cxyzzz.gtihub.io/tags/HUT/"/>
</entry>
<entry>
<title>Android_rclone_backup</title>
<link href="https://cxyzzz.gtihub.io/posts/1258516f.html"/>
<id>https://cxyzzz.gtihub.io/posts/1258516f.html</id>
<published>2020-02-29T06:42:35.000Z</published>
<updated>2020-02-29T06:42:35.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/Yfqraxhwpugl3Uo.webp" width="500"><a id="more"></a><details><summary>点击显示更新信息</summary><div class="note success"><h3 id="2020-08-21-更新"><a class="header-anchor" href="#2020-08-21-更新">¶</a>2020.08.21 更新</h3><ol><li>设置 CHECKERS 为 16,TRANSFERS 为默认值(4)</li><li>更改 rclone 运行 CPU 优先级和 IO 优先级(nice: 19, ionice: 7)</li><li>添加 Github Gist</li></ol><script src="//gist.github.com/64546e524ae0de3111685926ed955785.js?file=syncone"></script><details><summary></summary></details></div></details><p>之前写了篇<a href="https://cxyzzz.github.io/posts/2a60e472.html" rel="external nofollow noopener noreferrer" target="_blank">在手机上使用 rclone 挂载网盘</a>的教程,文末附带了个备份脚步,最近看 rclone 文档新发现了几个参数,可以优化下之前的脚本,索性新开一篇文章记录以下。</p><h2 id="备份脚本"><a class="header-anchor" href="#备份脚本">¶</a>备份脚本</h2><p>之前的脚本用于备份其实还是可以的,只是要备份的路径是写死的,如果要增加就得修改脚步,也没办法排除某个或某类文件。新版主要增加的就是备份目录的配置,使用另一个文件存储备份目录,并且支持简单的正则过滤。这主要得益于 rclone 的 include(-from)、exclude(-from)、filter(-from) 参数,其功能基本可以从名字看出来,include 是包含,exclude 是不包含,filter 则是两者都有,带 from 则是从文件中读取规则。</p><p>脚本内容:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/system/bin/env bash</span></span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> -xe</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> pidof -o %PPID -s <span class="string">"syncone"</span>; <span class="keyword">then</span></span><br><span class="line"> <span class="built_in">exit</span> 1</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"></span><br><span class="line">LANG=en_US.UTF-8</span><br><span class="line">TZ=Asia/Shanghai</span><br><span class="line"></span><br><span class="line"><span class="comment"># rclone 执行文件路径,这里用的 termux 的</span></span><br><span class="line"><span class="built_in">export</span> RCLONE=/data/data/com.termux/files/usr/bin/rclone</span><br><span class="line"></span><br><span class="line"><span class="comment"># 本地备份根目录,比如要备份 /sdcard/a 和 /sdcard/b 就填 /sdcard 即可</span></span><br><span class="line"><span class="built_in">export</span> SOURCE=/sdcard</span><br><span class="line"></span><br><span class="line"><span class="comment"># 远程名</span></span><br><span class="line"><span class="built_in">export</span> REMOTE_NAME=love</span><br><span class="line"></span><br><span class="line"><span class="comment"># 远程文件夹</span></span><br><span class="line"><span class="built_in">export</span> REMOTE_DIR=/snapshot</span><br><span class="line"></span><br><span class="line"><span class="built_in">export</span> RCLONE_UPDATE=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_FAST_LIST=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_CHECKSUM=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_IGNORE_ERRORS=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_TRACK_RENAMES=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_NO_UPDATE_MODTIME=<span class="literal">true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_TRANSFERS=10</span><br><span class="line"></span><br><span class="line"><span class="comment"># 日志</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_LEVEL=INFO</span><br><span class="line"><span class="comment">#export RCLONE_SYSLOG=true</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_FILE=/sdcard/rclone.log</span><br><span class="line"></span><br><span class="line"><span class="comment"># 旧文件存放路径,必须是同一个远程,此处是备份到远程名为 $REMOTE_NAME 的 archive 目录下,并以 年/日期时间 为目录名进行区分,文件名不变。</span></span><br><span class="line"><span class="comment">#export RCLONE_BACKUP_DIR="$REMOTE_NAME:/archive/$(date +%Y)/$(date +%F_%R)"</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 与上面功能相同,区别是所有文件路径不变,以文件名加日期时间后缀进行区分</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_BACKUP_DIR=<span class="string">"<span class="variable">${REMOTE_NAME}</span>:/old_files"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_SUFFIX=<span class="string">"_<span class="variable">$(date +%Y-%m-%d_%H%M%S)</span>"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_SUFFIX_KEEP_EXTENSION=<span class="literal">true</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 过滤规则文件</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_FILTER_FROM=/sdcard/ADM/Scripts/rclone-filters.txt</span><br><span class="line"></span><br><span class="line"><span class="comment"># 清空日志</span></span><br><span class="line"><span class="comment">#:>${RCLONE_LOG_FILE}</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 检测网络链接</span></span><br><span class="line"><span class="comment"># 超时时间</span></span><br><span class="line">timeout=5</span><br><span class="line"></span><br><span class="line"><span class="comment"># 目标网站</span></span><br><span class="line">target=www.baidu.com</span><br><span class="line"></span><br><span class="line"><span class="comment"># 获取响应状态码</span></span><br><span class="line">ret_code=`curl -I -s --connect-timeout <span class="variable">$timeout</span> <span class="variable">$target</span> -w %{http_code} | tail -n1`</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> [ <span class="string">"<span class="variable">${ret_code}</span>"</span> = <span class="string">"200"</span> ]; <span class="keyword">then</span></span><br><span class="line"> termux-tools termux-tts-speak <span class="string">"网络连接正常,开始备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接正常,开始备份!"</span></span><br><span class="line"></span><br><span class="line"> <span class="variable">${RCLONE}</span> sync <span class="variable">${SOURCE}</span> <span class="variable">${REMOTE_NAME}</span>:<span class="variable">${REMOTE_DIR}</span></span><br><span class="line"></span><br><span class="line"> termux-tools termux-tts-speak <span class="string">"rclone 备份完成!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"备份完成!"</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">else</span></span><br><span class="line"> termux-tools termux-tts-speak <span class="string">"网络连接异常,停止备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接异常,停止备份!"</span></span><br><span class="line"><span class="keyword">fi</span></span><br></pre></td></tr></table></figure><p>如果没有安装 bash 需要把第一行的 bash 换成 sh,另外 termux-tools 是我封装的 Termux-API 的功能,需要安装 Termux 和 Termux-API,并把 termux-tools 文件放在系统 PATH 中(/system/bin 或 /system/xbin,或则指定文件路径),如果没有可以注释掉。</p><p>termux-tools 文件内容:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/system/xbin/bash</span></span><br><span class="line"><span class="built_in">export</span> LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib</span><br><span class="line"><span class="built_in">export</span> PATH=/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets</span><br><span class="line"></span><br><span class="line"><span class="keyword">case</span> <span class="variable">$1</span> <span class="keyword">in</span></span><br><span class="line"> termux-tts-speak)</span><br><span class="line"> termux-tts-speak <span class="variable">${@:2}</span></span><br><span class="line"> ;;</span><br><span class="line"> termux-toast)</span><br><span class="line"> termux-toast <span class="variable">${@:2}</span></span><br><span class="line"> ;;</span><br><span class="line"> termux-wallpaper)</span><br><span class="line"> termux-wallpaper <span class="variable">${@:2}</span></span><br><span class="line"> ;;</span><br><span class="line"><span class="keyword">esac</span></span><br></pre></td></tr></table></figure><p>过滤规则文件 rclone-filters.txt 内容</p><figure class="highlight diff"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="deletion">- *.bak</span></span><br><span class="line"><span class="deletion">- /ADM/.config/EntWare/**</span></span><br><span class="line"></span><br><span class="line"><span class="addition">+ /.fooView/**</span></span><br><span class="line"><span class="addition">+ /ADM/**</span></span><br><span class="line"><span class="addition">+ /baidu/**</span></span><br><span class="line"><span class="addition">+ /MyAndroidTools/**</span></span><br><span class="line"><span class="addition">+ /Pictures/**</span></span><br><span class="line"><span class="addition">+ /ViPER4Android/**</span></span><br><span class="line"><span class="addition">+ /Xposed_Edge_Icon/**</span></span><br><span class="line"><span class="addition">+ /YueDu/**</span></span><br><span class="line"><span class="addition">+ /YueDu3.0/**</span></span><br><span class="line"><span class="addition">+ /习/**</span></span><br><span class="line"></span><br><span class="line"><span class="deletion">- *</span></span><br></pre></td></tr></table></figure><p>每行一个,减号 <code>-</code> 代表排除,加号 <code>+</code> 代表包含,<code>/</code> 为根目录,即脚本中 <code>${SOURCE}</code> 指定的目录,如果使用了包含规则需在最后一行添加 <code>- *</code> , * 匹配所有目录,不包含子目录,** 匹配所有目录包扩子目录。</p><p>规则具体怎么用可以去官网查看 <a href="https://rclone.org/filtering/" rel="external nofollow noopener noreferrer" target="_blank">Rclone Filter</a>。</p><h2 id="定时任务"><a class="header-anchor" href="#定时任务">¶</a>定时任务</h2><p>光有备份脚步还不行,还得有定时任务来定时执行备份任务,毕竟每天手动执行备份也太麻烦了。定时任务我用的 Linux 比较常用的 crontable, Android 默认是没有的,但是可以安装 busybox 使用 busybox 的,而我所用的 ROOT 权限管理软件 Magisk 刚好自带了 busybox 可以直接使用。使用 contable 需要先启动其守护程序 crond,可以利用 Magisk 的功能,在 /data/adb/service.d 目录创建个文件,填入以下内容(也可以放在已安装模块的 <a href="http://service.sh" rel="external nofollow noopener noreferrer" target="_blank">service.sh</a> 文件中)</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/system/bin/sh</span></span><br><span class="line"><span class="comment"># Do NOT assume where your module will be located.</span></span><br><span class="line"><span class="comment"># ALWAYS use $MODDIR if you need to know where this script</span></span><br><span class="line"><span class="comment"># and module is placed.</span></span><br><span class="line"><span class="comment"># This will make sure your module will still work</span></span><br><span class="line"><span class="comment"># if Magisk change its mount point in the future</span></span><br><span class="line">MODDIR=<span class="variable">${0%/*}</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">while</span> [[ ! -d <span class="string">"/sdcard/Android"</span> ]]</span><br><span class="line"><span class="keyword">do</span></span><br><span class="line"> sleep 10</span><br><span class="line"><span class="keyword">done</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># run crond daemon</span></span><br><span class="line">crond -L /sdcard/crontabs/crond.log -c /sdcard/crontabs</span><br></pre></td></tr></table></figure><p>然后去手机内置存储创建 crontabs 文件夹,在 crontabs 目录创建个 root 文件在里面填写即可。我设置的是每天晚上十点执行一次备份,内容如下</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">10 22 * * * bash /sdcard/ADM/Scripts/syncone >/dev/null 2>&1</span><br></pre></td></tr></table></figure><p>除了使用 crontab 外还可以使用其它有定时执行 shell 功能的应用定时执行备份脚本即可,如 Tasker、fooView、Xposed edge 等。</p>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/Yfqraxhwpugl3Uo.webp" width="500">
</summary>
<category term="Android" scheme="https://cxyzzz.gtihub.io/tags/Android/"/>
</entry>
<entry>
<title>使用日历订阅工大就业中心宣讲会、双选会</title>
<link href="https://cxyzzz.gtihub.io/posts/ad3ad898.html"/>
<id>https://cxyzzz.gtihub.io/posts/ad3ad898.html</id>
<published>2019-10-23T11:16:52.000Z</published>
<updated>2019-10-23T11:16:52.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/BQtMTU3vR2sScPX.webp" width="500">接口均为抓包得出,理论上适用于其它也接入了此系统的学校。<a id="more"></a><div class="note success"><h3 id="2020-04-16-更新"><a class="header-anchor" href="#2020-04-16-更新">¶</a>2020-04-16 更新</h3><p>添加多家学校支持。<a href="https://github.com/cxyzzz/HUT_API/blob/master/app/HUT.py#L921" rel="external nofollow noopener noreferrer" target="_blank">学校列表</a></p></div><h2 id="Demo"><a class="header-anchor" href="#Demo">¶</a>Demo</h2><p><a href="http://106.15.194.74:99/job.ics" rel="external nofollow noopener noreferrer" target="_blank">http://106.15.194.74:99/job.ics</a></p><p>可选参数(默认为湖南工业大学校内宣讲会)</p><blockquote><p>school: 学校名称首字母缩写,eg: 湖南工业大学->hngydxmode: <code>getcareers</code>, <code>getjobfairs</code><br>type: <code>inner</code>, <code>outer</code></p></blockquote><p>另外支持就业中心网页的过滤条件。</p><p>eg: <a href="http://106.15.194.74:99/job.ics?sf=%E5%AE%A3%E8%AE%B2%E4%BC%9A&tp=%E6%A0%A1%E5%A4%96" rel="external nofollow noopener noreferrer" target="_blank">http://106.15.194.74:99/job.ics?sf=宣讲会&tp=校外</a></p><h2 id="API"><a class="header-anchor" href="#API">¶</a>API</h2><p>带 * 号的为可选参数,请求时可不带此关键字</p><h3 id="宣讲会"><a class="header-anchor" href="#宣讲会">¶</a>宣讲会</h3><h4 id="宣讲会日程"><a class="header-anchor" href="#宣讲会日程">¶</a>宣讲会日程</h4><p><code>http://job.hut.edu.cn/module/getcareers?start=#起始点#&count=#个数#&k=#企业名称关键字#&address=#地址#&professionals=#专业#&career_type=#类型#&type=#区域#&day=#日期#</code></p><blockquote><p>start: 起始点,即从第几个开始显示<br>count: 从 start 开始,显示 count 个数据<br>*k: 企业名称关键字,空为所有(也可使用 keyword 关键字)<br>*address: 企业地址*professionals: 专业,空为所有<br>*career_type: 类型,可选值:{实习、校招、包含实习,空为全部}<br>type: 范围,可选值:{校内:inner,校外:outer}<br>day: 日期:eg:2019-10-23,空为当前日期</p></blockquote><p>返回 json 对象</p><details><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code"</span>:状态码,</span><br><span class="line"> <span class="attr">"msg"</span>:<span class="string">"信息"</span>,</span><br><span class="line"> <span class="attr">"data"</span>:[{</span><br><span class="line"> <span class="attr">"overdue"</span>:<span class="string">"1"</span>,</span><br><span class="line"> <span class="attr">"is_yun"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"career_state"</span>:<span class="string">"企业状态"</span>,</span><br><span class="line"> <span class="attr">"sort_time"</span>:<span class="string">"170774"</span>,</span><br><span class="line"> <span class="attr">"career_talk_id"</span>:<span class="string">"255337"</span>,</span><br><span class="line"> <span class="attr">"company_id"</span>:<span class="string">"公司 ID"</span>,</span><br><span class="line"> <span class="attr">"company_name"</span>:<span class="string">"公司名称"</span>,</span><br><span class="line"> <span class="attr">"logo"</span>:<span class="string">"公司 LOGO 地址"</span>,</span><br><span class="line"> <span class="attr">"hotcount"</span>:<span class="string">"4"</span>,</span><br><span class="line"> <span class="attr">"professionals"</span>:<span class="string">"需求专业"</span>,</span><br><span class="line"> <span class="attr">"career_type"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"recruit_type"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"company_review"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"company_property"</span>:<span class="string">"公司属性"</span>,<span class="attr">"industry_category"</span>:<span class="string">"行业类别"</span>,</span><br><span class="line"> <span class="attr">"city_name"</span>:<span class="string">"城市名称"</span>,</span><br><span class="line"> <span class="attr">"meet_name"</span>:<span class="string">"会议名称(公司名称)"</span>,</span><br><span class="line"> <span class="attr">"meet_time"</span>:<span class="string">"时间"</span>,</span><br><span class="line"> <span class="attr">"school_name"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"地点"</span>,</span><br><span class="line"> <span class="attr">"room"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:<span class="string">"访问统计"</span>,</span><br><span class="line"> <span class="attr">"is_above_college_degree"</span>:<span class="string">"是否要求大学以上学历"</span>,</span><br><span class="line"> <span class="attr">"is_above_bachelor_degree"</span>:<span class="string">"是否要求本科以上学历"</span>,</span><br><span class="line"> <span class="attr">"is_above_master_degree"</span>:<span class="string">"是否要求硕士以上学历"</span>,</span><br><span class="line"> <span class="attr">"is_above_doctor_degree"</span>:<span class="string">"是否要求博士以上学历"</span>,</span><br><span class="line"> <span class="attr">"is_recommend"</span>:<span class="string">"是否推荐"</span>,</span><br><span class="line"> <span class="attr">"recommend_time"</span>:<span class="string">"推荐时间"</span>,</span><br><span class="line"> <span class="attr">"meet_day"</span>:<span class="string">"日期"</span></span><br><span class="line"> }]</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="企业详细信息页面"><a class="header-anchor" href="#企业详细信息页面">¶</a>企业详细信息页面</h4><p><code>http://static.bibibi.net/student/chance/preachmeetingdetails.html?token=yxqqnn0000000012&career_id=#企业 ID#</code></p><blockquote><p>career_id: 可从前面宣讲会返回值中获取</p></blockquote><h4 id="企业详细信息-API"><a class="header-anchor" href="#企业详细信息-API">¶</a>企业详细信息 API</h4><p><code>http://student.bibibi.net/index.php?r=career/ajaxgetcareerdetail&token=yxqqnn0000000012&career_id=#企业 ID#</code></p><blockquote><p>career_id: 可从前面宣讲会返回值中获取</p></blockquote><p>返回 json 对象</p><details><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code"</span>:状态码,</span><br><span class="line"> <span class="attr">"msg"</span>:<span class="string">"信息"</span>,</span><br><span class="line"> <span class="attr">"data"</span>:{</span><br><span class="line"> <span class="attr">"company_id"</span>:公司 ID,</span><br><span class="line"> <span class="attr">"career_talk_id"</span>:<span class="number">293513</span>,</span><br><span class="line"> <span class="attr">"remark"</span>:<span class="string">"备注(包含企业详细信息及职位详情,HTML 格式)"</span>,</span><br><span class="line"> <span class="attr">"school_name"</span>:<span class="string">"学校名称"</span>,</span><br><span class="line"> <span class="attr">"meet_name"</span>:<span class="string">"会议名称(企业名称)"</span>,</span><br><span class="line"> <span class="attr">"meet_time"</span>:<span class="string">"日期 时间"</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"地址"</span>,</span><br><span class="line"> <span class="attr">"room"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"map_lat"</span>:维度,</span><br><span class="line"> <span class="attr">"map_lng"</span>:经度,</span><br><span class="line"> <span class="attr">"map_address"</span>:<span class="string">"地图地址"</span>,</span><br><span class="line"> <span class="attr">"sign_up_type"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"sign_up_limit"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"sign_up_end_time"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"career_state"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_yun"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"yun_live_url"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"yun_vod_url"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:访问统计,</span><br><span class="line"> <span class="attr">"book_state"</span>:<span class="string">"已同意"</span>,</span><br><span class="line"> <span class="attr">"for_faculty"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"company_name"</span>:<span class="string">"公司名称"</span>,</span><br><span class="line"> <span class="attr">"is_overdue"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"is_limit"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"sign_up_count"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_sign_up"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"qr_code"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"company"</span>:{</span><br><span class="line"> <span class="attr">"company_id"</span>:公司 ID,</span><br><span class="line"> <span class="attr">"company_name"</span>:<span class="string">"公司名称"</span>,</span><br><span class="line"> <span class="attr">"short_name"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"keywords"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"logo_url"</span>:<span class="string">"公司 LOGO 地址"</span>,</span><br><span class="line"> <span class="attr">"industry_category"</span>:<span class="string">"行业类别"</span>,</span><br><span class="line"> <span class="attr">"company_property"</span>:公司属性,</span><br><span class="line"> <span class="attr">"scale"</span>:<span class="string">"规模"</span>,<span class="attr">"registered_capital"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"apply_url"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"url"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"review"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"introduction"</span>:<span class="string">"公司介绍"</span>,</span><br><span class="line"> <span class="attr">"label"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"stock_code"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"mobile"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"job_mobile"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"tel"</span>:<span class="string">"电话"</span>,</span><br><span class="line"> <span class="attr">"mail"</span>:<span class="string">"邮箱"</span>,</span><br><span class="line"> <span class="attr">"job_mail"</span>:<span class="string">"工作邮箱"</span>,</span><br><span class="line"> <span class="attr">"video_url"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"identification_pics"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"scene_pics"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"hr"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"province"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"city_name"</span>:<span class="string">"城市名称"</span>,</span><br><span class="line"> <span class="attr">"hotcount"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"source"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"verification_code"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"send_time"</span>:<span class="literal">null</span>,<span class="attr">"recent_career_talk_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"career_talk_qty"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"job_qty"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"practice_qty"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"invite_qr_img"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"公司地址"</span>,</span><br><span class="line"> <span class="attr">"post_code"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"is_yy_view"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"source_school_id"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"source_school"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"h5_url"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"company_no"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"org_code"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"password"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"openid"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"pre_company_name"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"province_area"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"area_name"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"is_sync"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"state"</span>:<span class="string">"状态"</span>,</span><br><span class="line"> <span class="attr">"no_pass"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"approve_by"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"approve_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"create_by"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"create_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"is_disable"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"modify_by"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"modify_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"m_company_id"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"is_auth"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"recruit_remark"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"last_login_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"last_recruit_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"last_deduct_time"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"old_company_id"</span>:<span class="literal">null</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"is_fav"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"hr"</span>:{</span><br><span class="line"> <span class="attr">"nick_name"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"logo_url"</span>:<span class="literal">null</span>},</span><br><span class="line"> <span class="attr">"docs"</span>:[],</span><br><span class="line"> <span class="attr">"practices"</span>:[],</span><br><span class="line"> <span class="attr">"jobs"</span>:[{</span><br><span class="line"> <span class="attr">"publish_id"</span>:发布 ID,</span><br><span class="line"> <span class="attr">"job_name"</span>:<span class="string">"岗位名称"</span>,</span><br><span class="line"> <span class="attr">"about_major"</span>:<span class="string">"相关专业"</span>,</span><br><span class="line"> <span class="attr">"job_number"</span>:<span class="string">"5"</span>,</span><br><span class="line"> <span class="attr">"city_name"</span>:<span class="string">"城市名称"</span>,</span><br><span class="line"> <span class="attr">"degree_require"</span>:<span class="string">"学历要求"</span>,</span><br><span class="line"> <span class="attr">"salary"</span>:<span class="string">"工资"</span>,</span><br><span class="line"> <span class="attr">"create_time"</span>:<span class="string">"创建时间"</span></span><br><span class="line"> }],</span><br><span class="line"> <span class="attr">"school_id"</span>:学校 ID,</span><br><span class="line"> <span class="attr">"notice"</span>:<span class="string">"通知(HTML 格式)"</span>,</span><br><span class="line"> <span class="attr">"is_auth"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_sign_in"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"credit_info"</span>:{</span><br><span class="line"> <span class="attr">"credit_id"</span>:信用 ID,</span><br><span class="line"> <span class="attr">"company_id"</span>:公司 ID,</span><br><span class="line"> <span class="attr">"info_integrity_grade"</span>:<span class="string">"资料完整度等级"</span>,</span><br><span class="line"> <span class="attr">"info_integrity_score"</span>:资料得分,</span><br><span class="line"> <span class="attr">"recruit_liveness_grade"</span>:<span class="string">"招聘活跃度等级"</span>,</span><br><span class="line"> <span class="attr">"recruit_liveness_score"</span>:招聘活跃度得分,</span><br><span class="line"> <span class="attr">"income_audit_grade"</span>:<span class="string">"高校审核等级"</span>,</span><br><span class="line"> <span class="attr">"income_audit_cnt"</span>:高校审核,</span><br><span class="line"> <span class="attr">"complaint_cnt"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"total_score"</span>:总得分,</span><br><span class="line"> <span class="attr">"ranking"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"update_time"</span>:<span class="string">"更新时间"</span>,</span><br><span class="line"> <span class="attr">"percent_beat"</span>:<span class="number">100</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"user_info"</span>:{</span><br><span class="line"> <span class="attr">"student_id"</span>:<span class="number">-1</span>,</span><br><span class="line"> <span class="attr">"student_key"</span>:<span class="string">""</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"bars"</span>:[],</span><br><span class="line"> <span class="attr">"moocs"</span>: 广告</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="岗位详细信息页面"><a class="header-anchor" href="#岗位详细信息页面">¶</a>岗位详细信息页面</h4><p><code>http://static.bibibi.net/student/chance/newestjobdetails.html?token=yxqqnn0000000012&publish_id=#发布 ID#</code></p><blockquote><p>publish_id: 可从前面企业详细信息 API 返回值中获取</p></blockquote><h4 id="岗位详细信息-API"><a class="header-anchor" href="#岗位详细信息-API">¶</a>岗位详细信息 API</h4><p><code>http://student.bibibi.net/index.php?r=job/ajaxgetjobdetail&token=yxqqnn0000000012&publish_id=#发布 ID#</code></p><blockquote><p>publish_id: 可从前面企业详细信息 API 返回值中获取</p></blockquote><p>返回 json 对象</p><details><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code"</span>:<span class="number">1</span>,</span><br><span class="line"> <span class="attr">"msg"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"data"</span>:{</span><br><span class="line"> <span class="attr">"publish_id"</span>:发布 ID,</span><br><span class="line"> <span class="attr">"job_name"</span>:<span class="string">"岗位名称"</span>,</span><br><span class="line"> <span class="attr">"about_major"</span>:<span class="string">"相关专业"</span>,</span><br><span class="line"> <span class="attr">"job_number"</span>:<span class="string">"5"</span>,</span><br><span class="line"> <span class="attr">"city_name"</span>:<span class="string">"城市名称"</span>,</span><br><span class="line"> <span class="attr">"degree_require"</span>:<span class="string">"学历要求"</span>,</span><br><span class="line"> <span class="attr">"salary"</span>:<span class="string">"工资"</span>,</span><br><span class="line"> <span class="attr">"create_time"</span>:<span class="string">"创建时间"</span>,</span><br><span class="line"> <span class="attr">"keywords"</span>:<span class="string">"关键字"</span>,</span><br><span class="line"> <span class="attr">"is_practice"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"publish_hr_openid"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"job_descript"</span>:<span class="string">"岗位介绍"</span>,</span><br><span class="line"> <span class="attr">"category"</span>:<span class="string">"类别"</span>,</span><br><span class="line"> <span class="attr">"welfare"</span>:<span class="string">"福利"</span>,</span><br><span class="line"> <span class="attr">"job_require"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:访问统计,</span><br><span class="line"> <span class="attr">"job_other"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"intro_apply"</span>:<span class="string">"简历投递方式"</span>,</span><br><span class="line"> <span class="attr">"work_address"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"job_status"</span>:<span class="string">"岗位状态"</span>,</span><br><span class="line"> <span class="attr">"publish_time"</span>:<span class="string">"2019年10月14日"</span>,</span><br><span class="line"> <span class="attr">"end_time"</span>:<span class="string">"2020年10月21日"</span>,</span><br><span class="line"> <span class="attr">"time_type"</span>:<span class="string">""</span>,<span class="attr">"amount_welfare_min"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"amount_welfare_max"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"source"</span>:<span class="string">"oper"</span>,</span><br><span class="line"> <span class="attr">"company"</span>:{</span><br><span class="line"> <span class="attr">"company_id"</span>:公司 ID,</span><br><span class="line"> <span class="attr">"company_name"</span>:<span class="string">"公司名称"</span>,</span><br><span class="line"> <span class="attr">"logo_url"</span>:<span class="string">"公司 LOGO 地址"</span>,</span><br><span class="line"> <span class="attr">"industry_category"</span>:<span class="string">"行业类别"</span>,</span><br><span class="line"> <span class="attr">"scale"</span>:<span class="string">"规模"</span>,</span><br><span class="line"> <span class="attr">"apply_url"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"review"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"introduction"</span>:<span class="string">"公司介绍"</span>,</span><br><span class="line"> <span class="attr">"job_mail"</span>:<span class="string">"工作邮箱"</span>,</span><br><span class="line"> <span class="attr">"video_url"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"city_name"</span>:<span class="string">"城市名称"</span>,</span><br><span class="line"> <span class="attr">"hotcount"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"公司地址"</span>,</span><br><span class="line"> <span class="attr">"state"</span>:<span class="string">"状态"</span>,</span><br><span class="line"> <span class="attr">"is_disable"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"scene_pics"</span>:<span class="literal">null</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"is_apply"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"apply_cnt"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"school_list"</span>:[],</span><br><span class="line"> <span class="attr">"is_subscribe"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"credit_info"</span>:{</span><br><span class="line"> <span class="attr">"credit_id"</span>:信用 ID,</span><br><span class="line"> <span class="attr">"company_id"</span>:公司 ID,</span><br><span class="line"> <span class="attr">"info_integrity_grade"</span>:<span class="string">"资料完整度等级"</span>,</span><br><span class="line"> <span class="attr">"info_integrity_score"</span>:资料得分,</span><br><span class="line"> <span class="attr">"recruit_liveness_grade"</span>:<span class="string">"招聘活跃度等级"</span>,</span><br><span class="line"> <span class="attr">"recruit_liveness_score"</span>:招聘活跃度得分,</span><br><span class="line"> <span class="attr">"income_audit_grade"</span>:<span class="string">"高校审核等级"</span>,</span><br><span class="line"> <span class="attr">"income_audit_cnt"</span>:高校审核,</span><br><span class="line"> <span class="attr">"complaint_cnt"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"total_score"</span>:总得分,</span><br><span class="line"> <span class="attr">"ranking"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"update_time"</span>:<span class="string">"更新时间"</span>,</span><br><span class="line"> <span class="attr">"percent_beat"</span>:<span class="number">100</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"user_info"</span>:{</span><br><span class="line"> <span class="attr">"student_key"</span>:<span class="string">""</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"moocs"</span>:广告,</span><br><span class="line"> <span class="attr">"is_fav"</span>:<span class="number">0</span></span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="企业信用信息页面"><a class="header-anchor" href="#企业信用信息页面">¶</a>企业信用信息页面</h4><p><code>http://static.bibibi.net/student/chance/company_credit.html?token=yxqqnn0000000012&company_id=#公司 ID#</code></p><blockquote><p>company_id: 可从前面企业详细信息 API 返回值中获取</p></blockquote><h4 id="企业信用信息-API"><a class="header-anchor" href="#企业信用信息-API">¶</a>企业信用信息 API</h4><p><code>http://student.bibibi.net/index.php?r=complaint/ajax_company_complaint_info&token=yxqqnn0000000012&company_id=#公司 ID#</code></p><blockquote><p>company_id: 可从前面企业详细信息 API 返回值中获取</p></blockquote><h3 id="双选会"><a class="header-anchor" href="#双选会">¶</a>双选会</h3><h4 id="双选会日程"><a class="header-anchor" href="#双选会日程">¶</a>双选会日程</h4><p><code>http://job.hut.edu.cn/module/getjobfairs?start=#起始点#&count=#个数#&type=#区域#&address=#地址#&organisers=#主办方#&keyword=#企业名称关键字#&day=#日期#</code></p><blockquote><p>start: 同宣讲会<br>count: 同宣讲会<br>*type: 同宣讲会<br>*address: 同宣讲会<br>*organisers: 组织者*keyword: 企业名称关键字,空为所有(也可使用 k 关键字)<br>*day: 范围,默认为校内,任意值为校外</p></blockquote><p>返回 json 对象</p><details><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code"</span>:状态码,</span><br><span class="line"> <span class="attr">"msg"</span>:<span class="string">"信息"</span>,</span><br><span class="line"> <span class="attr">"data"</span>:[{</span><br><span class="line"> <span class="attr">"overdue"</span>:<span class="string">"1"</span>,</span><br><span class="line"> <span class="attr">"sort_time"</span>:<span class="string">"53005"</span>,</span><br><span class="line"> <span class="attr">"fair_id"</span>:<span class="string">"4126"</span>,</span><br><span class="line"> <span class="attr">"inner_school"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"type"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"is_online"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"title"</span>:<span class="string">"标题"</span>,</span><br><span class="line"> <span class="attr">"organisers"</span>:<span class="string">"组织者"</span>,</span><br><span class="line"> <span class="attr">"school_name"</span>:<span class="string">"学校名称"</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"地址"</span>,</span><br><span class="line"> <span class="attr">"fact_c_count"</span>:<span class="string">"283"</span>,</span><br><span class="line"> <span class="attr">"plan_c_count"</span>:<span class="string">"500"</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:<span class="string">"访问统计"</span>,</span><br><span class="line"> <span class="attr">"meet_time"</span>:<span class="string">"时间"</span>,</span><br><span class="line"> <span class="attr">"is_recommend"</span>:<span class="string">"是否推荐"</span>,</span><br><span class="line"> <span class="attr">"recommend_time"</span>:<span class="string">"推荐时间"</span>,</span><br><span class="line"> <span class="attr">"is_inner"</span>:<span class="string">"0"</span>,</span><br><span class="line"> <span class="attr">"is_over"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"meet_day"</span>:<span class="string">"日期"</span>,</span><br><span class="line"> <span class="attr">"school_cnt"</span>:<span class="string">"181"</span>,</span><br><span class="line"> <span class="attr">"internet_cnt"</span>:<span class="string">"78"</span>,</span><br><span class="line"> <span class="attr">"total"</span>:<span class="number">259</span></span><br><span class="line"> }]</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="双选会详细信息页面"><a class="header-anchor" href="#双选会详细信息页面">¶</a>双选会详细信息页面</h4><p><code>http://job.hut.edu.cn/detail/jobfair?id=#ID#</code></p><blockquote><p>id: 可从前面返回值中 fair_id 获取</p></blockquote><h4 id="双选会详细信息-API"><a class="header-anchor" href="#双选会详细信息-API">¶</a>双选会详细信息 API</h4><p><code>https://s.bysjy.com.cn/index.php?r=chance/ajaxgetjobfairdetail&token=yxqqnn0000000012&fair_id=</code></p><blockquote><p>fair_id: 可从前面返回值中获取</p></blockquote><p>返回 json 对象</p><details><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code"</span>:状态码,</span><br><span class="line"> <span class="attr">"msg"</span>:<span class="string">"信息"</span>,</span><br><span class="line"> <span class="attr">"data"</span>:{</span><br><span class="line"> <span class="attr">"fair_id"</span>:双选会 ID,</span><br><span class="line"> <span class="attr">"school_id"</span>:学校 ID,</span><br><span class="line"> <span class="attr">"type"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"title"</span>:<span class="string">"标题"</span>,</span><br><span class="line"> <span class="attr">"organisers"</span>:<span class="string">"组织者"</span>,</span><br><span class="line"> <span class="attr">"school_name"</span>:<span class="string">"学校名称"</span>,</span><br><span class="line"> <span class="attr">"is_outer"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_show_company"</span>:<span class="number">1</span>,</span><br><span class="line"> <span class="attr">"is_online"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"address"</span>:<span class="string">"地址"</span>,</span><br><span class="line"> <span class="attr">"content"</span>:<span class="string">"内容(HTML 格式)"</span>,</span><br><span class="line"> <span class="attr">"scene_pics"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"professionals"</span>:<span class="string">""</span>,<span class="attr">"recruit_notices"</span>:<span class="string">"通知(HTML 格式)"</span>,</span><br><span class="line"> <span class="attr">"company_signup_type"</span>:<span class="string">"招聘信息报名"</span>,</span><br><span class="line"> <span class="attr">"map_address"</span>:<span class="string">""</span>,</span><br><span class="line"> <span class="attr">"map_lat"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"map_lng"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_need_ticket"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"is_need_deposit"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"view_count"</span>:访问统计,</span><br><span class="line"> <span class="attr">"meet_time"</span>:<span class="string">"时间"</span>,</span><br><span class="line"> <span class="attr">"is_overdue"</span>:<span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"ticket"</span>:<span class="literal">null</span>,</span><br><span class="line"> <span class="attr">"is_fav"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"docs"</span>:[],</span><br><span class="line"> <span class="attr">"companies"</span>:[],</span><br><span class="line"> <span class="attr">"is_auth"</span>:<span class="number">0</span>,</span><br><span class="line"> <span class="attr">"job_list"</span>:[],</span><br><span class="line"> <span class="attr">"is_arbeitsagentur_jobfair"</span>:<span class="number">0</span></span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h2 id="效果图"><a class="header-anchor" href="#效果图">¶</a>效果图</h2><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/10/23/YEznJiaecbr4PTV.jpg" alt="IMG_20191023_220926.jpg"></p>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/BQtMTU3vR2sScPX.webp" width="500">
接口均为抓包得出,理论上适用于其它也接入了此系统的学校。
</summary>
<category term="HUT" scheme="https://cxyzzz.gtihub.io/tags/HUT/"/>
</entry>
<entry>
<title>小米浏览器去广告、隐私保护增强</title>
<link href="https://cxyzzz.gtihub.io/posts/b788c5ea.html"/>
<id>https://cxyzzz.gtihub.io/posts/b788c5ea.html</id>
<published>2019-10-16T06:20:06.000Z</published>
<updated>2019-10-16T06:20:06.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/10/16/jronISYk9gXcUxN.jpg" width="500"><a id="more"></a><details><summary>点击显示更新信息</summary><div class="note success"><h3 id="2019-3-14-更新"><a class="header-anchor" href="#2019-3-14-更新">¶</a>2019.3.14 更新</h3><ol><li>当官方规则 API 返回空数据时跳过添加官方规则</li><li>添加显示单个订阅规则调试(可能有误差)以及添加进度</li><li>使用 <a href="https://github.com/YUX-IO/ffp" rel="external nofollow noopener noreferrer" target="_blank">YUX-IO/ffp</a> 的 demo 服务 <a href="https://ffp.yux.io/" rel="external nofollow noopener noreferrer" target="_blank">https://ffp.yux.io/</a> 代理下载规则,加速规则下载。(代理无法使用时会回退使用原地址)</li><li>增加自动替换、防覆盖功能(防覆盖需要 chattr 命令支持,magisk 用户可以将 <code>/sbin/.magisk/busybox/chattr</code> 链接到 <code>/system/xbin/chattr</code>)</li><li>添加 github gist 地址。</li></ol><details><summary>点击显示 Gist</summary><script src="//gist.github.com/f720d18d00cb8f46206d4b4f109c5b7f.js?file=ad.py"></script></details></div></details><p>一直以来我都是把自带浏览器删除用 via 替换的,但 MIUI 在某个版本升级后如果卸载了自带浏览器会导致快应用闪退,刚好 MIUI 浏览器更新了简洁模式界面还不错,就决定用回自带浏览器了。</p><p>当然即便是启用简洁模式也还是有很多不好的地方,比如菜单栏的广告、搜索栏热点推荐、无法自定义搜索引擎等等。习惯性去数据目录看看,发现了对应的配置文件,既然是需要从本地读取那就好办了,直接把文件内容清空去掉读写权限,设置不可更该属性就好。</p><p>MIUI 浏览器的去广告功能还是很强的,规则文件存储在 <code>/data/data/com.android.browser/files/data/adblock/</code> 目录下,其中 <code>miui_blacklist.json</code> 就是规则文件了,打开看可以看到存储规则是这样的</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'effectiveTime': int(time.time() * 1000),</span><br><span class="line"> 'flag': 0,</span><br><span class="line"> 'id': id,</span><br><span class="line"> 'network': 255,</span><br><span class="line"> 'rule': line,</span><br><span class="line"> 'updatetime': int(time.time() * 1000)</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>其中最重要的就是 rule 项,由于文件过大,内容还都是压缩的,我就没仔细看了,直接试着将 PC 上的去广告规则添加进去,经测试是有效的,所以最终有了这篇文章。</p><p>既然知道可以使用 PC 上的 ABP 规则,那么接下来就是将 ABP 的规则添加到 MIUI 自带规则中去,这里我选择使用 Python 来处理。从前面我们知道了一条规则的内容,接下来就很好办了,先将自带的规则导入,然后遍历 ABP 规则,把除头部及注释的内容,按上面的格式拼接,其中 effectiveTime 和 updatetime 均为距 1970 年的秒数(自带规则里这两个的值是不一样的,这里为了方便使用同一个值),使用 time 模块的 time 获取毫秒数将其乘以 1000 取整即可,然后 append 到自带规则中即可,最后再 dump 到文件中。至此就大功告成了。</p><p>另外还有个白名单文件,建议把它清空。</p><p>代码:</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> json</span><br><span class="line"><span class="keyword">import</span> time</span><br><span class="line"><span class="keyword">import</span> zipfile</span><br><span class="line"><span class="keyword">import</span> tempfile</span><br><span class="line"><span class="keyword">from</span> urllib <span class="keyword">import</span> request</span><br><span class="line"></span><br><span class="line">miui_api = <span class="string">'https://api.browser.miui.com/bsr/adRuleBlock/miuiadblock'</span></span><br><span class="line">sub_urls = [<span class="string">'https://easylist-downloads.adblockplus.org/easylistchina.txt'</span>,</span><br><span class="line"> <span class="string">'https://easylist-downloads.adblockplus.org/easyprivacy.txt'</span>,</span><br><span class="line"> <span class="string">'https://easylist-downloads.adblockplus.org/easylist.txt'</span>,</span><br><span class="line"> <span class="string">'https://raw.githubusercontent.com/xinggsf/Adblock-Plus-Rule/master/ABP-FX.txt'</span>,</span><br><span class="line"> <span class="string">'https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt'</span>,</span><br><span class="line"> <span class="string">'http://tools.yiclear.com/ChinaList2.0.txt'</span></span><br><span class="line"> ]</span><br><span class="line"></span><br><span class="line">print(<span class="string">"正在从 MIUI API 获取数据下载地址"</span>)</span><br><span class="line">req = request.Request(miui_api)</span><br><span class="line">res = request.urlopen(req).read().decode(<span class="string">'utf-8'</span>)</span><br><span class="line">print(<span class="string">"地址获取成功"</span>)</span><br><span class="line"></span><br><span class="line">res = json.loads(res)</span><br><span class="line">tmpdir = tempfile.mkdtemp()</span><br><span class="line">print(<span class="string">"正在下载压缩包"</span>)</span><br><span class="line">req = request.Request(res[<span class="string">'miuiadblock'</span>][<span class="string">'download_url'</span>])</span><br><span class="line">res = request.urlopen(req).read()</span><br><span class="line">tmpfile = tmpdir + <span class="string">'/'</span> + <span class="string">'tmp.zip'</span></span><br><span class="line"><span class="keyword">with</span> open(tmpfile, <span class="string">'wb'</span>) <span class="keyword">as</span> f:</span><br><span class="line"> f.write(res)</span><br><span class="line">print(<span class="string">"压缩包下载完成,开始解压"</span>)</span><br><span class="line">file_zip = zipfile.ZipFile(tmpfile, <span class="string">'r'</span>)</span><br><span class="line">file_zip.extractall(tmpdir)</span><br><span class="line">print(<span class="string">"解压完成,开始数据合并"</span>)</span><br><span class="line">print(<span class="string">'*'</span>*<span class="number">50</span>)</span><br><span class="line">miui_blacklist = tmpdir + <span class="string">'/'</span> + <span class="string">'blacklist.json'</span></span><br><span class="line">default = json.load(open(miui_blacklist, <span class="string">'r'</span>))</span><br><span class="line"></span><br><span class="line">id = <span class="number">66666</span></span><br><span class="line"><span class="keyword">for</span> url <span class="keyword">in</span> sub_urls:</span><br><span class="line"> filename = url.split(<span class="string">'/'</span>)[<span class="number">-1</span>]</span><br><span class="line"> req = request.Request(url)</span><br><span class="line"> <span class="keyword">while</span>(<span class="literal">True</span>):</span><br><span class="line"> <span class="keyword">try</span>:</span><br><span class="line"> print(<span class="string">"正在下载 %s"</span> % filename)</span><br><span class="line"> res = request.urlopen(req).read().decode(<span class="string">'utf-8'</span>)</span><br><span class="line"> <span class="keyword">if</span>(res):</span><br><span class="line"> print(<span class="string">"开始添加 %s"</span> % filename)</span><br><span class="line"> <span class="keyword">for</span> line <span class="keyword">in</span> res.split(<span class="string">'\n'</span>):</span><br><span class="line"> <span class="keyword">if</span>(<span class="keyword">not</span> (line.startswith(<span class="string">'['</span>) <span class="keyword">or</span> line.startswith(<span class="string">'!'</span>))):</span><br><span class="line"> data = {</span><br><span class="line"> <span class="string">'effectiveTime'</span>: int(time.time() * <span class="number">1000</span>),</span><br><span class="line"> <span class="string">'flag'</span>: <span class="number">0</span>,</span><br><span class="line"> <span class="string">'id'</span>: id,</span><br><span class="line"> <span class="string">'network'</span>: <span class="number">255</span>,</span><br><span class="line"> <span class="string">'rule'</span>: line,</span><br><span class="line"> <span class="string">'updatetime'</span>: int(time.time() * <span class="number">1000</span>)</span><br><span class="line"> }</span><br><span class="line"> default[<span class="string">'data'</span>].append(data)</span><br><span class="line"> id += <span class="number">1</span></span><br><span class="line"> print(<span class="string">"%s 添加完成"</span> % filename)</span><br><span class="line"> <span class="keyword">break</span></span><br><span class="line"> <span class="keyword">except</span> Exception <span class="keyword">as</span> err:</span><br><span class="line"> print(err)</span><br><span class="line"> print(<span class="string">'sleep 3s'</span>)</span><br><span class="line"> time.sleep(<span class="number">3</span>)</span><br><span class="line">json.dump(default, open(<span class="string">'miui_blacklist_opt.json'</span>, <span class="string">'w'</span>))</span><br></pre></td></tr></table></figure><p>最后再分享个去除 QQ 自定义字体、礼物特效;修改 MIUI 浏览器搜索引擎;去除 X5、TBS 内核 的 shell 脚本</p><details><summary>点击显示 Gist</summary><script src="//gist.github.com/e4f2315dc29b89fd5d7d569c2b4f3ee9.js?file=Pure.sh"></script></details>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/10/16/jronISYk9gXcUxN.jpg" width="500">
</summary>
<category term="MIUI" scheme="https://cxyzzz.gtihub.io/tags/MIUI/"/>
</entry>
<entry>
<title>湖南工业大学电费查询</title>
<link href="https://cxyzzz.gtihub.io/posts/328206c9.html"/>
<id>https://cxyzzz.gtihub.io/posts/328206c9.html</id>
<published>2019-09-22T13:09:43.000Z</published>
<updated>2019-09-22T13:09:43.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/tDgNBEq7ZkGxnc5.webp" width="500">接口均为从完美校园抓包得出,理论上适用于其它也接入了完美校园的学校。<a id="more"></a>## Demo<p><a href="http://106.15.194.74:99/df?xq=%E6%B2%B3%E8%A5%BF&ld=25&qs=117" rel="external nofollow noopener noreferrer" target="_blank">http://106.15.194.74:99/df?xq=河西&ld=25&qs=117</a><br>xq:校区,可选值为 <code>河东</code>、<code>河西</code><br>ld:楼栋<br>qs:寝室号</p><h2 id="getJzinfo"><a class="header-anchor" href="#getJzinfo">¶</a>getJzinfo</h2><p><code>http://h5cloud.17wanxiao.com:8080/CloudPayment/user/getRoom.do?payProId=#支付订单ID#&schoolcode=#学校代码#&optype=#状态码#&areaid=#校区ID#&buildid=#楼栋ID#&unitid=#单元ID#&levelid=#等级ID#&businesstype=#业务类型#</code></p><p>以下查询中不变的值:<code>payProId</code> 随机生成一个大于1000的整数即可<code>schoolcode</code> 为学校代码,请自行查询<code>businesstype=2</code></p><h3 id="获取校区信息"><a class="header-anchor" href="#获取校区信息">¶</a>获取校区信息</h3><blockquote><p>optype=1<br>arieaid=0<br>buildid=0<br>unitid=0<br>levelid=0</p></blockquote><h3 id="获取楼栋信息"><a class="header-anchor" href="#获取楼栋信息">¶</a>获取楼栋信息</h3><blockquote><p>optype=2<br>areaid=#从前面获取到的校区信息中查找#<br>buildid=0<br>unitid=0<br>levelid=0</p></blockquote><h3 id="获取寝室信息"><a class="header-anchor" href="#获取寝室信息">¶</a>获取寝室信息</h3><blockquote><p>optype=4<br>areaid=#从前面获取到的校区信息中查找#<br>buildid=#从前面获取到的楼栋信息中查找#<br>unitid=0<br>levelid=-1</p></blockquote><h2 id="查询电费"><a class="header-anchor" href="#查询电费">¶</a>查询电费</h2><p><code>http://h5cloud.17wanxiao.com:8080/CloudPayment/user/getRoomState.do?payProId=#订单ID#&schoolcode=#学校ID#&businesstype=#业务类型#&roomverify=#寝室编号#</code></p><blockquote><p>payProId 随机生成一个整数即可<br>schoolcode 为学校代码,请自行查询<br>businesstype=2<br>roomverify #从前面获取到的寝室信息中查找#</p></blockquote>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/tDgNBEq7ZkGxnc5.webp" width="500">
接口均为从完美校园抓包得出,理论上适用于其它也接入了完美校园的学校。
</summary>
<category term="HUT" scheme="https://cxyzzz.gtihub.io/tags/HUT/"/>
</entry>
<entry>
<title>HUT_QZAPI</title>
<link href="https://cxyzzz.gtihub.io/posts/d1e775bf.html"/>
<id>https://cxyzzz.gtihub.io/posts/d1e775bf.html</id>
<published>2019-09-09T14:57:55.000Z</published>
<updated>2019-09-09T14:57:55.000Z</updated>
<content type="html"><![CDATA[<p>HUT 强智教务系统 API</p><p>地址 <a href="https://github.com/cxyzzz/HUT_QIANZHI_API" rel="external nofollow noopener noreferrer" target="_blank">https://github.com/cxyzzz/HUT_QIANZHI_API</a></p><p>参考 <a href="https://github.com/TLingC/QZAPI" rel="external nofollow noopener noreferrer" target="_blank">https://github.com/TLingC/QZAPI</a></p><a id="more"></a><h2 id="Demo"><a class="header-anchor" href="#Demo">¶</a>Demo</h2><p><a href="http://106.15.194.74:99" rel="external nofollow noopener noreferrer" target="_blank">http://106.15.194.74:99</a></p><h2 id="API列表"><a class="header-anchor" href="#API列表">¶</a>API列表</h2><h3 id="authUser"><a class="header-anchor" href="#authUser">¶</a>authUser</h3><p>登录帐号<br><code>http://218.75.197.123:83/app.do?method=authUser&xh=#学号#&pwd=#密码#</code></p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'success': 登录状态,</span><br><span class="line"> 'token': 'Token',</span><br><span class="line"> 'user':{</span><br><span class="line"> 'scsj': 未知,</span><br><span class="line"> 'sjyzm': 未知,</span><br><span class="line"> 'useraccount': '登录用户',</span><br><span class="line"> 'usertype': '用户类型,学生为 2',</span><br><span class="line"> 'userdwmc': '学院',</span><br><span class="line"> 'username': '用户姓名',</span><br><span class="line"> 'userpasswd': '用户密码'</span><br><span class="line"> },</span><br><span class="line"> 'userdwmc': '学院',</span><br><span class="line"> 'userrealname': '用户姓名',</span><br><span class="line"> 'usertype': '用户类型,学生为 2'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>之后的查询均需携带 Token</p><h3 id="getStudentIdInfo"><a class="header-anchor" href="#getStudentIdInfo">¶</a>getStudentIdInfo</h3><p><s>获取学号信息(已禁止查询)<br><code>http://218.75.197.123:83/app.do?method=getStudentIdInfo&xh=#学号#</code></s></p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'bjid':'未知',</span><br><span class="line"> 'ndzyid':'未知',</span><br><span class="line"> 'yxid':'未知',</span><br><span class="line"> 'xxdm':'未知'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="getCurrentTime"><a class="header-anchor" href="#getCurrentTime">¶</a>getCurrentTime</h3><p>获取当前时间、周次、学年等信息<br><code>http://218.75.197.123:83/app.do?method=getCurrentTime&currDate=#查询日期#</code></p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'e_time': '周结束时间',</span><br><span class="line"> 's_time': '周开始时间',</span><br><span class="line"> 'xnxqh': '学年',</span><br><span class="line"> 'zc': '周次'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="getKbcxAzc"><a class="header-anchor" href="#getKbcxAzc">¶</a>getKbcxAzc</h3><p>获取课程表<br><code>http://218.75.197.123:83/app.do?method=getKbcxAzc&xh=#学号#&xnxqid=#学年#&zc=#周次#</code></p><p><strong>返回值</strong><br>返回 json 数组</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">[</span><br><span class="line"> {</span><br><span class="line"> 'jsmc': '教室名称',</span><br><span class="line"> 'jssj': '下课时间',</span><br><span class="line"> 'jsxm': '教师姓名',</span><br><span class="line"> 'kcmc': '课程名称',</span><br><span class="line"> 'kkzc': '课程教学周',</span><br><span class="line"> 'kcsj': '课程时间(eg: 50304 表示星期五第3-4节)',</span><br><span class="line"> 'kssj': '上课时间',</span><br><span class="line"> 'sjbz': '未知'</span><br><span class="line"> }</span><br><span class="line">]</span><br></pre></td></tr></table></figure><h3 id="getXqcx"><a class="header-anchor" href="#getXqcx">¶</a>getXqcx</h3><p>获取校区<br><code>http://218.75.197.123:83/app.do?method=getXqcx</code></p><p><strong>返回值</strong><br>返回 json 数组</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">[</span><br><span class="line"> {</span><br><span class="line"> 'xqid': '1',</span><br><span class="line"> 'xqmc': '河东校区'</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> 'xqid': '2',</span><br><span class="line"> 'xqmc': '河西校区'</span><br><span class="line"> }</span><br><span class="line">]</span><br></pre></td></tr></table></figure><h3 id="getJxlcx"><a class="header-anchor" href="#getJxlcx">¶</a>getJxlcx</h3><p>获取校区教学楼信息<br><code>http://218.75.197.123:83/app.do?method=getJxlcx&xqid=#校区ID#</code></p><p><strong>返回值</strong><br>返回 json 数组</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[</span><br><span class="line"> {</span><br><span class="line"> 'jzwid': '教学楼 ID',</span><br><span class="line"> 'jzwmc': '教学楼名称'</span><br><span class="line"> }</span><br><span class="line">]</span><br></pre></td></tr></table></figure><h3 id="getKxJscx"><a class="header-anchor" href="#getKxJscx">¶</a>getKxJscx</h3><p>获取空教室<br><code>http://218.75.197.123:83/app.do?method=getKxJscx&time=#查询日期#&idleTime=#见下方说明#&xqid=#校区ID#&jxlid=#教学楼ID#&classroomNumber=_#可容纳人数,见下方说明#</code></p><p>xqid(校区 ID)、jxlid(教学楼 ID)、classroomNumber(教室容纳人数)是可选参数</p><p><strong>idleTime取值</strong></p><blockquote><p>allday:全天<br>am:上午<br>pm:下午<br>night:晚上</p></blockquote><p><strong>classroomNumber</strong></p><blockquote><p>30:30人以下<br>30-40:30-40人<br>40-50:40-50人<br>60:60人以上</p></blockquote><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'data': [</span><br><span class="line"> {</span><br><span class="line"> 'jsList': [</span><br><span class="line"> {</span><br><span class="line"> 'jsh': '未知',</span><br><span class="line"> 'jsid': '教室 ID',</span><br><span class="line"> 'jsmc': '教室名称',</span><br><span class="line"> 'jzwid': '所在楼ID',</span><br><span class="line"> 'jzwmc': '教学楼名称',</span><br><span class="line"> 'xqmc': '校区名称',</span><br><span class="line"> 'yxzws': 教室容量,</span><br><span class="line"> 'zws': 未知,和yxzws相同</span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> 'jxl': '教学楼'</span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> 'success': 状态,</span><br><span class="line"> 'xnxqid': '学年'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="getUserInfo"><a class="header-anchor" href="#getUserInfo">¶</a>getUserInfo</h3><p>获取帐号信息<br><code>http://218.75.197.123:83/app.do?method=getUserInfo&xh=#学号#</code></p><p>ps: 学号可以是其他人的</p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'bj': '班级',</span><br><span class="line"> 'dh': '电话',</span><br><span class="line"> 'dqszj': '未知,与入学年份、年级相同',</span><br><span class="line"> 'email': '电子邮箱',</span><br><span class="line"> 'fxzy': '辅修专业',</span><br><span class="line"> 'ksh': '高考考号',</span><br><span class="line"> 'nj': '年级',</span><br><span class="line"> 'qq': 'QQ 号',</span><br><span class="line"> 'rxnf': '入学年份',</span><br><span class="line"> 'usertype': '用户类别,学生为 2',</span><br><span class="line"> 'xb': '性别',</span><br><span class="line"> 'xh': '学号',</span><br><span class="line"> 'xm': '姓名',</span><br><span class="line"> 'xz': 未知,</span><br><span class="line"> 'yxmc':'院系名称',</span><br><span class="line"> 'zymc':'专业名称'</span><br><span class="line"> }</span><br></pre></td></tr></table></figure><h3 id="getXnxq"><a class="header-anchor" href="#getXnxq">¶</a>getXnxq</h3><p>获取学年和学期信息<br><code>http://218.75.197.123:83/app.do?method=getXnxq&xh=#学号#</code></p><p><strong>返回值</strong><br>返回 json 数组</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">[</span><br><span class="line"> {</span><br><span class="line"> 'isdqxq': '是否为当前学期,1 为是,0 为否',</span><br><span class="line"> 'xnxq01id': '学年id',</span><br><span class="line"> 'xqmc': '学年名称'</span><br><span class="line"> }</span><br><span class="line">]</span><br></pre></td></tr></table></figure><h3 id="getCjcx"><a class="header-anchor" href="#getCjcx">¶</a>getCjcx</h3><p>获取成绩信息<br><code>http://218.75.197.123:83/app.do?method=getCjcx&xh=#学号#&xnxqid=#学期学年ID#</code></p><p>ps: 此处学号可以是其他人的</p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'result': [</span><br><span class="line"> {</span><br><span class="line"> 'bz': 未知,</span><br><span class="line"> 'cjbsmc': 未知,</span><br><span class="line"> 'kclbmc': '课程类别名称',</span><br><span class="line"> 'kcmc': '课程名称',</span><br><span class="line"> 'kcxzmc': '课程性质名称',</span><br><span class="line"> 'kcywmc': 未知,</span><br><span class="line"> 'ksxzmc': '考试性质名称',</span><br><span class="line"> 'xf': 学分,</span><br><span class="line"> 'xm': '姓名',</span><br><span class="line"> 'xqmc': '学期名称',</span><br><span class="line"> 'zcj': '总成绩'</span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> 'success': 状态</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="getKscx"><a class="header-anchor" href="#getKscx">¶</a>getKscx</h3><p>获取考试信息<br><code>http://218.75.197.123:83/app.do?method=getKscx&xh=#学号#</code></p><p><strong>返回值</strong><br>返回 json 对象</p><figure class="highlight"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> 'bj': '班级',</span><br><span class="line"> 'bz': 未知,</span><br><span class="line"> 'jsmc': '教室名称',</span><br><span class="line"> 'kcmc': '课程名称',</span><br><span class="line"> 'ksjc': '考试节次',</span><br><span class="line"> 'ksmc': '考试名称',</span><br><span class="line"> 'ksqssj': '可欧式时间、日期',</span><br><span class="line"> 'xm': '姓名'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h3 id="getEarlyWarnInfo"><a class="header-anchor" href="#getEarlyWarnInfo">¶</a>getEarlyWarnInfo</h3><p>获取学籍预警信息<br><code>http://218.75.197.123:83/app.do?method=getEarlyWarnInfo&xh=#学号#&history=#见下方说明#</code></p><p><strong>history取值</strong></p><blockquote><p>0:当前预警<br>1:历史预警</p></blockquote><p><strong>返回值</strong><br>条件所限,尚未明晰</p><h2 id="示例"><a class="header-anchor" href="#示例">¶</a>示例</h2><ol><li><p>支持导出课表为 ics 日历文件</p></li><li><p>WEB 展示(不会前端,使用博客为模板写了课表展示,暂未完善)<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/09/10/Ns3qxcToGBQblIv.png" alt="Screenshot_20190910_212948.png"></p></li></ol>]]></content>
<summary type="html">
<p>HUT 强智教务系统 API</p>
<p>地址 <a href="https://github.com/cxyzzz/HUT_QIANZHI_API" rel="external nofollow noopener noreferrer" target="_blank">https://github.com/cxyzzz/HUT_QIANZHI_API</a></p>
<p>参考 <a href="https://github.com/TLingC/QZAPI" rel="external nofollow noopener noreferrer" target="_blank">https://github.com/TLingC/QZAPI</a></p>
</summary>
<category term="HUT" scheme="https://cxyzzz.gtihub.io/tags/HUT/"/>
</entry>
<entry>
<title>Android 使用 Rclone 挂载网盘</title>
<link href="https://cxyzzz.gtihub.io/posts/2a60e472.html"/>
<id>https://cxyzzz.gtihub.io/posts/2a60e472.html</id>
<published>2019-07-16T14:22:05.000Z</published>
<updated>2019-07-16T14:22:05.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/HiShoot_20190902_152747.webp" width="500"><a id="more"></a><details><summary>点击显示更新信息</summary><div class="note success"><h3 id="2019-08-09-更新"><a class="header-anchor" href="#2019-08-09-更新">¶</a>2019.08.09 更新</h3><p>版本 v1.7.b</p><ol><li>添加网络检测开关,默认启用,可在<code>.global.param</code>文件中添加<code>NETCHK=0</code>关闭</li><li>修复当某一 remote 启用绑定到 sdcard 时在其后面的所有 remote 默认启用绑定到 sdcard 的 bug</li></ol><h3 id="2019-08-08-更新"><a class="header-anchor" href="#2019-08-08-更新">¶</a>2019.08.08 更新</h3><p>版本 v1.7a</p><ol><li>修复了 custom_param 不生效的问题</li><li>添加了更多可自定义的默认参数</li><li>可以在<code>.*.param</code>中添加<code>HTTP=0</code>,<code>FTP=0</code>禁用 HTTP 和 FTP</li><li>更改启用绑定到 sdcard 的方式,在<code>.*.param</code>文件中添加<code>BINDSD=1</code>启用,以前版本的添加 .bindsd 文件失效</li><li>更改<code>BINDPOINT=</code>为<code>SDBINDPOINT=</code>,默认为/sdcard/Cloud/$REMOTE,要更改可在<code>.*.param</code>文件中添加<code>SDBINDPOINT=xx</code>,xx为要绑定的 /sdcard 下的目录名(直接填目录名,不需要路径)</li></ol><h3 id="2019-08-02-更新"><a class="header-anchor" href="#2019-08-02-更新">¶</a>2019.08.02 更新</h3><p>作者更新了两个版本,v1.5 支持绑定到 /sdcard/cloud/ 了,在配置目录创建 <code>.bindsd</code> 文件启用,另外加入了网络检测,检测地址为 <a href="http://google.com" rel="external nofollow noopener noreferrer" target="_blank">google.com</a> ,需自行解决网络问题。v1.6 (当前版本) <code>.*.parame</code> 配置文件中增加了<code>ADD_PARAMS</code>和<code>REPLACE_PARAMS</code>用于添加和替换 rclone 挂载参数; 添加了一个 <code>.blobal.param</code> 配置文件用于修改全局参数,README 中只写了 <code>NETCHK_ADDR</code>和<code>BINDPOINT</code>用于修改网络检测地址和挂载点,还可以添加其他的值,但目前并不是很完善,部分默认参数无法修改。</p></div></details><div class="note info"><h3 id="提示"><a class="header-anchor" href="#提示">¶</a>提示</h3><ol><li>使用模块前建议先仔细阅读模块说明(README),这个模块并不是装上就能用的。</li><li>所有 param 文件中最后必须空一行,不然无法识别最后一行的内容。</li></ol></div><p>先来两张效果图:</p><details><summary>点击显示图片</summary><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/07/16/5d2dc2896ef0e90595.png" alt="Screenshot_2019-07-16-20-25-42-875_bin.mt.plus.png"></p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/07/16/5d2dc289cbdc671568.png" alt="Screenshot_2019-07-16-20-14-53-809_com.termux.png"></p></details><p>不久前了解到了 <a href="https://rclone.org/" rel="external nofollow noopener noreferrer" target="_blank">rclone</a> 这个东西,rclone 是一个支持在多个网盘及存储服务同步文件和文件夹的命令行程序,使用 GO 语言编写。支持的服务列表可以在官网查看,像微软的 Onedrive 、谷歌的 GDrive 、阿里云对象存储以及支持 FTP、webdav 等协议的存储服务都支持,基本上覆盖了常见的存储服务提供商。使用 rclone 可以很方便的进行管理。 当然今天要说的是 rclone 的挂载功能,rclone 可以将网盘挂载到本地当做磁盘使用。rclone 挂载需要 fusermount 这个程序,在 PC 端很简单,一条命令就安装好了,但在手机端需要自行编译arm 架构的。我在网上找到个能用的 fusermount ,挂载成功了,但只能运行挂载命令的程序才可以访问,这样没有很大意义,后面就放弃了。最近 magisk 仓库更新了个 <a href="https://github.com/Magisk-Modules-Repo/com.piyushgarg.rclone" rel="external nofollow noopener noreferrer" target="_blank">rclone-mount</a> 模块,将 rclone、fusermount都提供了,并且写好了挂载脚本,作者解释了只能运行挂载命令的程序才能访问的原因。 使用模块需要先安装 magisk,并且由于 Android 系统限制,必须使用 root 权限才能挂载。magisk 安装这里就不多说了,我另一篇文章有介绍。因为模块目前有个 bug 如果没有找到 rclone.conf 文件模块在刷入时会卡住,如果是之前没用过 rclone 的需要先去创建 /sdcard/.rclone/rclone.conf 文件,这样就不会卡在模块安装界面了。安装完模块后接下来是配置 rclone,rclone 用法百度有很多教程,这里我简单说下。 首先要有一个 rclone 支持的网盘,比如 Onedrive,由于需要运行命令,所以需要用到终端,这里我用的是 Termux(推荐),使用其它终端也可以。 先运行 su 获取 root 权限,然后运行 <code>export XDG_CONFIG_HOME=/data/media/0</code> 设置 rclone 配置目录,以免找不到配置文件或者无权限。 <code>/data/adb/modules/com.piyushgarg.rclone/rclone config</code> 会显示当前已配置好的,我的之前已经添加了三个。</p><details><summary>点击显示图片</summary><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/07/16/5d2dce17eddb599440.png" alt="Screenshot_2019-07-16-21-14-11-051_com.topjohnwu.magisk.png"></p></details><p>输入 n 回车创建一个新的远程地址,提示输入名字,这个可以随便取一个方便记住的名字,后面使用的时候就是用的这个名字,之后选择远程地址服务提供商,这里我用的 Onedrive 选 19,其它服务提供商也一样,只是在后面的操作有所不同,具体可以去 rclone 官网查看。选择 19 后接下来的东西用过 pyone、oneindex 等第三方客户端的会很熟悉,没错就是 client_id 和 client_secret,在这里我们都直接回车使用默认的就行。接下来会提示是否更改配置,这个是一些 rclone 的配置属性,直接输入 n 使用默认的即可。最后就是最重要的一步了,提示是否使用自动配置,这里选择 Y,输入后会自动打开浏览器,如果没有,可以手动打开上面显示的地址,登录要使用的账号进行授权,授权成功后返回终端,这里要注意如果是没有管理员或者管理员限制使用第三方应用的是没法认证的。之后会询问是哪种类型的存储,选择 1 也就是 Onedrive 那个就好。然后终端上会显示当前配置,询问配置是否正确选择 y 就回到了刚开始的界面,输入 q 退出。到此 rclone 的配置已经完成,接下来需要把配置文件放在指定位置。配置文件是放在 <code>/data/media/0/rclone/rclone.conf</code>,也就是内置存储下的 rclone/rclone.conf 运行 <code>su -c "cat /data/media/0/rclone/rclone.conf > /data/media/0/.rclone/rclone.conf"</code> 将配置文件添加到内置存储,最后先输入 su 授予 Termux root 权限,再运行 <code>/sbin/rclone remount</code> 等待命令运行完成即可。默认是挂载在 /mnt/cloud/ 目录下,目前无法挂载到 /sdcard 不过作者将在下一版添加这个功能。 最后再附上我的一个利用 rclone 进行备份的脚本,可以保存历史版本,语音播报备份情况。使用 tasker 之类的软件定时运行即可。需要安装 Termux 以及 Termux-API,并且 Termux 安装了 termux-tools,我把 rclone 添加到系统 PATH 里了,所以可以直接调用,如果 rclone 不在 /system/bin/ 或者 /system/xbin/ 中就需要使用 rclone 文件路径来调用(注意文件权限)。</p><details><summary>点击显示脚本内容</summary><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/system/bin/env sh</span></span><br><span class="line"><span class="built_in">export</span> LANG=C.UTF-8</span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_LEVEL=INFO</span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_FORMAT=date</span><br><span class="line"><span class="comment"># export RCLONE_BACKUP_DIR="love:/archive/$(date +%Y)/$(date +%F"_"%T)"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_BACKUP_DIR=<span class="string">"love:/old_files"</span> // 远程地址存储旧版备份文件的文件夹夹</span><br><span class="line"><span class="built_in">export</span> RCLONE_SUFFIX=<span class="string">"_<span class="variable">$(date +%F_%T)</span>"</span> // 旧备份文件名格式:原文件名_日期_时间</span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_FILE=/storage/emulated/0/rclone.log <span class="comment">#!/system/bin/env sh</span></span><br><span class="line"><span class="built_in">export</span> LANG=C.UTF-8</span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_LEVEL=INFO</span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_FORMAT=date</span><br><span class="line"><span class="comment"># export RCLONE_BACKUP_DIR="love:/archive/$(date +%Y)/$(date +%F"_"%T)"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_BACKUP_DIR=<span class="string">"love:/old_files"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_SUFFIX=<span class="string">"_<span class="variable">$(date +%F_%T)</span>"</span></span><br><span class="line"><span class="built_in">export</span> RCLONE_LOG_FILE=/storage/emulated/0/rclone.log // 日志</span><br><span class="line"><span class="built_in">export</span> XDG_CONFIG_HOME=<span class="string">"/storage/emulated/0/ADM/.config"</span> // 配置文件</span><br><span class="line">SD=/storage/emulated/0 // 内置存储</span><br><span class="line"><span class="comment"># 要备份的目录</span></span><br><span class="line">buckup_dir=(<span class="string">".fooView"</span> <span class="string">"ADM"</span> <span class="string">"baidu"</span> <span class="string">"MyAndroidTools"</span> <span class="string">"Pictures"</span> <span class="string">"searchlite"</span> <span class="string">"ViPER4Android"</span> <span class="string">"Xposed_Edge_Icon"</span> <span class="string">"YueDu"</span> <span class="string">"习"</span>)</span><br><span class="line"><span class="comment"># 清空日志</span></span><br><span class="line">:><span class="variable">$RCLONE_LOG_FILE</span></span><br><span class="line"><span class="comment"># 检测网络链接</span></span><br><span class="line"><span class="comment"># 超时时间</span></span><br><span class="line">timeout=5</span><br><span class="line"></span><br><span class="line"><span class="comment"># 目标网站</span></span><br><span class="line">target=baidu.com</span><br><span class="line"> </span><br><span class="line"><span class="comment"># 获取响应状态码</span></span><br><span class="line">ret_code=`curl -I -s --connect-timeout <span class="variable">$timeout</span> <span class="variable">$target</span> -w %{http_code} | tail -n1`</span><br><span class="line"> </span><br><span class="line"><span class="keyword">if</span> [ <span class="string">"x<span class="variable">$ret_code</span>"</span> = <span class="string">"x200"</span> ]; <span class="keyword">then</span></span><br><span class="line"> XiaoAiTTS <span class="string">"网络连接正常,开始备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接正常,开始备份!"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"> </span><br><span class="line"> <span class="keyword">for</span> dir <span class="keyword">in</span> <span class="variable">${buckup_dir[@]}</span></span><br><span class="line"> <span class="keyword">do</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"正在备份 <span class="variable">$SD</span>/<span class="variable">$dir</span>"</span></span><br><span class="line"> rclone sync <span class="string">"<span class="variable">$SD</span>/<span class="variable">$dir</span>"</span> love:/snapshot/<span class="string">"<span class="variable">$dir</span>"</span></span><br><span class="line"> <span class="keyword">done</span></span><br><span class="line"> </span><br><span class="line">XiaoAiTTS <span class="string">"rclone 备份完成!"</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">"<span class="variable">$(date +%F"-"%T)</span>\t备份完成!\n"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"><span class="keyword">else</span></span><br><span class="line"> XiaoAiTTS <span class="string">"网络连接异常,停止备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接异常,停止备份!"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"><span class="keyword">fi</span></span><br><span class="line"><span class="built_in">export</span> XDG_CONFIG_HOME=<span class="string">"/storage/emulated/0/ADM/.config"</span></span><br><span class="line">SD=/storage/emulated/0</span><br><span class="line"><span class="comment"># 备份目录</span></span><br><span class="line">buckup_dir=(<span class="string">".fooView"</span> <span class="string">"ADM"</span> <span class="string">"baidu"</span> <span class="string">"MyAndroidTools"</span> <span class="string">"Pictures"</span> <span class="string">"searchlite"</span> <span class="string">"ViPER4Android"</span> <span class="string">"Xposed_Edge_Icon"</span> <span class="string">"YueDu"</span> <span class="string">"习"</span>)</span><br><span class="line"><span class="comment"># 清空日志</span></span><br><span class="line">:><span class="variable">$RCLONE_LOG_FILE</span></span><br><span class="line"><span class="comment"># 检测网络链接</span></span><br><span class="line"><span class="comment"># 超时时间</span></span><br><span class="line">timeout=5</span><br><span class="line"></span><br><span class="line"><span class="comment"># 目标网站</span></span><br><span class="line">target=baidu.com</span><br><span class="line"> </span><br><span class="line"><span class="comment"># 获取响应状态码</span></span><br><span class="line">ret_code=`curl -I -s --connect-timeout <span class="variable">$timeout</span> <span class="variable">$target</span> -w %{http_code} | tail -n1`</span><br><span class="line"> </span><br><span class="line"><span class="keyword">if</span> [ <span class="string">"x<span class="variable">$ret_code</span>"</span> = <span class="string">"x200"</span> ]; <span class="keyword">then</span></span><br><span class="line"> XiaoAiTTS <span class="string">"网络连接正常,开始备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接正常,开始备份!"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"> </span><br><span class="line"> <span class="keyword">for</span> dir <span class="keyword">in</span> <span class="variable">${buckup_dir[@]}</span></span><br><span class="line"> <span class="keyword">do</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"正在备份 <span class="variable">$SD</span>/<span class="variable">$dir</span>"</span></span><br><span class="line"> rclone sync <span class="string">"<span class="variable">$SD</span>/<span class="variable">$dir</span>"</span> love:/snapshot/<span class="string">"<span class="variable">$dir</span>"</span></span><br><span class="line"> <span class="keyword">done</span></span><br><span class="line"> </span><br><span class="line">XiaoAiTTS <span class="string">"rclone 备份完成!"</span></span><br><span class="line"><span class="built_in">echo</span> <span class="string">"<span class="variable">$(date +%F"-"%T)</span>\t备份完成!\n"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"><span class="keyword">else</span></span><br><span class="line"> XiaoAiTTS <span class="string">"网络连接异常,停止备份!"</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">"网络连接异常,停止备份!"</span>>><span class="variable">$SD</span>/rclone.log</span><br><span class="line"><span class="keyword">fi</span></span><br></pre></td></tr></table></figure></details><p>其中 XiaoAiTTS 是我为了方便调用 Termux-API 的 TTS 工具写的小脚本,把它放在 /system/bin 或者 /system/xbin 这样就可以随便调用了,具体内容是:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#!/system/bin/sh</span></span><br><span class="line"><span class="built_in">export</span> LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib</span><br><span class="line"><span class="built_in">export</span> PATH=/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets</span><br><span class="line">termux-tts-speak <span class="variable">$1</span></span><br></pre></td></tr></table></figure><p>rclone 还有很多功能,我就不一一介绍了,官网上面对每一个命令都有详细点解释,参考官方文档即可。</p>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/HiShoot_20190902_152747.webp" width="500">
</summary>
<category term="Android" scheme="https://cxyzzz.gtihub.io/tags/Android/"/>
</entry>
<entry>
<title>玩机 • Android(三)——进阶篇</title>
<link href="https://cxyzzz.gtihub.io/posts/40e3c7df.html"/>
<id>https://cxyzzz.gtihub.io/posts/40e3c7df.html</id>
<published>2018-12-23T06:20:56.000Z</published>
<updated>2018-12-23T06:20:56.000Z</updated>
<content type="html"><![CDATA[<ul><li><a href="https://hoshizora.tw/posts/9e7b6f05.html" rel="external nofollow noopener noreferrer" target="_blank">玩机 • Android(一)——应用篇</a></li><li><a href="https://hoshizora.tw/posts/fab8c3b3.html" rel="external nofollow noopener noreferrer" target="_blank">玩机 • Android(二)——ROOT 篇</a></li></ul><p>Android 有两个模式:Recovery 和 Bootloader,也叫卡刷模式和线刷模式(部分手机可能不一样,功能都差不多)。</p><a id="more"></a><h2 id="Bootloader"><a class="header-anchor" href="#Bootloader">¶</a>Bootloader</h2><p>系统在启动之前需要通过 bootloader 启动,手机启动的时候基带执行初始化,然后引导系统内核,直到系统启动。厂商为了安全,Google 也要求上锁,因而现在的手机基本都对 bootloader 上锁了,不解除就无法对 bootloader 进行更该(官方一般提供了解锁通道,申请通过后就能解锁)。Bootloader 模式通过电脑对设备进行清除数据、系统升级等操作,REC 也是在此模式下刷入的,救砖一般也是进的这个模式。Bootloader 一般是按住电源键和音量减键进入。进入后用数据线连接手机和电脑,电脑会自动安装所需驱动(没有自动安装的可以百度 Bootloader 驱动手动安装),安装好驱动后需要去下载 ADB 工具包</p><ul><li><p>Windows <a href="https://dl.google.com/android/repository/platform-tools-latest-windows.zip" rel="external nofollow noopener noreferrer" target="_blank">https://dl.google.com/android/repository/platform-tools-latest-windows.zip</a></p></li><li><p>Mac <a href="https://dl.google.com/android/repository/platform-tools-latest-darwin.zip" rel="external nofollow noopener noreferrer" target="_blank">https://dl.google.com/android/repository/platform-tools-latest-darwin.zip</a></p></li><li><p>Linux <a href="https://dl.google.com/android/repository/platform-tools-latest-linux.zip" rel="external nofollow noopener noreferrer" target="_blank">https://dl.google.com/android/repository/platform-tools-latest-linux.zip</a></p></li></ul><p>进入工具包目录,在当前目录打开终端,输入 <code>adb devices</code>会显示当前设备,如果没显示则可能是驱动没装好。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2018/12/23/5c1f3dca16d41.png" alt="Screenshot_20181223_154659.png"></p><p>将下载的 Recovery 文件放在当前文件夹中,输入<code>fastboot.exe flash recovery MI-NOTE-TWRP3.1.0.img</code>,刷入 Recovery (MI-NOTE-TWRP3.1.0.img 为文件名字),之后输入<code>fastboot.exe boot MI-NOTE-TWRP3.1.0.img</code>进入 Recovery 模式。Bootloader 还有很多其它的功能,就不多说了(我是不会说其实是我不会其它的(  ̄ー ̄))。</p><h2 id="Recovery"><a class="header-anchor" href="#Recovery">¶</a>Recovery</h2><p>Recovery 看它的名字大概够强猜出其功能了。自带的 Recovery 是非常简陋的,并不能满足我们的要求,所以需要使用如 TWRP、CWM 之类的第三方 REC。替换方法在前面 Bootloader 中有。进入 REC 的方法不同品牌可能有所不同,MIUI 是按住电源键和音量加音量减,出现 logo 后屏幕突然一亮之后松手即可进入。原版 TWRP 是没有中文的,不过一般都能在网上找到支持中文的版本。主要功能为安装、清除、备份、恢复、挂载、设置、高级功能。</p><ul><li><p>安装</p><p>这个就是刷机、获取 ROOT、安装 Magisk、安装 Xposed 等要用到的。点击 Install 进入文件选择界面,默认是刷入卡刷包也可以点击右下角刷入镜像刷入 Recovery 或则 Boot。</p></li><li><p>清除</p><p>可以恢复出产设置,也可以格式化某一分区。</p></li><li><p>备份/恢复</p><p>备份/恢复分区</p></li><li><p>挂载</p><p>挂载分区,一般用不上,使用高级功能式可能会用到。某些手机支持 OTG 功能要在 Recovery 下使用 OTG 存储需进行挂载。</p></li><li><p>设置</p><p>一些 Recovery 的设置项,比如切换语言调节显示亮度等。</p></li><li><p>高级功能</p><p>文件浏览器、终端等。进入某些目录时需先保证已近挂载,否则会显示空白。</p></li><li><p>重启</p><p>高级重启功能。包含重启到 Bootloader、重启到 Recovery、正常重启。</p></li></ul><p>介绍完 Bootloader 和 Recovery 后,接下来就是 Magisk 和 Xposed 了。因为这两个都非常强大但也有很大可能导致手机出现问题,所以必须要先准备好第三方 REC 以备不时之需。</p><h2 id="Magisk"><a class="header-anchor" href="#Magisk">¶</a>Magisk</h2><ul><li><p>安装</p><p>方法在第二篇 ROOT 篇中已进行介绍此处不在赘述。</p></li><li><p>使用</p><p>仓库中有很多不错的模块,点击模块即可查看详细信息。也可以手动安装自己下载的模块。</p><p>注:Magisk 模块可以看做是将模块内容替换系统中对应内容。安装模块前最好打开查看下是否对自己有用。</p></li></ul><h2 id="Xposed"><a class="header-anchor" href="#Xposed">¶</a>Xposed</h2><p>官网:<a href="https://repo.xposed.info/" rel="external nofollow noopener noreferrer" target="_blank">https://repo.xposed.info/</a></p><p>Xposed 框架是一款可以在不修改 APK 的情况下(修改系统)影响程序员运行的框架服务,基于它可以制作很多功能强大的模块。(刷入 Xposed 会对手机性能有一定影响,且随着启用模块越多影响越大(单框架影响不大,主要是模块),开机时间也会变长)</p><ul><li><p>安装</p><p>安装时确保已解锁 Bootloader 、拥有 ROOT 权限。下载 <a href="https://www.coolapk.com/apk/de.robv.android.xposed.installer" rel="external nofollow noopener noreferrer" target="_blank">Xposed Installer</a> 安装后打开,先下载卸载包以防出问题后可以卸载。然后点击安装,Install 和 Install via recovery 都差不多,一个是下载后直接安装一个要手动进 REC 卡刷。</p><p>注:Xposed 兼容性最好的是原生类原生之类的 ROM。国产 UI 可能会卡开机。虽然最新版兼容性已经很好了,但在 MIUI 上还是会出现主题无法修改状态栏样式(SolarWarez 针对 MIUI 发布了修改版,可以完美使用,但已不再更新,目前只支持 Android 6.0 及以下系统)的问题。作者也表示不会针对 MIUI 等进行特别优化。目前 Xposed 最高支持 sdk27 即 Android 8.1。</p><p>另一种方法是手动下载卡刷包在 REC 中刷入。</p><p>下载地址:<a href="https://dl-xda.xposed.info/framework/" rel="external nofollow noopener noreferrer" target="_blank">https://dl-xda.xposed.info/framework/</a>需要注意的是安装包 api 和 cpu 架构必须和手机对应。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2018/12/23/5c1f58022cc48.png" alt="Screenshot_2018-12-23-17-11-51-990_de.robv.android.xposed.installer_1.png"></p></li><li><p>使用</p><p>刷入后第一次开机示安装应用数可能需要很长时间,期间耐性等待即可。之后就不用这么久了。</p><p>此为我所使用的模块:<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2018/12/23/5c1f5b674418b.png" alt="Screenshot_2018-12-23-17-51-24-354_de.robv.android.xposed.installer.png">以上模块均可在<a href="https://www.coolapk.com" rel="external nofollow noopener noreferrer" target="_blank">酷安</a>和 Xposed 仓库中找到(点击 Xposed Installer 左上角,侧栏中的下载项就是仓库)。</p></li></ul><p>最后再说下,Magisk 能和 Xposed 共存,可以在 Magisk 中安装 Xposed,找到对应的 Magisk 模块安装就行,不过不论是否修改了系统,安装 Xposed 后 Magisk 的 systemless 特性都被破坏,并且使用 Magisk 安装的 Xposed 必须修改版 Xposed Installer 才能识别(点击 Magisk 模块即可看见下载地址)。还有就是 Magisk 和 Xposed 两个是不同的东西,Magisk 实现不了 Xposed 的很多功能。很多人觉得 Xposed 能实现的 Magisk 也能实现是错误的。</p>]]></content>
<summary type="html">
<ul>
<li><a href="https://hoshizora.tw/posts/9e7b6f05.html" rel="external nofollow noopener noreferrer" target="_blank">玩机 • Android(一)——应用篇</a></li>
<li><a href="https://hoshizora.tw/posts/fab8c3b3.html" rel="external nofollow noopener noreferrer" target="_blank">玩机 • Android(二)——ROOT 篇</a></li>
</ul>
<p>Android 有两个模式:Recovery 和 Bootloader,也叫卡刷模式和线刷模式(部分手机可能不一样,功能都差不多)。</p>
</summary>
<category term="Android" scheme="https://cxyzzz.gtihub.io/tags/Android/"/>
</entry>
<entry>
<title>玩机 • Android(二)——ROOT 篇</title>
<link href="https://cxyzzz.gtihub.io/posts/fab8c3b3.html"/>
<id>https://cxyzzz.gtihub.io/posts/fab8c3b3.html</id>
<published>2018-10-27T05:15:56.000Z</published>
<updated>2018-10-27T05:15:56.000Z</updated>
<content type="html"><![CDATA[<h2 id="Root-Android"><a class="header-anchor" href="#Root-Android">¶</a>Root (Android)</h2><p>首先来了解一下 ROOT 是什么:<blockquote><p>Root 是 Android 系统的一个术语,它使得用户可以获取 Android 操作系统的超级用户权限。Root 能够帮助用户越过手机制造商的限制,得以卸载本身预装的程序,或运行需要系统权限的动作。Android 系统的 Root 与苹果 iOS 系统的越狱类似。</p><footer><strong>wikipedia</strong><cite><a href="https://zh.wikipedia.org/zh-hans/ROOT_(Android)" rel="external nofollow noopener noreferrer" target="_blank">ROOT_(Android)</a></cite></footer></blockquote></p><a id="more"></a><p>简单点说就是当你拥有了 ROOT 权限你才能对你的手机想干嘛就干嘛。当然权利越大责任也越大,也意味着会面对更大的风险。因为 ROOT 是非官方行为,所以很多手机产商对 ROOT 后的手机不提供免费维修服务。现在大多数手机均加入了分区保护,未解锁 Bootloader 的情况下无法进行 ROOT 或刷机操作。</p><p>ROOT 的原理其实是通过系统漏洞或官方后门将 SU 可执行文件复制到 Android 系统的 /system 分区下。为了让用户使用 ROOT 权限,防止手机上任意软件获取 ROOT 权限还需安装一个权限管理软件进行管理。目前主流的超级权限管理工具非 Magisk 和 SuperSU 莫属了。还有如 MIUI、Flyme 以及部分类原生系统自带 ROOT。</p><h2 id="获取-ROOT"><a class="header-anchor" href="#获取-ROOT">¶</a>获取 ROOT</h2><p>获取 ROOT 权限大致有三种方法。一是通过系统漏洞或官方后门通过软件获取,一是直接在刷机包中内置,再就是通过 Recovery 刷入特定的刷机包。最后一种方法应该是用的最广泛也是最简单的了。使用 Recovery 获取 ROOT 需要第三方 Recovery,有 Bootloader 锁的手机还需先解锁。第三方 Recovery 有 TWRP、CWM 等。前面说过 超级权限管理工具有 Magisk 和 SuperSU,它们均提供了对应的卡刷包,刷入即可获取 ROOT 权限。其中 Magisk 并不仅仅只有 ROOT 管理功能,具体将在第三篇中介绍。</p><h3 id="SuperSU"><a class="header-anchor" href="#SuperSU">¶</a>SuperSU</h3><p>官网: <a href="http://www.supersu.com/" rel="external nofollow noopener noreferrer" target="_blank">http://www.supersu.com/</a></p><p>SuperSU 分 systemless 和 xbin 两种模式,systemless 模式不更该 /system 而是在 /data 目录创建一个 img 文件,在系统启动是加载此文件,好处是不破坏系统,坏处是授权响应慢,可能会因为 SuperSU APP 后台被杀死而无法授权;xbin 模式为将文件写入 /system ,SuperSU APP 将会安装在 /system 目录,需手动对 boot 打补丁,不然会卡开机界面,优点是授权响应快,恢复出厂设置仍能保留 ROOT ,缺点是会破坏系统完整性。官网下载的卡刷包会自动判断使用哪种模式因而不用担心用错。</p><p>卡刷包可在官网下载,进入 Recovery 刷入即可。有时候可能会遇见刷入后桌面不显示 SuperSU APP ,此时可打开拨号程序输入 <code>*#*#1234#*#*</code> ,同理输入这个也可以在桌面隐藏 SuperSU APP。</p><h3 id="Magisk"><a class="header-anchor" href="#Magisk">¶</a>Magisk</h3><p>MagiskManager: <a href="https://magiskmanager.com/" rel="external nofollow noopener noreferrer" target="_blank">https://magiskmanager.com/</a></p><p>XDA: <a href="https://forum.xda-developers.com/apps/magisk" rel="external nofollow noopener noreferrer" target="_blank">https://forum.xda-developers.com/apps/magisk</a></p><p>Github: <a href="https://github.com/topjohnwu/Magisk/releases" rel="external nofollow noopener noreferrer" target="_blank">https://github.com/topjohnwu/Magisk/releases</a></p><p>Magisk 是一个台湾同胞开发的应用软件,其主要功能是不修改 /system 实现修改的效果,自带了 ROOT 管理。与 SuperSU 一样,需下载卡刷包刷入。卡刷包可在上面三个链接中下载到,也可以直接安装 Magisk Manager APP,然后在 APP 中下载卡刷包。Magisk 与 SuperSU 并不兼容(实际上是因为两个都会修改同一个地方)如果已经刷了 SuperSU 再刷 Magisk 时会出错,此时去 SuperSU 设置中清除 SuperSU 即可(也可以刷入官方 boot)。</p><p>最后还是那句话:权利越大,责任越大。如果你不清楚你在干什么那么最好不要授权应用 ROOT 权限。当然也没必要对手机 ROOT 后的安全问题太过担心,只要注意授权管理软件的授权提示不乱给软件权限就没事。</p>]]></content>
<summary type="html">
<h2 id="Root-Android"><a class="header-anchor" href="#Root-Android">¶</a>Root (Android)</h2>
<p>首先来了解一下 ROOT 是什么:<blockquote><p>Root 是 Android 系统的一个术语,它使得用户可以获取 Android 操作系统的超级用户权限。Root 能够帮助用户越过手机制造商的限制,得以卸载本身预装的程序,或运行需要系统权限的动作。Android 系统的 Root 与苹果 iOS 系统的越狱类似。</p>
<footer><strong>wikipedia</strong><cite><a href="https://zh.wikipedia.org/zh-hans/ROOT_(Android)" rel="external nofollow noopener noreferrer" target="_blank">ROOT_(Android)</a></cite></footer></blockquote></p>
</summary>
<category term="Android" scheme="https://cxyzzz.gtihub.io/tags/Android/"/>
</entry>
<entry>
<title>VS Code 配置 C 和 C++ 环境</title>
<link href="https://cxyzzz.gtihub.io/posts/d5ae7f1b.html"/>
<id>https://cxyzzz.gtihub.io/posts/d5ae7f1b.html</id>
<published>2018-09-18T14:18:05.000Z</published>
<updated>2018-09-18T14:18:05.000Z</updated>
<content type="html"><![CDATA[<p>Visual Studio Code (简称 VS Code/VSC)是一款免费开源的代码编辑器,支持几乎所有的主流开发语言,有语法高亮、智能代码补全、自定义热键、符号自动补全、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展。软件支持 Windows、Mac 以及 Linux。</p><p>官网:<a href="https://code.visualstudio.com/" rel="external nofollow noopener noreferrer" target="_blank">https://code.visualstudio.com/</a><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/5cfb5b61c8e8413483.webp" alt="vscode"></p><a id="more"></a><h2 id="环境准备"><a class="header-anchor" href="#环境准备">¶</a>环境准备</h2><p>VS Code 可在官网下载,其只是一个编辑器并不是 IDE,不含编译器因而需要我们自己安装编译器。编译器我选的是 GCC/G++ 配合 clang 使用,Windows 也可选 MSVC ,Mac 可选 clang 。以 Windows 为例。需去下载 MinGW-w64 和 LLVM 。</p><ul><li>LLVM Download Page: <a href="http://releases.llvm.org/download.html" rel="external nofollow noopener noreferrer" target="_blank">http://releases.llvm.org/download.html</a> 选Pre-Built Binaries中的Clang for Windows (64-bit),不需要下.sig文件.</li><li>MinGW-w64: <a href="https://sourceforge.net/projects/mingw-w64/" rel="external nofollow noopener noreferrer" target="_blank">https://sourceforge.net/projects/mingw-w64/</a> 直接点 Download 即可。</li></ul><p>下载好后安装,添加环境变量时选第二项,安装位置选个你能找到的,后面会用到。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5b33bb73768144.jpg" alt="llvm"></p><p>安装完了以后可能会弹出 cmd 说 MSVC integration install failed。这个是因为 Clang 默认使用的是 msvc 的工具链,而我们选择的工具链是 MinGW,所以就不用管这个提示。</p><p>MinGW随便装哪,Architecture 选 x86_64,装好以后把东西全部复制到 Clang的文件夹里去,他们会无冲突合并。同样,不做这一步也行,下面的配置里路径就自己改,还要手动把 MinGW 的 bin 文件夹加到 path 中,因为MinGW 不会自己加。至于为什么既要装 Clang 又要装 MinGW,是因为 Clang 没有头文件。然后就可以把 MinGW 删了(Uninstall.exe)。不建议安装多个MinGW,如果你安装了其他 IDE 需要注意把其他的 MinGW 从环境变量中去掉;也可以自己把他们的编译器设为 Clang。因为几乎所有的轻量级 IDE 用的都是MinGW 或 TDM-GCC,它们不制造编译器,只是打包了一个。ps:MinGW 安装时需要在线下载,可能需要科学上网。</p><p>弄好后可打开 CMD 输入 clang -v 和 gcc -v 应该显示图中内容(版本号不同没事)。如果没有显示就是环境没配置好,可以手动添加到 path (如何配置请自行百度),也可重复上面的操作。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5b33e542735446.jpg" alt="test"></p><h2 id="配置-VS-Code"><a class="header-anchor" href="#配置-VS-Code">¶</a>配置 VS Code</h2><h3 id="安装扩展"><a class="header-anchor" href="#安装扩展">¶</a>安装扩展</h3><p>需要安装的扩展:</p><ul><li><code>C/C++</code></li><li><code>C/C++ Clang Command Adapter</code> 提供静态检测(Lint),很重要。</li><li><code>Code Runner</code> 添加右键编译运行代码,支持大多数语言。</li></ul><p>附:我的插件列表</p><ul><li><code>background</code> 修改 VS Code 背景</li><li><code>Bracket Pair Colorizer</code> 彩色花括号</li><li><code>C/C++ Snippets</code> 代码片段</li><li><code>Code Speel Checker</code> 规范命名用</li><li><code>filesize</code> 在左下角显示文件大小</li><li><code>Include Autocomplete</code> 提供头文件名字的补全</li><li><code>One Dark Pro</code> VS Code 主题</li><li><code>Setting Sync</code> 同步 VS Code 扩展、设置、代码片段到 GitHub Gist。</li><li><code>VSCode Great Icons</code> VS Code 文件夹图标</li></ul><h3 id="配置四个-json-文件"><a class="header-anchor" href="#配置四个-json-文件">¶</a>配置四个 json 文件</h3><p>先新建一个用来存放代码的文件夹(工作区),路径不能包含中文、空格和引号。打开 VS Code 选打开文件夹,选择刚刚创建的文件夹,点击 VS Code 的新建文件夹创建 .vscode 文件夹。(这么做是因为 Windows 资源管理器不允许创建 . 开头的文件夹),然后分别创建 c_cpp_properties.json 、launch.json 、tasks.json 和 settings.json。</p><h4 id="配置-c-cpp-properties-json"><a class="header-anchor" href="#配置-c-cpp-properties-json">¶</a>配置 c_cpp_properties.json</h4><details><summary>点击查看文件详细信息</summary><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"configurations"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"name"</span>: <span class="string">"Win32"</span>,</span><br><span class="line"> <span class="attr">"intelliSenseMode"</span>: <span class="string">"clang-x64"</span>,</span><br><span class="line"> <span class="attr">"includePath"</span>: [</span><br><span class="line"> <span class="string">"${workspaceFolder}"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/x86_64-w64-mingw32/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"defines"</span>: [</span><br><span class="line"> <span class="string">"_DEBUG"</span>,</span><br><span class="line"> <span class="string">"UNICODE"</span>,</span><br><span class="line"> <span class="string">"__GNUC__=7"</span>,</span><br><span class="line"> <span class="string">"__cdecl=__attribute__((__cdecl__))"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"browse"</span>: {</span><br><span class="line"> <span class="attr">"path"</span>: [</span><br><span class="line"> <span class="string">"${workspaceFolder}"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/x86_64-w64-mingw32/include"</span>,</span><br><span class="line"> <span class="string">"C:/Program Files/LLVM/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"limitSymbolsToIncludedHeaders"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"databaseFilename"</span>: <span class="string">""</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"compilerPath"</span>: <span class="string">"C:\\Program Files\\LLVM\\bin\\gcc.exe"</span>,</span><br><span class="line"> <span class="attr">"cStandard"</span>: <span class="string">"c11"</span>,</span><br><span class="line"> <span class="attr">"cppStandard"</span>: <span class="string">"c++17"</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"version"</span>: <span class="number">4</span></span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><p>可参考 <a href="https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/MinGW.md" rel="external nofollow noopener noreferrer" target="_blank">Microsoft/vscode-cpptools</a> 如果没有合并 LLVM 和 MinGW 则 compilerPath 需要改成 MinGW gcc.exe 的路径。Windows 的路径是反斜杠需要使用两个反斜杠来转义,直接使用斜杠也行。includePath 和 browse 中的 path 均为头文件所在路径。ps:偶尔可能会出现提示找不到头文件但能正常编译运行。</p><h4 id="配置-launch-json"><a class="header-anchor" href="#配置-launch-json">¶</a>配置 launch.json</h4><details><summary>点击查看文件详细信息</summary><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md</span></span><br><span class="line">{</span><br><span class="line"> <span class="attr">"version"</span>: <span class="string">"0.2.0"</span>,</span><br><span class="line"> <span class="attr">"configurations"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"name"</span>: <span class="string">"C Launch"</span>, <span class="comment">//C 语言调试配置名称</span></span><br><span class="line"> <span class="attr">"type"</span>: <span class="string">"cppdbg"</span>, <span class="comment">// 配置类型,这里只能为cppdbg</span></span><br><span class="line"> <span class="attr">"request"</span>: <span class="string">"launch"</span>, <span class="comment">// 请求配置类型,可以为launch(启动)或attach(附加)</span></span><br><span class="line"> <span class="attr">"program"</span>: <span class="string">"${fileDirname}/${fileBasenameNoExtension}.exe"</span>, <span class="comment">// 将要进行调试的程序的路径</span></span><br><span class="line"> <span class="attr">"args"</span>: [], <span class="comment">// 程序调试时传递给程序的命令行参数,一般设为空即可</span></span><br><span class="line"> <span class="attr">"stopAtEntry"</span>: <span class="literal">false</span>, <span class="comment">// 设为true时程序将暂停在程序入口处</span></span><br><span class="line"> <span class="attr">"cwd"</span>: <span class="string">"${workspaceFolder}"</span>, <span class="comment">// 调试程序时的工作目录</span></span><br><span class="line"> <span class="attr">"environment"</span>: [], <span class="comment">// (环境变量?)</span></span><br><span class="line"> <span class="attr">"externalConsole"</span>: <span class="literal">true</span>, <span class="comment">// 调试时是否显示控制台窗口,一般设置为true显示控制台</span></span><br><span class="line"> <span class="attr">"internalConsoleOptions"</span>: <span class="string">"neverOpen"</span>, <span class="comment">// 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?</span></span><br><span class="line"> <span class="attr">"MIMode"</span>: <span class="string">"gdb"</span>, <span class="comment">// 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。</span></span><br><span class="line"> <span class="attr">"miDebuggerPath"</span>: <span class="string">"C:/Program Files/LLVM/bin/gdb.exe"</span>, <span class="comment">// 调试器路径。</span></span><br><span class="line"> <span class="attr">"setupCommands"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"description"</span>: <span class="string">"Enable pretty-printing for gdb"</span>,</span><br><span class="line"> <span class="attr">"text"</span>: <span class="string">"-enable-pretty-printing"</span>,</span><br><span class="line"> <span class="attr">"ignoreFailures"</span>: <span class="literal">true</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"preLaunchTask"</span>: <span class="string">"CCompile"</span>, <span class="comment">// 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应</span></span><br><span class="line"> },</span><br><span class="line"></span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"name"</span>: <span class="string">"C++ Launch"</span>, <span class="comment">// C++ 调试配置名称</span></span><br><span class="line"> <span class="attr">"type"</span>: <span class="string">"cppdbg"</span>, <span class="comment">// 配置类型,这里只能为cppdbg</span></span><br><span class="line"> <span class="attr">"request"</span>: <span class="string">"launch"</span>, <span class="comment">// 请求配置类型,可以为launch(启动)或attach(附加)</span></span><br><span class="line"> <span class="attr">"program"</span>: <span class="string">"${fileDirname}/${fileBasenameNoExtension}.exe"</span>, <span class="comment">// 将要进行调试的程序的路径</span></span><br><span class="line"> <span class="attr">"args"</span>: [], <span class="comment">// 程序调试时传递给程序的命令行参数,一般设为空即可</span></span><br><span class="line"> <span class="attr">"stopAtEntry"</span>: <span class="literal">false</span>, <span class="comment">// 设为true时程序将暂停在程序入口处</span></span><br><span class="line"> <span class="attr">"cwd"</span>: <span class="string">"${workspaceFolder}"</span>, <span class="comment">// 调试程序时的工作目录</span></span><br><span class="line"> <span class="attr">"environment"</span>: [], <span class="comment">// (环境变量?)</span></span><br><span class="line"> <span class="attr">"externalConsole"</span>: <span class="literal">true</span>, <span class="comment">// 调试时是否显示控制台窗口,一般设置为true显示控制台</span></span><br><span class="line"> <span class="attr">"internalConsoleOptions"</span>: <span class="string">"neverOpen"</span>, <span class="comment">// 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡</span></span><br><span class="line"> <span class="attr">"MIMode"</span>: <span class="string">"gdb"</span>, <span class="comment">// 指定连接的调试器</span></span><br><span class="line"> <span class="attr">"miDebuggerPath"</span>: <span class="string">"C:/Program Files/LLVM/bin/gdb.exe"</span>, <span class="comment">// 调试器路径。</span></span><br><span class="line"> <span class="attr">"setupCommands"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"description"</span>: <span class="string">"Enable pretty-printing for gdb"</span>,</span><br><span class="line"> <span class="attr">"text"</span>: <span class="string">"-enable-pretty-printing"</span>,</span><br><span class="line"> <span class="attr">"ignoreFailures"</span>: <span class="literal">false</span></span><br><span class="line"> }</span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"preLaunchTask"</span>: <span class="string">"C++Compile"</span> <span class="comment">// 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="配置-tasks-json"><a class="header-anchor" href="#配置-tasks-json">¶</a>配置 tasks.json</h4><details><summary>点击查看文件详细信息</summary><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// https://code.visualstudio.com/docs/editor/tasks</span></span><br><span class="line">{</span><br><span class="line"> <span class="attr">"version"</span>: <span class="string">"2.0.0"</span>,</span><br><span class="line"> <span class="attr">"tasks"</span>: [</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"label"</span>: <span class="string">"CCompile"</span>, <span class="comment">// 任务名称,与launch.json的preLaunchTask相对应</span></span><br><span class="line"> <span class="attr">"command"</span>: <span class="string">"clang"</span>, <span class="comment">// 要使用的编译器</span></span><br><span class="line"> <span class="attr">"args"</span>: [</span><br><span class="line"> <span class="string">"${file}"</span>,</span><br><span class="line"> <span class="string">"-o"</span>, <span class="comment">// 指定输出文件名,不加该参数则默认输出a.exe</span></span><br><span class="line"> <span class="string">"${fileDirname}/${fileBasenameNoExtension}.exe"</span>,</span><br><span class="line"> <span class="string">"-g"</span>, <span class="comment">// 生成和调试有关的信息</span></span><br><span class="line"> <span class="string">"-Wall"</span>, <span class="comment">// 开启额外警告</span></span><br><span class="line"> <span class="string">"-static-libgcc"</span>, <span class="comment">// 静态链接</span></span><br><span class="line"> <span class="string">"-fcolor-diagnostics"</span>,</span><br><span class="line"> <span class="string">"--target=x86_64-w64-mingw"</span>, <span class="comment">// 默认target为msvc,不加这一条就会找不到头文件</span></span><br><span class="line"> <span class="string">"-std=c11"</span></span><br><span class="line"> ], <span class="comment">// 编译命令参数</span></span><br><span class="line"> <span class="attr">"type"</span>: <span class="string">"shell"</span>,</span><br><span class="line"> <span class="attr">"group"</span>: <span class="string">"build"</span>,</span><br><span class="line"> <span class="attr">"presentation"</span>: {</span><br><span class="line"> <span class="attr">"echo"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"reveal"</span>: <span class="string">"never"</span>, <span class="comment">// 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档</span></span><br><span class="line"> <span class="attr">"focus"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"panel"</span>: <span class="string">"shared"</span> <span class="comment">// 不同的文件的编译信息共享一个终端面板</span></span><br><span class="line"> }</span><br><span class="line"> },</span><br><span class="line"> {</span><br><span class="line"> <span class="attr">"label"</span>: <span class="string">"C++Compile"</span>, <span class="comment">// 任务名称,与launch.json的preLaunchTask相对应</span></span><br><span class="line"> <span class="attr">"command"</span>: <span class="string">"clang++"</span>, <span class="comment">// 要使用的编译器</span></span><br><span class="line"> <span class="attr">"args"</span>: [</span><br><span class="line"> <span class="string">"${file}"</span>,</span><br><span class="line"> <span class="string">"-o"</span>, <span class="comment">// 指定输出文件名,不加该参数则默认输出a.exe</span></span><br><span class="line"> <span class="string">"${fileDirname}/${fileBasenameNoExtension}.exe"</span>,</span><br><span class="line"> <span class="string">"-g"</span>, <span class="comment">// 生成和调试有关的信息</span></span><br><span class="line"> <span class="string">"-Wall"</span>, <span class="comment">// 开启额外警告</span></span><br><span class="line"> <span class="string">"-static-libgcc"</span>, <span class="comment">// 静态链接</span></span><br><span class="line"> <span class="string">"-fcolor-diagnostics"</span>,</span><br><span class="line"> <span class="string">"--target=x86_64-w64-mingw"</span>, <span class="comment">// 默认target为msvc,不加这一条就会找不到头文件</span></span><br><span class="line"> <span class="string">"-std=c++17"</span></span><br><span class="line"> ], <span class="comment">// 编译命令参数</span></span><br><span class="line"> <span class="attr">"type"</span>: <span class="string">"shell"</span>,</span><br><span class="line"> <span class="attr">"group"</span>: <span class="string">"build"</span>,</span><br><span class="line"> <span class="attr">"presentation"</span>: {</span><br><span class="line"> <span class="attr">"echo"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"reveal"</span>: <span class="string">"never"</span>, <span class="comment">// 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档</span></span><br><span class="line"> <span class="attr">"focus"</span>: <span class="literal">false</span>, <span class="comment">// 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义</span></span><br><span class="line"> <span class="attr">"panel"</span>: <span class="string">"shared"</span> <span class="comment">// 不同的文件的编译信息共享一个终端面板</span></span><br><span class="line"> }</span><br><span class="line"> <span class="comment">// "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。)</span></span><br><span class="line"> }</span><br><span class="line"> ]</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h4 id="配置-settings-json"><a class="header-anchor" href="#配置-settings-json">¶</a>配置 settings.json</h4><details><summary>点击查看文件详细信息</summary><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"code-runner.runInTerminal"</span>: <span class="literal">true</span>, <span class="comment">// 设置成false会在“输出”中输出,无法交互</span></span><br><span class="line"> <span class="attr">"code-runner.executorMap"</span>: {</span><br><span class="line"> <span class="attr">"c"</span>: <span class="string">"cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt"</span>,</span><br><span class="line"> <span class="attr">"cpp"</span>: <span class="string">"cd $dir && clang++ $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c++17 && $dir$fileNameWithoutExt"</span></span><br><span class="line"> }, <span class="comment">// 设置code runner的命令行</span></span><br><span class="line"> <span class="attr">"code-runner.saveFileBeforeRun"</span>: <span class="literal">true</span>, <span class="comment">// run code前保存</span></span><br><span class="line"> <span class="attr">"code-runner.preserveFocus"</span>: <span class="literal">true</span>, <span class="comment">// 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false</span></span><br><span class="line"> <span class="attr">"code-runner.clearPreviousOutput"</span>: <span class="literal">false</span>, <span class="comment">// 每次run code前清空属于code runner的终端消息</span></span><br><span class="line"></span><br><span class="line"> <span class="attr">"C_Cpp.clang_format_sortIncludes"</span>: <span class="literal">true</span>, <span class="comment">// 格式化时调整include的顺序(按字母排序)</span></span><br><span class="line"> <span class="attr">"C_Cpp.intelliSenseEngine"</span>: <span class="string">"Default"</span>, <span class="comment">// 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools插件文档</span></span><br><span class="line"> <span class="attr">"C_Cpp.errorSquiggles"</span>: <span class="string">"Disabled"</span>, <span class="comment">// 因为有clang的lint,所以关掉</span></span><br><span class="line"> <span class="attr">"editor.formatOnType"</span>: <span class="literal">true</span>, <span class="comment">// 输入时就进行格式化,默认触发字符较少,分号可以触发</span></span><br><span class="line"> <span class="attr">"editor.snippetSuggestions"</span>: <span class="string">"top"</span>, <span class="comment">// snippets代码优先显示补全</span></span><br><span class="line"></span><br><span class="line"> <span class="attr">"clang.cflags"</span>: [ <span class="comment">// 控制c语言静态检测的参数</span></span><br><span class="line"> <span class="string">"--target=x86_64-w64-mingw"</span>,</span><br><span class="line"> <span class="string">"-std=c11"</span>,</span><br><span class="line"> <span class="string">"-Wall"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"clang.cxxflags"</span>: [ <span class="comment">// 控制c++静态检测时的参数</span></span><br><span class="line"> <span class="string">"--target=x86_64-w64-mingw"</span>,</span><br><span class="line"> <span class="string">"-std=c++17"</span>,</span><br><span class="line"> <span class="string">"-Wall"</span></span><br><span class="line"> ],</span><br><span class="line"> <span class="attr">"files.associations"</span>: {</span><br><span class="line"> <span class="attr">"iostream"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"iomanip"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"array"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"string_view"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"random"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"ostream"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"atomic"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"*.tcc"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cctype"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"chrono"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"clocale"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cmath"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"complex"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"condition_variable"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cstdint"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cstdio"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cstdlib"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cstring"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"ctime"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cwchar"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"cwctype"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"exception"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"fstream"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"initializer_list"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"iosfwd"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"istream"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"limits"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"memory"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"mutex"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"new"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"numeric"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"ratio"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"sstream"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"stdexcept"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"streambuf"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"system_error"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"thread"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"tuple"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"type_traits"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"typeinfo"</span>: <span class="string">"cpp"</span>,</span><br><span class="line"> <span class="attr">"utility"</span>: <span class="string">"cpp"</span></span><br><span class="line"> },</span><br><span class="line"> <span class="attr">"cSpell.language"</span>: <span class="string">"en"</span>,</span><br><span class="line"> <span class="attr">"clang.completion.enable"</span>:<span class="literal">true</span> <span class="comment">// 效果稍好,如果卡,可关掉</span></span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><p>建议放置在工作区设置。</p><p>另附个人设置:</p><details><summary>点击查看文件详细信息</summary><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> <span class="attr">"editor.fontFamily"</span>: <span class="string">"Consolas, 微软雅黑"</span>, <span class="comment">// 控制编辑器字体</span></span><br><span class="line"> <span class="attr">"workbench.colorTheme"</span>: <span class="string">"One Dark Pro"</span>, <span class="comment">// 主题</span></span><br><span class="line"> <span class="attr">"files.trimTrailingWhitespace"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"sync.gist"</span>: <span class="string">"xxxxxxxxxxxxxxxxxxxxx"</span>, <span class="comment">//settings sync gist</span></span><br><span class="line"> <span class="attr">"sync.lastUpload"</span>: <span class="string">"2018-06-24T05:40:57.167Z"</span>,</span><br><span class="line"> <span class="attr">"sync.forceDownload"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"sync.askGistName"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"sync.removeExtensions"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"sync.syncExtensions"</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">"workbench.iconTheme"</span>: <span class="string">"vscode-great-icons"</span>, <span class="comment">// 文件夹图标</span></span><br><span class="line"> <span class="attr">"files.autoSave"</span>: <span class="string">"afterDelay"</span>, <span class="comment">// 自动保存方式</span></span><br><span class="line"> <span class="attr">"files.autoSaveDelay"</span>: <span class="number">120000</span>, <span class="comment">// 自动保存延迟</span></span><br><span class="line"> <span class="attr">"editor.dragAndDrop"</span>: <span class="literal">false</span>, <span class="comment">// 选中文字后,可以拖动它们调整位置</span></span><br><span class="line"> <span class="attr">"explorer.confirmDragAndDrop"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"explorer.confirmDelete"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"files.autoGuessEncoding"</span>: <span class="literal">true</span>, <span class="comment">// 自动检测文件编码</span></span><br><span class="line"> <span class="attr">"sync.autoDownload"</span>: <span class="literal">false</span>, <span class="comment">// 自动下载备份</span></span><br><span class="line"> <span class="attr">"sync.autoUpload"</span>: <span class="literal">false</span>, <span class="comment">//自动上传备份</span></span><br><span class="line"> <span class="attr">"sync.lastDownload"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="attr">"sync.host"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="attr">"sync.pathPrefix"</span>: <span class="string">""</span>,</span><br><span class="line"> <span class="attr">"sync.quietSync"</span>: <span class="literal">false</span>,</span><br><span class="line"> <span class="attr">"cSpell.language"</span>: <span class="string">"en"</span>,</span><br><span class="line"> <span class="attr">"editor.multiCursorModifier"</span>: <span class="string">"ctrlCmd"</span>,</span><br><span class="line"> <span class="attr">"git.ignoreMissingGitWarning"</span>: <span class="literal">true</span>,</span><br><span class="line">}</span><br></pre></td></tr></table></figure></details><h3 id="开始写代码"><a class="header-anchor" href="#开始写代码">¶</a>开始写代码</h3><p>新建一个文件,后缀视语言而定,C 语言为 .c (使用 .cpp 也能运行,但不建议),C++ 为 .cpp。点击上部分 终端-运行生成任务 (Ctrl + Shift + B)进行编译,Ctrl + F5 只运行。也可按 F5 启用调试。</p><h2 id="总结"><a class="header-anchor" href="#总结">¶</a>总结</h2><p>VS Code 本身只是个文本编辑器,其他功能都是靠扩展实现的。要实现某个功能必须进行配置才能使用。VS Code 本身颜值很高,相比于 VS 动辄几 G 来说体积也不是很大,运行过程中占用的内存也不多且支持大多数语言。</p><p>参考链接:</p><ul><li><a href="https://www.zhihu.com/question/30315894" rel="external nofollow noopener noreferrer" target="_blank">https://www.zhihu.com/question/30315894</a></li><li><a href="https://blog.csdn.net/u013322949/article/details/60339735" rel="external nofollow noopener noreferrer" target="_blank">https://blog.csdn.net/u013322949/article/details/60339735</a></li></ul>]]></content>
<summary type="html">
<p>Visual Studio Code (简称 VS Code/VSC)是一款免费开源的代码编辑器,支持几乎所有的主流开发语言,有语法高亮、智能代码补全、自定义热键、符号自动补全、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展。软件支持 Windows、Mac 以及 Linux。</p>
<p>官网:<a href="https://code.visualstudio.com/" rel="external nofollow noopener noreferrer" target="_blank">https://code.visualstudio.com/</a>
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://cdn.jsdelivr.net/gh/cxyzzz/[email protected]/images/posts/5cfb5b61c8e8413483.webp" alt="vscode"></p>
</summary>
<category term="Windows" scheme="https://cxyzzz.gtihub.io/tags/Windows/"/>
</entry>
<entry>
<title>玩机 • Android(一)——应用篇</title>
<link href="https://cxyzzz.gtihub.io/posts/9e7b6f05.html"/>
<id>https://cxyzzz.gtihub.io/posts/9e7b6f05.html</id>
<published>2018-07-22T05:45:34.000Z</published>
<updated>2018-07-22T05:45:34.000Z</updated>
<content type="html"><![CDATA[<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/09/02/jRZEznveFTCpocU.jpg" width="500"><a id="more"></a>闲来无事,写几篇水文。仅为我个人玩机经历,如果觉得对,欢迎参考,如果不对,请无视。全文分为 [应用篇](#apps)、Root 篇 和 进阶篇。<p><span id="apps"></span></p><div class="note info"><p>应用前带 [root] 为需 root 权限应用,红色标记为可能会对设备造成损害的应用。黄色标记为需翻墙应用。大部分均可在酷安下载。</p></div><h2 id="酷安-发现应用的乐♂趣-img-id-github-emoji-src-https-i-loli-net-2019-06-08-5cfb5df7b796d58009-jpg-height-25-width-25"><a class="header-anchor" href="#酷安-发现应用的乐♂趣-img-id-github-emoji-src-https-i-loli-net-2019-06-08-5cfb5df7b796d58009-jpg-height-25-width-25">¶</a><a href="https://www.coolapk.com/" rel="external nofollow noopener noreferrer" target="_blank">酷安</a> 发现应用的乐♂趣<img id="github-emoji" data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5df7b796d58009.jpg" height="25" width="25"></h2><p>酷安算是一个不错的应用市场,有很多酷友自己开发的软件,很多大佬交流分享经验。虽然因为越做越大,出现了部分不好的现象,但总体环境还是很好的。特别值得关注的是软件的评论区,多逛逛往往会有很多收获。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5df8ecd1078695.jpg" alt="coolapk"></p><h2 id="fooView"><a class="header-anchor" href="#fooView">¶</a><a href="https://www.coolapk.com/apk/com.fooview.android.fooview" rel="external nofollow noopener noreferrer" target="_blank">fooView</a></h2><p>借用小编的一段话:一款功能十分强大的浮动按钮,各种操作均可用手势完成,单手操作毫不费劲,使用起来也相当智能,毕竟和原来的操作方式有很大改变,需要时间适应,但适应后很可能就停不下来了,总之值得细细把玩一番。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5dfa7d1ba49843.jpg" alt="fooView">fooView 集成了 应用启动器、文件管理器、图片浏览(编辑)器、录屏、长截图、屏幕取词及分词、OCR、浏览器(带去广告b及多线程下载器)、FTP/S 服务及客户端、SFTP、SMB、WebDAV 客户端等等多个功能。足以应付日常使用。可添加自定义任务实现部分 Tasker 的功能,如定时提醒喝水,定时显示天气等等。总而言之是一款功能十分强大的浮动按钮。</p><h2 id="Via-浏览器"><a class="header-anchor" href="#Via-浏览器">¶</a><a href="https://www.coolapk.com/apk/mark.via" rel="external nofollow noopener noreferrer" target="_blank">Via 浏览器</a></h2><p>via 浏览器是酷友的作品,注重浏览体验,干净利落,化繁为简,简约而不简单。apk 体积仅 503KB 安装后也才 17M ,这相比于其他浏览器动辄上百 M 占用,真的是小太多了。当然 via 小也是有原因的,因为它不带内核,调用的是系统的 WebView,对于系统较新或者能更新 WebView 的手机来说很好,如果是系统比较老的建议使用 <a href="https://www.coolapk.com/apk/com.quark.browser" rel="external nofollow noopener noreferrer" target="_blank">夸克</a> (UC 团队的作品,也很不错)。</p><ul><li><p>功能:</p><ol><li>没有开屏广告,没有新闻推荐,没有广告植入等等一切和浏览器无关的功能。安安静静的做一个浏览器。</li><li>支持书签云同步</li><li>支持去广告(可手动标记或同步现成的规则,也可使用 via 的 hosts 拦截)</li><li>支持油猴脚本(油猴脚本大多数均为电脑界面,手机上使用可能会不兼容)</li><li>支持自定义浏览器标示,查看源码,查看网络日志,资源嗅探(可调用 ADM 下载或 MXplayer 在线播放)。</li><li>自定义主页:支持使用 HTML 代码以及 CSS 进行美化,也可使用完整的 html 网页(下图使用的就是 html 文件为主页)</li></ol></li><li><p>缺点: 依赖于系统 WebView 因而不像 QQ 浏览器, UC 浏览器等自带内核浏览器功能多。如 视频播放无法手势控制、悬浮播放。没有账号密码自动填写(作者说会解决)</p></li></ul><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5e794404686948.jpg" alt="Via"></p><p>注:via 使用二维码扫描需勾选 via设置-插件-二维码扫描 按提示下载安装 <a href="https://www.coolapk.com/apk/mark.qrcode" rel="external nofollow noopener noreferrer" target="_blank">二维码扫描</a> 软件即可。下载管理默认使用系统内置下载器,可勾选 via设置-插件-下载管理 启用 ADM 下载器。</p><p>附:</p><ul><li><p><a href="http://via-app.cn/via" rel="external nofollow noopener noreferrer" target="_blank">via 可用脚本及部分主页</a></p></li><li><p>ADM 下载器 <code>https://www.coolapk.com/apk/com.dv.adm.pay</code> 复制链接到 酷安 客户端打开。</p></li><li><p>主页文件(与图中有部分差异)链接:<code>https://pan.baidu.com/s/1tMZ8Eie_ewVKSIMtLdnpoQ</code> 密码:<code>2htc</code></p></li></ul><h2 id="div-class-note-danger-p-黑阈-p-div"><a class="header-anchor" href="#div-class-note-danger-p-黑阈-p-div">¶</a><div class="note danger"><p><a href="https://www.coolapk.com/apk/me.piebridge.brevent" rel="external nofollow noopener noreferrer" target="_blank">黑阈</a></p></div></h2><p>对付毒瘤的一大神器,可控制 APP 权限,冻结 APP。需使用 ADB 或 root 开启。免费版有很大限制,支付 5$ 开启所有功能。<a href="https://jianyu.io/br/price.zh.html" rel="external nofollow noopener noreferrer" target="_blank">黑阈版本与价格</a> 作者会不定时进行活动,可关注其酷安动态。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5e9153b2e47947.jpg" alt="brevent"></p><p>附:<a href="https://jianyu.io/br/br.pdf" rel="external nofollow noopener noreferrer" target="_blank">黑阈使用说明书</a> (PDF 文件,点击即可下载。强烈建议初次使用时先看一遍)</p><p><span id="jump"></span></p><h2 id="root-My-Android-Tools"><a class="header-anchor" href="#root-My-Android-Tools">¶</a>[root]<a href="https://www.coolapk.com/apk/cn.wq.myandroidtools" rel="external nofollow noopener noreferrer" target="_blank">My Android Tools</a></h2><p>一款神器,能干的事情很爽,遇到一些个流氓app,这东西有用。My Android Tools 可以禁用应用的组件如 服务、广播接收器和活动 等。服务即为我们所用的功能,广播接受器负责接收系统的状态等等,而活动都是在我们使用过程中才启动。活动除了广告活动(带 AD、advertising 字样的 activity ,注意区分 download 等活动)一般不用去禁用,即便禁了效果也不大。主要要禁用的是活动和广播接收器。ps:禁用广告需使用 Pro 版</p><ul><li><p>广播接收器</p><p>如果某个应用你不想让它推送消息那么可以把广播接收器全部禁用了,大多数应用的广播接收器都可以全部禁用(不推荐)。当然最好是针对某一个进行禁用,如 带 boot 的大多为开机自启,对于不需要开机自启的软件可以禁用。带 push 的均为消息推送,保留一个就行(如果软件同时支持 FCM 和国内推送服务且手机装了 Google 服务建议保留 GCM 和一个国内推送服务,MIUI 用户建议保留 Mipush)。</p></li><li><p>服务</p><p>这个是重点,对付毒瘤软件有奇效。现在很多应用都变得越来越臃肿。拿 QQ来说,运行时内存占用可达 三四百M ,但这里面又有多少是我们真正需要的呢?而使用 My Android Tools 进行调校后 QQ 仅仅占用 30M 左右,并且没有任何功能损失。在广播接受器中说过关闭消息推送,但最有效的还是 服务 和 广播接收器 一起禁用。国内消息推送服务各自为营,为了保活不择手段,当然这是厂商为了保证消息能及时准确推送到用户手里设置的,但这样手机就遭殃了。每打开一个应用就会启动一个推送服务,而推送服务一直挂在后台,部分推送服务甚至会唤醒用户未打开的应用,被唤醒应用又会唤醒其他未打开应用。这就是为什么一打开 xx软件 然后看下后台全家桶全被打开了的原因。国内推送服务有 腾讯的 XG、小米的 XMPush、华为的 HuaweiPush、魅族的 MeizuPush、个推的 gtpush、极光的 jpush、OPPO(coloros)、阿里、百度等等厂商的推送服务。还有 融云 sdk(rong)、个推 sdk(igexin)、友盟 sdk(umeng)等也提供了推送服务。其中支持 XMPush 的应用最多,体验也更接近于 FCM。Android 的 FCM 消息推送其实是很不错的,然而国情所限,体验并没有本土推送服务好。禁用推送服务时可直接搜索 push 展开服务全名进行禁用即可。</p></li></ul><p>My Android Tools 可以备份还原自己的禁用列表,也可使用他人分享的备份文件进行恢复。部分组件可能会自动恢复需辅助使用 <a href="https://www.coolapk.com/apk/cn.wq.myandroidtoolsxposed" rel="external nofollow noopener noreferrer" target="_blank">My Android Tols Xposed</a> ,此为 Xposed 模块,在第三篇中会介绍如何使用 Xposed 模块,此处不做过多介绍。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5eb468b7093584.jpg" alt="myandroidtools"></p><h2 id="root-AppOpsX"><a class="header-anchor" href="#root-AppOpsX">¶</a>[root]<a href="https://github.com/linusyang92/AppOpsX" rel="external nofollow noopener noreferrer" target="_blank">AppOpsX</a></h2><p>此为 AppOpsX 加入 IFW 支持,原版只含 appops(权限管理)。可限制软件调用权限(即便运行软件时允许权限,若 AppOps 禁止则实际仍为禁止) 软件使用需将其安装为系统程序。(使用前建议查看项目 REANME)<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5ecd254ea43307.jpg" alt="AppOpsX"></p><p>在设置中可开启 Intent 防火墙,默认长按显示服务,之后的使用方法与 <a href="#jump">My Android Tools</a> 无异。效果与 My Android Tools一样,甚至更好。My Android Tools 的配置可转换为 IFW 配置。<a href="https://github.com/apkjam/MAT2IFW" rel="external nofollow noopener noreferrer" target="_blank">转换项目地址</a></p><h2 id="Tasker"><a class="header-anchor" href="#Tasker">¶</a>Tasker</h2><p><code>https://www.coolapk.com/apk/net.dinglisch.android.taskerm</code> 复制链接使用酷安客户端打开。</p><p>一款系统增强型的软件,可以实现多种自动控制场景,功能非常强大。有一定上手难度,不过好在可以导入别人制作好的配置文件。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5ee82312876735.jpg" alt="Tasker"></p><h2 id="div-class-note-warning-p-Shadowsocks-SSR-p-div"><a class="header-anchor" href="#div-class-note-warning-p-Shadowsocks-SSR-p-div">¶</a><div class="note warning"><p>Shadowsocks/SSR</p></div></h2><p>这两个不用多说,爬墙必备工具。</p><h2 id="锤子BigBang"><a class="header-anchor" href="#锤子BigBang">¶</a><a href="https://www.coolapk.com/apk/com.forfan.bigbang" rel="external nofollow noopener noreferrer" target="_blank">锤子BigBang</a></h2><p>来自于锤子手机 BigBang 功能,但和锤子手机并没有关系。可以全局复制文字,将文字拆分成词组,随意编辑、拖拽组合,提高效率! 单击、双击、长按、复制等多种选词方式随心选。包含翻译、OCR 取词、区域截图、剪贴板等功能。个人觉得分词功能比 fooView 好用。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5dfa6617a57290.jpg" alt="BigBang"></p><h2 id="MT管理器-2-0"><a class="header-anchor" href="#MT管理器-2-0">¶</a><a href="https://www.coolapk.com/apk/bin.mt.plus" rel="external nofollow noopener noreferrer" target="_blank">MT管理器 2.0</a></h2><p>一款强大的文件管理工具和APK逆向修改神器。普通文件管理器的功能都有,特色功能为 APK 编辑功能,主要有 DEX 编辑,ARSC 编辑,XML 编辑,APK 签名、APK 优化、APK 共存、去除签名校验、RES 资源混淆、RES 反资源混淆、翻译模式等。APK 编辑免费用户有部分限制。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f1d3a3d544252.jpg" alt="MT"></p><h2 id="div-class-note-warning-p-Telegram-https-telegram-org-p-div"><a class="header-anchor" href="#div-class-note-warning-p-Telegram-https-telegram-org-p-div">¶</a><div class="note warning"><p>Telegram <a href="https://telegram.org" rel="external nofollow noopener noreferrer" target="_blank">https://telegram.org</a></p></div></h2><p>俄罗斯的一款加密即时聊天软件,具有高度保密性。</p><h2 id="FastHub"><a class="header-anchor" href="#FastHub">¶</a><a href="https://github.com/k0shk0sh/FastHub" rel="external nofollow noopener noreferrer" target="_blank">FastHub</a></h2><p>一款开源的 GitHub 客户端。界面很简洁,该有的功能都有。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f3b3d58236825.jpg" alt="FastHub"></p><h2 id="Mobilism"><a class="header-anchor" href="#Mobilism">¶</a><a href="https://forum.mobilism.org/index.php" rel="external nofollow noopener noreferrer" target="_blank">Mobilism</a></h2><p>国外知名破解软件站点,发布更新各种破解付费/去广告软件(国外软件居多)。下载需翻墙。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f3c1600754235.jpg" alt="Mobilism"></p><h2 id="SD-Maid"><a class="header-anchor" href="#SD-Maid">¶</a><a href="https://www.coolapk.com/apk/eu.thedarken.sdm" rel="external nofollow noopener noreferrer" target="_blank">SD Maid</a></h2><p>一款很不错的 SD 卡清理工具。授予 root 权限后效果更好。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f3c8d9d787786.jpg" alt="SD Maid"></p><h2 id="存储空间清理"><a class="header-anchor" href="#存储空间清理">¶</a><a href="https://www.coolapk.com/apk/com.ktls.fileinfo" rel="external nofollow noopener noreferrer" target="_blank">存储空间清理</a></h2><p>与 SD Maid 各有优劣。高级功能需付费 3元。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f779702e75148.jpg" alt="fileinfo"></p><h2 id="BusyBox"><a class="header-anchor" href="#BusyBox">¶</a><a href="https://www.coolapk.com/apk/stericson.busybox" rel="external nofollow noopener noreferrer" target="_blank">BusyBox</a></h2><p>Linux 工具里的瑞士军刀,集成了三百多个最常用Linux命令和工具。有无 root 权限均可安装,root 下安装操作不当可能会导致系统无法启动。MIUI 自带 busybox (非最新)。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f79416ad74300.jpg" alt="BusyBox"></p><h2 id="root-钛备份"><a class="header-anchor" href="#root-钛备份">¶</a>[root]钛备份</h2><p><code>https://www.coolapk.com/apk/com.keramidas.TitaniumBackup</code>复制链接使用酷安 app 打开。非常强悍的程序和系统备份工具,需安装 BusyBox ,可备份到 Google Drive、Dropbox(需开启增强版)。部分功能需付费。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f7943d0974266.jpg" alt="TitaniumBackup"></p><h2 id="Termux"><a class="header-anchor" href="#Termux">¶</a><a href="https://www.coolapk.com/apk/com.termux" rel="external nofollow noopener noreferrer" target="_blank">Termux</a></h2><p>一个强大的终端模拟器,可使用 pkg 及 apt 包管理器。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5f795eb5e93872.jpg" alt="Termux"></p><h2 id="div-class-note-danger-p-root-3C-Toolbox-p-div"><a class="header-anchor" href="#div-class-note-danger-p-root-3C-Toolbox-p-div">¶</a><div class="note danger"><p>[root] <a href="https://www.coolapk.com/apk/ccc71.at" rel="external nofollow noopener noreferrer" target="_blank">3C Toolbox</a></p></div></h2><p>一个非常实用的工具箱,包含多个功能。</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5fe9c017513285.jpg" alt="3C Toolbox"></p><p>优秀的软件太多太多,这里只写了一部分我正在使用的,并不代表只有这些。</p>]]></content>
<summary type="html">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/09/02/jRZEznveFTCpocU.jpg" width="500">
</summary>
<category term="Android" scheme="https://cxyzzz.gtihub.io/tags/Android/"/>
</entry>
<entry>
<title>使用 Mentohust 代替锐捷进行校园网认证</title>
<link href="https://cxyzzz.gtihub.io/posts/2443be7d.html"/>
<id>https://cxyzzz.gtihub.io/posts/2443be7d.html</id>
<published>2018-06-21T12:07:41.000Z</published>
<updated>2018-06-21T12:07:41.000Z</updated>
<content type="html"><![CDATA[<p>使用 <a href="https://baike.baidu.com/item/mentohust/11049624" rel="external nofollow noopener noreferrer" target="_blank">Mentohust</a> 代替锐捷进行认证。mentohust 有多个平台,此处只讲在路由器上使用。大多数第三方固件均已集成了 Mentohust,如果没有集成的话可自行安装。不想用第三方固件或者不会刷固件可以购买极路由,官方自带锐捷认证。</p><a id="more"></a><p>使用 mentohust 需要安装三个软件包,libpcap.ipk、luci-app-mentohust.ipk、mentohust.ipk。其中 luci-app-mentohust.ipk 为 web 管理,可不安装。mentohust.ipk 包也可直接使用 mentohust 二进制包使用命令行运行。软件包需要对应路由器 cpu 架构,此处不提供文件,需自行解决,若实在找不到可在评论留言,我有时间会帮忙编译。</p><p>部分项目地址:</p><ul><li><a href="https://github.com/hyrathb/mentohust" rel="external nofollow noopener noreferrer" target="_blank">mentohust 加入 v4 支持</a></li><li><a href="https://github.com/ptpt52/com.ptpt52.openwrt" rel="external nofollow noopener noreferrer" target="_blank">com.ptpt52.openwrt</a> 含 luci-app-mentohust,mentohust-proxy</li></ul><p>mentohust 所有参数可在终端输入 <code>mentohust -h</code> 查看,输入后显示以下内容:</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5bfcbe79f16881.jpg" alt="mentohust"></p><p>或者直接在 webui 填写 (此为本人所有参数仅供参考):</p><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5c28f089313758.jpg" alt="mentohust">其中 用户名填:<code>学号@运营商</code> 移动宽带则为移动,电信填电信,联通可直接使用学号。密码为 <code>宽带密码即使用锐捷客户端认证时的密码</code>,网卡选择 WAN 口网卡(可在 web 界面 网络-接口 查看。其他参数按照上图填写即可。</p><p>也可使用 <a href="https://github.com/updateing/minieap" rel="external nofollow noopener noreferrer" target="_blank">minieap</a> 进行锐捷认证。我没用过这个,故不作太多介绍。</p>]]></content>
<summary type="html">
<p>使用 <a href="https://baike.baidu.com/item/mentohust/11049624" rel="external nofollow noopener noreferrer" target="_blank">Mentohust</a> 代替锐捷进行认证。mentohust 有多个平台,此处只讲在路由器上使用。大多数第三方固件均已集成了 Mentohust,如果没有集成的话可自行安装。不想用第三方固件或者不会刷固件可以购买极路由,官方自带锐捷认证。</p>
</summary>
<category term="路由器" scheme="https://cxyzzz.gtihub.io/categories/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
<category term="锐捷" scheme="https://cxyzzz.gtihub.io/tags/%E9%94%90%E6%8D%B7/"/>
</entry>
<entry>
<title>路由器</title>
<link href="https://cxyzzz.gtihub.io/posts/5799c0b3.html"/>
<id>https://cxyzzz.gtihub.io/posts/5799c0b3.html</id>
<published>2018-06-21T04:20:00.000Z</published>
<updated>2018-06-21T04:20:00.000Z</updated>
<content type="html"><![CDATA[<p>此为本人用过的路由器部分资源,写出来方便以后需要。</p><a id="more"></a><h2 id="斐讯-k2t"><a class="header-anchor" href="#斐讯-k2t">¶</a>斐讯 k2t</h2><p>官方/官改固件锁定了 u-boot 分区,所以无法在官方/官改固件下刷入 breed,如若确实想用官改,建议先刷入 breed 后再刷回官改。</p><h3 id="刷入-breed-方法"><a class="header-anchor" href="#刷入-breed-方法">¶</a>刷入 breed 方法</h3><ol><li><p>刷入 ptpt52 的解锁 u-boot openwrt 固件</p><p>特制固件下载地址:<a href="https://router-sh.ptpt52.com/rom/openwrt-k2t-initramfs-factory-uboot-unlock.bin" rel="external nofollow noopener noreferrer" target="_blank">openwrt-k2t-initramfs-factory-uboot-unlock.bin</a>解锁 uboot,只用做刷机过渡版本(过渡版本无线不工作,正式版才有无线),不能作为正式使用。</p></li><li><p>开启 telnet,已经开启请忽略这一步,已经刷其他,只要能登录 ssh 或者 telnet 都可以,开启 telnet 参考下面。</p></li><li><p>把 openwrt-k2t-initramfs-factory-uboot-unlock.bin 上传到 /tmp/ 目录下,telnet 或者 ssh 登录后台,执行命令 <code>mtd -r write /tmp/openwrt-k2t-initramfs-factory-uboot-unlock.bin firmware</code> 刷入特制版本固件。</p></li></ol><p>已经是 OpenWrt/LEDE 系统,natcap 系统,直接界面升级就好了,不需要刷,请直接下载另外一个固件,到界面升级就可以:<a href="https://router-sh.ptpt52.com/rom/openwrt-k2t-uboot-unlock.bin" rel="external nofollow noopener noreferrer" target="_blank">openwrt-k2t-uboot-unlock.bin</a></p><p>下载的文件校验 MD5:<code>fcbab4d79152aa4de38ee0bdd436883d</code> openwrt-k2t-initramfs-factory-uboot-unlock.bin (解锁 uboot,临时使用,不完整)<code>062173c2f254aa425b5649744ca0c92a</code> openwrt-k2t-uboot-unlock.bin (完整固件,解锁 uboot,用于 OpenWrt 界面升级的操作)</p><ol><li><p>进入 openwrt 界面 系统-管理权,开启 ssh 刷入特制版本的 OpenWrt 后,登录界面 <a href="http://192.168.15.1/" rel="external nofollow noopener noreferrer" target="_blank">http://192.168.15.1/</a> 进入 系统-管理权 页面,开启 ssh 登录账号密码 root/admin</p></li><li><p>下载 <a href="https://breed.hackpascal.net/breed-qca9563-phicomm-k2t.bin" rel="external nofollow noopener noreferrer" target="_blank">breed</a>,上传到 /tmp 目录 (注意对比 md5 ,特别是使用多线程下载器的)</p></li><li><p>执行命令 <code>mtd write /tmp/breed-qca9563-phicomm-k2t.bin u-boot</code> 刷入 breed。breed 进入方法为开机时长按 rest 键,直至指示灯闪动,电脑使用网线插 lan 口访问 192.168.1.1 即可进入。在 breed 中可进行固件升级,备份,超频等。</p></li></ol><p>也可参考此<a href="http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=322841&extra=page%3D2%26filter%3Dtypeid%26typeid%3D19" rel="external nofollow noopener noreferrer" target="_blank">教程</a></p><h3 id="官改固件"><a class="header-anchor" href="#官改固件">¶</a><a href="http://www.right.com.cn/forum/thread-321512-1-1.html" rel="external nofollow noopener noreferrer" target="_blank">官改固件</a></h3><ul><li><p>功能:官方固件去掉部分可以程序,添加 adbyby、koolproxy、S-S/S-S-R、KMS、WOL等功能。SSH(缺省用户名:root,密码 admin),telnet 控制。</p></li><li><p>特点:使用官方驱动,信号比第三方好;</p></li><li><p>缺点:功能少,虽然可以使用 opkg 安装软件包,但得自己修改添加 web 开关。</p></li><li><p><a href="http://www.right.com.cn/forum/thread-321483-1-1.html" rel="external nofollow noopener noreferrer" target="_blank">开启 telnet 方法</a>(2018.06.13 官方升级到 V22.23.1.158 后, 本工具不支持!)</p></li><li><p>刷入方法:</p><ul><li>1、先用上面的工具打开 K2T 的 telnet</li><li>2、用 windows cmd 下的 telnet (默认关闭,需自行开启) 或 putty 连接 K2T。</li><li>3、使 K2T 处于联网状态,在 telnet 中输入如下命令刷入官改版本<code>wget http://woo.iytc.net/tools/k2tnew.sh -O - |sh</code>(ps:官方/官改固件设置 mentohust 不方便,不推荐在校内做一级路由使用)</li></ul></li><li><p><a href="http://iytc.net/wordpress/?p=3579" rel="external nofollow noopener noreferrer" target="_blank">救砖方法</a>(需要 TTL 转 USB 工具,需拆机,要求一定动手能力。)</p></li></ul><h3 id="Openwrt-LEDE"><a class="header-anchor" href="#Openwrt-LEDE">¶</a>Openwrt/LEDE</h3><p>Openwrt/LEDE 不用多说,市面上几乎所有固件都是基于其进行的二次开发,得益于开源,有很多使用教程以及软件包。(刷入 openwrt 需先刷 breed。)</p><ul><li><a href="http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=322475&typeid=19" rel="external nofollow noopener noreferrer" target="_blank">ptpt52 Openwrt/LEDE</a></li><li><a href="http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=325321&page=1" rel="external nofollow noopener noreferrer" target="_blank">lean Openwrt</a></li></ul><h3 id="Gargoyle-石像鬼"><a class="header-anchor" href="#Gargoyle-石像鬼">¶</a>Gargoyle(石像鬼)</h3><p>链接: <a href="https://pan.baidu.com/s/1Et-VEY3kg8GW9jzNno3vbQ" rel="external nofollow noopener noreferrer" target="_blank">https://pan.baidu.com/s/1Et-VEY3kg8GW9jzNno3vbQ</a> 提取码: <code>fm3k</code>此为 lean 发布,暂未开源。石像鬼固件最有特色的便是其自带的 QOS。含 adbyby,openvpn。缺点:安装软件包比较麻烦。</p><h2 id="斐讯K2-PSG1218-64M"><a class="header-anchor" href="#斐讯K2-PSG1218-64M">¶</a>斐讯K2(PSG1218-64M)</h2><p>Pandavan:<a href="https://p4davan.80x86.io/download/" rel="external nofollow noopener noreferrer" target="_blank">荒野无灯</a> <a href="http://www.right.com.cn/forum/thread-187654-1-1.html" rel="external nofollow noopener noreferrer" target="_blank">更新日志</a><a href="https://opt.cn2qq.com/padavan" rel="external nofollow noopener noreferrer" target="_blank">hiboyhiboyhiboy</a> <a href="http://www.right.com.cn/forum/thread-161324-1-1.html" rel="external nofollow noopener noreferrer" target="_blank">更新日志</a><a href="http://iytc.net/wordpress/?p=1624" rel="external nofollow noopener noreferrer" target="_blank">K2 刷入breed</a>另外还有官改固件,但本人觉得最好用的还是 padavan 故未列出。有需要的可自行去恩山查找。</p><h2 id="品胜云座充-ar9331-pinsen"><a class="header-anchor" href="#品胜云座充-ar9331-pinsen">¶</a>品胜云座充(ar9331-pinsen)</h2><p>可刷 TP-Link wr-703n v1 固件。具体请看此文 <a href="https://virgo-233.coding.me/Pisen.html#more" rel="external nofollow noopener noreferrer" target="_blank">Pisen云座充</a><a href="http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=209145&fromguid=hot&extra=&mobile=2" rel="external nofollow noopener noreferrer" target="_blank">购买地址</a>,裸板,18一块。<a href="http://bbs.mydigit.cn/read.php?tid=1031661&ds=1" rel="external nofollow noopener noreferrer" target="_blank">刷 Breed 教程</a>hackpascal-Breed:<a href="https://breed.hackpascal.net/" rel="external nofollow noopener noreferrer" target="_blank">作者自建下载服务器</a> && <a href="https://pan.baidu.com/s/1eRCPsMu" rel="external nofollow noopener noreferrer" target="_blank">百度云</a> 密码:3if1 解压密码:baiduqusi<a href="http://www.right.com.cn/forum/thread-161906-1-1.html" rel="external nofollow noopener noreferrer" target="_blank">更新日志</a></p>]]></content>
<summary type="html">
<p>此为本人用过的路由器部分资源,写出来方便以后需要。</p>
</summary>
</entry>
<entry>
<title>HUT-Email 登录及部分 EDU 邮箱可用福利</title>
<link href="https://cxyzzz.gtihub.io/posts/ffffffff.html"/>
<id>https://cxyzzz.gtihub.io/posts/ffffffff.html</id>
<published>2018-06-17T09:12:31.000Z</published>
<updated>2018-06-17T09:12:31.000Z</updated>
<content type="html"><![CDATA[<div id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look."> <div class="hbe-input-container"> <input type="password" id="hbePass" placeholder="" /> <label for="hbePass">Hey, password is required here.</label> <div class="bottom-line"></div> </div> <script id="hbeData" type="hbeData" data-hmacdigest="224126ab300affa3abedf415346a8434d55cf8ba445ee517b415e4855a736e6e">18e5442f2939cecd82e1f1f4ce029ea26e862982dab949c24073ead46bb35e8c330b227ebca12eadf2a8b4a64f80a353513286e2b17b066686def252a32bdedd41c0a3e797c477db323fe59206edc7c878532fd289f71d0560a2a0f76a641ec2766a34d0e24e12247258c8996174efdd95865e7b9a1324ef647047bd3e629d08a8f59a403d6b3e379adf2e476cdac49dabd43e206d7a395fe35d11d8040f1757d48a83ef5cea4fc4a3c9b10d4186a16a9e83446c23a698ad701a16bc7e8d8847d61b8f332006205cb81fa7c2e270b38f654d0bb1bf0b1117d996909e52abe215047959cc7b03a2d1789653e335389ee478714836e705bfa8854e289ab18c24aef8fb6ce3ffc711ed2663189f144714d1d9ff59d9c3a568d85d565b60f280b5f7c8f28491b4bf335fba18ed9dd87f0b5cad4b541759f3f55f552ab4ba0ceba0f809df5aa3541b36d1f45f2931abfa5f690108bc53b93907050b48c0696b03e8840fae1007b2f37b370022fc11aaf9c9dcf086a9538d4cf1c4588e8eb002e14a35704d5c91280f913c9eed076467966132182f7d4d4f1ad3e0dd8a4017745d6ccde6c9136159f61aee8c876cabab949b6523a38aed469d6c7fd141cedc0bd82b8a69248ed4ec09c782f4fc39a360ff25f2cd7ee9b025a5fe0438d45c517f0632fd5558cde61557a0e077e7266a42b92928a48ff962bcd38c0c261fd37c40afc6a7d135b4f1f8c5dfd2ce60eceb23d4abbff1677b6022efe5782d19967ec294a21879049c2d65ee5ceb6fbb5e213d9628e768c3ddd1c26154c92b4fc7c1d97618c8027d6c0de011292c78abd3d22b8daeab43d8c33f3f6a317b2614eba281c22f8130dcb37f42d7cee27ac50d2cf2a0e87ac5f2aa923ff6cc65e7bac55c8b1a6bf6a55535fa47a5297eb5f3ef452e15445ff9f5c47ac982e37d079ca581f3c3eee5845e558037be343ff7fb3f07d70148f8bedbfcb96171fd6e3a1fbae7bd8edc20c285b7f13b7aa2e0eb3d015038ca3757458bbff16551748e5986e9c4b9f68832a924f5403800ab526d52a14cee87b1e11116605df0eceb0f990800516e8af424d7c680de495ce611dc489dbd0d1dcb60db215c5c816a0fc480f551c8c2bcab811ce3e85986e929a29316c8a41b87fd6ae8b82c7625b83e55c001312ff36dd736fa3eb31cbff33f898fb0d5512a045cf0212dfb4a4e38dc34708598096c37d31f799153b893136cdfb055bf576ea2f38372d9fee83a2edb1799cf62bdb952cb7851998f64f676abbc0037d2047a248f657ddc140d594f344cef52f53b71db5764bfdb426e9c9c10c170850beb799d4e6c4a4eca0321c02c0d439fa40e12e66c998017eecdbcf52ef43ea779ff2c5e8f72a24b8623c2ba1692de114ae7f96a9d0b50963576309511fd024ea5c935e81f36067df50f4394f20774559d88f569024990c584c9dcb47dbacc6eb8858e2259fa38e8d876a20fed9e8702fee1defe84057152681374c42dad0a0380f7c9fc768380e005866498725b843d0c947de66583951634a8902fdd4cc473cac864c655f4d35236eb1bd35cf153d6c221563a9b58c927f47786a8993c29f9e47d29b1e0fe4cb1b831d5e33e8b281f23d96706fee1bae76d6a6a7c4cc80ded6b880b6ec3b34f647677de84769c28bf8a1f9a4c23a086e6be7d99f8d85d5550711caf1ddc939b437a501e329080f64b6fe9ddaf9f53526670a1dbe3098b288ae111bd8af2f771b3567bf6cc247af21af39f772982dfc1205e452d3c761c2a7d4d771358d111299c3139e5f24c3aad8da29e275fc33d673310fd846baf83b5ab23e83c60f274589ecf5d8257f0ff86424429b4842da926dd9affaa05e93ad2c6146c59cb70fba91c84dc73bc8c3ccf54827414e14f6746e7dc1398d7542c0fd8fb542b86678277ffb2f37285f38388af8cb4d4af7b0eaba58944ef4de5502f863193c34bd1afee9b2a6922abfad8b54fac4ee2d8de3b8dfda9614eb03b571e647b215b2e3640120f2287f73646d5f17ddeab3e398eadfe21538332b87a5e1c067e514c0c4f8dd3f3e1def86f20aad7f55847aa6262a5d8623dabb7a7130b36494d6cbcc4cf85553f81caf0f0e99049da6c310da6ebdbbaa9dbbdd0775bc3a1288b035e5731e7058e770d3eca19a66ce5c1a670724e1acdadfb3e97f6d28651bc40e5aa6973af88b72fd84cd79cc96457e49554892193dabc0222e5fdb7477f74046809e66c61cce0fa6a9cadcbf676166519cceaee4862272600d5b92d0322a1edfb4b95d920806edcb7c3b8f8abebedb1200e4816c65b1bce2e602a548d9d9f616200fea8de805956b61c91f3a0a67236f1e217bfcee6a4ba1cf769e0202508d42ab7bfd25d2eaa7d70dc499af1ca6dac4a8f237a5166ebd661145d50a2eee9afdd73b33994a9b64c245956502dbebca437b13d5a35e00c4b5a17aa2f35248be414f0607229bb3d59d8cd2669f1daf65bf0956f0ad53235477b62ca3dff165bdf56a166124b384f6af2efe97ad8ab36ef650309bb179e7076d030138d60e7b05411b31544e4e7a4119d0cb7bb635384a3b74a2a6474c4746c27018e9aabc59a211c26fdc7b63ce4aef43875ab2852c8feb919dba125327d201530c65d11604e01962d9f523fadc160dd52372d1d72f0a577f2845f2cf61eebcf55315bcfccadf45084e344ea2a153beea1d00657bd05f56e2e0039c92cc6b4cd395ab2674808a733dbd1ca9e6a6498c941ed9a9db489c965578335d58e3f0da93303071771c32fd3b01bef35f94c00eeb1af2fa4b97ba1610718042b61bcfbecddc292f7ba573e2539de95b7ae218f332a2a0ed3955ce60124ced5ea27008b3c5480f2fed3bbba766c703fa075204c6786a2213639006f7b7b38cccaa550bede95f9dc6aee0685aad8b5c88de6d484608cb1a3cd03e9746fff3b644b975cea78a62fc944368d1a9fa101accca07056f5f34db468536205827a29b644dbd7dc5d5eb584200882e8247a8dd0f3064e9c1f6f808598cf81023bca2cad648699b3a3cfc45d877ffe9e4cac7f2d482293bc2c1c2e638adf936537fd6014694a4c3c98926901132f55868fcd589d9fafbf228c843487d1d901db2e2decdbd66315ddceb7a2621ea70d2f8b1013685cc76f0e6c8d09f0961a74b821982df7f4afe0081cbbaed95a966c6afdf4cc90dc21c2095c7adc965db01fad0dacc18f2a10ffb688da43062232ce8b4a709ad5ca65ea0bc049a46a9920044fc14457679a0a7eed58306dbe713d6ae98800ac103d7b99c3c32022b4def78e6691da4f669a786abb28b2a3ef8bcac61e0e6a0da1bfaf5166d797f16ad98909c0364c238f94c3fa0a9a608bffad30ef2d448263af4725f9a3e14a738c1097149cb9a75c3b9127fded73d4707e854e7e82a892b0f12cf6d802a7a89411bebcd2682fb436e9eb1f69a24795f6d03bc8dc68460fa34c54ba593dad757198cf64a24301f67daaccee1aca207747caa12dbae708d27180428c92858a5ff09800e7180cce2d634c104de78fd86eeb9ee0cb122b1cc9b19d451db412b052d812aaf9757247529184509d257d557a87bde8eb055e17131e1469f36eea1cadf056e943ab7b8395cccb9408a7acd160de9b35e7a8f985a65cceb39ddd2adde20ee890ae3a281bae84f07723f47263c313643b70f4732ff6c62558d03eb079e644944fe61e77f59d1115372af5ca0d3f31ccf2dcf665b3d478630ac2b9b8431405a56dc99386e8ff9456a7a31a73b8bbd2e675fd4f987c5288a5ff7e7e7535a023c9efd6b7813c682efae47d7a253b85c5487c5a781764528e31f558662d7de5001783e5cb011999b401a40b844e4d8da9cc23d86b301c9e52fc68087458e87d9e777e178ec036b61463abd08a26bb5fe04caec85f04d7057f2bb3fa4e7e858ae940f1b9136fef3209a435120c28ca2c8bbb9f1d513d9464d7cceb51725ee8d7c8ed59e24900ea9a9d2d33848970b03c4d2f4609aafd82ff68e0bf33819e2b65b77b08f65310160abc31c6028414229b6865c50402740344475dc6338e6cb78ca8e4c4cda2b9cc2c0279bd3c17bf5a4fed2cbe9a4bebf717c0dc1740cec5183902f18cf9c021e7e5a2dc83f25b535d2b521b8e534e4ccc35d7c16bc2047da025b6f031ed13cb1baf1768962fe11eaef92beaa238bbd3ebe87cf2600a879bf861041db485ab24a06034b7bc65944a6d163fa2513425bc84eb9cb40dd3c2a16bb13eb26ba4027218fe46e4dc733fd3bc5c82ac0aa08c4ba063f7500d81a3e6977a6d4883f341cf3d4362063a8f6f6c7a54fda6fc2cd647055e621b20be0899dd4cb16082679b3a859a8f0892ac03f118e5704aec96d8b559d7d39d439f413d4ef33ce9d8724655d292f162e66342344e21bfaaf52acad39340e0fe19efdcc1b6ccc92d015a2a927a73aba5e50d9110181837a0f2abe46148888d378710a0e6710b5c88eb898cdb42e22cdafef4c86d0fa65332216ee34e5a87661e41b99ae46d9d3194d4359046f07f6dd75e8e533f94d337a2a375033a99ba0cf7ba63f50240c5055786ce37bc6639c8bd31abf8966cd489418ef95b5227ea44599cbc2a2b9a645b67bfc267a012319d4cc9ed25b684771057e196ba165952978373c9b6e17ded5d7fb54405c5c9edbaabcba1eecaebc82cfa9351f4da9747ea0ff070a21ae526250803d86bee066fad6fdff36817d8754523ed7fed8a9672a6e1613482463482f551a4c0da9f1f9ea452cd4c5f67bfdf563669e2152f30cbd073ce009c2644890e8f159d7c213c6011eca0daa76785bed8361757cf0d4f047eeba54fea8084c06f96a165a554d3e75a7436ceae0dede9d6abec8787950fda411dd43002b815df85c00cd283f09675babd3247382ae5c6cc555f382d3cfbe1903842c2730f33bbf06f6f7865bc82b61763a0c2606cec072808602c3a4a7edbe4d20ba3373699fa6da594384152ff58766e88fa0e3ea29f1e9e6e0f8064c99a27e38747298ac22acd8e947f90727871b015b9398e7157deb428aeb6da696be024159e8c7654c1d299aa3521201a32a0c04d80df79ccb8d7e3945f573e7cb5bdfe0eb04be0223c4483e37bd10c1be1c2698b1922478043bd4c4d2252a1dcfd2ba0fc8f9b663fddcc53ed915dd0c6dd7e8d1dce7fe575133502989773e201fa33db642a7f2edcd1ea89132aa389218b16dc0063934470feca691df4f4be4c7317fd5cd86bd9cd5873fc113d0b2045ea622e49668b2c26a6fb6b68861d691a47d38615f08f361bbe0d87200335042dd6f6c696f0ca9198ee9d36a6a9054ec10ad914aa86db03f5c5ae9992b2e201ece82afe2116b72ce789286ccb73a51b4e3e66da590992f14afa94fe654c0a9441a4d5c0c7905560d4fc9eb4ad67cee81f2ed0a3de1079b79b223c4b4af2cf7582a3f0199b61d8d85cb31d2e3a5cc1549169dbfe44e06024659d29a59e70b2766d4acbc958e9aecf6389b38a5a903865e5c8cf10a74c09d8c4212cec85bb3537e0138589c2250f7fc95ed02c8b6f111c209d1435bf9740519c8062cd7244b9647c010ad18eaf856e1a5464f974c1064b03ee16bf5e4f6adefadfea13183e2cb91679c3158566f2de6a05bc103765cdb9e857aec51224246bb42adff219b686e4a56ac996d914f42ea27f504c059eac924b7333e2b1bb2044101fa8dbc8dca3e9bedf8d2cce867c62b286da1862df3b0c15527af37124b1d78b504a6fd9608db5b06ec31fb11b43573c94c5cf3d0f16a1897dc5ded5e9c0ad5e393532db37cb8f991143173b1a32e9a6b74d8ef3be4b5fd648ec85fec9bc35d14254360fbc9e3eed32f484850948dbe3b324b764d99fb7cfbe72ce66124c8e6dd52f592f7f96b7fced0d7127ab30a463ee13775452ecbdfcfeec6cd6e7a100de5f18e7f21769e543c7ee0acc60ece8b344e965f23c54d3d3eed3ac964aec63c2a2e020da79c72c5e9e890deb99a704e544163e56f94c7522b5ea295541e3e6e247f0278c50ef8f8417777e2d1453c0595ff974d751334bd19dcb5e0368fbbbdfd26e22db073c9606f98ea28f1c1711be36063c570df1618c27183a380fb75bb4625d14ed15009b407decd2163140902410effcc19029557731d359bc044b419df3c43da91a3f1427fc3624e17a6a6e8922c103d328aceaff1999a9445cf1ffc1f11da08e631d5327deb0be9dca437c0279a4a11fd2691cd2d3319b3bf536341dcb562a791570102635ad04ab2047005d1c8f23a7aa9240fb04a6e92ccc8ccb6fe5ec9a44394a3b35a01f19c2db934466943675d347d54754608939b49077af1b1d2a75a3c33c1e4d780bfbfa05c59ea3467c1d0e987d7611362e7bbe913653752afb1db0c8d1e0ca768c956245bdb60f7b02bfffbd79cddd9a24268f0be70cd1bb7e12c44ffc6b074c478433bcb2a37677ec46e11db88b55f223cf37363ee6e847b4a9eab1d13f707bc81329b2baee0c054cbb08b66b00c336c7b6dba2cb292ca691a368e6b8bf4d70e694e8a32971ec016d39ed3282ea96fa9da763da75781e4547a0039ad7d03c2d5939011e8ad356a4b966e3cbe97f9f5c560b2970028366edefb9d0502de29a2d20dd6fe62341d14865e18e0492d8e6103e223fd1c7bddc889dc98fc3d206016a13678740fdb1894644cf8db2124f1a4bea5e130232b7e285d19860ba6c1258a711066e6bb43f770a82d93d154ac0a0892bf2027a840692eb8e11562cd7e6349c30eb154f16d0425075cffb43601d1a76f4a40b9fb6865cf1fde111accfef3365c8d6e0d0c5ac5bb23bce7207efc6295df939cadfd9dec4350650955cba1d8bd5ca6ae1acfb1e041e17bb225222d7374f228242e64efc2324811210fbb39d1af52bc730dc8870927bd9834ae17c5eac59612ecec0ea4cf629a8050ae9ec72a71f6867cb657634fcc90a6a02db1a8ead980e652f67a6ad0eaf5d226ba73ef94d3a3ffd056c56b21ac1202cb96d1ffa605dcfbd21bff53cc6cbfc8821e2f802db92c0ad31b2b6a1b27c5e5c148093f65bf056214a20f0a2aa930f0aaeb07cb9e187c646b8f8b86f8130d11a62c0ff45d39d85c0e7c9005a6bac7165cc85a8733011f6f3b586312e824b23dae02d5db07d3edc679872c4b64c42d947625b49dc5e41eb84ec67251fb9f4ee2fa2b790a569ba59ec47806077fe3d944b7912adf19fbefedf0aff6943c5e76b186b9026b34d5acb7f0d2a89e10b46c38c40d9bd19395aab31aa61ac4bd6f266c04e5d253dcd1314fe6d99dcd342c6a94f04eb5efb934c640f308efc76d8996cfacd5448c2b94198f5e575d65d9b1cd523a3381a19d3c1518c2be2c70722fd1e18628946097b5dcca019c4d6912e81b2c8a1a09e8af48be1b983aa17c95d1b2a092866c529115abd8da4b0235089a06ebf26355a952571569cf226524e6f69304f983b29d58d06a8f0970ce0533ae7659f76fed26ba84ac22766cd43ccedf423d4453dd7e10cc61578b2e7cf947778f1d3d9b47ce78cb92ab9c1fb3915f84160e7975aa23d8b8ee782c542b8d32514e4b32662bb9805cabdce08caf0503fae00975e54d239ae7a5d87e791feebf97ec0ae94b93543494fa0c4b4bf4f7166fb7171d4de28cb56f714f0b8ef3930891600214df795cb21e31b1547c4b38d50522ec274e75a635ee13ca1c27e11edbb1ba741306732b0bfb8477e517a8d35aa5920e661392542775ec929c60ef919c3ffcba8d8ccd8dd086dd69deb665d69dc9d5f634602d5935261d81cc738d2961a042faca9c11c52924aa28aac8cc54acb6e9004fea7787481ca01cdda8fa58cb315fd257735be4eb579751515d9aff5c2abcb537852be9fc04e8cb4e7866a09f17b9c84dce2dc22409f63f83973053a55fc924a47f28bbdcef58c4b21dff5a3c34e94cd811c327e9fb410615a3898ba74c273093c49a27557121e0a6091c2b112f87ed676d9c174f276cbf09d61ff83e6da69a977807c75c0eaa73fce0d8730fbac491ad930b05fc2bcb37ec7336a639b37398173be6f9a8b748553f291d9f813e95ec0ea4e614bdd0579edf5f00245316c55907c139595ea43539b66c2b333b15b5f37bf85cf372b0ddbfcb6311417f3e80cc7ed1d411dde31f39b59cd487971f5276f7a4720a3c98a0be35058379c8b44ec16b6bbca0727148a38804b6f0a6d5dd332210a056a7bb8c437dc2cac797dc18e09295e955e0d8e313afeac9b9751ed54906ae0e04ab325501921b0b515f38e89da4da82557f39a1500b9c54a5d1211bbeef3ceac7a1b6cef88a1e23b7f0985498a3f5872d7bf71440ebb28b6b1583c93625bcefcf179f9b192e1837e8784094fd8a5b21cb46d97c16754f10eebb69ea18ebf26fd7e6042c1eb85da5584cc58c8dcb9608abd6d6a7f9c9b10e3f04be082a24c3b40070964b8045362c9aaee13dfc0e82ee6264018b20969a35ab603e21e9b1073c60012d445df6b1438174683418af97e3fa9fbf613566773556288394cd9f87ade9f1422a8fd6160a3446ac135576e8a1c8be52400814db20506283ab1b9e6adf3793c7bcae51f6530b6a03b04247486b4d855b0b68029f37434f5a9fc80068e76732981bcdc73f2cb9a9f79641c0b71563422bcea6ae8897c898d13b91d0791b3029eb9552e1dcca8c0dd086b5ccc576efd7426f5cbee3106efcd4f087237880718dcab114791b41207b6765d6528849d708cdd23d728360e68594c683b049760ba8e0c62c1acf61225c01a763eccda974587e1d73d7421634b42a234c796756e0c4e786fc058cca1fdb7f56141df281bf2979280026d9a53fda485e35a5a82721b65f861ca3355677f810b9bd8a3bdf897cff869d6eea652cc2c3c53e2afe3664cb9c841c094ad40f9c496981fdc1bcb1928e105bbb18a306ba6ab8efbf14d1693880eed903e0c01c38ef98cc45d7f92b0f713cb0c320f934b43b3a0c2fbf499762795919c8f6076a34980ae99747e218d5e97a54d6a26e5a6fe7e32926fc8e538117d674d14b1c17069ce5b6790880799acfe3a5df4c435c4db73290884e0863f943363ca8c728fef13528b91f9ff38c5f4d87f7ad0621a4d08d52aa05c7eb31a6feb2c77dc37968d03e96f8cfcffde8b1f9e475fa470f34224dfb93199ff6f68d75165b572c271664305bc95acf8d05bfb26865de246e9e3b7df62941b08e2770ed6d23228da2646cfec3ac493919c41458224b006779e7c7fd113111ed72982cea9e7b21f07ea86eff0cbedba72c2f8bc79a4a017c6abadbb6467e82b5c1fce5efbdb3bec29115b54d8214de069d58d129e1b8fc8f910cdad65ce360f80cd40cc3f292b3b5d39a9a6c545d1de48c28b1a73730e2a7d6da0dcdd3675c5e835448c69a9d655c5e18b44345c05534a3c90694fc965ee842efdbf529190247c049d89cfe234e07b09d5865d91079ec2f93671cd49ee809b5b6dbe8907a90e024d3619f021b64f6c9600381836024a6666f168e1b32fa0fd3ba51b30cc7f7c443e081eb4740bd452574c4b25064317b570f930d0bf0181c83274b336eaaf0b139b3d065e30f7884382adf76b79bed473b9c51c025fbb54722d8b9aed2b09fd6a63e208288042e1d1158b28094f9a12025e7617efc830f0e8589efd5a663566602f6f51130bf4a535307f9901ded8e6c368f4d38660dfe1929e7d093a8f7a2149cbd5da840e23e224f1f650361dac13218a437d51154bbfe41c8af7715f6d4f2979bd9e25e6d238cf372955f100b4b1aeff55630d872e2af94ed34d5f497b8f5a883ab4f1d28643eb7aebc76620916041295ed3a44a9a28d22c69629f42ce87125b13ffc870fd48ac8f23cf9ec0459707b36cd6b514080300ddd7fa1de0777219165797e4c35ee88e7c401421b5400b7be888203f8fbb02e32ddd920981f439b6bfe8628f0b9044f3e8ece98c44da0542b3a1582d058259901afc4e4791043213feb67d6ed42a019aa9268611a6290d25121c0f11e040fc55b2ad62855f598c56737d11cae75645e352a8e1fbb87967728db86437b84ead92160381f5a0b7081a90e3b49b8666908e807761391310b1421acd5d4c60fbc529e55c11bc8cb1fbe391ea5020d1e7994c8c9706427b46818ff624914070c6ed141f28c2caa4dfb561c3f679bdc0125530bdefdbdfb6cbba2e3ae3a79b3ae870fa2e4d811ace89739b6e313c496314d87a3ae240743aa88ca52b726ddddd0e2f92dd6f2eef4cff05d17c73feb4cbcc7b67b5e95a743fc7bbee53fc4dde7a28dd9143e9412d8546a8d28da5784f833c36efe5aebc5bf25e6704864239c556eee19f151100c7448a7b045fc704b3bc5345b6aaddb2653d3303b90c8e08e222606b0953843a850e3cf93ac58324fac8c745208e7e0e3da62cb0fcbe43e1e362f1ffb98bda04b65af7b68ce0d1f0ad5aa2e26acbb172e196db7cce72e8da4c3d31d17ac17866bdb06e43a95b439833a387b7d41f0aca41d1be1df31d8c37121f461c2d4927a92fc45ea458dcd02d54443526cdb8d955f287d7576674e482adfc14fc25b8d2a8f779a4cd51c614d17e63e3bf39a02aa739ccbb89a996b3fd126e5754a572cf15cf27f6040e604ed8c57686956347abf43344ea7282d7c4f33ff0b6d7fdc201ed596d9a79bcddbd8dc20375a7c084e7522611682fe03b87d00651922ae2514c71e80b689e0f4ad0b66d41d8d7ee9c6ae21b3fed64ebb0a2d040664f5f1e48e289ec997fc9fa8c72a0b6e0f2ceb63527ae9dc019f58514ec7ff5ada8fa522c57a40ca95b8b9b531a747d643e3f35e30445067a371e2cfd294472c13f45bb7f07e7b8317a6ba57d621fcb2704df51303bbc58b59be36916eafd7e4b660eee30b1fc6d73ad8f512a49a0421eb0e987fbbafcadd7cb35d0e7494092c3d063c24cb19d8c823e2d6f82b7138ff2d1419cb1282e87ed74ea18f57a0b1f47f14dd19f0076671e56370a20e3ece4a7457c4a5796d1491be53ae622b28e55bf1a1d6ffde0e2866389e378e0b84d1211a395db83b043459d74955e07d8352d1b0f6d0140a9391754adcea328709ca75088f8da5e17776be5e0daa149bf7bf074c36a4fe60d1766b7efa5916d8628c2fb6f0486ae168944b9ad2085ef73b7ac7d98f20445754a4f6185f6180e180c7c0b566fe58bc9a7ff7ea67d6d7e2614b52b0ead46a70e3b709cdc8fb47ff9eb7fc165d3db47d85da6deb8bcce059b1136d4638b242d2fead4da3f06f2ff58298a95cf2a99e99c454ba8ec6aed677056f77244c8b8f12bc1dac3e20b7d37eb0510d24c8dd4df420b151e9e8cc8c06dacb39607a0f786c90c98e00e0d6eafd06c8cdb209490ed1fef41d70af411d52812d07535b6aa7d09ef3ddbdcf2c4e820779563908706e3702de142f14cbe0a2a4324c9a48ad66164138ae329c2bf6b1d1980749418986248d3e47aa6fa68409a87ebee37d64eb3da3391e1cb2bf730078e252ec759b17a9008e5f26c01b6aad8dcf695a37a659fc7e965c3bc3608a9315fed9fae44f393e62da3c84bcafd36cbb21324aa369917a6984ba5ebebad8dac29c72bf4c401ae85bdb8bee44d1bf5772f5ade3587a211983d8f6d0e1339c6f5b37d69a840a7d4747fb5585737bbfb5ff097d7f6007139c0e9869d790b928f94c77207523e5e6604e79d510c40cba51439299f7413ad2082dd6704c535c190499886bdf87417bd5d34e8366e3eeb6ed6083be05dcce5008c655e3bcd7006ed9a096c7fcb4a71388a3fdda0dee2cfa1cd1b0432c040d22d5c9733acb6a35c769988f4acabafa958f753a807a1479fe5d9dc3c86b83d72e8e487b8ad5f6834c09b2b99539d74a652f3b1b0971e47eac9afc9cb7e44a480a438c3a8a34d1d8c5a5f541efbad66c278344c0160c36823e8129a542dbbdaed87849eaf670284d35bba8b2b9ad8a0807b7f79f7d06fd249da3132f3249a9d6598ae2398ce40847c2dbd78317018f9213b79797bc585f6a4783c77e48b7560c3678415a0f0d7e9bf2f39dcb96f8762a42fdc5b21aa50bcb2d5d017f5e148cc007b8030e93873bb7d4e80f507c7e7a9c17cb0f24ebb789585441c680d21cd1b6600565e1e710dbbd8d4fd91a33088b5b2ceaf7865f6fdb6b41454767b743735877a6fd78adf4c1232580ed409f3787dab017df2f7089d045ec2bcb1136ccbc1b7fbb81fc3a49efe77c436ce2b3c84d37eef8ce04991aba24fa09cf6a06f7bf73029222d196efa0687bfb73b667600fb033a675893df777de9853a13ba9fa7f4f26daab1aaa6909ecb670274caf06827692d6d47b4e157f9c47a139c774fbfa27f6fc71170d1fec32c511fe13902ef6b91f72aa2a8c5c7db081a0581ded8048b5b7b0c8cc2efa39b4b6de36b79cc285cb10af098b1cbfa59e6a340e110a1ea59cc73ed891cfd602f9ba154a4f677d1b49ab27ab5f69c3fe6a1ade23390226b07c67dad0c3015b2099a4fcb4792850c3641713b34e0a4f1c529fe78051b0a3098729d169c3a0d29d8405d2fa3ebc91d3440f2ba0e068cb58902f2d1bc2345ff81135e46ff8c67a5bf9ff3ea2b9f817c795ed2c31a0ec4316ced918c20e47bd97ef2c677360bfe367d1eb241419851dfda035be92c55cdbb77107933538caf19e582628466b6e43e88c6dd3973d0d4cfac6969ea9ac1a01e135e54fbdb03226e598ed0d019decb45f62c25d7c4151e1c1be7e231b2e64cc0d097fa6e5982aa64a31b19cbaaf130b277c42c48a4e72f88bc001e8c8be25e66233f4448ffa3c911de986318129fe29f0c40524b2153c471a51db4fc6fbf49a09ecccf0bb29b382d52910246fcb1b29eb329a01f8bbfbcad1b697339c54b301a3b6b4d72f7cdb6e27f109b15ece0f11463a34d3afcb6a89bf36fd0f7566df6fe2069f660b2a9fed7095145ba670e55de71db733c3774e448828afd36d096864898424f37d1fef3afe1c01e1bf21f67850b76b2154506b0bca8b5e57e0840eebf58809ff68b8cd7695f47ad174db6df64ab6e913a5c4f60c167bed2ccd35597352b7dd1d8c42d08213c2a5e2cdf7e08b8d5f59b0b63ca2df273d27975839acbc2283463cc33c263ac7a4f4649190afc124ed0131df3265b0c95b87af98a5f2a2d374a011cb531db6017878324228bf3927b208c44fad89dcdb4c5b2b95aeacd38d950dc4b129a9b2ed420206639bb14c2693ba0eb02cb9567b98e616c7e2dcd5ba82dba981ef3a7cf72aec788f61456aefcb6725c2d3472ee25493748c0438d91f73ba1fa7e0ccb5fb83eac78db56e50d8d2dd85d35af9b5120d254b523405aeaf46be016b9c0aa4a3d1ee7c685fc1c8fa292b8d13a55e77b7049c63e3d399f144df1d9aa3a577dcc2d72858e599b823ea5fd1abbb27317b0f99ed6072a4adb396cea5abc072249958ba153b49e482daa3d098ed3d411524c4cd98245fc71801966f39881ef200607525c7af2f0ab33ecc58cad51dbcd795d1782f73117eb5585481208404a62f520c86a66a9e398f9a0c2d4ca3413a57bbc74d6c838a9083d31397bab1093717e2b8dcb0a61820559720be86982e6708d0d98c9dac9430eef0003a5b0290150a2b1615dbeb2e10bbff0629ced321f1d12050f4309bd5b4cf3f2f8f1e840f079dca63341874b45275f501c104727ab228300d96ae2ad7aba21e49882e8b17c4a110583510ab92e5fe60e41c18cee144d625bfe9742940239bee12a1283ce09316e7bf9fac87ac5fa39745542529f801488c6fff2f2ba0a770d38442df70b8b01186abce7fa9afd6d2fec07212786fd7d0d1fd3ddf9d6657b7e7c2f14d794c0f120f9749420649ec93f7937824dbe3e932fc5a3c37d7cd72c19495a5ee61c8896d5a581f18a82812a8640db50572a489e0917d1a69dd5ec5668d114b7f910e5cfae70e55f03b163f0ac45e5b90d12446eb10af0b105560f4652c9b93a0f283df439cf70f3c7a26c5444f7a2e6e4386d6ff9fd55e014577c6bd81c1e5bcff1c862dc150d4581384dcdd3afb9a6e1e5f6e4208004930aaa571b4f84a143e0415870a4814bb92fdb083207f0961c5f40f5096a7d2400067b75df95aa4a4516a32127777d65b8313f2ca66e555e03b3570cc71453ae1cd18d5e17e460161da3f975231dcb84fa1f93e7a1083f8f42441e5360e8a92ec9d8fe8919b64ad6891d39066de4ed68f2a9fc58caa0a15d61131e209f42a94bd30d0f841d25369d8b7fa1db079778efad7cb19c72dd4280aa5e948def7250f0695e72cd7e52bd2d0e45aa1cd561a093b0777da8b6f56106c0bde7ee816a9fba503a69f36ffc3b7d162b140cfbb5bf01e71444a42fd252e6acf1eae9698e39796b499e65be48ceb3a1f5c4a577f7fd23ecffdbb3dfea7c998fc42e98a3efffa22f80cd53e146fc67bb4758f2f3bcfa1e27739d64efd311d105588cc81c273a2081865c7ca6991bec7797dc834071d82febc6b12c93c9019c861368fdfd2d622626cbf558044c410314fab7774fe6c4c54e7606b67970019bb096ad76ccbe16a17d485c25968d7df1d3da4ff175eae08fcb496dc56c4ac1f0487a96ed73d3731b82eb7913e58dbf5d10b6bef789a6e2ba3bb9a74cf7fb03d47fb51db473dab24649cd0abecc8a6c3c3268bb51060b2827c90bf0665b385beb8d1d972ed95a666d91d2c152de458c0e5c4513251edb3c295807f212a474a7f82f586e758ef2586f3a99d7f114d94cefa4eaa078caefca85284c8fed14d456cf1d52368ad888fad52885a308db3dbe44541aa6955fed06bf9873d7224b4b832db31329a86d3c7b9b75bd2eb12761439e35b9da9cc37840c44821d48683b9767d4605a6e12d67b75f0cac97232300f2abe21bd8c314316f97a6a704d3377c4f36b867f62a33c49f1198493a31909fd3eb7ba4ce6d2bd0f9e6dbd2ff5abd461d32e8e7bbbe9e8654e26e7d8da4669a2001272997da4bd340b5aa5e32ff2fbc7219367d9b82560ade03909d23992e3f8e59f196615769b73dcdbba94d02d6847b04a47a7382a66f5b4164bc73125d198c9c9f4975b15e8d7d1c0df5172968a1bded3b093f95d603c7499a2494ec403e54abb71d47b8510c6e60902f29cb16526693a7f3a01b175288669e03e8df3c3c17a4c90244b9b6b6f4dd7961abae65ee397045999966baf5d350b352b19a8ea9ae256fe1d30148273de7aed8a64a2a9f9191a2eb7325bf3b6ee15aa24d5b32b8b3b09240679cb417cf5de0139bd7e6a015c528d2cc5c44956a34168d2c29bbe457c4bc5d8402684de215a3e1a1fcfe385891b1ecd0f66475d3fc16920e8dc568b8586ee19bbdd25704860b83e00c1324f706062267c6297fc14010b02c4bc2782a96946753426a7374486c71683f907ff01bdb068e62822ecd49bd8f8b022468608c69355c342185a508c9c75f68c6a7be7295036229eee8212aadd5d53c85df6841d487a791a315b31606d9645f1742787794af3c33ce178aac7c5cd287cffc8024d39499e9155fb216eb62500ac6c0bc6dcc15cf32ae9b330bf485514a798e0ef0013665ab2efe393b0b461c2ed6beed7981b5bdf8c4bb3a0db230687f8b6bb0324914b9d412333839ac386deb0711ec531088b19cd057301c0278eb736d501e6a6181994623ff9ec8662513b9f764d66975a46768381ee755157bcb76e62071310558727a68b7ba164690a9699414a7915c29ba744b90a6a65e5dfc2ceee25d49bc28c7e1fd849be02112a14765e65eb7187bc0dbf01455a1047d2796b58293f6947c0e53437f86de6d070af93ea5344c9c3c6a00560d13ecfb7d55089fc04cf9425c8e95d89b34cdcf01b70c6351c130831c2628460d79d1ccac988aba70d7fd5f38f65fd97e4063f7beff79156ff34eff9f5f76d48d04ea19d0a8252c3d7dd5ce58f5ccf4baf26630bbb1c255de619771aecc7c12f9a6dd2157a4a75478b39e0fc92a108a08b9b60bd366a407f14f382128780a9403ee8b828304f1475ca10fda2be3af31dda28fda252b626cbfe7d1e9c37502bf8dc1ae619a2694b845ffa11808466ae36de270211207d9d362fbfd291985949ff5ebab8002f39e153dbc2badb1d955ba522c73f00fd96159664dc9ce4ad3a5a09a0a3bf5b5fdf125153337c49e1ba6d150339d0eae2b79f4f28f22fd99010c987fe5fe010c1b714838bfc23da7a5493ff4bb15dc1b42ba1564185d772ec0d39741a5a8823188bc2c224175a0c0c8dac7342e4a1f02903901b2a5a6955d6b0ca83ac5301a1c20225dd3fae15dd4aaf795e1881d47149e5a05119b70f15357ab9952197a0739da7469ac7f970bddabb6c4500cc23b90d912e98ebdf44760a6eed525d1664a1b2de3b92951578cea44362a0d26a3daf642314b57b32c5a25f0943c51d5680156c3cfd59e60db3bbe9790cd7c2100ace9df6118c54d4b70528f7b70ad64096e454df45267d4d1af94d21922b392d452c8ea93dc000d73290c03b99d9296690702acf632c133d9c0e2635481c3cc97c27e03cdf17db51beb0f6477d0dce87e109a74c08e52fc59e12417f090045be36d96875f5e2b65818bdecda2e40f312df81f3e1d99b69293303ac8fbf82fa379f5e81324733bea1bf47a913a3c8a9d12f563f1ccecbf34276e44f559ca50da0e73fe07a980ef0ad9d404f7011313f264ef26e5a15aefd8cccc366b9e54fe1f299345266981b9c35e8fc216d11b7cda5068528d3821675567e60a8f14850972067003697c1884223ca862948dd71e95364f93dd8185b9de53c7c5ddae69d2b0ecd9ff78d9ad2bc1ae9ed8e09163cc6dc03631b371855ad74f6773f41937213c5fb1f8e9ec46e6f32af2693b733008c78aabc4e46cc10e7e32c7d1b3a64902db1d2e7646f869c05313d37fdb27c4fbc75e0b6d82cc42d20e93e5bb46c60c37b93be8624fcd9c5ec7b6c5a3ae80af4932121529de753894aeb2de7d1d587a964497030faea4e96204a94ab45e6ee077a5ce3d66bd2f51afc777d3d93ed33adc3c300c1ed632f2faf3b82f8e3719f6f6dc6d67cb450b427d600e4a36302f69c0574f7b7165477fe933a3a9da84808b890a077eab5207922bb321f3042664a0f18004e89f4131306fd79fbe2b72962b44b1c149d2acb29b07ad92db4188c7b2cb8135a5f7fe74097e0a1449c7dee3cbac5cdbeba2403d7fb3d5ad1034d61d5e97bca4424462233c6984d7ae81939aa9df20b65844f57bd5d59df2bed34be5ed8438af3634821043280ece63f2624a1b26429ff71890b232f64462576804d2a0232369d1e86a8b1cb8e263a969dba59ef45b0ea03becb04e541be4e3911323b7c430db76d17546e5033e0a855a6d3ab2a07393c72f59197bc446b789de13311ab9c2c2f6aec5b29a8eafe1af2c8b3450073d1012854fc11a771cb1905a12347eb3c4b9e33e19c7e975861178375810c4efdbc616f49d5e81c52376319fd3bed686cbe7e7cc01e0935c4d4992d41e530ea5642103f1f2bd0511afe4c3b4fd0b7bfc1177c1a4753f29e39b0a5a94bdfda217d1694342528b78d564ba455ca08a240e8c3694355c7c4e9a3f5c73b80251fdb618a57f7c56ab34b74d5b71c8fd4a1992eb6b20c672f0dd7605e4e07384dfaed76eb85de86c799d28bd025cca67cd0e693ff25aacbca0c0ced39116df0dfddf94c8daae15f1a672c2ce10fface8ceb70d932e7393383f4b0c3cd38a34a209db55e24f0d1689acad7e01a03f2b92b7ffaa376201cff1303b8f984d72c931a335f20294bbe68f881288a5e9fb5d93169ecd42e711aa2d9ad304525e2dbfd85a29f20353b59326baf7eeb912af9e134ea61d3feb8ce9abd6a14a29ca33e471e84fa20ce77fa891aa100b8380149a3116d2a2e578232116a297a66b9f152db3f23a81235b404e3c998f2957752ee49a32cc84b85e2f065543eed28dcc24097ac1d9fd99ae6dd316d15e2deccef6db198c253e3752ec30d214f071673c14a1f73039cb1bc16fd0aa5991a86e810dea54d1c83f63e6c83625f04e7a41d890d2c3c19c9bebdf8b9efffc7bea15ad8c8cf2d98bca9ee40c84744e2207ff6ac5dd55fad0c9e909a54281dede92626b03ec8e21ec9513ab4f304e423870d44e7970514b07515ab69a61f37a8b1aa2e61af99bcd028e16356db56728394d850b4ca85185bc268c8580efcb267636f0db626ed3390e3540bf219934f92e974bc65630117c7af981f862b8f21e5d2bfeafce338c2786350078dd82e5de1d1fa3f739923d2617853fdb6937d01e8edd1da102bc7095ef7838975dd25bbd3db95c726f2c6c48beae6d50cc856d7fcd3a88b7e31bfb590354785a4f081f68952006bbd27334d8ab9cb4ef528d60c7f0febb7840fc3306e6818fd40acf51cba1c333370162407bf0c98ea68574f1b917c264d5ef2a4a5287787dd39cfd65a1b1c5480a609564378b3690379655a4ba1f1bc09ca6a11ab399483b76b6fea29a87887302ca8bdf86f72b091b57db84a0d6caaf4940ab451c6c29ca944f52680457607b39e0498f185e698a22e152643b6302bf5367efd4727aece3355c4c403ededf3df97cd9be4fb73da1f46c1b061a84b7816fed26c5beae92d1405c50cd297ec522378fcaf7395bb264f103df983c244813ce02e99e89983a45efba0a12d79afa2b14ece14948146cb3d3285b45df1a2a34fb463382019cc33b139afb6335ff9154c5d21b1bdb5c8d982221e473b0654db378054917a0de5f5f832f56f1c4c5b740e0b7872b2acac09cb4ae1a71cdd1dfb874e5f3dc10097fe77166abe81dc0d486ba007d3c8c52ed02f4720218b1133846076e40be11f114235a566dcc227ff126fd980a4b7ec2dffca13608d7d7fe0188ec97d1dabc45572dcf4e688f9e71eb3f8830973c22767f7e69910304148c0156c9cb9e9fc2bbf429760fb5e220be8b16a131f99e21ef2d10164bfa3fcba6edf5b732e0326a7b6069774d90252868edf244e6589e0775620bf87c87590209237d70ea70cfa3ff7e999e3a791a2442c06742ff18d01226577f3406ad7eb08131fa5e3c039912a65ef01ccf1d3631f88fb85798cddbb872ac370747fa7460846908642735428a0e3ebba172ac3cc6754d6d0dbdf5875219ed395b1cc0c30885d5adb8b8b2baf8ac14df98bc5eab0f67b1ad25da325432d1997706e6780e8cd49a770eabb6f6d03cd3d507ced23c4c965aa57adec8bf43f5575eeb021e1d72bdc21f46b35f58afb45a571eb8f131a85aaab4d655490100668aaef3b1211c58a929a47cbf33f33e84fb8e5681ba22bd79b9a3401adb82c364a9b2c497eb356fb218c1c089e21bebca71daa8627d5d6dcc23b55fa026c6b986f1bc1b09f85ddf204b8db4980565508f84dc2fe8ef0f3df851958ea5633738ad8d0376f0d2016f5305a6f5780f12cf30d187f3bde4af927449081daa9b9ee7eb65bc3ae3aeb0c1cc5a4d03fc7f7a415db82e33979bde1eaabd21a004fffcde5eb358248ab158f8fed2fefc84d1bdfa6e24fcfb44a49cf5f12c047b62a108a3b6114730e415d480e79397a9c4c66287ce27f167b8423c2e18b8863744a5a7d91805ed7163622e32a47bb9a5d4c5abbec2ce472c67c79fc89abc960d321f24670434dccadf3d0bb5baeb61b0a45f1b9fb32d964d94d82d4220871ddb93131d13e2f063d4ebbb8170838237b4deeb315bc4f47d3dbbcd7f267276ac5fdf645e1520e16d66849f9cd3cb49c33b4d8cb30543626febc4d934999403a015802d08a6b52c83c5523feaccf21123f5cae851afb2dd564d848c94abf436a144a5531e6bf1932c0e1847ae44c8efecf931662c3d8cc5adde0cab58ad17198e816e1c84fdcb949921af75b0acb083466ffde5485ff5f8affd86a269046484b08db3fe870d6d5729121d85238ac6ab04c58d4ab95b2c1702591efe79ecb7c699ad3b217b6c07431a234eb625566bd836b66bf3e64dd4acc88845d4772397772c6a91b261959833c8163c4d680d076cd67ad830e6e023d12a6ef1273919edf727aeb99675e814c70a4110c09f60648a52054e02afa88c112c4fb86492af2946a3bd8abb66436be148c21e4810d552c3b6286ec008391994eac25b7b74a965f980d08893486475d3dca280b7d65a60ad159fe403e1e9da1e19e802ceba45e9428c704219456d4803c31621873df7fd27294ae21ffb9f88ca18ad5298936d3df8b5b73bf7dad7b931f28a84381397a0cda5d555a405c6562996714b76238580e3c10d8189ba79d46c40401b0a1352befefc259e5e8b3529cb2002461971a7e6ec612cb1607de86c73350805e8fc82b297597c6643017d9f2641b1291a761bfce998e2e651a90573548a83854e077966343c3a002bc36a604064be17e831df6dae131331ecde831b4e769d8226ef27eb6056f9f15626a8434c40dc747d63d01f79a4b0e969dc2c452cebe156c08486f04e285007c5dd6bdc737e45f56a5927d9fc1c57d9dfe22a61bd2446f58455c748f993afa5b061c6d7a7bf302e7a9d4e5c6646c0ddd3174fae6f6cffcc0613a15f504d24a481081103b5a311f862a3e526173fea3d14932796069f284d0cf4a02501d77e9e8776166dc3fc0f0c8baf376e25bf4db1ac07a59378c7409ba8706b1686e1f70b8ecb701288895bd4984adf08dfa933563e69ca748b8d9927e615266518d4630ecf939ff73e22538ef8f5b74ef9e298430383b7bf6a8f63041ff177219309f575d06474493bc771b7ab1139e6055c305763f74a1c66f322a6ce32eceeb8b6459cf7ed17e7feb5a6660964cec63e403bdaf2410f747d58a5cad0a209a4ff13a15448cb89173743d529491cefa6409a40164ce83ead08a7b9eee5b42e77b346020ce2f8b0b3fb93a57daaf7ab224bf968ef823a1445ab19e2a27c39f84693bee2c3c2ef4e8c76d546bc339526e989e15f2ed75dba0537fd4ae761e0c2bb93148995f07cc72990a13636d4d5e985a8e9fd5ddba88cb91e8fef8afcd59f51f4fe3cdc3e3963e193be59dd985a77d13b3969d84d7124a7fc9909002d53556c703bc3572ca88b11e3a3c6330e774498545dcc9163626bb8bad5367fbb99e51ae0c03d0281e9f9d089a0f6aef278e8ef06140b1b9072f78f6f39b845973fe4b7d2c0d3d5a6ad9a2bdcd5c0ae726ac60279ffbbad22dc1bab64d223a9b28cf2d801f94d159678f1b629ef7bbbc3fb8a7100a908edcf11301dcacdc9a7a82c72aa65ca9fdc2570d8dff3cb98c67b285c83730d5f6653253df96652a83e65574aca5bbdee3df9e93b7d0b637ffb458c20eaaa043db3a2574a114ea3abdc007d5a5e9e0e31dcf7805473f58780e799497f7713406ed3ff4708e3748eb6ff56ce4b8077a432e70de0fbc66c2324d12d9c15678bb10cce300fb1c9bc97ef239d45e271f4badc36829d7f1cc64601c92bb65675249d2385ecabee25e536043403dcde50a4f73aa0985c267dd42c66fa12bfb12a5924acf6c7a466338a7a9c25795bb1ed6856e2cfe140b9fe06bf50cc9486ccd078d148389a2d1902fffce9ee43be2497130d618a8ad1400d8b36d26088a750263e390213a5898050e04d72564f6c62975863522c707145795a21ee50a7890045d9149c008fe952497fb3a35e6f1a17b71b3125cd41c005a888310efecdb85bc47fb6c5da44422e036ffcc28970a7fddf95e62823a838d481e5716343d8774603b66dc932c26702c1da3868d5d706c08c9503506bf4aea691ed9a0e29d3a3ac47f9b64f57e4f3f64c924e7f10eb990b228d9e5621d0d394a2326887691dbec7727d67f668670eefd30e1e4d14dfd825b4e322b4afac47242f8feae68ba963d24db4e071283938f1d4837ab81f826d8212eed1c2c029fd1da542a3e7534c8c707b03ae6257b44078c4e155b60251f7fd8773d0fdde208c04e0230cdd1693b0ccfa04e8d11fd365599c3f187e7327235bd994dcfe5f5ce0acc677a63edb31ab25a7bc238005a99f4a55d72beb70671546f25129ce703ea202f19aee5d7a2c9571246191f4040970c1d862c5bdf090a8c3c79db30ff946ea1cf6594a812393b81caf7c677dcaa29cc9de186647882476e95904c01d720dfd5f9b705c1a860012214314e07e464546e6f2999be57197cb8f8db71a331d40e4e4d2683aa541149b9176248e757bdc35db6a47d49f3d1bd42a26cd916dbfb0dd486cddd60174658a881acb8f9c9b0099f54261ee2e8a641e4f9a4ae8ae8c6947cd2b494f0b87757b90e6fd0acbef67033e552f1b2c20523534f5046f7e7811d8cab371302c0563846df4cd65e384b0408ebd72cd227feb0c54a0e6b404c977bb336e5237be7a855a1d96d95acf05d1c71857061e14948557e5e6031285ebdf0b8cfcd2f9e55ee1d7d3be4894fbd5421cd516d4851cfcbdbe8ed47ceb97c2bef3a1df9427f10c291d40284969223fa94371d16c16c030833330d478896e1979178d10e1bfadd33716daaa80747555e6026b4de50a968a2fcc7686d0694f59b6eb66e8c87ebc836aebafc9726835b67fd7c5f2d27cacd95c9795d867d86d4eed3d0f28c5aa97bd4cfc55935c521789435c43435b769bdf5899908ddcf75269bddfb92dd725e72062ae0ad36c371b882e251f77af8f5b9f4b06e8893c67fb398efc69c3b45c871466f23ed1c47c9379aa3dd2bbd5d29162740563d91374f7e121603d3f9f8f5a7001ae97408b1ba1d5f4b9978878c190709ceb9d1f15659ff283f76e671de4ceaf11841fd9696fb5f9319181acc10b11b8b82930dfcb6f35e373efd38f59328a60af0a44a7758c88c038bda77bbcb7b488fc6325edfaa2561a2ae827850fcec1a25d07f69d1b391fc89e6fb6b2aef5af36e87913bc38764f23f5f8d9f336741ecc59946218730737abcc998951548c1f2c7501c0c85603cca9b31f550870f8b305d42cb7fd0ce42ddd1c384e49ca754e1a92efe80a21f947ae7e12259df7ca9c7dbea1165422b4d62301632934ce34f171e4494288764429452d8a3eab750c0dff6f1737f4969172998358601d241f18657da29d88715f46e30c689cb0109e76b76ba6a1083869692a23ddb888d6975be7734e864d49c36883fabeeb33e1cfeaf43aae3478845dc6b86322ca05bc0adaa7573404021b08fef2e64544485967ade2af3a7060f0c66827d066d42199e82485886bd25738f5e2411658e827f3c23dbf7ec4fe23c0d6a5f83481e03199e93c093b0c41417a0fcf85e3ce751626bd1208323bae6f2d79a8eb2664739c3b46417dd406bf77d0921adcbc8d2b6ac783534fa49241083b933f602c5b33c2fd140cb4bc7bda83abe5f32badf529b19a7d0def7d458dbcbefd4b93c8277fa423c422263efba14591e12893c7d97616ed1774b8e4cec99e05e8120fc8a9c43712f8b1a7054accd66935eb599c8ce38c192ad2c46ee668b92fa9e052a4c301c7b691d9afea85aaafbaf84e2930281c169995ae557bef7dc852ec76684c044f32856e688eccd3d2cc99ef959ac2f632ebf25988259c5294eca3d5dd78286cbbe6b20fea6fef0d3265e5572e4a40126cb88044cb5480a03ee70948f57c2c2b5c62551d2c416026d2ce9fe8d965025acc65805f044670d9cced853d00684cc01bc29d61d1973aa82813d825efada8602530ae2304dd665a8e46810a69a68ff848d1b95d9801a0fa65a8a36a37f81058a086e9d1203ffefa4ede577de77740be67eafd4dc367ce82829f8abbf27c66385e1ebe49a93307bb568d752ead168e932b6b85ea67886ac61ac5830afa05031583b4c51b5b7e487d794ccf0b20b1cc7848362c19468c9bfac9cd5f2dda44a21e196a112fa8d5bdfa02d7cacdc25c3d4e6989baf00a7068ca89fd060f10e8cad0f22e2d3b49e1882cb590b2650d75da68a33bb3a8a25d44ff5459355c537a2617973f4c7dd1f49970de5afc427f4edf3aa413e2f71a415a278d9ce4b446110fdad1f317d10b909830a3780ec4920bcbf606700d2513df2fcf30002064771c0efa80be5416b4e7e596f9553df99cd11afbb5c3020457f62742cd9b37e2f9220d8cc8eb3621a9f297b63f8e3a5c4f9053097e29199a803a76f80700a8557bd0594a11491d4bf424aade7bf3522d24f05b8db3905aef74453683333cdf66310c59296e7a79c0c66260709c3d6bc93854a13638b5e7e188d71b203fb4035b2185d4b331481fc315c0883e0b6d38f4bb788d254cffd3deb31d38fbbe589f13a2e4fb3df6abe0b56e144bf17689af39a0c2f7895b97e0b2f779bd799377eeff88ebd3dd8650a0da97a4024537ddbe1b018afd232491940842479de73cd08246a204698d19ab5f159c88d93b07ea308bce60c35127bad5d514e0be728899e3db1a32658a6bfd1a739758c3ff5d86f8244edfde5b9304eec2faa4caf634b936308af117eb365a40036c95e9f46805b3cde5ea66c5c4d573c2034cc9b27dd1e5cfd93bf732319f99b3834b87f1140e100ca67d12f6690fcbd361798c68590d7e46d2daae55273a80b71ff356bf3d3fefea405790c00a804c4abbf1a03d6b04d6819d2bba0cc2e9faa4d15243a866383ae0866f9bb1e67fd946d0cfcd6e5b5ce3396dcd66846dc36c4143cab11d491864899fffd482a00337ed572af42fd72eb6bfdc3bbaf1329a9183e68fac732db52c53d96b2aae8f04d1a507141535d7ee2e58413e372db9c2492b0bd54482ffe398a784f8cb945dfa2b272475855283c7324745a92394bb5927bbc80bd93b1cdd5a68949a41df54c3398640adeb269a4c8b7754d550810eef94f84cea9c5db86dd17a47b1743bfabce53cd8c9cb2560719dd48f4848401b55957ee7af88fbbe478cc86922c12f9aed0d4291e7bfae2c5f9d6f6587dee12e9ae9fdff6f4443e09c8922b310fd10f767412381f0c65e4995c868fa5cd96d5afe898b5b53427664a89485587c6a3b189ca072e250ebc575769e95382fe536b7a9741362e9496ac2385c6b2221fb61028be59f570f3c9b92d4575913c96f2f07af02eb9bc203f0ebc9fda438046b32f912c604e1f48ecfbb98246884d1fe44b77285d38bbceca7404e7182a10fc8d5c621fdf5c40c37030e346a4d6926a7cf1a669898a696f9cac761b66e34baa44af4d42ca88df3197b912387a20b2146e703a97ab43dbc289372fb148a835914e92ec18ae646c93103ee99fb0b33c39e80ac8327abe0d18139a8c4fb520310073fd303c87d178faa5f42c477f0fcd171b44d47c13254929affa754dee0daddcb239fadfdf80de9664308f451bc1acd2807658547148cb6cf930137263fad6315d78f2bb2bc0f19eaf8e3e3d6d4caecacd63548e1155e8731cd6f00f166581eb3e9f6f6222aa03fe9c87418ef9a24ce31617e15c0f9f5e94d2236772dcfaaaf1251f409bf360382a2d0159db030d516246269eada10b93ee75171cb8d5f4c5c77e0875e861420fa3dfbda197a46881193e07b6e41c496a60878fe9d7a7121bdb4471ed36119eabcbba2b63297f13919d7a7deeacf8594709fc1b087bac24e1e30f4659631b93b241ce118460b434a986602fb384a8a1730e7f36fa755e652d41866114fd1062c26959f596ad357222663ad02be5d7407d1520266957ae6ea57b125ae9b19e05bbfe8bd8082b89221a932fea3a38b678892c8d3acd68a3f656be97aacb0e2511a4ba2a3270c720596edecf12e7aa6023b70acaccef7d8e214ee5b5af142abca6bcd73650ef51a838f20afd1dc8dea8a7a9fdcb7f10ccae5f98dde38de68ce7f18ae8fbd0a2a7fb003b2511673bebaebfe66bd57af7a911797036365ca60239d03bcab8cea001c95dd9a1ce02be617ccd4017c72e28cc69ed9a323bd0effa5f4352c90cb3aa9bacfde3e8410b535163bde4fdd37e9bb1fedee20d11256669053781d9f0ba5b464050c78bb8edc11b832f1ade1464bb210346de93da472338ae374010bf7471e09eb9d291600d080b59a2ac5040402624f1bf219c7af140e98b44d760ca37fb9b3e5fc72e62b2ccedb1a24481b931a328c6eb2c7dc0525827fa55da27d91084b99097fddeaab105cd466c75e8db62474f3435bfb4c02ac743b4a56e021fd029d01a03810d6695be7d66288e25b50bff2bb5fde8ab70df83c1bbcbb7cec6992a95ea9b9fe6647d603cd3ce511391438190ac34b543fc28435bc00e7f80272f3d1eb228d69d3134b601694de88d34936c9fd60ad639a0729cb255978a923b819e1e183ce175e7b483e7c9344dcee61ee731f02c7da696743fe8f5cca0d56e3e51366f3fbd9d8486157e8c452f8699ae9a33afc4c83913b583236a091c386d15b81c32d91812598e5bb40a4b3abbc962f97bbddfb22d963e6ebee53efe6e98be41e7a48688c2a9b24df6599d125cb5c55066e215661f6c42b434a55d634c2910e6c3595001047db6afdb05fa01df12c296a8bb32aae1624ba28adfefcbc029aaab5fa1dc1babbdb77715479788831c98119ddd9bfa5271278bc2200ef2588710ca3f14b76fd3f6aa13c9d5cbcfb07f2af09ac3743f80efc67144d1782bf95db116fd64a4557b17a6844b74868b74b8394401dff3e5a62408e8c63997d77c70b63dc6878ae426d770cafc5b32d3f783b1806c85542c837a28f886a9d7b7b029fe4a2cc20f26af154e51a5260a9bd84eb3dd52577e1cb02a726bd0f698b74cf5e7c5144bfad7c62d029bda0ae06cce135ece8268abbc6af79c86019dbb735dc3b8ee12964c6885a10f547db2bc0061b3cfb208caae7a7acea93777534b9bda55f3811c8857cfe9d93ec57bb6f93f2ddbb2e0a525a9ab83e4a82316baa7fe2a9b2c34a1cc97324db533f9b32db60aed090772299c592b9960dca16b6c26185bd1fc778f3d77446b6e2d56ecad53fd0ee342203430161b545a0e278b3f707e3de9c4e9604fcf27977057d38a1b4a54c443e4818fac8863973a19a15320b6a8c555657f2eee488593087d90bc82dced176e5a63c39ca897c860d98690afa0e71255b3436d1075991e6847b5a0e0e7b87cc580b08a601d607a215128522694c02d45ddd113b29e6555d099edb23aa39cd8e472c5879f927ee20e73148e28f2b28241640183692d91d7919770166f3680f5707add5240367334d0ccd1235f31792999bc83739599ce81b3a6bb2601fe8c09a20eb52c516224d4f14d76cfaad4d65d0172f9917fdfabf3b81ae9930c75969f91e8c85c7024c23f804b7b3ed49d23e2cadda35c4f15d47280f55a81fafe492c906fd8e4349dabde88820d0774b5c27f7fff810293874aa8dcd8dca798ef2c897263c0d0717bd6528968f852900e80705eea3e862be1f63efbdddeeb784511b8a9dcb91f59cfcc499548b9016bc2812aa6ba3e236a64b46ebf52a08061ba345c99995ce55832cbffe07267e43594a407cca966f94b18f7091f4dd45e56616eb18c0f1e0a5f4a899298398034fb8ea9747eb99d8cab78495e0420695bd38e1386492d70c52a79e46b41a388da673119f6f3b7ab163334ca06baf16f40705a55bdacd8a67409ff49e1ba77cb2d9c78de8e88dc02408b9647b7c82e816b4cc307b5b30b93c480c082bf6b2fcc161861dfe58bc865c708b3ca17f75660a852cbc26ca98e8a209193450eb0f5ce8bce76e501cce6ccde3b6cc5c8e2065eee648e2284e5b1bc05bb2be38d0fd3c507362ac1296b72d6faea66616fa39ce098c00748fbe5ea184c93d1de3ec233fa5ffe9fc03cee63968579ba1426692087feec4f74c0399a0fe4bb348cf0bd5f46c9f2377efc08d9721df984dbccdedd00768db7cec72b3ce697f71ca55bb30ded78e7a53f6a1b4d73d789e0853d8984f0d22ebcf15d7d768cfb36d07f3f508ef504d5b087480a757bdcc29b81fb6071cd524762f05e085a0c4638af22fcd9a8b8afe84779d26a1d9da98d3d63da9931a0688727b2b11532357a61a7724b531402fa30423efc5f8ae42054dff690676234ae5e429d45e53074edc2ecb01c6462ac182bfbfe1696ccf2334d8ad4c58946ec0180588d59b3aad2dc11363ef5887d89728a1f23f631d459dfb153af31926e1584aaa3ef36f53c815445f398532d8e8abe55dec7428a9633a372b4dcee96c6b102fdeb419ff34cd8c39bdb06bdebf55a8bf6582f5083815f35b5a058925af5c99f294dfa502090d94cdbadba0861ded798d1858cb5e72816cef24d07d4c25ac5023973a96777723a6da7170da22cd3077228b3960e835ba11f53804d8959204d264e5e2757b270991dedfed0dd7d2f2797b4d91fd09c412b9b03c5f94b75b55cd00020d3d484cbcf067d42f8a033d2e2b69a0c9a0cfba12049f5e5401ff57355d51643d51b67c1054491a7d87d2af027e950852b3675754993317bbf98e75a0a5f942407f56264c384cd839168009eb90cd4f5ef88cecf85a2a693226f35e3d67245fe93c8888995f0dba9160d0d540b14de3ffd8d411d2994d9ce171bf75aef28d2e9471ba6924a7ed0253d8d64b2f0e19cc380f0984a81656dd0d2ea68d2835f50a99f6c3a23e592aa1e766f4fe8b45228bc32e779c3239d4edcc600c8e3cc265bbdf883d5c488179d48636a31bbd2617aea66df924c7f4415addc5e921c2012b6a66922ca211182ada66dc7b4b3aac96497d19e186f12adec40a5ac2e0100cd8ee5469c7b44303f37aebf349091ebe578ffa3ab516d8d68421d4efcfa3b10e8387ec74f6860a5672f4af17c9b81dea2b676cf0efbb20b7c71fef294643e0dbb5bb621151a2e60cdc4ebc94410bed0f05109a0f68d0b617be693684706615eba6f2a55a0db582af43e4561f67095c660e8aab8f949e8e250c268e95f873f81722c9a1085c3252262ca422857f168bed7d90200835576ccb6ced503ce4e0d713537fa51aa2084bc9fc93ae7cce20d81e58f36bfcd3a3ce51a19cba275d3f28d870ff1a420a61f81d410123ffe3d299e2b872e8edef31f8096e82cb21002e18a6f443af2a864cd61c9a36be82d27bb36a55656970fb507620bc1045eb56579f6ffb71f3d2da69cf3de0b51d7d63f21dd7193da067e63161803e2da70f8c38b62a5899d28b6f23c91e25cd259cae95950e42c096e7f99be63240103cc6be6b705fd0c5039c4efaf6cbd621bf3dc947ceeff77f6f9417e056cb1ae8e3fa5f81226cb7b7358ef5c0b8d8aeacf0c6d947d39a18e46a35d99157e93fe7a8106a329940a8717bd9a7a7a7a810e4bceecb382e8b3a481d3d237f7d4f1facfe2b644bd304e77accebe9b70111b8cc948b66b58a2d6392cbbf5d967a58980af017e56aa07fb66fcab794ee141c40d830566465694a4394ecb4421ed723ee08a185ddf001ce5193d428b122332ea29ae87b5c8c252f7ad0905eabc7f415a0f40679fd39b824842d464e7a2a0afcc1f1b20f4d0afc588219a9121bda281cb79e489bea46c8d055117c6a03aed9f26bd420407d0244ffc9e6b51296af567463282ef6a9a353afd7ed749eeb1eddfe2563dff75c902295877e3ce55e9f178b4d2a17d783d18fa0f78c76ddcef55547a560828c804fd19897daacacf93e92f5c9bed7e716393b3fb901d912a014ef892636613ac104be20c40f7575f1af38770868662e2cbb8b205a655730cf3a12d3a0b228fc602e95707cff49c89fe846504fad33725848606f8a59887d653e9ea0d9283e8797bb0d0d11cb7e20803606515e03133c00c6a7417eb79aa419d1ad32ffb7bb8253b28de45ffdb60372d8c7be9f67024c84207e573338684d0573829b39d8f35e92736d6f14ebe043b02a4247ac67f4ba4a92c3ce62a5c3439acb5b54bd26eb948397a090165fc710eb7a2e394345443b8570f2ab0671e731e55abb6b586edd4fac7c5c96b97ab139db2179a86aaf9951d104ff90a0f74fe9c2c544f004be43c1331bf7b9a49f786bc0554008842413e056bed81896d69fb686baf0d05c69ca440bd165cafc3ba4e2831681db820cfc3973470ae5216b6e1cb91222bc768948282214544110f4b444e351be6c2a6ded72baf0202660744624ead77a2567b4300e5cdc221a8c8bbfc1ff32c46db574104783008401f792c4cd2019b3851679aa43eb4581abb675f7a86ac838134d89346491fc9b457075aa50e11b4384f45ff11a77762e20936d2ee66fdb01a453b7b5971045f509887dce59d1e7bb50587578bc37a3e77e8ba2fef4ff8f376c1644ceaf5e8e54e624e9c2856a96c6e9e58e446d926cfec6de8a974210794bd15826eaaae06d52bb71f148896e0f08c80753345819ebf5b6769ce79c6c4a077c1f32e1142bae49f2e35531ca6171d0f9c2b270edc199ef4b651aafbf9de88ed79bf79448a7170b702e32020dcd677a14151fcc678d3e96eaab90ed978f223039ebed72932b56e2856337a5da0bc84090dd067de1b2d67c00da277866bb44bf3d5c402e043e48214dcc0156271b40d71b3bbecf796b6af86132627f94926349d722d1570e23b02508062946d51325413d263922086cb1002663fe7d3b735a9d8b55554cfab35d3d07d518943757c852600b59de7780a51ccdce5c329abfdc69a6ff821bd2943fbea4461e7cef0e59667b1327658b5952413476b3aea12e41947dbc00745d146a4be764176f207612f8b07c95265109944d0286cce03343fbbb784d515e93a6823ce01b42e0b5fbb850fc66ff3c52003770a9b5b60e5ec96c8d7c121798d457f59a37594cd2b9cc634a0fdaa429b7aa2715f16cfb1c5e75607b25aa0e8266ea1426adf26bb4a3043b33666871f8663e3eb32cd85ce8db6deb6f59b3e39e65b4374671018d222a5a82d0b0727aa3e58f2e5f579099ecad0940de1e9da412eb94a65d3b3d076d588d5858c632be030967b2b84f4d23170bfe8b6645667be094ccd4e962166738465a93da026eeca03ccea77e8e2563e98665e76a4a7c2153c3d61c4b66a8ec8beddb5c73f9fb1464c65530c6cdc073a65878e3b0cef958cdaf90f36dfeb60e2dbd834462606087e44f204c164dc0dde968f66edd5c0831eb18d9fec510044540546c73a7c0c2bb83535e7a87d170d3bd9c181431d4a619e466d1afef204c11794441d33fc4ac321a93e4f725e10ba3bb25bee640b9c9ec6824f420d2ca80c91ea7751453cc92d3fb3e70c8bf207d76892364c59dbcca1ee655405cb06a58a5d9d4b174b8b16fa1b993f15365ebd63aa0f4f0988dbb6acdcabf3aa4a364dcca59661ab42fe2c56eabd26b6849127b9f48bfc75096ccf2951fe3f23f542eab41cdce03fbb32c016828fc158c3552d3708bc7941f01bbb8f7471631b36577fe34dc71ebce8545aafeb9744836642758e534d048478cc902e289276ac3dafdc2d96f97b29b464e3e6b0dc4deec16bd2d7a4d912abfde52b90034c12c97593df328a563cb3ca5fade1ae03cf492a18f920771cd46372284c27a8775fa05b9cb48fdf6532e66b068bc6bd01b8f212bee712b553265f306797bdf6c946f8408d72fbe732729cdb589c98307e2e2d00689a20180a61f54307ddb1b404010c379791001ffbb8dcca4792cdc6aecfabd08f8d1d6dd29d8a665952ba8a9d7775038cce29347575171eef31942a7721886dcf3d95895633521a04de2cd901cecd16cf692ffb85e548f59cced9ace758dfeabf165ece89fff9b26be475715c2216f7d03879603caa07dd357657403839cfd3c459bd7b644096725dd0e9f9d4bf8ff4105e7defa07839bc78992fda4d7b8bf352d164697fb034e531cfc5196c6939a3a774c931de499234c8e2d1d0c86c2fccb0282b5a4ad460e2755df516f6244a4248b31910ffbb97bdc2649133a49db6a12459b050c817608182b3c65c4763c3fa32362abc2de8d9e59429af854e8459014b2baafdc29f2e266b04f0e132c17370ee7cb8daa2e185b423943d803ea8a32e40ba28eeeb40e1a8a098483ea4aba64d37d02b521eb3320ddb1b1052320bd7113ae85d0a2eaca814dabd7fde217095a19439a29b70b68df2efd89769e3a2d662f6bad485856ce4e424e220bec0c06f8c11c5ab3b7c6f24b47c64cd8555703a311ac1bee2059d186c06298ab97a5062400b53d6d22f97b4edb2146d67a78f657e78b244b3a5e2329f484e2f7bda26c49eb0d0cf71643592ccffaa29ef9077fac7b7774bd0a34d551119a3aae821fb2bf14fd0f8e80c6ed52e35a0d13c87f05f68b6a6740ae8ce38e2cf15163b2c2eb09bdb0542f9b3d7c62a549719bfc01302e9eed134669acabf3e8f05c89810d2624713c40a8999ce9996c413db709f10f6a7683e9eb050f28d55d5c3910a3b666fb3410052f394247f19f03e6bec6fb9fcad694ceaa0142eddf23a61906ed3319f471e4e6e26cccfdbb2cce685568b43f82d8de758ff487dd279da6411f0f06387e0c5ea5aa78d3e35daeefb304f59ddada781a507caa0ffa106a5212ca03b291f321251083e7daa7cfd5866152cbe4bfb69b5b21b97e057bab32f5f6b0c03a259112a5b691af1e7cc175b2edbc11c89153151c7ebf427542d732c3219f53fedcb43f34f8db4b2b99133aeacdd8133ca58329fcd2fe46e9414f0cd361b2b36ec26df09b3364a426f21114a6076646d0986e1ccffc9f9bf91198921c64a5e3eca00a503094f62261a99fa09c3b9f6b3ee7c9b5433d3f8d8542b7a61c24273eec4c7f988de2c2ab87332819edef2c901502a86b26dcf932ea3b9cb1ac40c0e805ff1fa321ffbe43eaa1eacb1be0d01e49c16799dd95e238a024ef8931c688b8c12bca81c90049de72a4ea25b76f6f1e021ae769d5286e3a8e1075b9f7598346577b7d01cef584c8da84a48b33547138b7aa1150fa176a387adcf35a73334d2098ca59ac4c5ffb7d98d11f8a9cb7b3875fa4154188f13242c55f127cd8afca40b712c5a118efe850564e91be567565f41048a0817d637dc0f44a955477c065a2dc0a162d3f1e4360a32656eadc2033c546962e024fe2097b639b46c80688cab2f50775e3a6b6c9a4220a94c352341bbf9ff508a4872d157f0fa08120d32a53bd60795d880fd30b963f5974a7ef04bd457ddbbb88c61e2141880a6310afebabdfac7ae7bbfdb6f5f78292ce999e1b1076672fdde1ad715d35ea382a1cf86699e12e3592e7638afdf9dbab695c22762e12c31a3aa965d2edf10153306b5c2b7f6c6466232245fe99ac85c49081fa882d63df908d44171dc95a27aad0e0c8891850ac8c3f099a2eca25a58c7035ca0b49c1921351274db4095ce98f993c76033a3a8ce96d7a914881462a10a77b7bf574c79e3778d4a697d1f191b4afee2364d9fe2be7f148c502ff623a4761fad57886ad25e18481591fd88eff2eb98d81e7b22643839754433baa229ec1dfa549ae0248c1ca48d50a47eff3119551c7f6d3e8cde521317c75a4431cfabb60de5d17bb0c578cf9c8ea4b53a656707036b63d5f5eb8aa9c34b5e5c5ff66bf7e8b1eb9a8eb52d018fbd7ad6705eaef2656505dc197ed68dafd9a470dc9f81a496bd1815ddcdeb9371b12a5e8e0872e4eca4f835ef08bf29091a86ba5ff65b548903202fe4c13607cde221c5013caddd2c3ef49c9dcbd200858059fe3fddad688b81403d39077acdc4b359bd80b432d7e044704be62381d24eba2fde43cc38dcf50f5307c0e66d5174a5f65cb3c93717548a18a23a2f76950235e98d736b9a287cc416142960d3d3d31eff358eadc5d01032ee3e5580c3d2e1749423768860377b8c432b9c620e4849f47fc591be97b2ee7b1638a8f927541eec3676b33d61ca25eda72c3c97a6077f32340b0e017a9798b6151c1a12905f3899ffdd44e60915845f2f87c115fffa54f3c4c584863b7424c922e1f18cf6122f49a7daea910b14ca8f535a98588d71491e813fa44e5c9952b249b5cd5a0ebf6b979e3dd83bd6e5f6579a0b9daab33308ee058c0e8c0d061c8a9d3ea8f2491e808a197f6233e38b2f57a32bc2ccd665fa54b7f0b3ba5dc9c62e24fe22510f4ad6b7782a3c929d294c30422271afa6e4bc447808b123c45bba130dcf44a911ef0cd432434a8b2f76342d8fe821d5644ab93e03c8eb8755d08c4aca78acf9e30d073a79f7f15ebe20aadcbf3f0d33af7a2da35371ecdc21a3785081a9d6a084adf13fbbe6aad01295437c582aa14416886f565d0a41237eca1042e486c686a55e1001ebe2df6acfe1e962fffd8e6b157ed844d694e7bc760b63780111897b312f0f435f38517f46b412f46864488c4f3728db8e6b6bc2fc031fbebf80b340dad9c96d2d7b60a620a0a21824abb6c230948ba6913f78e7a063e9433a9a237841bb90b6ddec1ec366f79d2fd03f6cf3fd9f9b50d0128fb07c011a3151d9b154af37c6d10b2ad62118a422d5a5c5b16bcea5f896dac80585437bdf6a198f0b19e6e62acc579ae3c3770a9e4a6a818cb531895322a26d30c0addc592dd1559ea29084e3d6ea43416e3b46ec1f18c9f2fe90d524d8778f15fa759049492c2c8c4ed0795059ac5a31b86b52cf9c101f016809bc494666d32ad78af57b4b8ac9300d1a32db59418e482862da34f439689551e88fb6a986ed60bf8c2c3ab30dfc0304cc98008208746f85a5fbda74bb3097a68598e1fc88ec204286e3cd7b1c587a3f00376282e717d337513c1675dbae252ebd28e11434de2fa81b66972b3c25cd6b17cbd2c6a8d613e0c636a2a1f19f42b2a18630b0563539c7f173c412fb09a5d1799f30bf49d56271ded86e47aaf3fa881470c011986120958b63f31193abd0f8b2b41f5f703724c906d1624647f1828ed54aafde6838c4fb7b5aad714726989c92948545cba9a930cf1c1c2ef7a47effc7ce34995b75ca48139a9eb63abb212f17163410cc05bb5829aa8f5ebd40c5dbdbb588e0a4a1b9e6ee3d062a83cffed040571a3fddc4d621b105f6dbdd562283c857d607acd2149ab149585a505bf01abaea0b0ae05b56f0e51473559548e2f779f7392bbc6cba346d5a07f8730e7ecf0225e25578c35534886fefb0f8bb59aa9161412b069cc53e82823066e9e89fbe86e1d7d21481fe396dda6ab03cbe1fe3cc7b6cb5d186a6ff341e0256354c0858c99b1900334e77a433f0a0c534865a2d294956e9ac37fe4c21477fc906d441fc47b93e2d2d8cd15c430b40f87ce87e26a61edef71af1aedce77083393684f8d62fa0b4378b73e883e91f8897282efb701948db38af71c55e6594fc9f6d71ed6315cfdac5e4d9c3325c88d6b4939409c5938e8a312cf17d1cd2275c4367a364ff828ab320d15518dea291e3e0426f3f7680830a6ab417915d0db0bf076f1108b0d661b65fcf1ad2ac0cb168c1bd519058e05c60f47acae42c37e9c3a77acd02949dacd21950fb002ff7213807040d8473727455b72fa55b9884a6612c3d19fabf3d4d2ee335b4cba26f06e1c6a8620eb362911f6d36f777e93aeef94f6f0331eb33cf377ebb4624b6b328dd4e97b25ebf7a8bc2912c172c846d23dc5011a0ffdc195ee61085bf056d30ba68387850396ca233873fd3bb7d9ac8481bf2bddfb2f55fa0017a4a183689e8d3342ff872728e1186b5599efc7110b60a43eb88b9e67bc34d34fb4451c1e23ad35900d916d883c832ee9e98fbb2efabf86cbaa0d2f3d0bcc7b58a2884167d45746321886a27ea5261c12aed84d48b9dccfd81dc3c817fbcb480e2b4fd7c240c592c577d3f05937760c79cdc24b354858783a2b8fc9e09baa4afb6509587215c59c16704ac63dd09323b0794751bce2f2f0925b7cf8b4418581ef12d72e89bf6f130f7574fe27713d1b7013da45b51f0f12031324490fc6e709d36533a2a1bdc0f9d0bd6c1369c92ab5445916f19dfb1d9065764f1eb3c1d8b17d0278e393a12b62b7317eacba1c85c8da0492807074f31e39b4bc232aca506d6412c63ed8ed480d4af5d71173fdeec3fa1720b6ca55fc58ede1eb626cd26afdc47d4230bed14148db56639c49805867948e58113f8f9cfbcf06ccc130aa416ce9d74d039edab829420c87b8fc6f4841742053c720003435a33718d75f1940b19c431402a619146d7cb5f1b90a4de1eddac5704c1d5f86385496826f7d7a0664e4b99f4d5ea914c6bc6290f3fba0632aaee149e68be424559dc34cae425ac9600d3d394f2a02b84126f02560a7b32efd31aa2688531efc67dc84026c0d094de13972d24391bd15f0584dde49d473a70a807e953f6981aeadf868b16d9ddb8bbbb0c69c9e1752e9f866d8c7af00e747ce01c036f72fc86f15467bfb0ff3640b32ce4b20e9e19e6620bbbcb4666d27476745f0fe542241c76c90a78a6fafd5f6277c968fc3d97a28ca0ccf2394d32586ce97ab7d2c952479a4ae7b56ed06938a08c243560af54ac7fa39ed8308691ae486629b22e7709f148a19066b3888ea891b9a23bcbbee5da022c8b9ee114f91bd7e94d2cdf9ac04a842e66ef36c7ffec35dc62a2b6dfb7a6b1305fac32af9c0c7d1858a069703a29cb8f745e64d53e8eff9c94b40f6fbc92a4227c39cb70d8d982e6ab00baec5c6a6b8bb3672b590e6320f9208013dc982a22dcb8f9222e40c5c1b80f77dc6d54c35bfb586362585e1ebda6e0375abeecd578d37e478cf42bebd7d2d7d84fa78529a3372f117850efc23b3300808ddcd300f7e2da93c761b02f0d5e00482e8f6cd1929b194c3da4936afb075d398ad7f7ad8833fa6d4d7dd5aa3a2cf591e74afac1c7493594b8be817748ea74a1674619b57de57983cb748412a635bebe0e775fd976fac8c8ec881f6ba01271c6995399b5b7b0833aac446b9df824b2cebb34cf24a892c5741472a9734b8e7f1f808ab69be86a6b117028b8be87dbe106281325733ccc670b52122039d09eb139590348c90ae44b7c42384969e332793a9ebcdf5bc632fc52210099aa9374784933ecd405f1ea47c2e69fea8ac522c4a308d538caa307804d1aec9ce0390d589348ff7baa27e4b8e8496967a6b4760bc237d0aed25a687b5567cb8919288404e689e6ebf2cc02d4f78ad7979fc568649442fc7d0ef39e85937e49ea2e5d7f580bd8d0a45d9b5ac1b13b85eabe4c471471c9e95b9cfb907530f74ea518dfbb3ff8c6c4f0aac7f970ba35b07e17474e256b1d2d874ee286b68fa2ae5840ae9ca1a12034bc6f1d18d38e4c2d0bccaffe00ca040e32696c71d26a482931cea9989ac3014b021944f390b3b14c27791616779593fe4f21d080dc79128634304608b1a0ca670e9c0b58b0e49947b2c3b6d125e87e57a236ff18f577bd6d360c43202f73b237dd3313ab5e42ab56c25c702f7dcd553b3bc0aed518fd5691cd4ab6e15268fb24715bcc3b6fa891f0c78765266a7f887018626f8807332a17d9fd30ff2ea675781662cd2576b41a378162d2f8b45f201d9cbd3e0c1b7bf4f203d5135e95286a645e6880615890d14cb401e6539804093fb057cef9fa9004bf8d02f1b26eef808704303186f6f5194959e15cbfa6736a5e5a6e66111b0d425c59ad7a0ec228ece0fa9aaa81ab38bde299a927a254e98d6e0778f6c8926afa15bec38b1f071a6698e460702289840a0c5a4d8b712b9e8829f5192e78984284bdee8e940a9fa1dec4b349533efe2b5fe27fbd760c6faaef59103e132d259461872a4c5f7185fba004aab8ccef1069a2677dd61bab25b14f7c6457f7220b5dfffc324043c24ba27dea0e1b5d976cf179af307643deb774d3104773beaa9e812d94e08461164aa882ccbc01810bb7759f9b938ba4eec479a92f4e598eee2185f75a8e41d3b8c8f5366acfd74fcc7381722e240315ec78efa84c2cba270a04872f07e0fcf7a9843680dec5910ff06a2bc7295d40a8a25a7580e1bd17a0870f0eec05d49f18d3b933210b2ddc2643c7185d4f41a4d4e9a8049c72e99d2613bbd290233c052c2c01994511f96bc81334f99006f4fc075fe8fb837554816dbf6d406d5e374734731034c9339b9141e336ae3aeb89996cfdeb5135ba8ef5fc64ee16a504efa417a5d27a788953478d790dc390431d0ede3fb15509d637297549f38c284db46d5862d0ae4560c48301c86d9d3e085d66efa4dd40cd9bc0ada90ee11e8184bbd3ce733b46daf2f0c941d496b58cbba590ff10bcf6df1f05b5fe11badb368be14f4e2102f948a2cfc59cb9daf51f84c26bcc6e7d59ea32b7cae16f1f2b4f7cd8db9ec1fc00ad51505cbdeef3e0ebe06d8b645dbac459bd868bc2b65a7e58c460604105e3a065bbb297e6d15d254627271fbd5b221cdb51105829ac4ac505704f60258ec52c5cfa3fd099228d5aab4ae60de42962af9d857660e1024dff0cf6635701ce4ad1add0df4058d9714ecc71828da1b3207a3a1f4c064e726a8bd0be795d269aa63559ca38f67209a07b5fa0024ae82f84a376d6425b45564667c1fe1472203249d47a12ee3ce798922a7241f36510c61c2ed7ce43dbe68f49006592bffd63c872d8be1e18858fc05233c211045baebe2e324e46f9d875ac826221106274cbb48b37c8a13a75305d6c2d6cb2cfccb20938a3b56366a4df7ebf5d4fa8273c66b510543fad3575c7f5918e808ee44604b7afb81f52692e70900871ed0142c921de5550a9031f72cea6bd6b179f86a2820171deb864655f2114ed9acceb707471d0489afed2c72f9b3f9393719f29cc74e261ec55d11c6be5f958d9b22d49e62c5e649c932f3e349078fdd982cfb618ba62f97651be4ce1cf0be0028290fb8be8952e3b263c8308fdee3925e8278c71993e9f9e3bfb2203b6832d4341828df21de915f51869d6c17225be37c9eac6d6dbe5394c9d4acc6cefdd19a31ebb8dcb576d3cda4248870cc70d774423ee9b263092a2dc318d436bc4c33da0a66a871745073e8b7aad4ae93c32f03223559af35b7194004c6fcae0c440e183e432581faac635cacf2f87b2508d127431c9367128f0804d2e1d8c515ff2a540c0d1183819b012325a737845d76771a438afcafa8378585c715058ad3292473c7fc78985a829a0264be8e84bee535de8f9a234eda5bb9e550a95ca255566530ef3531d8cb290f55d2bf0a2c43838852f74370af35d8776253f6ce7ff22795e0a5d385511ca694ff5535f05fd370285e7e9edc33c2c7e3e1b1abb2ceb7208b7a1e4f1052f890cd8014265a1c49c36e047984415ce6f511d9e3a3cfcba70e2f93eb12cc99ac61919ebfba11a7b9ba4994c37fd7a9648d28a041b859e97aacb4a6506f5082587e31bb68e73adcd0969a6b2645e6bf96cffbb591a01dd999974e680062a911f86e92fa63a36d4b046466eba358539e54ddc71e58caae4cd4e1b245a399c2d8565b4020a07ca6fee90831c76ada7f1e17584c91d26bea75d8169eafd16a23f1e27fee96b3a5c944e6db177ca26cb01954dd7cceae53e5161662d3c2298e67c43c0340a9619fdf2c6c05212faeecba9af9fea809be42bf660fdcfc59d20ad04303e3aa1f216d155932e94af31719f4e0d3393e0d231e80b7fcbda46c532f7a4ebc768ce5f1ddabfaee9b475eb07e6e8289da478b348fc19250d0bb299d347a786a9e5abb9bee5d1b58b4f731095ff7d24ab64253a24bf2b934a4d8249cc04861f38ff32bd99a1f4a95a6c5023e558cc93067ce8ac48218a6e2a5d3e9b5e0046e332babb1abc3bc39f4c8ea3a0cc02e5c0689bc63f773a5908e3552922a1e658ab94f81324305e3f22f48a6d9a24fe0b2b03744a1176c87f9024bfa9736e7240a45f39c3c4e83c14528c9fb7675644c3220ee146bb74d46d0a10d14686e02b05d381178432a1a21be58d243306b61d7b59e4b9140c36791f11055649b9ada67a41b23162a360adca5f07774fcd415ba86d6e475eb7e1d56d135c0fa95c006d188b8ec4b0fde049998ebc1be3d93fcaf6518d57ff86f5b19599377a3e914e1f917836326a0eddc8a6edab4c739f7f5234b72334aea1828e2b83a370fce1db9c13dd1209575da469aabec90f2bb9ce01d29411909e94c497ef54b2ae5efb68ccf1f0e213c150d3a39aa8379226cf2d96dad526556bbd5ac5f86ff8f213c9530ccb20790ed79708c304337411c7c2b8eda7dabeed75449fe1e94ea4d62b7678c2063cb2530c0398d651ad142cd6a17bedfea2068ade78483bb004c212dfc8bb0b7b82957eeb103d3ec6eaf929bc67200a663bad5ddfa70d8353a65247b8c9ce662c7faa212bcc0bc49bdd2288f905fc7056a5d56d72c5739ffdaecdf97b80a94187936cc9f2d0b8c58fb0b30289885f5f8323052661cd07be9d71a88f5b2f8564a651c299a0e52aeb2ec7a2bdbfe83e5f8463104e2f2cc2a584c29ea35cb3e5434d69ab4db1ac9d9214d09bcef0d22fbccf188022012c65075a1b13d5a8fbcd549cf118d9da3a462cc71c2fb31f3d15975c647a9f267daf7337a1e69309fb5b4498e3364c5006c7c79675a23afa17ca68810491bfca2f8c514679df89f855df5fdb5b7a5ae43bb98df8b42dfc132a6e3645f44ff266539aa5b3c30b3ed92b4deec7aa10eef36833c16d4ef68830796588ed5c79c17bbfe6aab9ae3a0c36331c927ae9537fbace7bcb27fafcfe43618f142d0f0baaa8fab71a4676c28dd11d941093dddc7b8cf4b25a5d2b1cb0641ac001c0f279b07c863f07aee1c081d10c33042b20ee9912d6777a461031b1f3df017c56afc170d733d14c1efd6402fb98261251439c4837f6b31c25f3a531a0d76912c88cbafd6f9a2f6bd5f30c51308ef1e055c7f0679670d7e796a989086ca23fb260a3f60c7dd307f83acda3a49e4458ab93bc3438fa175f6d204b7ced996a1bb0181f59d083234ecba10b6614a57428b028c6c297a06c0b2b59353833d6de6d4d2bc75cf2d5d89ebca04e855db01373df98e1632b5010fcace3c21df714b0be4c6cbdcdee56dc7cc1c19a2365208fb16fdb9dc577fb5889719027d15d10447a7902d2afa2771fe3bf59f65cd657ec58a7c922da786bcffb3510290b79c3b4d8b1d549d96a2aafd53ea64a97f9dc937ecd1a3062a1a0383ec2e62c0f2421168b8ccd410cc24557303efbbae329ed1d77aab108f6cab02519ef4539fa4a848c81fa5b9a097cefb222bfd9b9ac5ccc56f61113bd8ee6563f6378f42fef1d5c9f0b13997afefffb6e9478f1524ac14a7c3e99edadfefd3c3c12172780fea94ed96b58e8da377d2097d7c14a0bf9384395bc98f974d6854969e4b9638bf9a546bbfc2f2760074781222c8b8b05648ae379bdb00174d88d0744cc57b2e4055c99464e83f08585a95b872e5582a635ca5579394f3b6984a7a587e6d09a9e846ad3e9ed1c7fe4a456ee83dce150eeb35a060a780ca4a279ca317c00a313cf210b15ddc372df894956fb9ce26667ff7488c261fcaa95144afc380d8d35aa046b50b979009f0d29c59d1dd8b6b946c61bb8b294da3357e8617cc076c8bb2b2f2e6e30e317e933d3de2aa82c69c2b00eb3d79c6899ad7605a4e65b448c97599c38569a5d48ab3f813fa7c006852a2a88af871c8dcac70fd14e5983b80fc383d9d373da5ed8d6615ab591db1a906d03ddf393cc9e31148b5b0287dc35ee6bdc187aa92e538652271a6a10903a4e5469c946409d7b155b69667ea0c62b85b16a59402682bfaa23da773a447b4637e558593fb26678dd98c426d612f1ecb15c630b09b4b59f727310cf1c88985c018e052c855d7e6faf61d83685f44d9c04279d3d5e7aee4437d2e239591d89c39050cda846a97940692ec9cd97207165b0672d91a89387e46ad47b7090a2be72cf57602bbef801394c6375a01a6ed124e9cbc15a4fffbb5279e6cd1de5efc711468d365fa4e0900c99fcf10ec4690989e5f4553bcadeab01a785c9b84690ce2a281178e371fbb9e0701e57d7b6465a7a1d325667fa0bce960be2376fe9fd7e8979b5eecb6a6e5ad1fb2b17936f27e12f8f8448299e92cd3920a065c98a3e7eee3f0002b55b321dd46fc48d425bcb230b8cf9ffa184abd7f040ee558231624e6f4695ff178ec79546829129ded89889d8301964d7ecd3899d7a0cec97a6531e9725f3f65beccbfd4ddf2f0c3a2440726533ba425de02cd7bcb784b2ad17a9adc8981fb262f557a953bc4fb1722a1c2f43fe7af134edbc9fbd15377557da99628467e43b0b56196425f5690d7af3c0bb2eec1ce180da42cf089fdb1cf66893f3d2b2d293d4a0d819afba423bdf8c31db987d133a5593ea380b72c68f13d6c39192b685222d89f9396bf7704e444ebd9a2dd3ca347176607460bc6412c5e9ad3b4e5c098093e54fd6cb433a72ac5a8a318aed4d2942113b967f2dc4231631308c941f75c5148e479aa38e7e8bd515fa792819d1ac44778f2122d4f9bfd842d98dc804ecf26675c5705fe80c7c499cf067c9f81f1b84a466d3f27deadf010b6387a2386fe4997867ec55505b38f5f6da83218cf63dad118c5e66564acd89ab5e1d3447b92ccb128ad63a14935f39650984a1a5baea9295e27a101c86eeb4de4ff699d63b2f93f4e25dc981a24af55eaa63d8d0f90a738b95407fa10f323b96d69d045575225b557f53a33b7f9e192c054fbbcb58cf59a680092995e8a726f2321c63a494cacd67cbff75972064cfb5f061759548d6dbd9bef2d6e8a51533d19dbef517460b803646fe8bb470104a8f3b435238a952d7487723251b7e457b022701ab870863564e29f5d5d22cb6e97b98bb28b7c5341e3a9fe56a656af395e06532d4e58ac8f39007f1caabdd683c690d0deba8e3a9c9e3bebd4b3b9b0a0efb75070da28a059edcf85ebe75f460d225d776dcccb1849e067d0ff614e8d78199f5d50f512969a891dbe81115b7634da7dbf2896801b60a02e17bd8320a8aaec2931693c405335dbeeb23982b28f02bdc01f354a0bac36145593c5dd4fc3c6438c4a5e70520236425bbd5c51b558d0e7ec3a26f6aae7d97cb21cfefbf9849443307765a2c7251a1673b6129d274954921a6ba921bed91625b451932b12e6a99dbc5af3dc7c0c6c696eb43aabc7dff6e680bc6dd2ae586cf1c386c8c51f14657608a3d115c32a30a2fedb1f106b95af154522d2e0f5e3fdf9a5b3d1a501f2e2c92cffbf0b63b7c0bedba287dfbd385e83331e689320c22bc2882e07d3e05aa44c29988e704456ede78e414c3f2912b4b5d795ccc570be9d0d5ee4d2d41fe49c73600e25c599ef2d7f8d0250126002cd597418945f42d1ad4af83a34ab41add4df445d5eebdeb6da9d735be5bdd07fde1f7f2608e8c8cc66a0e3e931b80b54e4274afacd87252562b98bfd5698ac2e045ad3560710e411c4dc5e531538ffd165e11e6d74e33f0cd56216ebec8c57b546238d6620c60898e75f5e6694d5621d37a6daedd40de67c85539abb4dbcfbf4003c74fdfa4c76afa9ebda2abd463507d682a650e93d174078d81606688c929b14b8887ebd79ba4960871aa01326fc53eb3c3dadfb0ec7ca09e0918ff7f7a85424c2a9e0afd6792998c2dac12b42b5324950773a1e650117170ec7d2bbe4cd23226ae296eb30d83264fbbf8d1d67a95865b6a0e1f6b88b6a44af9eb255fe11e63dad0649449ad71b39f74cbcb497f6684093f7fe1a930d9702a8a6621c0732cba8f3cb6bf03c86eb17d449e281f53d9780ae51bac4971f0b53ba04476774e7e43dc190ae065f39dbdb0c5a37c5565fd2bc5851b0149a081d8a8e9adb8dac69c57a6508e2df0424a3d2d1cd8368cf1af0bf7f2334d140a1fdcccd4128a7c1ccc7dfb739949facb3834a31759175738e1f346a2738c16cf23b1e8ab5ac49b59110dbe8271f52d7eb41e59e140d485bbee9b4d222625f085767552198c5a003aa424cb2b0510ab582498bdbe81459702e8f06f22a6bcadd28870ed1f6cef940c9b890d4e7f959349a29b7c3d0a8261a0c0d7c8c78fa5eba90aa1a577c31fb654d999b182880747b86f8c5cbf24fdb734572c824e62d3481a703703a24e564e23689a82959e16df384985130e5827243cf10301d11df8690ab64d74a1e170366c60834aeee7f925ce5789fd8d4f0190b2420b6166039f27df20abad586b142294389e365e7b196922e0121effd58fb42978b505da168652580d52ab291a93368465e3c9d50867dfa5ea30b43322ddaa8b0683da197dbc014895c628f76984d942a37b8bb0c6eae8957c2fe65421a61ed253cfda202081cb37cc6b433c962d282649e96465592c4cc1f61bf1ade533a1260fd005e09318131b6472b7fde317e5b220ed28427e7937774d541b072d8d41ebe87588843540e767878809a0723efb6512754f32d3b47e01a26c9609e7c90ab74145b8c48423ece2543cc215291e7d4a5194c23ba4d150271f481c6bec7e8c9ac5b49789f189a570dd051b46397573e98ede47bd90cf81fd879a2450447911148c4b6ac8b1719f394e4a6f7527b182750ba15d043456d23c8a6e3955a5968cdb07f96d71aee6cbead1de178117c52b19b29dde3a5f56617a6ded85d7cfbb53a85f7a6fd5f2eedc0d04977f559989e65689f8137894b37707df674d61fe107b012f27fa90e473bd0f9dd0d17c56e46aeda79f216bc4f815ca2a310a3a85833491c1427fffa0dab522cb6cb0040dbf52fa90cb346a3a3a08f39b41a6a507df14bbf65993e9b61e195e6b4d7e70566a6707453393dcdbdc62d7a1395ae90cf4923b3344c31ccab9130a3815ae4648992369da6fae6b4268d6466b7c4900fc8c6461da9ae1bb6b216bce60ca675b6aefd308e2a02deb348e6f0fbc52252bd88555c78009fa2a281c762288e923d0dc4cb0f10971a51f56f531b76332ec7ecb1a83591994897ce508532a93e52aa146857828967fdc69860b487f861e0369671d4f33893ab2cc9152808a8b5f47279fc94ee04e0c3a9c91b51232f9a658c5ffc55b56c3bb798528d4fce88d3c159dabd24ca5d94d81b6d7cc8ef4c53bdd8fdc91ee28f2955c15f9b12cc4f7ad7c96c82946b8f3283f762de5a1539f40519ac9f010f5605d098ef1054c6946311f770650cd32d39475b888ff809eccc46fa8acd315e5a2cf8532e6133f3d68732a73ad1f20a9b3434d6388a1ece5c47988e5a5beabf3d273f29e44ac050d8d0657a487328f10787374ef5c7d9462e16797e010fd0311115d0716373a5fe27adc8762a8917d5e4f24c36900203d6412c92952b6930f5ffcd04a42b228a54af2b4edd9184dc8338e2c55cf4a30ea7bc7dfd4d451e94be5770f432c257a9829549f83f1b3e99bb7260b1b8564dee8677e558e84cc7432645b0192061c81da4f4986c3b52960349948b7fe5df24b385f1735dc2093fbf27f00c42d03e40f6f90b4334b01fa844c2b9b884477c2c5210197a2c3170191a5c3c1dc5318f50851e4059ecbbe91f1590d38ef5f4e87b6888cf5657d59894ec6809bb363cc981e714311622e94a6d3089e35e69ac45d9110c6c0ee718e6901d02275da9b953c7d0b77ef7ce06bc9c024e3884e7b092230bc8d59f02e592eddc26a1bedde30c6a5ff2106aaeefe972b2785274c2b8999f3ceaa9fcde741dce925f82d3e0e8a7cd76c524813072909449bcf48d9ad45b315286fb0d4a46efda8e5beab30612ae7076a97f1ea54034eb183a98e0195426eaa8f62949965a0a20b72ed9918b3106f54dbb93a259d369fd4447cce008087c4e71f0f07ea309c7f500048dbbbf9bef79b74525e04aadc81c85daa0d1d1a9c4484c30ab8d41e58aea76251b5eda8c16512bcbb4a77818e306f508027361ef4f642d50afa9b9b04b43b778082cd61aa637446eb53a21cc14bea3260dd62388484314abaf9e250ffd185144a169d9db7945bcaad5e6eaa2546c02a06f66ecab28977a1f3f67848462590948d61948459b377d449a13e878efb59e0392e5638b0f3635ed974c8ca2aec2a985222446879a754bc47f3e7c76e424e0197edbce96d8063f203b8cf2a27751212a02ad61d0be43ca0171db15820b1a108686fb00e36f8182023850098ca5c9be8cf34ce5117d13c2765cba4bb0ef771d8677a0907379ef4fd2ae51d0bdaadc7cb26e2249b060e6e7497f2857f44f2a58544e919a3ad718558f1cc64860a0aa0a893ba22caa6e09c28135ef52c04a399d9e113bf99aa231412556f47d5c4483f1eb5676ac253f8a949809814b3be8144bad11c970866b3945c0cf5b5ec3120ef86fbd6440b3f64881bb1bc26b0324bbe466f482558af6c44dd10bc1a6d10e8cd1e32de5a9807f70cc1a423f3e6bbc32c064b4d72bcda235a84e45080b6209a16567f94ec38c3f7d6f4f2189d22bd6952ecfeb5c6d90e51d8b220441d33e7abb6544915d204e90b43d703b749f672ed57523b528f5ccf17730ba501c10e57f9d4959d01e82a16f831bba665537f04640d7b6e1f8e01a1125d518e5f48454caa710d35757d830b704146bb647d5bd56b547ac56e37b7b2c4ebf78de9dbf6a99c0ba9909de0b379c394be303d5e2f59a57268ac0193481f28306726768a9037719b8703e177e90af1ec1914321c274eea9f0961840fb4c20fff08f454b5c8fdfbab66e7839cf409ada126859d1a876d9600c1263488db40d0b78970b5276d3205c11d5d6fbc776f50e29e8a7f7e231687eabba1a21cb18d0d0aa7b59d944bb8950a58e8d0918f6295d293b31212c7718d15a31bf44b34caca67085318f72d350ff95ba955a82cd8e3029e8661502</script></div><script src="/lib/blog-encrypt.js"></script><link href="/css/blog-encrypt.css" rel="stylesheet" type="text/css">]]></content>
<summary type="html">
Here's something encrypted, password is required to continue reading.
</summary>
<category term="教程" scheme="https://cxyzzz.gtihub.io/categories/%E6%95%99%E7%A8%8B/"/>
<category term="HUT" scheme="https://cxyzzz.gtihub.io/tags/HUT/"/>
</entry>
<entry>
<title>路由器使用百度云远程下载</title>
<link href="https://cxyzzz.gtihub.io/posts/cfb7bd2a.html"/>
<id>https://cxyzzz.gtihub.io/posts/cfb7bd2a.html</id>
<published>2018-06-13T11:38:46.000Z</published>
<updated>2018-06-13T11:38:46.000Z</updated>
<content type="html"><![CDATA[<p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5d6d5fab581544.jpg" alt="BaiduDesk"></p><a id="more"></a><div class="note info"><p>BaiduPCS-Go 已被百度关注,原作者也准备停止维护了(<a href="https://github.com/iikira/BaiduPCS-Go/issues/643" rel="external nofollow noopener noreferrer" target="_blank">[作者] BaiduPCS-Go 已进入最后的维护阶段,有些话想对你们说 </a>)。目前使用下面方法仍可高速下载,并且不黑号。<a href="https://i.loli.net/2019/02/25/5c73bf0556fdd.png" rel="external nofollow noopener noreferrer" target="_blank"><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/02/25/5c73bf0556fdd.png" alt="Screenshot_20190225_180815.png"></a> 图中链接:<a href="http://pcs.baidu.com/rest/2.0/pcs/file?app_id=265486&method=list&path=%2F" rel="external nofollow noopener noreferrer" target="_blank">http://pcs.baidu.com/rest/2.0/pcs/file?app_id=265486&method=list&path=%2F</a>快捷脚本见文末</p></div><p>在酷安看见 <a href="https://github.com/iikira/BaiduPCS-Go" rel="external nofollow noopener noreferrer" target="_blank">BaiduPCS-Go</a> (一个命令行界面的百度网盘客户端),当时只是在手机上体验了下就删掉了。不久前弄了个工控板,第一次接触这个,以为能实现 路由器+NAS+小主机 结果 CPU 不支持虚拟化,虽然也能使用虚拟机,但只能使用 32 位系统,性能损失太大。就只装了一个 OpenWrt。这样配置就有点太奢侈了,95% 以上的性能都处于闲置状态,至少对于校园宽带环境的我来说太奢侈。对群晖的功能有点眼馋,所以想着能不能在 OpenWrt 上实现部分群晖的功能。比如远程下载,私有云存储等。经过一番折腾使用 Frp+BaiduPCS-Go+smaba 也算勉强实现了。</p><ul><li>Frp:一款开源的内网穿透工具,选它的主要原因是配置简单,有很多免费分享的服务器。</li><li>BaiduPCS-Go:仿 Linux shell 文件处理命令的百度网盘命令行客户端.今天的主角就是它了。</li><li>smaba: 用来进行文件共享。也可使用其他同类软件。</li></ul><p>BaiduPCS-Go 使用方法很简单,作者提供了编译好的二进制文件,直接去 <a href="https://github.com/iikira/BaiduPCS-Go/releases" rel="external nofollow noopener noreferrer" target="_blank">realease</a> 页面下载对应架构文件就行。下载后解压,将 BaiduPCS-Go 复制到任意文件夹下即可。使用时须进行登录。</p><ul><li><p>常规登录百度帐号支持在线验证绑定的手机号或邮箱,命令:<code>BaiduPCS-Go login</code></p></li><li><p>使用百度 BDUSS 来登录百度帐号<a href="https://github.com/iikira/BaiduPCS-Go/wiki/%E5%85%B3%E4%BA%8E-%E8%8E%B7%E5%8F%96%E7%99%BE%E5%BA%A6-BDUSS" rel="external nofollow noopener noreferrer" target="_blank">关于 获取百度 BDUSS</a> ,命令:<code>BaiduPCS-Go login -bduss=<BDUSS></code></p></li></ul><p>可使用 <code>BaiduPCS-Go -h</code> 查看帮助。目前 BaiduPCS-Go 支持 多线程下载,上传,离线下载等功能,这里我只介绍下下载,更多使用方法可以查看项目 Readme 文档。</p><p>使用 ssh 连接路由器,切换到存放 BaiduPCS-Go 的目录,我为了方便使用将文件重命名为 B ,如果是手动下载上传到路由器的还得注意文件权限,如果运行时出现 permission dead 就是无权限,可运行 <code>chmod 0777 ./B</code> 也可在 winscp 里更改。首次运行需要登录才能使用,登录后可先输入 <code>h</code> 查看帮助<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5d704fd6651176.jpg" alt="ssh">其他的一些文件处理命令与 linux 一样,如 mv 是移动,cp 是复制,ls 列出当前目录等等。下载文件或目录<code>BaiduPCS-Go download <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ... BaiduPCS-Go d <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ...</code></p><p>可选参数</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">--<span class="built_in">test</span> 测试下载, 此操作不会保存文件到本地</span><br><span class="line">--ow overwrite, 覆盖已存在的文件</span><br><span class="line">--status 输出所有线程的工作状态</span><br><span class="line">--save 将下载的文件直接保存到当前工作目录</span><br><span class="line">--saveto value 将下载的文件直接保存到指定的目录</span><br><span class="line">-x 为文件加上执行权限, (windows系统无效)</span><br><span class="line">--share 以分享文件的方式获取下载链接来下载</span><br><span class="line">--locate 以获取直链的方式来下载</span><br><span class="line">-p value 指定下载线程数</span><br></pre></td></tr></table></figure><p>支持多个文件或目录的下载.下载的文件默认保存到 程序所在目录 的 download/ 目录, 支持设置指定目录, 重名的文件会自动跳过!使用 <code>./B config set -savedir /mnt/sdb1</code>可设置下载目录。这样就可以下载了。我用的是默认的 100 线程,下载速度还可以,如果闲速度不满意可适当提高线程数.</p><details><summary>点击显示图片</summary><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5d73e805571236.jpg" alt="BaiduPCS-Go"></p></details><p>当然高线程也会吃更多配置。下载完可直接使用 smaba 共享,使用 fooview 进行播放。</p><details><summary>点击显示图片</summary><p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5d744ee9883146.jpg" alt="foooview"></p></details><p>搭配 frp 将 smaba ,ssh 穿透到外网即可实现远程下载。</p><div class="note danger"><p>注意:将路由器 ssh 及 smaba 暴露到外网有一定风险</p></div><p>快捷脚本:</p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#/system/bin/sh</span></span><br><span class="line">BaiduPCS-Go config <span class="built_in">set</span> -appid=266719 &>/dev/null</span><br><span class="line">BaiduPCS-Go cp <span class="variable">$1</span> /apps/baidu_shurufa &>/dev/null</span><br><span class="line">BaiduPCS-Go config <span class="built_in">set</span> -appid=265486 &>/dev/null</span><br><span class="line">BaiduPCS-Go d /apps/baidu_shurufa/*</span><br><span class="line">BaiduPCS-Go rm /adds/baidu_shurufa/* &>/dev/null</span><br><span class="line">BaiduPCS-Go config <span class="built_in">set</span> -appid=266719 &>/dev/null</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5d6d5fab581544.jpg" alt="BaiduDesk"></p>
</summary>
<category term="路由器" scheme="https://cxyzzz.gtihub.io/categories/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
<category term="OpenWrt" scheme="https://cxyzzz.gtihub.io/tags/OpenWrt/"/>
</entry>
<entry>
<title>KMS</title>
<link href="https://cxyzzz.gtihub.io/posts/343b8a35.html"/>
<id>https://cxyzzz.gtihub.io/posts/343b8a35.html</id>
<published>2018-06-06T13:11:44.000Z</published>
<updated>2018-06-06T13:11:44.000Z</updated>
<content type="html"><![CDATA[<p><img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5cd807c3728109.jpg" alt="KMS"></p><a id="more"></a><p>路由器上搭建了一个 KMS 服务器,测试了下可以使用。我本人用的数字许可证激活的,不需要 KMS 但弄都弄好了,就发出来算了。算是留个备份。(服务器是搭建在寝室路由器上的,并未进行穿透,因而只能在学校内使用。只要学校网络不出问题,应该都能正常使用,可用 ping 命令测试,如果连不上可能正在重启或是更新固件) ps:因学校网络原因 IP 可能会变化。</p><p>注意:仅 Windows Vista 及以上系统可以使用 KMS 激活,且 Windows7 旗舰版 不支持 KMS 激活。KMS 激活也需要密钥,且不同版本对应不同密钥。不过这个密钥可以在微软官网找到。此处以 windows 10 专业版为例,其密钥为:W269N-WFGWX-YVC9B-4J6C9-T83GX其他版本也可在微软官网找到。</p><p>Windows KMS 密钥 <a href="https://technet.microsoft.com/en-us/library/jj612867(v=ws.11).aspx" rel="external nofollow noopener noreferrer" target="_blank">https://technet.microsoft.com/en-us/library/jj612867(v=ws.11).aspx</a>Office KMS 密钥 <a href="https://technet.microsoft.com/en-us/library/dn385360(v=office.16).aspx" rel="external nofollow noopener noreferrer" target="_blank">https://technet.microsoft.com/en-us/library/dn385360(v=office.16).aspx</a>Windows10 2019 LTSC 密钥:<code>M7XTQ-FN8P6-TTKYV-9D4CC-J462D</code></p><ul><li>激活 windows 10 专业版右键开始菜单,点击命令提示符(管理员)或者 Windows PowerShell (管理员)输入 <code>slmgr /upk</code> 卸载原有密钥,如果是刚装好的系统,这一步可以省略。输入 <code>slmgr /skms 172.30.192.173</code> 设置 KMS 服务器地址。输入 <code>slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX</code> 安装 KMS 密钥输入 <code>slmgr /ato</code> 查看激活状态,如果显示 “成功地激活了产品”,表示激活成功,每隔 180 天会自动续订,不需要担心激活过期。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5cfb264eb24023.jpg" alt="Windows_KMS"></li><li>激活 Office 2016右键开始菜单,点击命令提示符(管理员)或者 Windows PowerShell (管理员)输入 <code>cd "C:\Program Files (x86)\Microsoft Office\Office16"</code> 这个是 Office 激活脚本所在位置,不同的 Office 版本不一样,比如 Office 2013 是 <code>cd "C:\Program Files (x86)\Microsoft Office\Office15"</code>。输入 <code>cscript ospp.vbs /sethst:172.30.192.173</code> 将激活服务器地址设为 172.30.192.173。输入 <code>cscript ospp.vbs /act</code> 激活 office。</li></ul>]]></content>
<summary type="html">
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5cd807c3728109.jpg" alt="KMS"></p>
</summary>
<category term="Windows" scheme="https://cxyzzz.gtihub.io/tags/Windows/"/>
<category term="OpenWrt" scheme="https://cxyzzz.gtihub.io/tags/OpenWrt/"/>
<category term="Office" scheme="https://cxyzzz.gtihub.io/tags/Office/"/>
</entry>
<entry>
<title>Pisen云座充</title>
<link href="https://cxyzzz.gtihub.io/posts/13b1ea83.html"/>
<id>https://cxyzzz.gtihub.io/posts/13b1ea83.html</id>
<published>2018-04-14T04:20:00.000Z</published>
<updated>2018-04-14T04:20:00.000Z</updated>
<content type="html"><![CDATA[<div class="note success"><h4 id="2018-6-19-更新:openwrt-固件"><a class="header-anchor" href="#2018-6-19-更新:openwrt-固件">¶</a>2018/6/19 更新:openwrt 固件</h4><p>链接: <a href="https://pan.baidu.com/s/1MqWci4ElhyytjqgCj9GnFw" rel="external nofollow noopener noreferrer" target="_blank">https://pan.baidu.com/s/1MqWci4ElhyytjqgCj9GnFw</a> 密码: <code>7ckw</code></p></div><a id="more"></a><p>去年在基安看见的一个<a href="http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=209145&fromguid=hot&extra=&mobile=2" rel="external nofollow noopener noreferrer" target="_blank">帖子</a>,品胜云座充的拆机板,看了下可以刷 open-wrt 以及 Tp-link WR703n 的包还有 usb 接口就入手了三块板子。到手后就全刷了 u-boot 刷了个 open-wrt 后就放抽屉里吃灰了。后面翻出来几次装了 mentohust 能登录学校的锐捷后就又吃灰了。 最近因为在弄主路由 k2 的内网穿透,接触到了 opkg 包管理器,突然想到了吃灰的云座充。回到寝室就刷了 wr703n 的 LEDE。接着就是弄 usb 挂载以及存储空间的扩展。</p><p>ps: LEDE 默认不开启无线网卡,可使用网线连电脑,访问 192.168.1.1 打开无线网卡。若要桥接则要打开 DHCP ,只作 Ap 可不设置,默认静态 ip。</p><ol><li><p><a href="https://wiki.openwrt.org/doc/howto/usb.storage" rel="external nofollow noopener noreferrer" target="_blank">安装 usb 设备支持</a></p><ul><li><code>kmod-usb-storage</code> ——必须。大概是 内核支持USB大容量存储设备?</li><li><code>kmod-fs-<file_system></code> ——必须。格式化分区的文件系统,包含 kmod-fs-ext4, kmod-fs-hfs, kmod-fs-hfsplus, kmod-fs-msdos, kmod-fs-ntfs, kmod-fs-reiserfs and kmod-fs-xfs.我用的是 ext4 分区的,所以装的 kmod-fs-ext4。</li><li><code>kmod-usb-storage-extras</code> —— 可选。内核支持更多驱动程序,例如SmartMedia读卡器。不知道干嘛的:p.</li><li><code>block-mount</code> ——必需。用于安装和检查块设备(文件系统和交换)和热插拔功能(在设备插入时识别)的脚本。后面的扩展内部存储也要用到。</li><li><code>kmod-scsi-core</code>——Any mass storage is a generic SCSI device.不知道干嘛的,机翻是:任何海量存储都是通用的 SCSI 设备。</li></ul></li><li><p><a href="https://wiki.openwrt.org/doc/uci/fstab" rel="external nofollow noopener noreferrer" target="_blank">配置 fastab</a></p><ul><li>自动创建初始 fstab:ssh 连接路由器 输入<code>block detect > /etc/config/fstab</code>。或者在网页的block-point 项点击自动配置规则。(LEDE 后台管理默认是英文的可以安装 luci-i18n-base-zh-cn 安装完成后就是中文界面了,如果没有可以去设置改成中文)</li><li>修改 fastab:<code>vi /etc/config/fstab</code> 也可在网页进行配置,但某些参数配置不了。</li><li>设置 fastab 开机自启:<code>/etc/init.d/fstab enable</code>fastab 还有很多参数,具体可以去 <a href="https://wiki.openwrt.org/doc/uci/fstab" rel="external nofollow noopener noreferrer" target="_blank">Wiki</a> 查看。</li></ul></li><li><p><a href="https://wiki.openwrt.org/doc/howto/extroot" rel="external nofollow noopener noreferrer" target="_blank">扩展内置存储</a>这个可以让路由器从外部存储的镜像启动,我只用了扩展路由的内部空间。</p><ul><li>将内置存储 /overlay 的文件复制到 USB 存储中:<code>mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt</code></li><li>使用以下命令创建fstab:</li></ul> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">block detect > /etc/config/fstab; \</span><br><span class="line"> sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \</span><br><span class="line"> sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; \</span><br><span class="line"> cat /etc/config/fstab;</span><br></pre></td></tr></table></figure><ul><li>最后使用下面命令允许安装大于 /rom 的软件:<code>echo option force_space >> /etc/opkg.conf</code> 也可在网页端进行修改。在网页端可以看见 / 分区和 /overlay 变大了,如果 / 分区没变可以插着优盘重启后应会成功挂载。我的是 16g 的内存卡,分了个 128M 的分区出来,可以看到两个分区都正常挂载了,并且成功将 128M 的分区扩展到内部存储。<img data-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAMAAABOo35HAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAC9UExURVlZWdPT07KysmRkZIWFhfT09JmZmWZmZm9vb39/fxkZGUxMTDMzM3p6epCQkKamppubm729venp6cjIyN7e3tbW1s/Pz8LCwnx8fLS0tFZWVoiIiI+Pj6GhoeTk5Glpabu7u93d3evr66CgoJSUlKqqqsnJyeDg4Hd3d8PDw+Xl5bi4uNHR0dvb26Ojo6urq+fn51hYWDg4OCgoKHBwcK2traenp0FBQe7u7vHx8U5OTre3t8zMzHV1df///7GrnpQAAAA/dFJOU///////////////////////////////////////////////////////////////////////////////////AI4mfBcAAAUGSURBVHja7NoJb6M4GMZxY0NCD64kve/pMZ2d3Z297+X7f6zFNmBAMUXa6URl/q9UJSWPUPzrizFWRUlNLgEBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYYIEFAVhggQUWWGBBABZYYIEFFlgQgAUWWGCBBRYEYIEFFlhggQUBWGCBBRZYYEEAFlhggQUWWBCABRZYYIEFFgRggQUWWGCBBQFYYIEFFlhgQQAWWGCBBRZYEIAFFlhggQUWBGCBBRZYn6cCIcRXgvX/h9qcIVBqDdbEM8RCxGCB9QqXYRwHYDHBgwXWl8eKZKiESHI3Ba1kWs3fKixcaJUl1YyeBm7Ocq+yLItUiVBGnXxenSHJolIKEcwHq6ikbOX1YGVzQCTN8LPmSLreghUl9sN4Uw7yajMrLC0TZ1ImzqY6FEop0+pIaEN5HaoOxVuwEqFyc4I46uSlzOLqgxlh6UaR9l3VYWl9Fdoxb1Q90KJtu41pwwFW/WHhTtW8i7TafLCqRsk6bsGw63L9qurXRmuIlbT9lDQnlXU+nBFW1Q2qnZbDprWa2tjR90LZFqx1/+Td/HpGWLlrLDvIwTcx6dQ1Vrntbig68cDms3JwbA5Y1azs1ger6sNV/bbIw1jU81MvNAGrl58RVn8ozW+btF08iGFoAlYvP3csfVur1gJBEIA1uBmue5dhZDOyO2epbmgCVi8/I6x0MMHH9pjsTfBhNzQBq5uPZoQlB0uH3DZG4EZqQ26fL3sZq5uf09Ih6qw3i/pm6BZO0qZX7rrUS68Xsbr5ZE4rePMk08pk9aUZugfqppvs6AM1Acvlo/StP+6EbW06z8hJqxbYp2BZPQUnFsLsKuhQdaHqn5ewbF7KXIn0jWO5MqOQ7RaNLPtbNMmmhimj0GUmYLl8Gs0Lq4wyPbTu1l2QKqHSouzs3OlDIslW5SQsnY/NXmFplyNvEuuLV/Tau9BzwiraDUSwXmysztYWWNtL1psXeumgIrDGaqXvBfUuvtqUYI3V2t1wk1e2msFluJJm6zDJXv/fIfjPP7DAAgsssCiwwAILLLDAosACCyywwAKLAgsssMACC6zt9fDz/v75tyOB+98PD2+ORgKffjw4OP1uJPDxl+Xy8v1I4MPF3t7VNyOB4/vF4uzdzrG+39f1kz/w66Guv/yBvw90KX/gZKkr8Qf+2dOV+gNHC12/7RxrabD2/a31bLAO/a11YbAO/K21MFhLf2s9Gqw9f2vdGqzFu11jnVusE2/gxmI9eQOnFuvYG7i0WH7uK4t15w2cWazrXWP9a7H8f/bQYvm/6IPF+sF/pVssf19Ii/WH/0K2WH/uGuvEWC39gSdj9Twy+Rqri5EZx1gt/IE7Y/XoD1wbq9vd3w1PlufnD2OBp+ebm/uxwPHF6emnscDR4vLy41jg7vHq6sNY4Pr27OyYdRaLUrDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssMCiwAILLLDAAosCCyywwAILLAossMACCyywKLDAAgsssL6u+k+AAQCR9eHtLKvLfwAAAABJRU5ErkJggg==" data-original="https://i.loli.net/2019/06/08/5cfb5c6be26e029890.jpg" alt="fstab">到此品胜云座充的折腾告一段落,接下来就是进行软件方面的设置了。</li></ul></li></ol>]]></content>
<summary type="html">
<div class="note success"><h4 id="2018-6-19-更新:openwrt-固件"><a class="header-anchor" href="#2018-6-19-更新:openwrt-固件">¶</a>2018/6/19 更新:openwrt 固件</h4>
<p>链接: <a href="https://pan.baidu.com/s/1MqWci4ElhyytjqgCj9GnFw" rel="external nofollow noopener noreferrer" target="_blank">https://pan.baidu.com/s/1MqWci4ElhyytjqgCj9GnFw</a> 密码: <code>7ckw</code></p>
</div>
</summary>
<category term="路由器" scheme="https://cxyzzz.gtihub.io/categories/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
<category term="OpenWrt" scheme="https://cxyzzz.gtihub.io/tags/OpenWrt/"/>
</entry>
<entry>
<title>Hello-Hexo</title>
<link href="https://cxyzzz.gtihub.io/posts/59e5d8b8.html"/>
<id>https://cxyzzz.gtihub.io/posts/59e5d8b8.html</id>
<published>2017-05-21T09:21:00.000Z</published>
<updated>2017-05-21T09:21:00.000Z</updated>
<content type="html"><![CDATA[<p>Hello Hexo!</p><a id="more"></a><p>希望阳光很暖,微风不燥,时光不老,你我都好。</p>]]></content>
<summary type="html">
<p>Hello Hexo!</p>
</summary>
</entry>
</feed>