# 受不了,开始卷box4magisk,原来这个就是出墙最终的目标

By [dandan](https://paragraph.com/@dandan-5) · 2024-10-06

---

1、起因:android 下的各种爬墙软件各种 bug，作为一个码农真心无法接受各种奇葩的 bug。决定从核心解决问题！ 解决办法：使用 box4magisk，从核心跑。 好处：省电，稳定 坏处：技术要求会输入命令，没有软件，只能网页切换节点！

> 墙再高，挡不住对自由的向往，挡不住学习的诱惑，挡不住小姐姐的诱惑，一定要爬出去！

![alt text](https://storage.googleapis.com/papyrus_images/8903fc7d3ce9223001e1716a177d10e344c9cb1e439be20d4641920e33573a62.jpg)

alt text

开搞之前，我们要满足几个条件

> 1.手机要 root (非常重要) 2.安装 magisk（最新版即可）,会玩 magisk！ 3.会 linux 命令，和有一台电脑。没电脑在手机上打命令很苦逼！

### 1、下载 box4magisk 到电脑或者手机上

[官方下载地址：https://github.com/CHIZI-0618/box4magisk](https://github.com/CHIZI-0618/box4magisk) 下载到手机上，然后通过 magisk 安装。 安装教程：打开 magisk（面具）->模块->从本地安装(选择你下载的 box4magisk 文件)->重启

### 2、配置 mihomo

#### 2、1 配置 config.yaml 文件

config.yaml 例子

    mixed-port: 7890
    redir-port: 7891
    tproxy-port: 1536
    ipv6: false
    allow-lan: true
    unified-delay: false
    tcp-concurrent: true
    external-controller: 127.0.0.1:9090
    external-ui: ui
    external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"
    
    find-process-mode: always
    
    profile:
      store-selected: true
      store-fake-ip: true
    
    sniffer:
      enable: false
      sniff:
        HTTP:
          ports: [80, 8080-8880]
          override-destination: true
        TLS:
          ports: [443, 8443]
        QUIC:
          ports: [443, 8443]
      skip-domain:
        - "Mijia Cloud"
        - "+.push.apple.com"
    
    tun:
      enable: false
      stack: system
      device: tun0
      dns-hijack:
        - "any:53"
        - "tcp://any:53"
      auto-route: true
      auto-redirect: false
      auto-detect-interface: true
    
    dns:
      enable: true
      listen: 0.0.0.0:1053
      ipv6: false
      respect-rules: true
      enhanced-mode: fake-ip
      fake-ip-range: 198.18.0.0/15
      fake-ip-filter:
        - "*"
        - "+.lan"
        - "+.local"
        - "+.market.xiaomi.com"
      default-nameserver:
        - https://120.53.53.53/dns-query
        - https://223.5.5.5/dns-query
      proxy-server-nameserver:
        - https://120.53.53.53/dns-query
        - https://223.5.5.5/dns-query
      nameserver:
        - https://dns.cloudflare.com/dns-query
        - https://dns.google/dns-query
      nameserver-policy:
        "rule-set:cn_domain,private_domain":
          - https://120.53.53.53/dns-query
          - https://223.5.5.5/dns-query
    
    #这里是订阅更新和延迟测试相关
    #可以更改 proxy 指定的出站
    p:
      &p {
        type: http,
        interval: 86400,
        proxy: DIRECT,
        header: { User-Agent: ["Clash.Meta/mihomo/Alpha/1.18.6"] },
        health-check:
          {
            enable: true,
            url: https://cp.cloudflare.com,
            interval: 18000,
            lazy: true,
          },
      }
    
    # url 里填写自己的订阅,名称不能重复
    proxy-providers:
      provider1:
        <<: *p
        path: "./proxy/1.yaml"
        url: "https://xxx.com"
    
    proxies:
      - name: "直连"
        type: direct
        udp: true
      - name: "DNS_Hijack"
        type: dns
    
    proxy-groups:
      - name: 默认
        type: select
        proxies:
          [自动选择, 直连, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点]
    
      - name: Google
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: Telegram
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: Twitter
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: 哔哩哔哩
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: 巴哈姆特
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: YouTube
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: NETFLIX
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: Spotify
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: Github
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      - name: 国内
        type: select
        proxies:
          [直连, 默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择]
    
      - name: 其他
        type: select
        proxies:
          [默认, 香港, 台湾, 日本, 新加坡, 美国, 其它地区, 全部节点, 自动选择, 直连]
    
      #分隔,下面是地区分组
      - name: 香港
        type: select
        include-all: true
        filter: "(?i)港|hk|hongkong|hong kong"
    
      - name: 台湾
        type: select
        include-all: true
        filter: "(?i)台|tw|taiwan"
    
      - name: 日本
        type: select
        include-all: true
        filter: "(?i)日|jp|japan"
    
      - name: 美国
        type: select
        include-all: true
        filter: "(?i)美|us|unitedstates|united states"
    
      - name: 新加坡
        type: select
        include-all: true
        filter: "(?i)(新|sg|singapore)"
    
      - name: 其它地区
        type: select
        include-all: true
        filter: "(?i)^(?!.*(?:🇭🇰|🇯🇵|🇺🇸|🇸🇬|🇨🇳|港|hk|hongkong|台|tw|taiwan|日|jp|japan|新|sg|singapore|美|us|unitedstates)).*"
    
      - name: 全部节点
        type: select
        include-all: true
    
      - name: 自动选择
        type: url-test
        include-all: true
        tolerance: 10
    
    rules:
      - DST-PORT,53,DNS_Hijack
      - RULE-SET,private_ip,直连,no-resolve
      - RULE-SET,github_domain,Github
      - RULE-SET,twitter_domain,Twitter
      - RULE-SET,youtube_domain,YouTube
      - RULE-SET,google_domain,Google
      - RULE-SET,telegram_domain,Telegram
      - RULE-SET,netflix_domain,NETFLIX
      - RULE-SET,bilibili_domain,哔哩哔哩
      - RULE-SET,bahamut_domain,巴哈姆特
      - RULE-SET,spotify_domain,Spotify
      - RULE-SET,cn_domain,国内
      - RULE-SET,geolocation-!cn,其他
    
      - RULE-SET,google_ip,Google
      - RULE-SET,netflix_ip,NETFLIX
      - RULE-SET,telegram_ip,Telegram
      - RULE-SET,twitter_ip,Twitter
      - RULE-SET,cn_ip,国内
      - MATCH,其他
    
    rule-anchor:
      ip: &ip { type: http, interval: 86400, behavior: ipcidr, format: mrs }
      domain: &domain { type: http, interval: 86400, behavior: domain, format: mrs }
    rule-providers:
      private_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/private.mrs"
      cn_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.mrs"
      biliintl_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/biliintl.mrs"
      ehentai_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/ehentai.mrs"
      github_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/github.mrs"
      twitter_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/twitter.mrs"
      youtube_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/youtube.mrs"
      google_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/google.mrs"
      telegram_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/telegram.mrs"
      netflix_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/netflix.mrs"
      bilibili_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/bilibili.mrs"
      bahamut_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/bahamut.mrs"
      spotify_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/spotify.mrs"
      pixiv_domain:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/pixiv.mrs"
      geolocation-!cn:
        <<: *domain
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/geolocation-!cn.mrs"
    
      private_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/private.mrs"
      cn_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.mrs"
      google_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/google.mrs"
      netflix_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/netflix.mrs"
      twitter_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/twitter.mrs"
      telegram_ip:
        <<: *ip
        url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/telegram.mrs"
    

> 其中 provider1 就是你的机场订阅地址，你有多个机场那么你就 provider1，provider2 这样建立！

      provider1:
        <<: *p
        path: "./proxy/1.yaml"
        url: "https://xxx.com"
    

#### 2、2 上传文件

这步我们在电脑上执行，在手机上那么就自己拷贝文件！这里主要说到从电脑端到手机端 主要用到的命令： `su` `pull` `push` `cp` `mkdir` `mv`

##### 第一步：我们先拷贝文件到手机上

    adb push config.yaml /storage/emulated/0/clash/config.yaml
    adb push 1.yaml /storage/emulated/0/clash/1.yaml
    

##### 第二步：转移文件到 box 目录下

进入手机系统

获取 root 用户权限,这步可能会手机提醒你是不是要给予 root 权限！自己确认一下即可！

拷贝文件：

    #拷贝配置文件
    cp -r /storage/emulated/0/clash/config.yaml cd /data/adb/box/mihomo/config.yaml
    #建立代理目录
    mkdir /data/adb/box/mihomo/proxy
    

##### 第三步：启动 box

    #启动服务
    /data/adb/box/scripts/box.service start
    #停止服务：
    
    /data/adb/box/scripts/box.service stop
    
    #重启服务：
    
    /data/adb/box/scripts/box.service restart
    
    #显示状态：
    
    /data/adb/box/scripts/box.service status
    
    #管理透明代理是否启用
    #透明代理脚本是 /data/adb/box/scripts/box.tproxy
    
    #启用透明代理：
    
    /data/adb/box/scripts/box.tproxy enable
    
    #停用透明代理：
    
    /data/adb/box/scripts/box.tproxy disable
    
    #重载透明代理：
    
    /data/adb/box/scripts/box.tproxy renew
    

然后用浏览器打开`127.0.0.1:9090/ui`就可以管理节点了，正常有数据跑动。说明你成功了，可以畅游了！无视 wifi 网络还是手机网络还是公众网络。只要手机有电就可以爬墙，还可以把手机的节点分享给电脑或者其他手机使用！

骚年们，尽情的遨游吧！你已经拥有一台加密过网络的手机了。

---

*Originally published on [dandan](https://paragraph.com/@dandan-5/box4magisk)*
