由于 Google 的限制和一些其他原因,在 Android 上游玩原神私服并没有 iOS、Windows 这么容易


准备材料

  • 一台能读写 /system 分区的 Android 手机(或:一台安装了 Magisk 的 Android 手机) 有人搞出来免root端了,此条件不再必须
  • 私服客户端 v2.6 或者 v2.7
  • 一台私服服务器
  • Grasscutter
  • mitmproxy
  • Wi-Fi

教程

先把 Grasscutter 配置好,不同系统配置方法不一样,基本概括为以下几点

搭建Grasscutter可以去看 BLxcwg666 的教程

安装好 Gresscutter 之后,服务器随便找个地方新建个 proxy.py,放下面的内容

##
#
#   Copyright (C) 2002-2022 MlgmXyysd All Rights Reserved.
#
##

##
#
#   Genshin Impact script for mitmproxy
#
#   https://github.com/MlgmXyysd/
#
#   *Original fiddler script from https://github.lunatic.moe/fiddlerscript
#
#   Environment requirement:
#     - mitmdump from mitmproxy
#
#   @author MlgmXyysd
#   @version 1.1
#
##

from mitmproxy import http
from proxy_config import USE_SSL
from proxy_config import REMOTE_HOST
from proxy_config import REMOTE_PORT

class MlgmXyysd_Genshin_Impact_Proxy:

    LIST_DOMAINS = [
        "api-os-takumi.mihoyo.com",
        "hk4e-api-os-static.mihoyo.com",
        "hk4e-sdk-os.mihoyo.com",
        "dispatchosglobal.yuanshen.com",
        "osusadispatch.yuanshen.com",
        "account.mihoyo.com",
        "log-upload-os.mihoyo.com",
        "dispatchcntest.yuanshen.com",
        "devlog-upload.mihoyo.com",
        "webstatic.mihoyo.com",
        "log-upload.mihoyo.com",
        "hk4e-sdk.mihoyo.com",
        "api-beta-sdk.mihoyo.com",
        "api-beta-sdk-os.mihoyo.com",
        "cnbeta01dispatch.yuanshen.com",
        "dispatchcnglobal.yuanshen.com",
        "cnbeta02dispatch.yuanshen.com",
        "sdk-os-static.mihoyo.com",
        "webstatic-sea.mihoyo.com",
        "webstatic-sea.hoyoverse.com",
        "hk4e-sdk-os-static.hoyoverse.com",
        "sdk-os-static.hoyoverse.com",
        "api-account-os.hoyoverse.com",
        "hk4e-sdk-os.hoyoverse.com",
        "overseauspider.yuanshen.com",
        "gameapi-account.mihoyo.com",
        "minor-api.mihoyo.com",
        "public-data-api.mihoyo.com",
        "uspider.yuanshen.com",
        "sdk-static.mihoyo.com",
        "abtest-api-data-sg.hoyoverse.com",
        "log-upload-os.hoyoverse.com"
    ]

    def request(self, flow: http.HTTPFlow) -> None:
        if flow.request.host in self.LIST_DOMAINS:
            if USE_SSL:
                flow.request.scheme = "https"
            else:
                flow.request.scheme = "http"
            flow.request.host = REMOTE_HOST
            flow.request.port = REMOTE_PORT

addons = [
    MlgmXyysd_Genshin_Impact_Proxy()
]

CA 安装

然后把 mitmproxy 的证书安装到手机里
自带的证书是用户目录下的 .mitmproxy 里面的 mitmproxy-ca-cert.cer

手机插数据线到电脑,或者用传输工具,把 mitmproxy-ca-cert.cer 拷贝到手机的存储里( /sdcard)
然后进入手机上的 设置 > 安全性和隐私 > 加密与凭据 > 安装证书 > CA 证书(不同手机可能设置方法略有差异,可以尝试在设置内搜索 CA,或者百度一下)安装你刚刚传进去的 mitmproxy-ca-cert.cer

mitmproxy

然后进入 mitmproxy 安装目录,执行:

mitmweb -s proxy.py --ssl-insecure --set block_global=false --listen-port 1145 --certs "Genshin Impact.pem"

注意:

  • proxy.py 替换为上面你保存的 proxy.py 的路径
  • 监听端口随意 1-65535,选择一个不冲突的端口,如果冲突了后面可能会报错 WinError,不建议:7890 8080,容易被扫描到,记下这个端口
  • 后面可以用 --certs 引入自己的证书,不需要引入自己的证书可以直接删除该参数

如果是自己的证书,CA 请使用 v3 版本(OpenSSL 默认 v1),私钥请选择 RSA 2048,如果证书开头是 -----BEGIN RSA PRIVATE KEY-----,改成-----BEGIN PRIVATE KEY

证书移动至 SYSTEM TRUST

如果使用上面提供的修改版客户端,就不需要执行这个步骤了(如果有问题,你还是可以试试执行下这个步骤

需要使用 Magisk

Magisk 刷入 https://github.com/Magisk-Modules-Repo/movecert 模块,重启
如果无法刷入,尝试使用兼容模式刷入

Magisk 是啥?
root 手机用的,还有很多其他功能
需要解锁 Bootloader 才能安装 Magisk,Magisk 不同设备安装方法不同,网上搜一下吧

代理配置

进入你手机的 Wi-Fi 配置界面,点开你 Wi-Fi 的详细信息(,部分手机:点开编辑页面),找到设置代理,代理模式改为手动
代理服务器设置为你私服的 IP,端口填写上面配置的端口,然后保存
 分别填写私服 IP,私服端口,第三个留空

完成

去 Google Play 下载 Genshin Impact下载文章开头的私服客户端,应该可以正常游玩了(注意:官网下的连不上私服)


关于 Android 一些限制:原神不会信任 USER TRUST 的证书,必须安装到 SYSTEM TRUST,私服客户端忽略这个限制

有问题可以底下评论反馈,文章会及时修改。

Last modification:July 25, 2022
请我喝杯咖啡 - 为 MBRjun 和 Moefire Studio 提供支持