Skip to content

HarukiProxy-Android 教程

阅读前警告

当前HarukiProxy的发布版本为v2.1.0,本文档的介绍以及教程均根据v2.0.0以上版本编写

如果你目前使用的版本低于v2.0.0,并且希望使用v2.0.0以后续版本,则更新到v2.0.0以上版本时,需要先卸载旧版的HarukiProxy-Android

然后修改harukiproxy.sh的代码

如果你是PC端模拟器用户,请转至HarukiProxy教程

特别鸣谢

开发者: Haruki Dev Team
教程编写者: storyxy3DeseerAposetlesLemoeLQ

什么是HarukiProxy

HarukiProxy是由Haruki Dev Team开发的一款Android平台半自动抓取游戏pjsk的数据的程序

HarukiProxy的特点

  • 支持国服日服台服韩服国际服数据抓取
  • 支持自动上传数据到Haruki工具箱
  • 支持选择是否公开自己自动上传到Haruki工具箱的数据在公开API访问
  • 支持自定义上传数据端点 (需第三方服务支持)
  • 支持保存抓取的数据到本地
  • 支持保存抓取的suite数据到本地
  • 支持保存抓取的mysekai数据到本地
  • 支持自动为Android设备设置HarukiProxy为代理
  • 支持自定义上游HTTP代理

初期准备

阅读前注意

本程序只能在获取root权限的Android设备上运行,现在大部分的Android设备无法轻易获取root权限,所以本教程在Android设备上的Android虚拟机来运行本程序

Android原生的终端缺少本教程所用到的一些国内,所以本教程使用MT管理器来启动本程序

由于不可抗力,本程序不能抓取国服的MySekai数据

提醒

配置出现问题时请跳转至问题自查

先查找是否为常见问题,再借助搜素引擎和ai尝试解决问题,最后再在群聊里问群友,不会提问的请务必先阅读提问的智慧

  • 需要在Android手机上安装Android虚拟机,本教程使用光速虚拟机
  • 需要在虚拟机中安装MT管理器,也可以使用其他的方式来运行本程序,请自行设置。

虚拟机设置

下载并安装好光速虚拟机之后,启动光速虚拟机,这个应用有广告。它会要求你关掉安卓子进程限制,按照它的教程操作就好。如果不关掉的话,虚拟机无法正常运行,会被本机杀掉。

注意

安卓12、13的华为、荣耀系统必须用电脑才能解锁子进程限制

img.jpg

新建虚拟机,使用免费的安卓7和32+64位就好。

img.jpg

然后启动你的虚拟机,它会请求一些权限,有些权限不同意可能无法启动。第一次启动会花一分钟左右的时间,耐心等待。启动成功后来到虚拟机的桌面,点击右下角的导入导出,点击导入。必须同意获取已安装应用的权限,才能把本机上的pjsk导入到虚拟机,如果你在本机上安装了MT管理器也一并导入。

img.jpgimg.jpg

提示

导入的应用会自动安装,导入的文件会放在虚拟机的/sdcard/Documents文件夹里。

如果你不想提供权限,也可以用虚拟机内自带的VIA浏览器下载游戏和MT管理器

等待安装完毕后回到桌面,上滑,显示所有应用。能看到游戏和MT管理器,你可以长按应用程序的图标将它们添加到主页。

img.jpg

HarukiProxy-Android设置

如果你没有把应用添加到主页,上滑,查看所有应用。启动MT管理器,同意它的用户协议和权限,然后不用登录。点击下方的+,输入文件名harukiproxy.sh,点击文件来新建一个shell脚本文件。

img.jpgimg.jpg

编辑harukiproxy脚本

点击harukiproxy.sh文件,选择编辑。然后输入以下代码:

#!/bin/sh

# Check if running as root
if [ "$(id -u)" -ne 0 ]; then
    if command -v su >/dev/null 2>&1; then
        exec su -c "$0 $*"
    elif command -v sudo >/dev/null 2>&1; then
        exec sudo "$0" "$@"
    else
        echo "This script must be run as root." >&2
        exit 1
    fi
fi

ROOT_DIR="/data/local/tmp/harukiproxy"

# Ensure root_dir exists
if [ ! -d $ROOT_DIR ]; then
    mkdir -p $ROOT_DIR
fi

BIN_NAME="HarukiProxy-v2.1.0-android-arm64"
BIN_PATH="$ROOT_DIR/$BIN_NAME"
CONFIG_PATH="$ROOT_DIR/config-android.yaml"

# Download binary if not exists
if [ ! -f "$BIN_PATH" ]; then
    curl -L -o "$BIN_PATH" "https://docs.haruki.seiunx.com/download/HarukiProxy/${BIN_NAME}/haruki-proxy-android"
    chmod 0755 "$BIN_PATH"
fi

# Download config if not exists
if [ ! -f "$CONFIG_PATH" ]; then
    curl -L -o "$CONFIG_PATH" "https://docs.haruki.seiunx.com/download/HarukiProxy/config-android.yaml"
    chmod 0755 "$CONFIG_PATH"
fi

su2 -c "sh -s $ROOT_DIR $BIN_NAME" <<'EOF'
# Run the binary from its directory without -c argument
cd $1 && exec ./$2
EOF

img.jpgimg.jpg

点击右上角的保存,然后点击下方的回到MT管理器。再次点击harukiproxy.sh,点开设置,选择使用扩展包环境执行,并勾选使用ROOT权限执行,然后点击执行。

img.jpg

提示

第一次使用时,它会让你下载终端扩展包 img.jpg 等待下载完毕后,按下返回,开始执行脚本

脚本会自动下载所需的软件和配置文件,请保持网络通畅。它会自动完成相应配置,安装证书并自动重启。

img.jpg

开始抓包

打开MT管理器,点击harukiproxy.sh,点击执行。如果前面的操作正确,那么它就会自动设置代理并开启抓包。当显示启动HarukiProxy-Android: 0.0.0.0:8888时,就说明执行成功了。

img.jpgimg.jpg

注意

不要直接按两下退出,这会将脚本关闭,可以按回到桌面再打开游戏。 如果你在执行后出现下面的代理捕获到错误: io error,显示[进程已结束]。可能是之前运行的脚本没有被正确关闭导致的,请关闭harukiproxyimg.jpg

打开虚拟机内的游戏,正常登录自己的账号,等待到这下图一步就好,不用下载游戏数据。

img.jpg

回到MT管理器,你就能找到这样的日志。默认是上传到Haruki工具箱,你可以在配置中设置upload_endpoint将抓包数据上传到你设置的端点。为了数据安全,Haruki工具箱需要注册并绑定账号后才能使用。

img.jpg

关闭HarukiProxy-Android

运行HarukiProxy后,关闭MT管理器也不会关掉HarukiProxy(关机可以,但是不会删除代理设置),需要用命令强行关闭。 新建文件kill-harukiproxy.sh,然后输入以下代码:

#!/bin/sh

pkill -l 2 "HarukiProxy"

su2 <<SETTINGS
settings put global http_proxy :0
settings put global https_proxy :0
SETTINGS

保存后同样设置使用扩展包环境执行,并勾选使用ROOT权限执行,然后点击执行。它会关掉HarukiProxy的进程,并且重置代理设置。

卸载HarukiProxy-Android

如果你要更新HarukiProxy,那么你必须要先卸载掉旧的。新建文件uninstall-harukiproxy.sh,然后输入以下代码:

#!/bin/sh

# Check if running as root
if [ "$(id -u)" -ne 0 ]; then
    if command -v su >/dev/null 2>&1; then
        exec su -c "$0 $*"
    elif command -v sudo >/dev/null 2>&1; then
        exec sudo "$0" "$@"
    else
        echo "This script must be run as root." >&2
        exit 1
    fi
fi

ROOT_DIR="/data/local/tmp/harukiproxy"
SYSTEM_CACERTS_DIR="/system/etc/security/cacerts"

#remove resolv.conf
if [ -f /etc/resolv.conf ]; then
    echo "删除/etc/resolv.conf"
    mount -o remount,rw /system
    rm -f /etc/resolv.conf || exit 1
fi

# Ensure root_dir exists
if [ ! -d $ROOT_DIR ]; then
    echo "${ROOT_DIR}不存在"
    exit 0
fi

#remove cacert
find "$ROOT_DIR" -type f -name "*.0" | while read cacert_file; do
    #提取文件名
    file_name=$(basename "$cacert_file")
    system_cacert_file="$SYSTEM_CACERTS_DIR/$file_name"
    if [ -f "$system_cacert_file" ]; then
        echo "删除:$system_cacert_file"
        mount -o remount,rw /system
        rm -f "$system_cacert_file" || exit 1
    fi
done

#remove root_dir
if [ -d $ROOT_DIR ]; then
    echo "删除harukiproxy目录:$ROOT_DIR"
    rm -r -f "$ROOT_DIR" || exit 1
fi

echo "卸载完成"

保存后同样设置使用扩展包环境执行,并勾选使用ROOT权限执行,然后点击执行。它会删除/etc/resolv.conf文件,从系统目录中删除与/data/local/tmp/harukiproxy文件夹中的.0证书文件同名的证书文件,删掉/data/local/tmp/harukiproxy文件夹。

配置config-android

打开MT管理器,点击左上方的文件夹路径,打开跳转输入框。输入/data/local/tmp/harukiproxy,跳转过去。

img.jpgimg.jpg

点击打开config-android.yaml文件,请根据注释自行配置。

auto_upload: true # 是否自动上传数据到Haruki Toolbox,一般不需要改为false

upload_endpoint: "" # 自定义上传数据端点,不修改则默认上传至haruki toolbox的数据上传端点,你可以修改为想传到的其他端点地址

disable_encryption: false # 自定义上传数据端点需要将这个改为true,否则上传的数据无法解密

upload_secret: "" # 自定义上传端点用的私钥

save_data_locally: false # 是否自动保存数据到本地,如果你有需求可以改为true

save_data_dir: "./data" # 自动保存的数据路径,默认为在HarukiProxy目录下的data文件夹

save_suite_locally: true # 是否自动保存suite数据到本地,如果save_data_locally未启用,则该选项不会生效

save_mysekai_locally: true # 是否自动保存mysekai数据到本地,如果save_data_locally未启用,则该选项不会生效
#这一部分控制你是否将抓取到的数据保存在本地,如果你想要查看自己的suite与mysekai数据,抑或是想要手动上传数据,那么就将 save_data_locally: false改为 true,数据则会自动保存在你HarukiProxy目录下的data目录

listen: "0.0.0.0:8888" # MitM监听,一般情况下无需更改

android_proxy_ip: "" # 手动设置代理IP,如果自动获取IP并设置会导致模拟器/设备无法联网,请填写此项

goproxy_debug: false # 启用调试模式,如果有问题时请改为true,否则保持false即可

goproxy_upstream_proxy: "" # 上游代理,如果连接状况不佳可以设置(如"http://127.0.0.1:6152"),否则留空即可
#如果你不是很清楚上游代理是什么意思,那么不用管了,否则和注释一样,将6152改为你代理软件中的端口号

问题自查

程序直接停止

在执行后出现下面的代理捕获到错误: io error,显示[进程已结束]。可能是之前运行的脚本没有被正确关闭导致的,请关闭HarukiProxy-Android

img.jpg

启动了程序但是无法联网

可能是错误的点击返回导致程序被关闭

这种情况下,如果直接运行脚本会出现上面的程序直接停止的错误,需要先关闭HarukiProxy-Android。 不要直接按两下◁退出,这会将脚本关闭,可以按◯或▢回到桌面再打开游戏。

可能是默认配置ip失效

检查配置文件中下面这一项设置。

android_proxy_ip: "" # 手动设置代理IP,如果自动获取IP并设置会导致模拟器/设备无法联网,请填写此项

尝试填写127.0.0.1

没有启动程序但是无法联网

如果在程序运行中直接按两下退出、关闭MT管理器或关闭虚拟机。这样都会导致程序的运行直接中断,无法清理代理设置,可以通过执行关闭HarukiProxy-Android脚本来重置代理设置。