
首先感谢热心网友提供的方案:https://forum.gamer.com.tw/C.php?bsn=72111&snA=1490
目前尘白禁区2.1已经在Google Play更新了。不过还是分享一下从OneStore下载尘白禁区的方案,有备无患嘛。
进入正题,以下是我通过上面方案提取出来的游戏安装包分享到gofile的地址:https://gofile.io/d/aZAgO4,gofile优点是下载文件免注册并且不限速大陆直连,缺点是白嫖用户上传的文件只能临时存储10天,所以以上分享地址之后会失效,不过我下面还会说一下apk提取方法,只要耐心看完相信读者朋友也能学会把OneStore的apk文件分享给好友。
话不多说,上面地址正常打开有以下目录文件:

除了.sha256后缀的校验文件(用于校验文件完整性),都是游戏安装包文件,选其一安装即可。
接下来分别说一下两个安装包和拆分APK使用方法:
尘白禁区_v2.1.0.77.apk,直接使用软件包安装程序安装即可。注意这个安装包是我通过Apktool M对OneStore的下载的拆分APK反编译重新签名打包的。虽然这个包只是反编译了拆分APK的文件并且重新签名打包,并没有篡改游戏逻辑,不过终归是修改过签名,相对来说没有下面的apks以及拆分APK安全稳定。
尘白禁区_v2.1.0.77.apks,使用Split APKs Installer(https://play.google.com/store/apps/details?id=com.aefyr.sai)安装。因为这个应用是GitHub开源的,所以也可以在https://github.com/Aefyr/SAI/releases/tag/4.5下载安装。安装Split APKs Installer之后打开,点击安装apk按钮,选中apks文件,选项默认,点击安装即可,如下图所示:

这个安装包是通过Split APKs Installer备份已安装的尘白禁区生成的,相对于上面反编译生成的apk安装包,会安全一点。
至于com.seasun.snowbreak.onestore目录下的是拆分APK,从OneStore下载的是拆分APK。拆分APK同样可以用上述的Split APKs Installer来安装。同样是在安装tab,选中安装APK按钮,接着选中com.seasun.snowbreak.onestore目录下四个拆分APK文件,也会弹出上图,点击安装即可。
拆分APK除了使用Split APKs Installer来安装,还可以使用Android 调试桥 (adb) 来安装,喜欢刷机或者了解安卓应用开发的朋友可能熟悉这个工具。adb可以使用子命令install-multiple安装拆分APK。比如说PowerShell当前工作目录是在拆分APK所在目录,可通过如下命令安装:
adb install-multiple .\base-master_2.apk .\obbassets-master.apk .\base-arm64_v8a_2.apk .\base-hdpi.apk
安装拆分APK是最安全稳定的方法,毕竟没有对安装包进行过二次处理。
接下来说一下提取OneStore下载的apk文件的通用方法,教程面向的是没有接触过adb以及powershell和linux shell的朋友,会稍微讲得详细一点。
这个方法需要用到上述提到的adb,adb可以在https://developer.android.com/tools/releases/platform-tools?hl=zh-cn#downloads 下载,建议把压缩包里platform-tools解压到桌面方便在终端下访问。
接着还需要一台拥有root权限并且可以运行OneStore的安卓真机或者模拟器,最后安卓设备需要打开USB调试,安卓设备通过USB数据线连接到电脑上,这样就可以在电脑上使用adb访问安卓设备里的OneStore下载的apk文件。
OneStore的apk文件存储在/data/data/com.skt.skaf.A000Z00040/files/ 目录下,单体式 APK会直接存储在files目录下,不过要注意一下这个单体式apk文件不是以包名命名,而是以商店上的应用主页网址上看到的prodId参数命名,比如说蔚蓝档案:https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=0000765249,它的APK文件就是0000765249.apk。而像尘白禁区,这种拆分APK则会存储在应用包名目录下,完整路径是/data/data/com.skt.skaf.A000Z00040/files/com.seasun.snowbreak.onestore。
知道应用apk文件路径接下来就好办了。
首先打开终端,我以Windows的PowerShell为例,默认工作目录应该是用户目录,10295是我用户名,所以路径命令行显示PS C:\Users\Qihua Pan>,这时候输入cd .\Desktop\platform-tools
进入adb.exe所在目录。如下图所示:

adb.exe就在platform-tools目录里,直接输入.\adb shell ,在设备上启动交互式 shell,如果输出adb.exe: no devices/emulators found,可能是设备没有打开USB调试模式,或者USB数据线跟安卓设备或者电脑接触不良,又或者连接的纯充电线,并没有数据传输功能。
正常连接到设备,命令行左侧的PS终端标识符会变成安卓设备标识符,比如我是p3s,Windows的桌面路径变成了LInux的/,并且还有$符号,如下图所示。

正常进入交互式shell之后,接着输入su命令。如果输入su命令提示/system/bin/sh: su: not found,则说明安卓设备还没有root。成功切换到root,命令行的$符号应该会变成#,如下图所示:

切换到root之后通过cp命令把上述OneStore存储的应用apk文件拷贝到不需要root权限也能访问的目录,比如说把尘白禁区的拆分APK拷贝到下载目录:/storage/emulated/0/Download,可以使用以下命令:
cp -r /data/data/com.skt.skaf.A000Z00040/files/com.seasun.snowbreak.onestore /storage/emulated/0/Download
如果命令输出:cp: bad '/data/data/com.skt.skaf.A000Z00040/files/com.seasun.snowbreak.onestore': Permission denied,则说明没有root权限。正常执行的话,命令左侧的设备标识符以及/ #会消失,只剩光标一直闪烁,表示命令执行中,期间不会有输出,执行完又能看到设备标识符以及/ #,这时候可以使用系统文件管理器去内部存储的Download目录,看到com.seasun.snowbreak.onestore 目录及里面的拆分APK则说明拷贝成功,接着就可以使用其他应用访问这个目录下的apk文件并分享到其他地方,又或者使用adb pull拉到本地电脑上。
要使用adb pull需要先退出交互式shell或者新建终端窗口。退出交互式shell的方法是输入两次exit,第一次exit是退出root,第二次才是退出交互式shell,设备标识符变为原来的PS终端,Linux 路径变为原来Windows进入交互式shell之前的platform-tools路径,如下图所示:

现在就可以通过adb pull命令把OneStore拆分APK拷贝到本地电脑,还是以刚刚拷贝到下载目录的尘白禁区拆拆分APK为例,命令如下:
.\adb pull /storage/emulated/0/Download/com.seasun.snowbreak.onestore .
正常输出如下所示:

以上就是我要分享的全部内容,如果遇到相关问题欢迎在评论区留言。
拆分APK:https://developer.android.com/guide/app-bundle/app-bundle-format?hl=zh-cn
Android 调试桥 (adb) :https://developer.android.com/tools/adb?hl=zh-cn
USB调试:https://help.airdroid.com/hc/zh-cn/sections/4404399385371-USB调试