├── .github └── workflows │ └── build.yml ├── .gitignore ├── README.md ├── _config.butterfly.yml ├── _config.landscape.yml ├── _config.yml ├── package-lock.json ├── package.json ├── scaffolds ├── draft.md ├── page.md └── post.md └── source ├── _data └── link.yml ├── _posts ├── 神秘模块详细教程.md └── 神秘模块详细教程 │ ├── 20230505095351934.jpg │ ├── 20230505095357021.jpg │ ├── 20230505095457702.jpg │ ├── 20230505101521031.jpg │ ├── 20230505101523609.jpg │ ├── 20230505102333065.jpg │ ├── 20230505102335390.jpg │ ├── 20230505102753101.jpg │ ├── 20230505103524540.jpg │ ├── 20230505103534856.jpg │ ├── 20230505103540818.jpg │ ├── 20230505103544263.jpg │ ├── 20230505150013592.jpg │ ├── 20230906153119436.jpg │ ├── 20231007232729208.jpg │ ├── 20231007232747398.jpg │ ├── 20231007232750279.jpg │ ├── 20231007232807776.jpg │ ├── 20231007232910.jpg │ ├── 20231007232932387.jpg │ ├── 20231007232941235.jpg │ ├── 20231007233008821.jpg │ ├── 20231007234233.jpg │ ├── 20231008000436.jpg │ ├── 20231008005316.jpg │ ├── 20231008005635.jpg │ └── 23231007232958.jpg ├── about └── index.md ├── categories └── index.md ├── link └── index.md ├── res ├── cover │ ├── 35750.png │ └── 35761.png ├── css │ └── index.css ├── img │ ├── 404.png │ ├── avatar.jpg │ ├── bg.jpg │ ├── default_cover.jpg │ ├── default_top_image.jpg │ ├── logo.png │ ├── logo.svg │ ├── top_image.jpg │ └── top_image_2.jpg └── js │ ├── clipboard.min.js │ ├── index.js │ ├── jquery-3.6.0.min.js │ └── signature.js └── tags └── index.md /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy 2 | 3 | on: 4 | push: 5 | 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v4 12 | with: 13 | fetch-depth: 0 14 | 15 | - name: Setup Node.js 16 | uses: actions/setup-node@v4 17 | with: 18 | node-version: latest 19 | 20 | - name: Configuration Environment 21 | run: | 22 | npm install 23 | npm install -g hexo 24 | git config --global user.email "github-actions[bot]@users.noreply.github.com" 25 | git config --global user.name "github-actions[bot]" 26 | git config init.defaultbranch gh-pages 27 | 28 | - name: Build 29 | run: | 30 | hexo generate 31 | 32 | - name: Start Deploy 33 | run: | 34 | cp -r public .deploy_git 35 | cd .deploy_git 36 | git init . 37 | git add -A 38 | git commit -m "Build & Deploy" 39 | 40 | - name: Push changes 41 | uses: ad-m/github-push-action@master 42 | with: 43 | force: true 44 | branch: "gh-pages" 45 | github_token: ${{ secrets.GITHUB_TOKEN }} 46 | directory: ".deploy_git" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | /public/ 3 | .deploy*/ 4 | db.json 5 | .deplay/ 6 | /themes/* 7 | !/themes/.gitkeep 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 神秘详细教程 2 | 3 | ## 阅读须知 4 | - 本教程所有代码块中以 $ 或 # 开头的是命令,没有的是命令执行结果或者代码 5 | - 以 # 开头的命令是以 root 身份执行的,需要在执行 su 切换 root 身份后执行 6 | - 本教程欢迎你来修改,修改可以前往 [GitHub](https://github.com/xireiki/tutorial-mystery) 提交 Issues 或者 Pull requests 7 | 8 | ## 介绍 9 | ### sing-box 介绍 10 | - 正如 [GitHub](https://github.com/SagerNet/sing-box) 下简明的介绍一致,[sing-box](https://github.com/SagerNet/sing-box) 是一款开源的通用代理软件,多平台兼容性好,性能优异。 11 | - 由于 [sing-box](https://github.com/SagerNet/sing-box) 内核本身并无 provider,单独使用时对于机场用户十分不友好,与此同时衍生出了 provider 分支,以及启动模块的外置 provider,也就是下文将要介绍到的神秘模块,除此之外还有 [𝐄𝟓 𝟖𝟔 𝟗𝟓](https://t.me/e58695) 制作的 [box4magisk](https://github.com/CHIZI-0618/box4magisk),该启动模块可以使用 [sing-box](https://github.com/SagerNet/sing-box) 的 [provider](https://github.com/PuerNya/sing-box/tree/building) 分支。 12 | - 本教程以 [Puer 是只喵 喵~](https://github.com/PuerNya) 制作的 Android [sing-box](https://github.com/SagerNet/sing-box) 启动模块神秘模块为基础,介绍 [sing-box](https://github.com/SagerNet/sing-box) 的基础功能及使用方法。 13 | - [sing-box 官方文档](https://sing-box.sagernet.org/zh/) 14 | 15 | ### 神秘介绍 16 | - 神秘模块(文中所称的神秘)是 [Puer 是只喵 喵~](https://github.com/PuerNya) 制作的 sing-box Magisk 模块,用于使用 provider(提供者,机场订阅) 并启动 sing-box 内核 17 | - 神秘发布渠道为 Telegram 话题组 [原始人,启洞!](https://t.me/+1-1lPvQxklVlZjA1) 下的“啊?”话题(特殊时期,已修改为私人群聊) 18 | - 请仔细观看教程,不要在群里提问傻逼问题,右下角有文章索引目录 19 | 20 | ## 开始阅读! 21 | - [Netlify(主)](https://xireiki.netlify.app) 22 | - [Github](https://xireiki.github.io/tutorial-mystery) 23 | -------------------------------------------------------------------------------- /_config.butterfly.yml: -------------------------------------------------------------------------------- 1 | # Main menu navigation (導航目錄) 2 | # see https://butterfly.js.org/posts/4aa8abbe/#導航菜單 3 | # -------------------------------------- 4 | 5 | menu: 6 | 主页: / || fas fa-home 7 | 归档: /archives/ || fas fa-archive 8 | 标签: /tags/ || fas fa-tags 9 | 分类: /categories/ || fas fa-folder-open 10 | 列表 || fas fa-list || hide: 11 | 神秘教程: /posts/1542838017 || fas fa-music 12 | # Movie: /movies/ || fas fa-video 13 | 友链: /link/ || fas fa-link 14 | 关于: /about/ || fas fa-heart 15 | 16 | nav: 17 | logo: # image 18 | display_title: true 19 | fixed: true # fixed navigation bar 20 | 21 | # Code Blocks (代碼相關) 22 | # -------------------------------------- 23 | 24 | highlight_theme: light # darker / pale night / light / ocean / mac / mac light / false 25 | highlight_copy: true # copy button 26 | highlight_lang: true # show the code language 27 | highlight_shrink: false # true: shrink the code blocks / false: expand the code blocks | none: expand code blocks and hide the button 28 | highlight_height_limit: 150 # unit: px 29 | code_word_wrap: true 30 | 31 | # copy settings 32 | # copyright: Add the copyright information after copied content (複製的內容後面加上版權信息) 33 | copy: 34 | enable: true 35 | copyright: 36 | enable: false 37 | limit_count: 50 38 | 39 | # social settings (社交圖標設置) 40 | # formal: 41 | # icon: link || the description 42 | social: 43 | fas fa-envelope: mailto:xiayinlily@outlook.com || Email 44 | 45 | # search (搜索) 46 | # see https://butterfly.js.org/posts/ceeb73f/#搜索系統 47 | # -------------------------------------- 48 | 49 | # Algolia search 50 | algolia_search: 51 | enable: false 52 | hits: 53 | per_page: 6 54 | 55 | # Local search 56 | local_search: 57 | enable: true 58 | preload: true 59 | CDN: 60 | 61 | # Docsearch 62 | # https://docsearch.algolia.com/ 63 | docsearch: 64 | enable: false 65 | appId: 66 | apiKey: 67 | indexName: 68 | option: 69 | 70 | # Math (數學) 71 | # -------------------------------------- 72 | # About the per_page 73 | # if you set it to true, it will load mathjax/katex script in each page (true 表示每一頁都加載js) 74 | # if you set it to false, it will load mathjax/katex script according to your setting (add the 'mathjax: true' in page's front-matter) 75 | # (false 需要時加載,須在使用的 Markdown Front-matter 加上 mathjax: true) 76 | 77 | # MathJax 78 | mathjax: 79 | enable: false 80 | per_page: false 81 | 82 | # KaTeX 83 | katex: 84 | enable: false 85 | per_page: false 86 | hide_scrollbar: true 87 | 88 | # Image (圖片設置) 89 | # -------------------------------------- 90 | 91 | # Favicon(網站圖標) 92 | favicon: /res/img/logo.png 93 | 94 | # Avatar (頭像) 95 | avatar: 96 | img: /res/img/avatar.jpg 97 | effect: false 98 | 99 | # Disable all banner image 100 | disable_top_img: false 101 | 102 | # The banner image of home page 103 | index_img: /res/img/top_image.jpg 104 | 105 | # If the banner of page not setting, it will show the top_img 106 | default_top_img: /res/img/default_top_image.jpg 107 | 108 | # The banner image of archive page 109 | archive_img: 110 | 111 | # If the banner of tag page not setting, it will show the top_img 112 | # note: tag page, not tags page (子標籤頁面的 top_img) 113 | tag_img: 114 | 115 | # The banner image of tag page 116 | # format: 117 | # - tag name: xxxxx 118 | tag_per_img: 119 | 120 | # If the banner of category page not setting, it will show the top_img 121 | # note: category page, not categories page (子分類頁面的 top_img) 122 | category_img: 123 | 124 | # The banner image of category page 125 | # format: 126 | # - category name: xxxxx 127 | category_per_img: 128 | 129 | cover: 130 | # display the cover or not (是否顯示文章封面) 131 | index_enable: true 132 | aside_enable: true 133 | archives_enable: true 134 | # the position of cover in home page (封面顯示的位置) 135 | # left/right/both 136 | position: both 137 | # When cover is not set, the default cover is displayed (當沒有設置cover時,默認的封面顯示) 138 | default_cover: 139 | - https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg 140 | - /res/img/top_image.jpg 141 | - /res/img/default_cover.jpg 142 | - /res/img/top_image_2.jpg 143 | 144 | # Replace Broken Images (替換無法顯示的圖片) 145 | error_img: 146 | flink: /img/friend_404.gif 147 | post_page: /img/404.jpg 148 | 149 | # A simple 404 page 150 | error_404: 151 | enable: false 152 | subtitle: 'Page Not Found' 153 | background: /res/img/404.png 154 | 155 | post_meta: 156 | page: # Home Page 157 | date_type: created # created or updated or both 主頁文章日期是創建日或者更新日或都顯示 158 | date_format: date # date/relative 顯示日期還是相對日期 159 | categories: true # true or false 主頁是否顯示分類 160 | tags: false # true or false 主頁是否顯示標籤 161 | label: true # true or false 顯示描述性文字 162 | post: 163 | date_type: both # created or updated or both 文章頁日期是創建日或者更新日或都顯示 164 | date_format: date # date/relative 顯示日期還是相對日期 165 | categories: true # true or false 文章頁是否顯示分類 166 | tags: true # true or false 文章頁是否顯示標籤 167 | label: true # true or false 顯示描述性文字 168 | 169 | # wordcount (字數統計) 170 | # see https://butterfly.js.org/posts/ceeb73f/#字數統計 171 | wordcount: 172 | enable: true 173 | post_wordcount: true 174 | min2read: true 175 | total_wordcount: true 176 | 177 | # Display the article introduction on homepage 178 | # 1: description 179 | # 2: both (if the description exists, it will show description, or show the auto_excerpt) 180 | # 3: auto_excerpt (default) 181 | # false: do not show the article introduction 182 | index_post_content: 183 | method: 2 184 | length: 500 # if you set method to 2 or 3, the length need to config 185 | 186 | # anchor 187 | anchor: 188 | button: 189 | enable: false 190 | always_show: false 191 | icon: # the unicode value of Font Awesome icon, such as '\3423' 192 | auto_update: true # when you scroll in post, the URL will update according to header id. 193 | 194 | # Post 195 | # -------------------------------------- 196 | 197 | # toc (目錄) 198 | toc: 199 | post: true 200 | page: true 201 | number: true 202 | expand: false 203 | style_simple: false # for post 204 | scroll_percent: false 205 | 206 | post_copyright: 207 | enable: true 208 | decode: false 209 | author_href: 210 | license: CC BY-NC-SA 4.0 211 | license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/ 212 | 213 | # Sponsor/reward 214 | reward: 215 | enable: false 216 | QR_code: 217 | - img: /res/img/wechat.png 218 | link: 219 | text: 微信 220 | - img: /res/img/alipay.png 221 | link: 222 | text: 支付宝 223 | 224 | # Post edit 225 | # Easily browse and edit blog source code online. 226 | post_edit: 227 | enable: false 228 | # url: https://github.com/user-name/repo-name/edit/branch-name/subdirectory-name/ 229 | # For example: https://github.com/jerryc127/butterfly.js.org/edit/main/source/ 230 | url: 231 | 232 | # Related Articles 233 | related_post: 234 | enable: true 235 | limit: 6 # Number of posts displayed 236 | date_type: created # or created or updated 文章日期顯示創建日或者更新日 237 | 238 | # figcaption (圖片描述文字) 239 | photofigcaption: false 240 | 241 | # post_pagination (分頁) 242 | # value: 1 || 2 || false 243 | # 1: The 'next post' will link to old post 244 | # 2: The 'next post' will link to new post 245 | # false: disable pagination 246 | post_pagination: 1 247 | 248 | # Displays outdated notice for a post (文章過期提醒) 249 | noticeOutdate: 250 | enable: false 251 | style: flat # style: simple/flat 252 | limit_day: 500 # When will it be shown 253 | position: top # position: top/bottom 254 | message_prev: It has been 255 | message_next: days since the last update, the content of the article may be outdated. 256 | 257 | # Share System (分享功能) 258 | # -------------------------------------- 259 | 260 | # AddThis 261 | # https://www.addthis.com/ 262 | addThis: 263 | enable: false 264 | pubid: 265 | 266 | # Share.js 267 | # https://github.com/overtrue/share.js 268 | sharejs: 269 | enable: true 270 | sites: facebook,twitter,wechat,weibo,qq 271 | 272 | # AddToAny 273 | # https://www.addtoany.com/ 274 | addtoany: 275 | enable: false 276 | item: facebook,twitter,wechat,sina_weibo,facebook_messenger,email,copy_link 277 | 278 | # Comments System 279 | # -------------------------------------- 280 | 281 | comments: 282 | # Up to two comments system, the first will be shown as default 283 | # Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk 284 | use: Twikoo # Valine,Disqus 285 | text: true # Display the comment name next to the button 286 | # lazyload: The comment system will be load when comment element enters the browser's viewport. 287 | # If you set it to true, the comment count will be invalid 288 | lazyload: false 289 | count: true # Display comment count in post's top_img 290 | card_post_count: true # Display comment count in Home Page 291 | 292 | # disqus 293 | # https://disqus.com/ 294 | disqus: 295 | shortname: 296 | apikey: # For newest comments widget 297 | 298 | # Alternative Disqus - Render comments with Disqus API 299 | # DisqusJS 評論系統,可以實現在網路審查地區載入 Disqus 評論列表,兼容原版 300 | # https://github.com/SukkaW/DisqusJS 301 | disqusjs: 302 | shortname: 303 | apikey: 304 | option: 305 | 306 | # livere (來必力) 307 | # https://www.livere.com/ 308 | livere: 309 | uid: 310 | 311 | # gitalk 312 | # https://github.com/gitalk/gitalk 313 | gitalk: 314 | client_id: 315 | client_secret: 316 | repo: 317 | owner: 318 | admin: 319 | option: 320 | 321 | # valine 322 | # https://valine.js.org 323 | valine: 324 | appId: # leancloud application app id 325 | appKey: # leancloud application app key 326 | avatar: monsterid # gravatar style https://valine.js.org/#/avatar 327 | serverURLs: # This configuration is suitable for domestic custom domain name users, overseas version will be automatically detected (no need to manually fill in) 328 | bg: # valine background 329 | visitor: false 330 | option: 331 | 332 | # waline - A simple comment system with backend support fork from Valine 333 | # https://waline.js.org/ 334 | waline: 335 | serverURL: # Waline server address url 336 | bg: # waline background 337 | pageview: false 338 | option: 339 | 340 | # utterances 341 | # https://utteranc.es/ 342 | utterances: 343 | repo: 344 | # Issue Mapping: pathname/url/title/og:title 345 | issue_term: pathname 346 | # Theme: github-light/github-dark/github-dark-orange/icy-dark/dark-blue/photon-dark 347 | light_theme: github-light 348 | dark_theme: photon-dark 349 | 350 | # Facebook Comments Plugin 351 | # https://developers.facebook.com/docs/plugins/comments/ 352 | facebook_comments: 353 | app_id: 354 | user_id: # optional 355 | pageSize: 10 # The number of comments to show 356 | order_by: social # social/time/reverse_time 357 | lang: zh_CN # Language en_US/zh_CN/zh_TW and so on 358 | 359 | # Twikoo 360 | # https://github.com/imaegoo/twikoo 361 | twikoo: 362 | envId: https://twikoo-xireiki.netlify.app/.netlify/functions/twikoo 363 | region: 364 | visitor: false 365 | option: 366 | 367 | # Giscus 368 | # https://giscus.app/ 369 | giscus: 370 | repo: 371 | repo_id: 372 | category_id: 373 | theme: 374 | light: light 375 | dark: dark 376 | option: 377 | 378 | # Remark42 379 | # https://remark42.com/docs/configuration/frontend/ 380 | remark42: 381 | host: # Your Host URL 382 | siteId: # Your Site ID 383 | option: 384 | 385 | # Artalk 386 | # https://artalk.js.org/guide/frontend/config.html 387 | artalk: 388 | server: 389 | site: 390 | visitor: false 391 | option: 392 | 393 | # Chat Services 394 | # -------------------------------------- 395 | 396 | # Chat Button [recommend] 397 | # It will create a button in the bottom right corner of website, and hide the origin button 398 | chat_btn: false 399 | 400 | # The origin chat button is displayed when scrolling up, and the button is hidden when scrolling down 401 | chat_hide_show: false 402 | 403 | # chatra 404 | # https://chatra.io/ 405 | chatra: 406 | enable: false 407 | id: 408 | 409 | # tidio 410 | # https://www.tidio.com/ 411 | tidio: 412 | enable: false 413 | public_key: 414 | 415 | # daovoice 416 | # http://dashboard.daovoice.io/app 417 | daovoice: 418 | enable: false 419 | app_id: 420 | 421 | # gitter 422 | # https://gitter.im/ 423 | gitter: 424 | enable: false 425 | room: 426 | 427 | # crisp 428 | # https://crisp.chat/en/ 429 | crisp: 430 | enable: false 431 | website_id: 432 | 433 | # messenger 434 | # https://developers.facebook.com/docs/messenger-platform/discovery/facebook-chat-plugin/ 435 | messenger: 436 | enable: false 437 | pageID: 438 | lang: zh_CN # Language en_US/zh_CN/zh_TW and so on 439 | 440 | # Footer Settings 441 | # -------------------------------------- 442 | footer: 443 | owner: 444 | enable: true 445 | since: 2022 446 | custom_text: 447 | copyright: false # Copyright of theme and framework 448 | 449 | # Analysis 450 | # -------------------------------------- 451 | 452 | # Baidu Analytics 453 | # https://tongji.baidu.com/web/welcome/login 454 | baidu_analytics: 455 | 456 | # Google Analytics 457 | # https://analytics.google.com/analytics/web/ 458 | google_analytics: 459 | 460 | # Cloudflare Analytics 461 | # https://www.cloudflare.com/zh-tw/web-analytics/ 462 | cloudflare_analytics: 463 | 464 | # Microsoft Clarity 465 | # https://clarity.microsoft.com/ 466 | microsoft_clarity: 467 | 468 | # Advertisement 469 | # -------------------------------------- 470 | 471 | # Google Adsense (谷歌廣告) 472 | google_adsense: 473 | enable: false 474 | auto_ads: true 475 | js: https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js 476 | client: 477 | enable_page_level_ads: true 478 | 479 | # Insert ads manually (手動插入廣告) 480 | # ad: 481 | # index: 482 | # aside: 483 | # post: 484 | 485 | # Verification (站長驗證) 486 | # -------------------------------------- 487 | 488 | site_verification: 489 | # - name: google-site-verification 490 | # content: xxxxxx 491 | # - name: baidu-site-verification 492 | # content: xxxxxxx 493 | 494 | # Beautify/Effect (美化/效果) 495 | # -------------------------------------- 496 | 497 | # Theme color for customize 498 | # Notice: color value must in double quotes like "#000" or may cause error! 499 | 500 | # theme_color: 501 | # enable: true 502 | # main: "#49B1F5" 503 | # paginator: "#00c4b6" 504 | # button_hover: "#FF7242" 505 | # text_selection: "#00c4b6" 506 | # link_color: "#99a9bf" 507 | # meta_color: "#858585" 508 | # hr_color: "#A4D8FA" 509 | # code_foreground: "#F47466" 510 | # code_background: "rgba(27, 31, 35, .05)" 511 | # toc_color: "#00c4b6" 512 | # blockquote_padding_color: "#49b1f5" 513 | # blockquote_background_color: "#49b1f5" 514 | # scrollbar_color: "#49b1f5" 515 | # meta_theme_color_light: "ffffff" 516 | # meta_theme_color_dark: "#0d0d0d" 517 | 518 | # The top_img settings of home page 519 | # default: top img - full screen, site info - middle (默認top_img全屏,site_info在中間) 520 | # The position of site info, eg: 300px/300em/300rem/10% (主頁標題距離頂部距離) 521 | index_site_info_top: 522 | # The height of top_img, eg: 300px/300em/300rem (主頁top_img高度) 523 | index_top_img_height: 20rem 524 | 525 | # The user interface setting of category and tag page (category和tag頁的UI設置) 526 | # index - same as Homepage UI (index 值代表 UI將與首頁的UI一樣) 527 | # default - same as archives UI 默認跟archives頁面UI一樣 528 | category_ui: # 留空或 index 529 | tag_ui: # 留空或 index 530 | 531 | # Website Background (設置網站背景) 532 | # can set it to color or image (可設置圖片 或者 顔色) 533 | # The formal of image: url(http://xxxxxx.com/xxx.jpg) 534 | background: url(/res/img/bg.jpg) 535 | 536 | # Footer Background 537 | footer_bg: false 538 | 539 | # the position of bottom right button/default unit: px (右下角按鈕距離底部的距離/默認單位為px) 540 | rightside-bottom: 541 | 542 | # Enter transitions (開啓網頁進入效果) 543 | enter_transitions: true 544 | 545 | # Background effects (背景特效) 546 | # -------------------------------------- 547 | 548 | # canvas_ribbon (靜止彩帶背景) 549 | # See: https://github.com/hustcc/ribbon.js 550 | canvas_ribbon: 551 | enable: false 552 | size: 150 553 | alpha: 0.6 554 | zIndex: -1 555 | click_to_change: false 556 | mobile: false 557 | 558 | # Fluttering Ribbon (動態彩帶) 559 | canvas_fluttering_ribbon: 560 | enable: false 561 | mobile: false 562 | 563 | # canvas_nest 564 | # https://github.com/hustcc/canvas-nest.js 565 | canvas_nest: 566 | enable: false 567 | color: '0,0,255' #color of lines, default: '0,0,0'; RGB values: (R,G,B).(note: use ',' to separate.) 568 | opacity: 0.7 # the opacity of line (0~1), default: 0.5. 569 | zIndex: -1 # z-index property of the background, default: -1. 570 | count: 99 # the number of lines, default: 99. 571 | mobile: false 572 | 573 | # Typewriter Effect (打字效果) 574 | # https://github.com/disjukr/activate-power-mode 575 | activate_power_mode: 576 | enable: true 577 | colorful: true # open particle animation (冒光特效) 578 | shake: false # open shake (抖動特效) 579 | mobile: true 580 | 581 | # Mouse click effects: fireworks (鼠標點擊效果: 煙火特效) 582 | fireworks: 583 | enable: false 584 | zIndex: 9999 # -1 or 9999 585 | mobile: false 586 | 587 | # Mouse click effects: Heart symbol (鼠標點擊效果: 愛心) 588 | click_heart: 589 | enable: false 590 | mobile: false 591 | 592 | # Mouse click effects: words (鼠標點擊效果: 文字) 593 | ClickShowText: 594 | enable: false 595 | text: 596 | # - I 597 | # - LOVE 598 | # - YOU 599 | fontSize: 15px 600 | random: false 601 | mobile: false 602 | 603 | # Default display mode (網站默認的顯示模式) 604 | # light (default) / dark 605 | display_mode: light 606 | 607 | # Beautify (美化頁面顯示) 608 | beautify: 609 | enable: true 610 | field: post # site/post 611 | title-prefix-icon: # '\f0c1' 612 | title-prefix-icon-color: # '#F47466' 613 | 614 | # Global font settings 615 | # Don't modify the following settings unless you know how they work (非必要不要修改) 616 | font: 617 | global-font-size: 618 | code-font-size: 619 | font-family: 620 | code-font-family: 621 | 622 | # Font settings for the site title and site subtitle 623 | # 左上角網站名字 主頁居中網站名字 624 | blog_title_font: 625 | font_link: 626 | font-family: 627 | 628 | # The setting of divider icon (水平分隔線圖標設置) 629 | hr_icon: 630 | enable: true 631 | icon: # the unicode value of Font Awesome icon, such as '\3423' 632 | icon-top: 633 | 634 | # the subtitle on homepage (主頁subtitle) 635 | subtitle: 636 | enable: true 637 | # Typewriter Effect (打字效果) 638 | effect: true 639 | # Customize typed.js (配置typed.js) 640 | # https://github.com/mattboldt/typed.js/#customization 641 | typed_option: 642 | # source 調用第三方服務 643 | # source: false 關閉調用 644 | # source: 1 調用一言網的一句話(簡體) https://hitokoto.cn/ 645 | # source: 2 調用一句網(簡體) https://yijuzhan.com/ 646 | # source: 3 調用今日詩詞(簡體) https://www.jinrishici.com/ 647 | # subtitle 會先顯示 source , 再顯示 sub 的內容 648 | source: 1 649 | # 如果關閉打字效果,subtitle 只會顯示 sub 的第一行文字 650 | sub: 651 | - 你好啊!(´◊ω◊`) 652 | 653 | # Loading Animation (加載動畫) 654 | preloader: 655 | enable: true 656 | # source 657 | # 1. fullpage-loading 658 | # 2. pace (progress bar) 659 | source: 1 660 | # pace theme (see https://codebyzach.github.io/pace/) 661 | pace_css_url: 662 | 663 | # aside (側邊欄) 664 | # -------------------------------------- 665 | 666 | aside: 667 | enable: true 668 | hide: false 669 | button: true 670 | mobile: true # display on mobile 671 | position: right # left or right 672 | display: 673 | archive: true 674 | tag: true 675 | category: true 676 | card_author: 677 | enable: true 678 | description: 679 | button: 680 | enable: true 681 | icon: fab fa-github 682 | text: Follow Me 683 | link: https://github.com/ 684 | card_announcement: 685 | enable: true 686 | content: "1.征集教程封面啦!如果你有想法,请前往 @xiayinlily 的绑定群聊发生你的想法或者邮件发我!
2.征集主页图片!(长期)有意者请通过 @xiayinlily 或者邮件联系。" 687 | card_recent_post: 688 | enable: true 689 | limit: 5 # if set 0 will show all 690 | sort: date # date or updated 691 | sort_order: # Don't modify the setting unless you know how it works 692 | card_categories: 693 | enable: true 694 | limit: 8 # if set 0 will show all 695 | expand: none # none/true/false 696 | sort_order: # Don't modify the setting unless you know how it works 697 | card_tags: 698 | enable: true 699 | limit: 40 # if set 0 will show all 700 | color: false 701 | orderby: random # Order of tags, random/name/length 702 | order: 1 # Sort of order. 1, asc for ascending; -1, desc for descending 703 | sort_order: # Don't modify the setting unless you know how it works 704 | card_archives: 705 | enable: true 706 | type: monthly # yearly or monthly 707 | format: MMMM YYYY # eg: YYYY年MM月 708 | order: -1 # Sort of order. 1, asc for ascending; -1, desc for descending 709 | limit: 8 # if set 0 will show all 710 | sort_order: # Don't modify the setting unless you know how it works 711 | card_webinfo: 712 | enable: true 713 | post_count: true 714 | last_push_date: true 715 | sort_order: # Don't modify the setting unless you know how it works 716 | 717 | # busuanzi count for PV / UV in site 718 | # 訪問人數 719 | busuanzi: 720 | site_uv: true 721 | site_pv: true 722 | page_pv: true 723 | 724 | # Time difference between publish date and now (網頁運行時間) 725 | # Formal: Month/Day/Year Time or Year/Month/Day Time 726 | runtimeshow: 727 | enable: true 728 | publish_date: 2022/12/1 00:00:00 729 | 730 | # Aside widget - Newest Comments 731 | newest_comments: 732 | enable: false 733 | sort_order: # Don't modify the setting unless you know how it works 734 | limit: 6 735 | storage: 10 # unit: mins, save data to localStorage 736 | avatar: true 737 | 738 | # Bottom right button (右下角按鈕) 739 | # -------------------------------------- 740 | 741 | # Conversion between Traditional and Simplified Chinese (簡繁轉換) 742 | translate: 743 | enable: false 744 | # The text of a button 745 | default: 简 746 | # the language of website (1 - Traditional Chinese/ 2 - Simplified Chinese) 747 | defaultEncoding: 2 748 | # Time delay 749 | translateDelay: 0 750 | # The text of the button when the language is Simplified Chinese 751 | msgToTraditionalChinese: '繁' 752 | # The text of the button when the language is Traditional Chinese 753 | msgToSimplifiedChinese: '簡' 754 | 755 | # Read Mode (閲讀模式) 756 | readmode: true 757 | 758 | # dark mode 759 | darkmode: 760 | enable: true 761 | # Toggle Button to switch dark/light mode 762 | button: true 763 | # Switch dark/light mode automatically (自動切換 dark mode和 light mode) 764 | # autoChangeMode: 1 Following System Settings, if the system doesn't support dark mode, it will switch dark mode between 6 pm to 6 am 765 | # autoChangeMode: 2 Switch dark mode between 6 pm to 6 am 766 | # autoChangeMode: false 767 | autoChangeMode: false 768 | 769 | # show scroll percent in scroll-to-top button 770 | rightside_scroll_percent: true 771 | 772 | # Don't modify the following settings unless you know how they work (非必要請不要修改 ) 773 | # Choose: readmode,translate,darkmode,hideAside,toc,chat,comment 774 | # Don't repeat 不要重複 775 | rightside_item_order: 776 | enable: false 777 | hide: # readmode,translate,darkmode,hideAside 778 | show: # toc,chat,comment 779 | 780 | # Lightbox (圖片大圖查看模式) 781 | # -------------------------------------- 782 | # You can only choose one, or neither (只能選擇一個 或者 兩個都不選) 783 | 784 | # medium-zoom 785 | # https://github.com/francoischalifour/medium-zoom 786 | medium_zoom: false 787 | 788 | # fancybox 789 | # http://fancyapps.com/fancybox/3/ 790 | fancybox: true 791 | 792 | # Tag Plugins settings (標籤外掛) 793 | # -------------------------------------- 794 | 795 | # mermaid 796 | # see https://github.com/mermaid-js/mermaid 797 | mermaid: 798 | enable: false 799 | # built-in themes: default/forest/dark/neutral 800 | theme: 801 | light: default 802 | dark: dark 803 | 804 | # Note (Bootstrap Callout) 805 | note: 806 | # Note tag style values: 807 | # - simple bs-callout old alert style. Default. 808 | # - modern bs-callout new (v2-v3) alert style. 809 | # - flat flat callout style with background, like on Mozilla or StackOverflow. 810 | # - disabled disable all CSS styles import of note tag. 811 | style: flat 812 | icons: true 813 | border_radius: 3 814 | # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6). 815 | # Offset also applied to label tag variables. This option can work with disabled note tag. 816 | light_bg_offset: 0 817 | 818 | # other 819 | # -------------------------------------- 820 | 821 | # Pjax 822 | # It may contain bugs and unstable, give feedback when you find the bugs. 823 | # https://github.com/MoOx/pjax 824 | pjax: 825 | enable: true 826 | exclude: 827 | # - 828 | 829 | # Inject the css and script (aplayer/meting) 830 | aplayerInject: 831 | enable: false 832 | per_page: true 833 | 834 | # Snackbar (Toast Notification 彈窗) 835 | # https://github.com/polonel/SnackBar 836 | # position 彈窗位置 837 | # 可選 top-left / top-center / top-right / bottom-left / bottom-center / bottom-right 838 | snackbar: 839 | enable: false 840 | position: bottom-left 841 | bg_light: '#49b1f5' # The background color of Toast Notification in light mode 842 | bg_dark: '#1f1f1f' # The background color of Toast Notification in dark mode 843 | 844 | # https://instant.page/ 845 | # prefetch (預加載) 846 | instantpage: true 847 | 848 | # https://github.com/vinta/pangu.js 849 | # Insert a space between Chinese character and English character (中英文之間添加空格) 850 | pangu: 851 | enable: true 852 | field: site # site/post 853 | 854 | # Lazyload (圖片懶加載) 855 | # https://github.com/verlok/vanilla-lazyload 856 | lazyload: 857 | enable: false 858 | field: site # site/post 859 | placeholder: 860 | blur: false 861 | 862 | # PWA 863 | # See https://github.com/JLHwung/hexo-offline 864 | # --------------- 865 | # pwa: 866 | # enable: false 867 | # manifest: /pwa/manifest.json 868 | # apple_touch_icon: /pwa/apple-touch-icon.png 869 | # favicon_32_32: /pwa/32.png 870 | # favicon_16_16: /pwa/16.png 871 | # mask_icon: /pwa/safari-pinned-tab.svg 872 | 873 | # Open graph meta tags 874 | # https://developers.facebook.com/docs/sharing/webmasters/ 875 | Open_Graph_meta: 876 | enable: true 877 | option: 878 | # twitter_card: 879 | # twitter_image: 880 | # twitter_id: 881 | # twitter_site: 882 | # google_plus: 883 | # fb_admins: 884 | # fb_app_id: 885 | 886 | # Add the vendor prefixes to ensure compatibility 887 | css_prefix: true 888 | 889 | # Inject 890 | # Insert the code to head (before '' tag) and the bottom (before '' tag) 891 | # 插入代码到头部 之前 和 底部 之前 892 | inject: 893 | head: 894 | - 895 | # - 896 | bottom: 897 | - 898 | - 899 | # - 900 | - 901 | # CDN 902 | # Don't modify the following settings unless you know how they work 903 | # 非必要請不要修改 904 | CDN: 905 | # The CDN provider of internal scripts (主題內部 js 的 cdn 配置) 906 | # option: local/jsdelivr/unpkg/cdnjs/custom 907 | # Dev version can only choose. ( dev版的主題只能設置為 local ) 908 | internal_provider: local 909 | 910 | # The CDN provider of third party scripts (第三方 js 的 cdn 配置) 911 | # option: local/jsdelivr/unpkg/cdnjs/custom 912 | # when set it to local, you need to install hexo-butterfly-extjs 913 | third_party_provider: jsdelivr 914 | 915 | # Add version number to CDN, true or false 916 | version: false 917 | 918 | # Custom format 919 | # For example: https://cdn.staticfile.org/${cdnjs_name}/${version}/${min_cdnjs_file} 920 | custom_format: 921 | 922 | option: 923 | # main_css: 924 | # main: 925 | # utils: 926 | # translate: 927 | # local_search: 928 | # algolia_js: 929 | # algolia_search_v4: 930 | # instantsearch_v4: 931 | # docsearch_js: 932 | # docsearch_css: 933 | # pjax: 934 | # gitalk: 935 | # gitalk_css: 936 | # blueimp_md5: 937 | # valine: 938 | # disqusjs: 939 | # disqusjs_css: 940 | # twikoo: 941 | # waline_js: 942 | # waline_css: 943 | # sharejs: 944 | # sharejs_css: 945 | # mathjax: 946 | # katex: 947 | # katex_copytex: 948 | # mermaid: 949 | # canvas_ribbon: 950 | # canvas_fluttering_ribbon: 951 | # canvas_nest: 952 | # lazyload: 953 | # instantpage: 954 | # typed: 955 | # pangu: 956 | # fancybox_css_v4: 957 | # fancybox_v4: 958 | # medium_zoom: 959 | # snackbar_css: 960 | # snackbar: 961 | # activate_power_mode: 962 | # fireworks: 963 | # click_heart: 964 | # ClickShowText: 965 | # fontawesomeV6: 966 | # flickr_justified_gallery_js: 967 | # flickr_justified_gallery_css: 968 | # aplayer_css: 969 | # aplayer_js: 970 | # meting_js: 971 | # prismjs_js: 972 | # prismjs_lineNumber_js: 973 | # prismjs_autoloader: 974 | # artalk_js: 975 | # artalk_css: 976 | # busuanzi: 977 | -------------------------------------------------------------------------------- /_config.landscape.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/_config.landscape.yml -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Hexo Configuration 2 | ## Docs: https://hexo.io/docs/configuration.html 3 | ## Source: https://github.com/hexojs/hexo/ 4 | 5 | # Site 6 | title: XiReiki 7 | subtitle: '' 8 | description: '' 9 | keywords: 10 | - xireiki 11 | - XiReiki 12 | author: xireiki 13 | language: zh-CN 14 | timezone: '' 15 | 16 | # URL 17 | ## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project' 18 | url: https://xrhexo.netlify.app 19 | permalink: posts/:abbrlink/ 20 | permalink_defaults: 21 | pretty_urls: 22 | trailing_index: true # Set to false to remove trailing 'index.html' from permalinks 23 | trailing_html: true # Set to false to remove trailing '.html' from permalinks 24 | 25 | # Directory 26 | source_dir: source 27 | public_dir: public 28 | tag_dir: tags 29 | archive_dir: archives 30 | category_dir: categories 31 | code_dir: downloads/code 32 | i18n_dir: :lang 33 | skip_render: 34 | 35 | # Writing 36 | new_post_name: :title.md # File name of new posts 37 | default_layout: post 38 | titlecase: false # Transform title into titlecase 39 | external_link: 40 | enable: true # Open external links in new tab 41 | field: site # Apply to the whole site 42 | exclude: '' 43 | filename_case: 0 44 | render_drafts: false 45 | post_asset_folder: true 46 | relative_link: false 47 | future: true 48 | highlight: 49 | enable: true 50 | line_number: true 51 | auto_detect: false 52 | tab_replace: '' 53 | wrap: true 54 | hljs: false 55 | prismjs: 56 | enable: false 57 | preprocess: true 58 | line_number: true 59 | tab_replace: '' 60 | 61 | # Home page setting 62 | # path: Root path for your blogs index page. (default = '') 63 | # per_page: Posts displayed per page. (0 = disable pagination) 64 | # order_by: Posts order. (Order by date descending by default) 65 | index_generator: 66 | path: '' 67 | per_page: 10 68 | order_by: -date 69 | 70 | # Category & Tag 71 | default_category: uncategorized 72 | category_map: 73 | tag_map: 74 | 75 | # Metadata elements 76 | ## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta 77 | meta_generator: true 78 | 79 | # Date / Time format 80 | ## Hexo uses Moment.js to parse and display date 81 | ## You can customize the date format as defined in 82 | ## http://momentjs.com/docs/#/displaying/format/ 83 | date_format: YYYY-MM-DD 84 | time_format: HH:mm:ss 85 | ## updated_option supports 'mtime', 'date', 'empty' 86 | updated_option: 'mtime' 87 | 88 | # Pagination 89 | ## Set per_page to 0 to disable pagination 90 | per_page: 10 91 | pagination_dir: page 92 | 93 | # Include / Exclude file(s) 94 | ## include:/exclude: options only apply to the 'source/' folder 95 | include: 96 | exclude: 97 | ignore: 98 | 99 | # Extensions 100 | ## Plugins: https://hexo.io/plugins/ 101 | ## Themes: https://hexo.io/themes/ 102 | theme: butterfly 103 | 104 | # Deployment 105 | ## Docs: https://hexo.io/docs/one-command-deployment 106 | deploy: 107 | type: 'git' 108 | repo: git@github.com:xireiki/hexo.git 109 | 110 | abbrlink: 111 | alg: crc32 #支持crc16和crc32算法(默认crc16) 112 | rep: dec #支持dec和hex值(默认dec) 113 | drafts: false #(true)Process draft,(false)Do not process draft. false(default) 114 | # Generate categories from directory-tree 115 | # depth: the max_depth of directory-tree you want to generate, should > 0 116 | auto_category: 117 | enable: true #true(default) 118 | depth: #3(default) 119 | over_write: false 120 | auto_title: false #enable auto title, it can auto fill the title by path 121 | auto_date: false #enable auto date, it can auto fill the date by time today 122 | force: false #enable force mode,in this mode, the plugin will ignore the cache, and calc the abbrlink for every post even it already had abbrlink 123 | 124 | kramed: 125 | gfm: true 126 | pedantic: false 127 | sanitize: false 128 | tables: true 129 | breaks: true 130 | smartLists: true 131 | smartypants: true 132 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-site", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "build": "hexo generate", 7 | "clean": "hexo clean", 8 | "deploy": "hexo deploy", 9 | "server": "hexo server" 10 | }, 11 | "hexo": { 12 | "version": "7.1.1" 13 | }, 14 | "dependencies": { 15 | "disqusjs": "^3.0.3-canary.1", 16 | "hexo": "^7.1.1", 17 | "hexo-abbrlink": "^2.2.1", 18 | "hexo-deployer-git": "^4.0.0", 19 | "hexo-filter-nofollow": "^2.0.2", 20 | "hexo-generator-archive": "^2.0.0", 21 | "hexo-generator-category": "^2.0.0", 22 | "hexo-generator-feed": "^3.0.0", 23 | "hexo-generator-index": "^3.0.0", 24 | "hexo-generator-search": "^2.4.3", 25 | "hexo-generator-tag": "^2.0.0", 26 | "hexo-renderer-ejs": "^2.0.0", 27 | "hexo-renderer-kramed": "^0.1.4", 28 | "hexo-renderer-pug": "^3.0.0", 29 | "hexo-renderer-stylus": "^3.0.1", 30 | "hexo-server": "^3.0.0", 31 | "hexo-theme-butterfly": "^4.12.0", 32 | "hexo-theme-landscape": "^1.0.0", 33 | "hexo-wordcount": "^6.0.1", 34 | "highlight": "^0.2.4", 35 | "highlight.js": "^11.9.0", 36 | "striptags": "^3.2.0" 37 | } 38 | } -------------------------------------------------------------------------------- /scaffolds/draft.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | tags: 4 | --- 5 | -------------------------------------------------------------------------------- /scaffolds/page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | date: {{ date }} 4 | --- 5 | -------------------------------------------------------------------------------- /scaffolds/post.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | date: {{ date }} 4 | tags: 5 | --- 6 | -------------------------------------------------------------------------------- /source/_data/link.yml: -------------------------------------------------------------------------------- 1 | - class_name: 友情链接 2 | class_desc: 那些人,那些事 3 | link_list: 4 | - name: Hexo 5 | link: https://hexo.io/zh-tw/ 6 | avatar: https://d33wubrfki0l68.cloudfront.net/6657ba50e702d84afb32fe846bed54fba1a77add/827ae/logo.svg 7 | descr: 快速、简单且强大的网志框架 8 | 9 | - class_name: TG群/频道 10 | class_desc: TG群聊和频道 11 | link_list: 12 | - name: 原始人,启洞! 13 | link: https://t.me/+1-1lPvQxklVlZjA1 14 | avatar: https://s2.loli.net/2023/12/17/jwdFal6Xi4TqQWk.jpg 15 | descr: 神秘模块官方群聊 16 | 17 | - name: 世界崩坏 18 | link: https://t.me/+5rFVmA0XUMY4NTk1 19 | avatar: https://s2.loli.net/2024/01/26/bhLynkUKZqaueHp.jpg 20 | descr: 我的频道绑定讨论群 21 | -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 神秘模块详细教程 3 | tags: 4 | - 神秘 5 | - Magisk模块 6 | - VPN 7 | - 机场 8 | - 教程 9 | categories: 10 | - Android 11 | - VPN 12 | abbrlink: 1542838017 13 | date: 2023-05-05 09:28:07 14 | updated: 2024-10-17 00:00:00 15 | --- 16 | 教程已使用 MkDocs 重建,请[点我前往](https://tutor.xireiki.com)查看新教程 17 | 18 | # 阅读须知 19 | - 本教程所有代码块中以 $ 或 # 开头的是命令,没有的是命令执行结果或者代码 20 | - 以 # 开头的命令是以 root 身份执行的,需要在执行 su 切换 root 身份后执行 21 | - 本教程欢迎你来修改,修改可以前往[GitHub](https://github.com/xireiki/tutorial-mystery)提交 issues 或者 Pull requests 22 | - 不要在国内**分享/提及神秘模块/本教程**,本教程可使用谷歌搜索“神秘教程”找到 23 | - 群内发言询问前**先查看本教程**是否写明,已写明发言会**被禁言** 24 | - 如果你从国内平台跳转到的本教程,请**举报**他!不要在国内提及本教程! 25 | 26 | # 介绍 27 | ## sing-box 介绍 28 | - 正如 [GitHub](https://github.com/SagerNet/sing-box) 下简明的介绍一致,[sing-box](https://github.com/SagerNet/sing-box) 是一款开源的通用代理软件,多平台兼容性好,性能优异。 29 | - 由于 [sing-box](https://github.com/SagerNet/sing-box) 内核本身并无 provider,单独使用时对于机场用户十分不友好,与此同时衍生出了 provider 分支,以及启动模块的外置 provider,也就是下文将要介绍到的神秘模块,除此之外还有 [𝐄𝟓 𝟖𝟔 𝟗𝟓](https://t.me/e58695) 制作的 [box4magisk](https://github.com/CHIZI-0618/box4magisk),该启动模块可以使用 [sing-box](https://github.com/SagerNet/sing-box) 的 [provider](https://github.com/PuerNya/sing-box/tree/building) 分支。 30 | - 本教程以 [Puer 是只喵 喵~](https://github.com/PuerNya) 制作的 Android [sing-box](https://github.com/SagerNet/sing-box) 启动模块神秘模块为基础,介绍 [sing-box](https://github.com/SagerNet/sing-box) 的基础功能及使用方法。 31 | - [sing-box 官方文档](https://sing-box.sagernet.org/zh/) 32 | 33 | ## 神秘介绍 34 | - 神秘模块(下文所称的神秘)是 [Puer 是只喵 喵~](https://github.com/PuerNya) 制作的 sing-box Magisk 模块,用于外置 provider(提供者,机场订阅) 并启动 sing-box 内核 35 | - 神秘发布渠道为 Telegram 话题组 [原始人,启洞!](https://t.me/+1-1lPvQxklVlZjA1) 下的“啊?”话题(特殊时期,已修改为私人群聊) 36 | - 请仔细观看教程,不要在群里提问傻逼问题,右下角有文章索引目录 37 | 38 | # 安装 39 | **绝对不要自作聪明地从 Play Store 安装 Termux!因为官方已放弃它的支持!** 40 | 41 | **绝对不要自作聪明地从 Play Store 安装 Termux!因为官方已放弃它的支持!** 42 | 43 | **绝对不要自作聪明地从 Play Store 安装 Termux!因为官方已放弃它的支持!** 44 | 45 | ## 安装 [Termux](https://github.com/termux/termux-app/releases) 46 | Termux 有两个发布渠道,[Github](https://github.com/termux/termux-app/releases) 和 [F-Droid](https://f-droid.org/packages/com.termux/),小白建议下载 [F-Droid](https://f-droid.org/packages/com.termux/) 的版本(点击文字前往对应下载渠道) 47 | 48 | ## 安装 nodejs 和 aapt(电脑版请查看 README.md) 49 | 打开 Termux,依次执行以下命令,我会一条条讲解。 50 | 51 | 事先声明:**由于官方源较慢,请酌情考虑挂梯子执行!**~~也可以自己百度换源(不建议)。~~ 52 | 53 | 这条命令用于更新目前 Termux 中的所有软件包,在安装过程中如果卡住不动了,请使用输入法,输入一个小写 `y` 并回车: 54 | ```bash 55 | pkg up -y 56 | ``` 57 | 58 | 最后一步,安装 nodejs 和 aapt 59 | ```bash 60 | pkg in nodejs aapt -y 61 | ``` 62 | 63 | 检查 nodejs 是否安装,如图所示即为安装成功 64 | ```bash 65 | node -v 66 | ``` 67 | 68 | ![](20230505102753101.jpg) 69 | 70 | 这张图来自: [神秘模块入门教程(安卓端)](https://telegra.ph/%E7%A5%9E%E7%A7%98%E6%A8%A1%E5%9D%97%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8BAndroid%E7%AB%AF-04-06) 71 | 72 | 检查 aapt 是否安装成功,如图输出一大堆文字即为成功。 73 | ```bash 74 | aapt 75 | ``` 76 | 77 | ![安装成功](20230906153119436.jpg) 78 | 79 | 如果在安装模块时提示 **aapt 环境损坏** 请执行 `pkg uninstall aapt` 卸载 **aapt** 后执行 `pkg up && pkg in aapt` 以重新安装 **aapt**。 80 | 81 | 如果在安装模块时提示 **node 环境损坏** 请执行 `pkg uninstall nodejs` 卸载 **nodejs** 后执行 `pkg up && pkg in nodejs` 以重新安装 **nodejs**。 82 | 83 | ## 安装神秘 84 | 前往[原始人,启洞!](https://t.me/+1-1lPvQxklVlZjA1)的“啊?”话题下载最新版模块(**注意看群文件**)。安卓版文件名带有 `android`,选择保存到下载 85 | 86 | ![](20230505095351934.jpg) 87 | 88 | ![保存到下载](20230505095357021.jpg) 89 | 90 | 打开 Magisk,在模块页面上方选择`从本地安装`,等待刷入完成后重启 91 | 92 | ![从本地安卓](20230505095457702.jpg) 93 | 94 | ![](20230505103524540.jpg) 95 | 96 | ![](20230505103534856.jpg) 97 | 98 | ![](20230505103540818.jpg) 99 | 100 | ![](20230505103544263.jpg) 101 | 102 | # 配置 103 | ~~打开浏览器,地址栏输入并访问 [http://127.0.0.1:23333](http://127.0.0.1:23333) 或者 [http://localhost:23333](http://localhost:23333),注意 yard 面板已不内置,若要使用请手动放到 `/data/adb/sfm/Dashboard/` 文件夹下~~ 104 | 105 | 目前神秘模块安装时默认会安装“神秘”app,请打开app操作,更新神秘模块时会自动清除数据,保证你用到最新的面板。 106 | 107 | 如果你非要使用网页也可,安装模块时使用音量+跳过安装神秘app(是否安装不影响网页使用),更新面板时请**手动清除浏览器缓存或者在网站设置中清除“localhost”的数据再打开面板!** 108 | 109 | **小白不推荐面板,资深用户请随意。** 110 | 111 | ![默认密码 node](20231007234233.jpg) 112 | 113 | 默认密码: `node`,如无必要,请不要修改。如果输入法输入 **node** 进不去,请复制粘贴,这是你输入法的问题。 114 | 115 | ## 主页 116 | ![](20231007232729208.jpg) 117 | 118 | 选项详解: 119 | 120 | | 选项 | 解释 | 121 | | :---- | :---- | 122 | | 启动核心 | 启动 sing-box 核心(开启代理) | 123 | | 关闭核心 | 关闭 sing-box 核心(关闭代理) | 124 | | 重启核心 | 重启 sing-box 核心(重启代理) | 125 | | 操作核心 | 包含**出站设置**、**出站提供者**、**连接情况** | 126 | | 设置 | 设置选项,用于修改出站、DNS、出站提供者等设置 | 127 | 128 | ## 设置 129 | ![](20231007232747398.jpg) 130 | 131 | 选项解释: 132 | 133 | | 名称 | 解释 | 134 | | :---- | :---- | 135 | | 出站提供者 | (机场)网络订阅和本地(节点)文件 | 136 | | 出站 | 流量出口,指你访问公网的途径 | 137 | | 规则提供者 | 大饼!是香喷喷的大饼! | 138 | | 路由 | 大饼!是香喷喷的大饼! | 139 | | DNS | DNS 相关设置 | 140 | | 模块设置 | 模块设置 | 141 | | 入站 | 大饼!是香喷喷的大饼!(与出站相对) | 142 | | 实验性功能 | 大饼!是香喷喷的大饼! | 143 | | 核心日志 | 日志设置,用不到,不用管,不用动 | 144 | | 内置 NTP | NTP 相关设置,用于校准时间,用不到,不用管,不要动 | 145 | 146 | ## 出站提供者 147 | ![](20231007232750279.jpg) 148 | 149 | ### 具体操作 150 | #### 网络订阅 151 | 对于普通用户(不免流),只要设置提供者名称、选择类型为**网络订阅**、订阅链接即可。 152 | 153 | 免流其它参数自行修改。 154 | 155 | #### 本地文件 156 | 填入提供者名称、选择**本地文件**类型,之后提交。 157 | 158 | 提交完成后会进入文件编辑,此时填入节点信息,保存并再次提交即可。具体如何写请参考[本地节点文件写法](#本地节点文件写法)。 159 | 160 | 免流用户同上。 161 | 162 | ### 选项解释 163 | 164 | | 名称 | 解释 | 165 | | :---- | :---- | 166 | | 网络订阅 | 机场网络订阅,从机场服务器获取节点信息 | 167 | | 本地文件 | 本地节点文件,一般用于自建节点,免流。文件存放位置位于 `/data/adb/sfm/src/FileProviders/`,现在已经可以通过面板修改,无需打开目录 | 168 | | 修改文件 | 修改本地节点文件,语法详见[本地节点文件写法](#本地节点文件写法) | 169 | | 订阅链接 | 订阅链接,推荐 Clash 的订阅 | 170 | | 可否被引用 | 是否启用该出站提供者,启用表示使用这个订阅。喵佬原话:“(不启用)是根本不会被加入配置文件” | 171 | | 订阅拉取间隔 | 多久更新一次机场订阅,默认 3600,也就是一个小时 | 172 | | 拉取订阅时查询订阅信息 | 查询机场流量及使用情况 | 173 | | 修改提供者内出站设置 | 下面的都是修改请求的,用于免流,不介绍 | 174 | 175 | ### 本地节点文件写法 176 | - 使用节点链接 177 | 如: 178 | ``` 179 | vmess://ew0KICAidiI6ICIyIiwNCiAgInBzIjogIkBTU1JTVUItVjE1LeS7mOi0ueaOqOiNkDpzdW8ueXQvc3Nyc3ViIiwNCiAgImFkZCI6ICJqcDQuYWY0OWM0ZTRjMmVmLnNhbmZlbjAwNC5tZSIsDQogICJwb3J0IjogIjQ0MyIsDQogICJpZCI6ICJjNDg2OGI4YS0xZjVjLTQ1MzYtYjE5MS1kNTQyOWMyZTE0YjciLA0KICAiYWlkIjogIjAiLA0KICAic2N5IjogImF1dG8iLA0KICAibmV0IjogInRjcCIsDQogICJ0eXBlIjogIm5vbmUiLA0KICAiaG9zdCI6ICJqcDQuYWY0OWM0ZTRjMmVmLnNhbmZlbjAwNC5tZSIsDQogICJwYXRoIjogIiIsDQogICJ0bHMiOiAidGxzIiwNCiAgInNuaSI6ICIiLA0KICAiYWxwbiI6ICIiDQp9 180 | hy2://962144c6@proxy.114514.com:9265/?insecure=1&sni=www.baidu.com#🇰🇷日本-Hysteria2 181 | ``` 182 | 具体请自行百度/谷歌对应协议的链接格式 183 | 184 | - 使用 clash/mihomo 配置 185 | 如: 186 | ```yaml 187 | proxies: 188 | # - {name: 节点名称, type: 协议类型, server: IP地址, port: 端口, udp: 是否是udp底层协议, tls: false, skip-cert-verify: 是否跳过证书验证, headers: {请求头}} 189 | # 一行写法 190 | - {name: 免费节点, type: http, server: 112.47.20.215, port: 443, udp: false, tls: false, skip-cert-verify: false, headers: {}} 191 | # 多行写法 192 | - name: 免费节点1 193 | type: ss 194 | server: 114.5.1.4 195 | port: 9265 196 | tls: true 197 | sni: baidu.com 198 | password: lYEiyacJG4m3UozsejfhRiwIjXfdnO4R+oflSfbl1G8= 199 | ``` 200 | 具体请查看 [mihomo wiki](https://wiki.metacubex.one) 201 | 202 | - 使用 sing-box 配置格式 203 | 如: 204 | ```json 205 | { 206 | "outbounds": [ 207 | // 一行写法 208 | { "tag": "香港", "type": "hysteria2", "server": "proxy.example.com", "server_port": 23333, "password": "937a450d-b5e7-4a34-b671-ac9899abb7a47", "tls": { "enabled": true }, "tcp_fast_open": false }, 209 | // 多行写法 210 | { 211 | "tag": "香港", 212 | "type": "hysteria2", 213 | "server": "proxy.xireiki.com", 214 | "server_port": 23333, 215 | "password": "937a450d-b5e7-4a34-b671-ac9899abb7a47", 216 | "tls": { 217 | "enabled": true 218 | }, 219 | "tcp_fast_open": false 220 | } 221 | ] 222 | } 223 | ``` 224 | 具体请查看 [sing-box wiki](https://sing-box.sagernet.org) 225 | 226 | ## 出站 227 | **这两个出站的名字可以改,但不能删除!!!** 228 | 229 | 修改它们的名字,规则会自动尾随,但是删除会直接变成 **direct**,导致不论如何配置都不能连上外网、进行免流。 230 | 231 | 现在他们的名称已被修改,**proxy** 改为了 **国外出口**,**domestic** 改为了 **国内出口**,另 **GLOBAL** 改为了**全局代理** 232 | 233 | ![](20231008000436.jpg) 234 | 235 | 如果你删了,没网、报错不要在群里提问!!! 236 | 237 | ![](20231007232910.jpg) 238 | 239 | ### 具体操作 240 | 第一步,打开 **国外出口** 的设置,给 **国外出口** 出站选择其他**出站**或者**出站提供者** 241 | 242 | 假设你又一个出站叫**国外自动**,选择了它之后,你的流量就会通过它。 243 | 244 | 比如你又一个出站提供者叫**XX机场**,选择它之后,**国外出口** 出站会包含所有该提供者的出站(节点,如 trojan 协议的),你选择哪个,国外流量就走哪个 245 | 246 | 这一步必须选择至少一个**出站**或者**出站提供者**!!! 247 | 248 | 第二步,如果你免流,请给 **国内出口** 执行同样的操作,不过它是国内的流量 249 | 250 | ### 选项解释 251 | | 名称 | 解释 | 252 | | :---- | :---- | 253 | | 自动选择 | 自动测速(urltest),自动选择最优(延迟最低)节点 | 254 | | 手动选择 | 你自己选择节点(select) | 255 | | 启用出站 | 是否使用这个出站 | 256 | | 出站嵌套 | 包含其他出站作为出站提供者。你的默认只有 direct(直连,不通过代理)、block(断开,“黑洞路由”)、proxy(代理)、domestic(国内) | 257 | | 出站测试地址 | 测速链接 | 258 | | 出站测试间隔 | 两次测速之间间隔的时间 | 259 | | 出站测试容差 | 每个节点测速间隔 | 260 | | 引用出站提供者 | 嵌套哪些出站提供者。全部表示嵌套所有星盘,部分在下方选择出站提供者 | 261 | | 筛选出站名称(包含) | 只要正则表达式匹配到的节点 | 262 | | 筛选出站名称(排除) | 不要正则表达式匹配到的节点 | 263 | | 筛选出站类型 | 如果不选择那么就是选择所有类型(传输协议);如果选择一个及以上,那么除了你选择的协议类型对应的节点外,其余节点丢弃,不包含在本出站内 | 264 | | 筛选出站端口 | 只要范围内端口的节点,比如 80:8080,表示只要 80 端口到 8080 端口的节点,:8080 表示比 8080 小的端口(包含) | 265 | 266 | ## 模块设置 267 | ![](20231007232932387.jpg) 268 | 269 | 选项解释: 270 | 271 | | 名称 | 解释 | 272 | | :---- | :---- | 273 | | 核心跟随模块启动 | 开机就自动连上代理 | 274 | | 设置 api 响应范围 | 仅本机表示只有本机能访问面板;任意来源表示所有连接上这台设备的热点的设备都能访问面板并操控它。面板地址是热点机的局域网 IP 加端口号,比如 [http://192.168.43.1:23333](http://192.168.43.1:23333) | 275 | | 设置 api 验证密钥 | 进入面板的密码 | 276 | | 定时更新网络订阅 | 字面意思,自动更新机场订阅。关闭之后不会再更新订阅,需要你手动点击**更新**或者**全部施法** | 277 | | 定时更新 Geo 数据库 | 字面意思,自动更新 Geo 数据库,用来更准确的判断流量是需要走国内还是走国外 | 278 | | 核心启动时立即守护 | 启动核心就开始守护核心,而不是核心正确启动后 | 279 | | 切换代理模式 | 神秘的流量处理模式,有规则模式,通过预设的规则自动判断流量走向;全局代理,所有流量都走国外;全局直连,所有流量都走国内 | 280 | | 开启 ipv6 | 字面意思 | 281 | | 面板显示速率 | 在主页显示当前的上传和下载的速度 | 282 | | ~~使用 yard(不推荐)~~ | 使用 yard 面板,打开后~~查星盘~~操作核心不再是神秘,而是 yard,不打开这个选项,也可以通过链接访问 yard:[http://localhost:9909/ui/?hostname=127.0.0.1&port=9909&secret=singBox](http://localhost:9909/ui/?hostname=127.0.0.1&port=9909&secret=singBox) | 283 | | 生成脱敏核心配置 | 生成用于分享求助的 baseConfig.yaml 文件 shareBaseConfig.yaml | 284 | 285 | ## DNS 286 | ![DNS](20231007232941235.jpg) 287 | 288 | 选项解释: 289 | 290 | | 名称 | 解释 | 291 | | :---- | :---- | 292 | | DNS 服务器 | DNS 服务器配置列表 | 293 | | DNS 规则 | 香喷喷的大饼 | 294 | | fakeip | 香喷喷的大饼 | 295 | | DNS 配置 | 香喷喷的大饼 | 296 | 297 | ![DNS服务器](23231007232958.jpg) 298 | 299 | ![新增DNS服务器](20231007233008821.jpg) 300 | 301 | **DNS 服务器**选项解释: 302 | 303 | | 名称 | 解释 | 304 | | :---- | :---- | 305 | | 新增 DNS 服务器 | 添加 DNS 服务器配置 | 306 | | 启用 DNS 服务器 | 勾选启用当前 DNS 服务器配置 | 307 | | DNS 服务器名称 | DNS 配置名 | 308 | | DNS 服务器地址 | DNS 服务器地址,比如 **8.8.8.8**、**https://1.12.12.12/dns-query** 、**local** 等 | 309 | | DNS 服务器出站 | 指定出站使用当前 DNS 配置 | 310 | | 结果偏好 | 共五个选项,**使用全局配置**、**优先4代**、**优先6代**、**仅4代**、**仅6代**,分别对应**全局配置**、**prefer_ipv4**(IPv4 优先)、**prefer_ipv6**(IPv6 优先)、**only_ipv4**(仅 IPv4)、**only_ipv4**(仅 IPv6)。 | 311 | | DNS 服务器地址解析器 | DNS 地址(域名地址)解析的 DNS 配置,或者说,套娃解析? | 312 | | DNS 服务器解析偏好 | 解析当前 DNS 配置地址时使用。共五个选项,**使用全局配置**、**优先 ipv4**、**优先 ipv6**、**仅 ipv4**、**仅 ipv6**,分别对应**全局配置**、**prefer_ipv4**(IPv4 优先)、**prefer_ipv6**(IPv6 优先)、**only_ipv4**(仅 IPv4)、**only_ipv4**(仅 IPv6)。 | 313 | | 备注 | 当前配置备注 | 314 | 315 | ## 修改配置文件 316 | 配置文件在 **/data/adb/sfm/src/**(安卓)或者你电脑上放模块的目录的**src**文件夹中。名称为 **baseConfig.yaml** 317 | 318 | 修改配置后点击**重启核心**,或者先**关闭核心**再修改或者修改完后前往**设置** -> **模块设置**,点击**重载核心配置**;修改完后点击**关闭核心**会发生原配置覆盖更改后的配置**导致更改无效** 319 | 320 | 详细修改可看[官方文档](https://sing-box.sagernet.org/zh/),或者等我更新。 321 | 322 | 官方文档配置使用的格式是 JSON,是一种常见的数据格式,而神秘模块的配置使用 YAML 作为配置语言。 323 | 324 | YAML 是 JSON 的超集,除了单行语法外,很不一样。 325 | 326 | 与 JSON 相比,YAML 对于字符串可以不需要使用双引号包含起来,比如 `"text": "你好,这是一段文本"` 在 YAML 中应该是这样的:`text: 你好,这是一段文本`(所有的冒号都是英文冒号)。 327 | 328 | 因为是可以不需要,所以 `text: "你好,这是一段文本"` 也是合法的。 329 | 330 | 又如,在 JSON 中你可以这么写 331 | ```json 332 | { 333 | "name": "喵喵", 334 | "age": 25, 335 | "sex": "男", 336 | "married": true, 337 | "phone": [ 338 | "1xxxxxxxxxx", 339 | "1xxxxxxxxxx" 340 | ] 341 | } 342 | ``` 343 | 344 | 但在 YAML 中,你应该这么写(写法之一,其他不推荐,易混淆) 345 | ```yaml 346 | name: 喵喵 347 | age: 25 348 | sex: 男 349 | married: true 350 | phone: 351 | - 1xxxxxxxxxx 352 | - 1xxxxxxxxxx 353 | ``` 354 | 355 | 这是关于 [JSON 的教程](https://www.runoob.com/json/json-tutorial.html),希望能对你有所帮助。这是 [YAML 入门教程](https://www.runoob.com/w3cnote/yaml-intro.html)。 356 | 357 | # 常见问题 358 | ## 本机有网,热点没网? 359 | 360 |
361 | 本机有网,热点没网? 362 |

请检查是否开启热点模式,如果开了还没网,请尝试关闭或者开启兼容模式,最新版神秘一般不需要开启兼容模式。

363 |

如果热点不能访问面板,请开启兼容模式。

364 |

喵佬原话:“某些人热点没网就再开起来吧(我也不知道为啥)”

365 |
366 | 367 | ## 神秘 TProxy 模式怎么开? 368 | 找到 tun 入站(建议搜索 `tag: tun`)(在 **baseConfig.yaml** 配置文件中),如下: 369 | 370 | ```yaml 371 | - enabled: true 372 | tag: tun 373 | type: tun 374 | interface_name: tun1 375 | inet4_address: 172.19.0.0/16 376 | inet6_address: 2001:10::/28 377 | strict_route: true 378 | auto_route: true 379 | stack: mixed 380 | sniff: true 381 | sniff_override_destination: false 382 | sniff_override_rules: 383 | - type: logical 384 | mode: and 385 | rules: 386 | - domain_keyword: . 387 | - rule_set: 388 | - 跳过覆写 389 | - 推送服务-IP 390 | - 推送服务-域名 391 | invert: true 392 | ``` 393 | 394 | 把 **enabled** 后的 **true** 改为 **false**,如下: 395 | 396 | ```yaml 397 | - enabled: false 398 | tag: tun 399 | type: tun 400 | interface_name: tun1 401 | inet4_address: 172.19.0.0/16 402 | inet6_address: 2001:10::/28 403 | strict_route: true 404 | auto_route: true 405 | stack: mixed 406 | sniff: true 407 | sniff_override_destination: false 408 | sniff_override_rules: 409 | - type: logical 410 | mode: and 411 | rules: 412 | - domain_keyword: . 413 | - rule_set: 414 | - 跳过覆写 415 | - 推送服务-IP 416 | - 推送服务-域名 417 | invert: true 418 | ``` 419 | 420 | 接着找到 tun 入站下的 tproxy 入站,如下: 421 | 422 | ```yaml 423 | inbounds: 424 | - enabled: false 425 | tag: tproxy 426 | type: tproxy 427 | listen: '::' 428 | listen_port: 10086 429 | sniff: true 430 | sniff_override_destination: false 431 | sniff_override_rules: 432 | - type: logical 433 | mode: and 434 | rules: 435 | - domain_keyword: . 436 | - rule_set: 437 | - 跳过覆写 438 | - 推送服务-IP 439 | - 推送服务-域名 440 | invert: true 441 | ``` 442 | 443 | 把 **enabled** 后的 **false** 改为 **true**,如下所示: 444 | 445 | ```yaml 446 | inbounds: 447 | - enabled: true 448 | tag: tproxy 449 | type: tproxy 450 | listen: '::' 451 | listen_port: 10086 452 | sniff: true 453 | sniff_override_destination: false 454 | sniff_override_rules: 455 | - type: logical 456 | mode: and 457 | rules: 458 | - domain_keyword: . 459 | - rule_set: 460 | - 跳过覆写 461 | - 推送服务-IP 462 | - 推送服务-域名 463 | invert: true 464 | ``` 465 | 466 | 修改完后保存,打开神秘面板=>设置=>神秘,点击**重载核心配置**,接着返回主页点击**重启核心**。 467 | 468 | 不出所料,已经成功了。 469 | 470 | 如果想改回去,修改 enabled 后的值,**false** 改 **true**,**true** 改 **false**,再重载+重启核心即可。 471 | 472 | ## WiFi 放行怎么做? 473 | ### MacroDroid 474 | 下载 [MacroDroid](https://t.me/xireikisub/66) 和 [MacroDroid 备份](https://t.me/xireikisub/68) 475 | 476 | 安装 [MacroDroid](https://t.me/xireikisub/66) 后,导入 [备份文件](https://t.me/xireikisub/68) 到 [MacroDroid](https://t.me/xireikisub/66) 477 | 478 | ## 怎么放行应用? 479 | 修改 **packages_list** (在 **baseConfig.yaml** 配置文件中)里的 black 或 white,它们分别是黑名单(放行列表内的应用)和白名单(只代理列表内的应用)。默认是**黑名单**。 480 | 481 | 如果你闲麻烦,可以使用我的[半成品面板](https://tpanel.netlify.app),点击动图进入设置-名单里给对应的应用启用即可。 482 | 483 | **packages_list** 原始内容 484 | 485 | ```yaml 486 | packages_list: 487 | mode: black 488 | black: [] 489 | white: [] 490 | notice: |- 491 | mode 有两个值,black or white 492 | 两个数组分别对应黑名单和白名单,目前名单里只允许填写包名 493 | 上个版本的 list 会根据 mode 自动转换成 black 和 white 两个数组里的值 494 | ``` 495 | 496 | ### 黑名单 497 | **mode** 默认为黑名单,无须修改,如果要修改,参考白名单。 498 | 499 | 在 black 中添加包名,一行一个。 500 | 501 | 例如微信是 **com.tencent.mm**,原神是 **com.miHoYo.Yuanshen**(发现了吗?大小写敏感),这是手机应用的唯一名称。在小米手机中,长按桌面应用图标 => 应用详情 => 右上角ⓘ,就可以看见包名,点击复制即可。 502 | 503 | 如下所示。 504 | 505 | 506 | ```yaml 507 | black: 508 | - com.tencent.mm 509 | - com.miHoYo.Yuanshen 510 | ``` 511 | 512 | ### 白名单 513 | 修改 **mode** 为 white。像下面这样 514 | 515 | ```yaml 516 | packages_list: 517 | mode: white 518 | black: [] 519 | white: [] 520 | ``` 521 | 522 | 在 white 中添加包名,一行一个,如下所示。 523 | 524 | ```yaml 525 | white: 526 | - com.tencent.mm 527 | - com.miHoYo.Yuanshen 528 | ``` 529 | 530 | ## 怎么开启/关闭 fakeip? 531 | 打开神秘面板,在启动时进入**操控核心** -> **左下角齿轮**,在**切换路由模式**处修改模式即可。 532 | 533 | ## Geo 数据库报错? 534 | 如果你在 **开唱**/**重启核心**之后报错了,报错中有 **geo** 字眼,很有可能是 geo 数据库下载错误,请尝试更新 geo 数据库。具体方案:设置 - 模块配置 - 自动更新 Geo 数据库,关了再开即可 535 | 536 | 如问题未得到解决,请检查 geo 数据库格式和链接 537 | 538 | ## 遇到 parse outbound[n]: missing tags and uses 怎么办? 539 | 540 | **Puer 是只喵 喵**:“你该死,一个 手动选择/自动选择 又不嵌套其他出站又不引用出站提供者,你拿头用” 541 | 542 | 请在没有嵌套任何出站、出站提供者的出站内嵌套出站、出站提供者,它不能为空! 543 | 544 | ## 关于报错中出现 1.8.0 545 | 报错: 546 | ``` 547 | cache_file and related fields in Clash API is deprecated in sing-box 1.8.0, use experimental.cache_file instead. 548 | ``` 549 | 如果你的报错是这个,请遵循[迁移指南](https://sing-box.sagernet.org/zh/migration)修改配置或者重新安装神秘。 550 | 551 | ## 关于 NoTermux 版本的神秘 552 | 此版本不需要 Termux,请忽略环境配置步骤,从原版神秘覆盖安装时需要重启,其他与原版相同。 553 | 554 | 下载请前往[我的频道](https://t.me/xiayinlily),不保证更新。 555 | 556 | **这是修改版,不是原版** 557 | 558 | **这是修改版,不是原版** 559 | 560 | **这是修改版,不是原版** 561 | 562 | ## decode config at box.json: route.rule_set[0]: missing path 563 | 神秘的 rule_set 强制本地化,请给 rult_set 设置 path 路径,例如: 564 | 565 | ```yaml 566 | route: 567 | rule_set: 568 | - tag: 广告拦截 569 | path: ./RuleProviders/广告拦截.srs # 添加这个 570 | url: >- 571 | https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_rule_set/geosite-category-ads-all.srs 572 | type: remote 573 | format: binary 574 | download_detour: 国外出口 575 | update_interval: 24h 576 | ``` 577 | 578 | 上面中的 path 后面的就是你要设置的内容,神秘的 rule_set 文件放在 `/data/adb/sfm/RuleProviders` 文件夹下,请遵循模块路径。上方开头的 **./** 表示 **/data/adb/sfm** 目录。 579 | 580 | 具体可以查看 **`/data/adb/sfm/RuleProviders`** 目录查看有哪些规则。 581 | 582 | ## 强制重启手机后,神秘无法启动?启动失败 node.log 里有 Valid JSON 关键字? 583 | 原因可能是强制重启手机后导致 **appLables.json** 文件损坏,前往 **/data/adb/sfm/src** 删除这个文件后重新刷模块即可解决。 584 | 585 | ## 2024年之后的版本节点全灰如何解决? 586 | 请更新 202401060515 及之后的版本 587 | -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505095351934.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505095351934.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505095357021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505095357021.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505095457702.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505095457702.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505101521031.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505101521031.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505101523609.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505101523609.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505102333065.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505102333065.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505102335390.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505102335390.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505102753101.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505102753101.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505103524540.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505103524540.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505103534856.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505103534856.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505103540818.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505103540818.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505103544263.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505103544263.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230505150013592.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230505150013592.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20230906153119436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20230906153119436.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232729208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232729208.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232747398.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232747398.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232750279.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232750279.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232807776.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232807776.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232910.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232910.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232932387.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232932387.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007232941235.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007232941235.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007233008821.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007233008821.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231007234233.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231007234233.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231008000436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231008000436.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231008005316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231008005316.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/20231008005635.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/20231008005635.jpg -------------------------------------------------------------------------------- /source/_posts/神秘模块详细教程/23231007232958.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/_posts/神秘模块详细教程/23231007232958.jpg -------------------------------------------------------------------------------- /source/about/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 关于 3 | date: 2023-03-10 19:07:34 4 | type: "about" 5 | --- 6 | ## 联系我? 7 | | 平台 | 我的主页 | 8 | | :---- | :---- | 9 | | GitHub | [查看链接](//github.com/xireiki) | 10 | | Gitee | [查看链接](//gitee.com/xireiki) | 11 | | 推特 (Twitter) | [查看链接](//twitter.com/xireiki) | 12 | 13 | ## 本站链接 14 | - 15 | -------------------------------------------------------------------------------- /source/categories/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 分类 3 | date: 2023-03-10 23:13:25 4 | type: "categories" 5 | --- 6 | -------------------------------------------------------------------------------- /source/link/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 友链 3 | date: 2023-03-10 19:07:42 4 | type: "link" 5 | --- 6 | -------------------------------------------------------------------------------- /source/res/cover/35750.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/cover/35750.png -------------------------------------------------------------------------------- /source/res/cover/35761.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/cover/35761.png -------------------------------------------------------------------------------- /source/res/css/index.css: -------------------------------------------------------------------------------- 1 | .Toast { 2 | background: #000000; 3 | border-radius: 8px; 4 | color: #ffffff; 5 | font-size: 16px; 6 | left: 50%; 7 | min-width: 100px; 8 | max-width: 62.6%; 9 | opacity: 0.7; 10 | padding: 0 3px; 11 | padding: 0.5rem 0.75rem; 12 | position: fixed; 13 | text-align: center; 14 | top: 50%; 15 | transform: translate(-50%, -50%); 16 | z-index: 9999999999; 17 | } 18 | 19 | main p { 20 | text-indent: 2em; 21 | } 22 | 23 | .comment-wrap p { 24 | text-indent: 0em !important; 25 | } 26 | 27 | code, p, a { 28 | word-break: break-all; 29 | } 30 | 31 | .number { 32 | color: #1750EB !important; 33 | } 34 | 35 | .keyword { 36 | color: #0033B3 !important; 37 | } 38 | 39 | .hjson .line, .json .attr { 40 | color: #067D17; 41 | } 42 | 43 | .hjson .line .attr, .hjson .line .punctuation { 44 | color: var(--hl-color); 45 | } 46 | 47 | .hjson .line .attr:first-child { 48 | color: #174AD4; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /source/res/img/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/404.png -------------------------------------------------------------------------------- /source/res/img/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/avatar.jpg -------------------------------------------------------------------------------- /source/res/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/bg.jpg -------------------------------------------------------------------------------- /source/res/img/default_cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/default_cover.jpg -------------------------------------------------------------------------------- /source/res/img/default_top_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/default_top_image.jpg -------------------------------------------------------------------------------- /source/res/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/logo.png -------------------------------------------------------------------------------- /source/res/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /source/res/img/top_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/top_image.jpg -------------------------------------------------------------------------------- /source/res/img/top_image_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xireiki/tutorial-mystery/a789775b1483989b8f18e8bc7a9707b55e7b2ddc/source/res/img/top_image_2.jpg -------------------------------------------------------------------------------- /source/res/js/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.11 3 | * https://clipboardjs.com/ 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1

${text}

`; 21 | document.body.appendChild(m); 22 | setTimeout(function() { 23 | const d = 0.5; 24 | m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in'; 25 | m.style.opacity = '0'; 26 | setTimeout(function() { 27 | const node1 = document.getElementById('jd-toast'); 28 | if (node1?.getAttribute('toastId') == toastId) 29 | document.body.removeChild(node1); 30 | }, d * 1000); 31 | }, duration || 2000); 32 | } 33 | 34 | function CopyText(text){ 35 | const clip = navigator.clipboard; 36 | if(!text){ 37 | return 38 | }; 39 | function copyToast(con, lv){ 40 | if(!con) return; 41 | if(!lv) lv = 1; 42 | if(lv == 2){ 43 | alert(con); 44 | } else if(lv == 1) { 45 | if(window.via){ 46 | window.via.toast(con); 47 | } else { 48 | Toast({text: con}); 49 | } 50 | } 51 | } 52 | function copy2(text){ 53 | let cb = document.createElement("button"); 54 | cb.id = "cb"; 55 | cb.style.width = "1px"; 56 | cb.style.height = "1px"; 57 | document.body.appendChild(cb); 58 | let clipboardjs = new ClipboardJS("#cb", { 59 | text: function(){ 60 | return text 61 | } 62 | }); 63 | clipboardjs.on("success", () => { 64 | copyToast("已复制文本到剪贴板"); 65 | cb.remove(); 66 | }); 67 | clipboardjs.on("error", () => { 68 | copyToast("已复制文本到剪贴板"); 69 | cb.remove(); 70 | }); 71 | document.getElementById("cb").click(); 72 | } 73 | clip.writeText(text) 74 | .then(() => { 75 | copyToast("已复制文本到剪贴板"); 76 | }) 77 | .catch(err => { 78 | if(err.name == "NotAllowedError"){ 79 | copy2(text); 80 | } else { 81 | copyToast("复制失败:" + err); 82 | } 83 | }); 84 | } 85 | 86 | function legado(url, beh, path){ 87 | if(url.startsWith("/")){ 88 | let port; 89 | ((location.protocol == "http:" && location.port == "80") || (location.protocol == "https:" && location.port == "443") || location.port == "") ? port = "" : port = `:${location.port}`; 90 | url = `${location.protocol}//${location.hostname}${port}${url}`; 91 | } 92 | beh = beh ? beh : "open"; 93 | if(beh == "copy"){ 94 | CopyText(url); 95 | } else if(beh == "open"){ 96 | path = path ? path : "bookSource"; 97 | open(`legado://import/${path}?src=${url}`) 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /source/res/js/jquery-3.6.0.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 String.fromCharCode(byte)).join('')); 8 | } 9 | 10 | function computeSignature(accessKeySecret, canonicalString, headerEncoding = 'utf-8') { 11 | if(typeof global != "undefined"){ 12 | const crypto = require("crypto"); 13 | const signature = crypto.createHmac('sha1', accessKeySecret); 14 | return signature.update(Buffer.from(canonicalString, headerEncoding)).digest('base64'); 15 | } else if(typeof window != "undefined"){ 16 | return calculateHmacSha1(accessKeySecret, canonicalString, headerEncoding); 17 | } else return new Error("Environment does not support."); 18 | }; 19 | 20 | export function signatureUrl({method = "GET", bucket, region = "oss-cn-hangzhou", accessKeyId, accessKeySecret, object, expires = 60} = {}){ 21 | const timestamp = Math.floor(Date.now() / 1000); 22 | expires = timestamp + expires; 23 | const canonicalString = `${method}\n\n\n${expires}\n/${bucket}/${object}`; 24 | const signature = computeSignature(accessKeySecret, canonicalString); 25 | if(typeof signature != "string"){ 26 | return new Promise(resolve => { 27 | signature.then(key => { 28 | resolve(`https://${bucket}.${region}.aliyuncs.com/${encodeURIComponent(object)}?OSSAccessKeyId=${accessKeyId}&Expires=${expires}&Signature=${encodeURIComponent(key)}`); 29 | }); 30 | }); 31 | } 32 | const resource = `https://${bucket}.${region}.aliyuncs.com/${encodeURIComponent(object)}?OSSAccessKeyId=${accessKeyId}&Expires=${expires}&Signature=${encodeURIComponent(signature)}` 33 | return resource 34 | } 35 | -------------------------------------------------------------------------------- /source/tags/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 标签 3 | date: 2023-03-10 23:13:46 4 | type: "tags" 5 | --- 6 | --------------------------------------------------------------------------------