Skip to content

Add: PlayCover support - #5866

Draft
DevSplash wants to merge 10 commits into
LmeSzinc:masterfrom
DevSplash:playcover
Draft

Add: PlayCover support#5866
DevSplash wants to merge 10 commits into
LmeSzinc:masterfrom
DevSplash:playcover

Conversation

@DevSplash

Copy link
Copy Markdown
Contributor

增加PlayCover支持,参考了#4436 的思路

需要和修改版的PlayCover和PlayTools配套使用:
PlayCover:https://github.com/DevSplash/PlayCover
管理API、分辨率补偿
PlayTools:https://github.com/DevSplash/PlayTools
截图、触控同步

主要改动:

  • 支持通过playcover连接:playcover://host:port (默认端口1717)
  • 通过管理API启动/关闭游戏。管理api需要单独配置(默认端口1718),如果关闭则只能连接到已启动的客户端,无法主动启动和停止(停止行为会回落到返回主界面)
  • 使用playcover时不会初始化adb
  • 适配部分大世界、科研ocr等识别差异
  • 油量识别区域拓宽了1像素,以解决playcover下识别丢失

已知限制:
1、装备方案码依赖安卓ADB、输入法和uiautomator2,暂不支持。
2、因MacOS下的字体、抗锯齿等差异,有些地方和原模板无法匹配,已经增加了部分已发现问题的CN服模板兜底,其他服模板、暂时没发现的不兼容的地方可能需后续再补充。

@LmeSzinc

Copy link
Copy Markdown
Owner

为什么会需要修改其他内容? mac 下的 bluestack air 和 mumu pro 都是无缝使用 alas 的,你没用 1280x720 然后偷加缩放了吧

@DevSplash

DevSplash commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

为什么会需要修改其他内容? mac 下的 bluestack air 和 mumu pro 都是无缝使用 alas 的,你没用 1280x720 然后偷加缩放了吧

这个是上个月改的,有点久忘了提了。
playcover在mac上原生运行ios app时,如果app未针对mac优化,会有0.77倍的系统级缩放
https://developer.apple.com/design/human-interface-guidelines/mac-catalyst?changes=l_8_2

直接配置为1280×720时,UIKit逻辑尺寸是1280×720,但mac上实际显示尺寸只有大约985×554,所以截图后alas又会让0.77的倍率再缩放回1.0(相当于先*0.77显示,截图再/0.77),导致一些模板与安卓的匹配度低,此前测试的时候遇到不少科研识别错误、潜艇舰队按钮找不到之类的问题

没找到特别好的通用方案,当前修改的playcover的方案是把设置的分辨率按目标分辨率/0.77放大,也就是设置为1663×936,经过0.77倍的系统级缩放后会变成1280×720,等于逻辑尺寸是1663×936,缩放为1280x720
我测试的时候这个方案识别模板时比原版识别的置信度要高,虽然也有不少识别不了的模板,但像是前一种方式出现的大面积科研识别错误这种都已经解决了

模板或识别区域的相关的改动是解决已发现的识别错误用的

# Conflicts:
#	module/device/control.py
@guoh064

guoh064 commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

@DevSplash

DevSplash commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

似乎可以考虑让用户自行配置PixelPerfect? https://github.com/cormiertyshawn895/PixelPerfect#can-i-use-pixel-perfect-with-iphone-and-ipad-apps-downloaded-from-third-party-websites-playcover-or-sideloadly

我测一下。如果可以的话应该也可以集成到playcover里

@DevSplash

Copy link
Copy Markdown
Contributor Author

似乎可以考虑让用户自行配置PixelPerfect? https://github.com/cormiertyshawn895/PixelPerfect#can-i-use-pixel-perfect-with-iphone-and-ipad-apps-downloaded-from-third-party-websites-playcover-or-sideloadly

playcover (playtools)用这个思路改了一下,部分新增的兜底和阈值改动的确可以去掉了

但海域专有模板可能还是要保留,拿原版套的话置信度大约在0.65~0.74,没过阈值
我在模拟器、playcover上对照测试了一下,发现是字体的问题
包没有指定字体,所以走的是默认字体,就导致安卓和ios所用字体存在出入
playcover里这几组文字用的字体是Arial Unicode,已经测试在安卓模拟器强制替换为这个字体后,与playcover截图的拟合度几乎接近1.0
PlayCover
ios
安卓+Arial Unicode
android

安卓我没定位到准确的字体,可能是NotoSansSC Regular,不确定。
本来想在playcover调模拟器的fallback字体试,但是因为替换字体要关SIP,就拿unity用相同字体画了个大小相近的3组文字,编译成ipa放到playcover里测试,拿原模板匹配置信度只有0.9,看起来也比模板略粗
test

不太可能去要求用户更换字体,所以感觉还是要两套模板,或者降低阈值(降阈值不一定可靠,置信度偶尔会低于0.7)

科研的样本暂时还不够,我这边加了点日志先堆几天看看

@DevSplash
DevSplash marked this pull request as draft August 18, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants