由于 Google 的限制和一些其他原因,在 Android 上游玩原神私服并没有 iOS、Windows 这么容易
准备材料
一台能读写 /system 分区的 Android 手机(或:一台安装了 Magisk 的 Android 手机)有人搞出来免root端了,此条件不再必须- 私服客户端 v2.6 或者 v2.7
- 一台私服服务器
- Grasscutter
- mitmproxy
- Wi-Fi
教程
先把 Grasscutter 配置好,不同系统配置方法不一样,基本概括为以下几点
- 下载 Gresscutter:https://github.com/Grasscutters/Grasscutter/releases
- 下载 Java(JDK)
- 运行 Gresscutter
安装好 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,端口填写上面配置的端口,然后保存
完成
去 Google Play 下载 Genshin Impact下载文章开头的私服客户端,应该可以正常游玩了(注意:官网下的连不上私服)
关于 Android 一些限制:原神不会信任 USER TRUST 的证书,必须安装到 SYSTEM TRUST,私服客户端忽略这个限制
有问题可以底下评论反馈,文章会及时修改。
27 comments
手机可以吗
手机也可以吗
当前网络繁忙,请稍候重试(400)是什么原因啊
当前网络繁忙,请稍候再试(400)是什么原因啊
网络异常是怎么回事?
网络异常是怎么回事?
请问Android登录上了,点进入,白屏是什么原因?
找到原因了,要把accessip改成pc的ip,不能使用环回地址
https://jq.qq.com/?_wv=1027&k=DfPPSp8L
点击链接加入群聊【XM原神私服交流群<$ÿĀ?">】:https://jq.qq.com/?_wv=1027&k=DfPPSp8L
感谢大佬,学到虚脱(
有没有大哥可以向我开放私服,愿意花一点小钱
有哪个大哥愿意开放一下私服,愿意花一点小钱
本人学生党没有那么多条件创私服,希望来个大哥给开放一下私服,愿意花一点点小钱
私服版服务器设置需要加https//吗
以为和mc开服一样简单,服务端是开了安卓死活连不进去,必须需要root和代理,证书么?
不root必须用开头给的私服端,root后可以直接用谷歌商店下的国际版端,证书都是要安装的)
私服客户端我用官方服务器和自定义服务器都试了证书安装了,代理和没代理也是还是进不去,我电脑能进去(;≥皿≤)
我也是啊,你解决了吗
啊喵!
"2022-06-01T22:28:31Z <INFO:emu.grasscutter.utils.Utils> 请将 BinOutput 和 ExcelBinOutput 复制到 resources 目录。"双击割草机生成了一些文件 但之后就没反应 日志文件里这样写的
楼主,我到运行割草.jar之后显示“游戏服务器已在端口 22102 上启动”然后手机设置电脑的IP,端口之后怎么都连不上
手机也连上私服了,然后登录的时候服务器也有反应了,但是到门那里点进入就一直链接超时
服务器是否正常接受 UDP 连接?
检查防火墙/安全组
我只下了开头的那个客户端,更新之后能直接玩吗
那个只是客户端 需要自己搭建服务端
(或者连朋友的私服
阿这,我直接把开头那个下了,能直接玩吗