# working_simulator
**Repository Path**: ololee/working_simulator
## Basic Information
- **Project Name**: working_simulator
- **Description**: 打工生活模拟器修改器
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-10-19
- **Last Updated**: 2023-10-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 此软件是《打工生活模拟器》海外版本的一个修改器
## 注意:软件仅仅用于学习交流,请勿用于商业用途或者其他影响《打工生活模拟器》开发团队利益的事情!!!
### 《打工生活模拟器》是一款基于cocos2D游戏引擎开发的一款模拟经营类手游,其主要描述了一个打工者在父亲病重,撤学进城打工的现代打工人在城市里艰难维生的打工生活
> 该游戏以其“真实”的描述了苦逼的打工生活而饱受玩家青睐。但是该游戏逼近是国产小游戏,其盈利目的依然是免费游戏,观看视频获取游戏福利的形式。这种形式对于游戏公司来说没有什么不对,但是这种以牺牲玩家体验来谋利的方式不会是一个好的方式。这也是广大国内游戏开发者团队的无赖之举。国内游戏环境的差不仅仅是国人消费观念的问题,大厂的绞杀,政策的影响,等等造就了今天的游戏开发销售环境。只愿国人物质世界满足后,能提高自己的消费观,进而改变今天游戏的格局。
> 我很讨厌广告,尤其30秒以上的广告。该游戏中有太多不合理的设定使得我在游戏的时候及其难受,作为一个安卓开发者,我不能忍受这样的现状。我要Cheating,我不能看广告。我也忍受不了每天只能刮5次刮刮乐。我更忍受不了看10次视频能升级vip10,解锁游戏的高级玩法【实际上就是官方外挂,特别影响游戏】,除了这些,我还忍受不了无法保存进度以供我下次卸载重装后继续游玩。更重要的事是,我都亿万富翁了,我还只能走路,我没有交通工具?原来交通工具被他们隐藏在一个超市的大转盘活动里,这个大转盘的概率,比tencent的转盘坑爹的多得多,比alibaba的集五福概率还低啊。他交通碎片有4个,前3个直接就抽了,第4个碎片要在最后集齐一个进度条的重复碎片后,才给保底,而抽出碎片的概率也比他在游戏中描述的低。平衡车需要50片,踏板车150片,电动车300片。我见过很多肝佬,身价都上百亿了,却只有个平衡车。等等等等,这游戏槽点太多了,我不服,我要干他了。
## 分析游戏
游戏本身是用cocos写的,那么他打包成安卓应用的话,无外乎就是使用一个继承自NativeActivity或者Activity的Cocos的活动,然后内部集成了一个浏览器内核。js代码可能经过了混淆【事实是部分混淆了】,然后这个游戏是个单机游戏,以这些Cocos开发者和小公司的尿性,他们底层的数据肯定是json文件【bingo】,以加密方式保存在某个内部目录,或者是sqlite,肯定不会对sqlite进行加密【事实就是——存在sqlite里面的超级长的json字符串】。而且啊,这些团队自以为很安全的内部目录就无法被外界访问了【太年轻了,你即使在内存里,都能给你扒出来】。不过这些东西还是能劝退大部分普通人。
## Cheating思路
>因为游戏在内部目录,我们普通的手机由于linuxSE,根本无法访问文件。因此,我们必须要有一台root的手机。博主的测试手机是小米的,只需要解掉bl锁后,然后用magisk刷一个boot后就可轻松root。
>在root后我们便可以轻松的使用adb等工具进入所谓的内部目录,获取到一个叫做jsb.sqlite的数据库,然后导出来,用DataGrip等数据库软件,找到一个data的表,然后里面有个key为`record_game168`的行,这行的value字段里,便是一个超级大的json

> 这个大json使用NotePad++的一个json_format的插件,就可以轻松的格式化出来,对了,DataGrip导出的数据是不全的
> 然后读出来后修改好数据,再塞回数据库,然后再把数据库放到`内部目录`,然后重新打开游戏,游戏就更新了
> 说起来很简单,但是对于非安卓开发者,还是太难了,你得配置adb,然后使用adb shell 进入shell环境,然后cp 数据库到sdcard下,最后再从sdcard下pull文件到电脑上来,复写也是先push到sdcard下,再mv到目标目录下

> 这里这一套下来,修改个数据太费劲了,于是乎,我就写了个安卓App,因为java/kotlin修改解析这么大的json数据太麻烦了,于是乎,用了webview使用js来操作json数据。这里面的技术就是`jsbridge`
> 然后为了方便操作`内部`文件,我使用的是magisk作者出的libsu,Java的File是不行的,因为linuxSE的缘故,是无法访问内部文件的,另外,我们可能在AS中,看到的文件有可能是`/data/user/0`,但是这是一个临时文件,整正的位置,软件运行结束后会回写到`/data_mirror/data_ce/null/0`这个文件夹下的,这个是可以用libsu访问到的。好了技术的东西已经结束了。
## 不想折腾的同学可以看看`八门神器`的小游戏,可以加载别人的游戏数据,也还是很爽的
# 最后,这个软件只是学习和交流技术的一个demo,请勿商用,作者我反对以任何形式的破坏别人开发者利益的事。
# 做灰产的人也别联系我,我只是个技术爱好者,我只是对游戏机制不满意,但我尊重别人的劳动成果
# 如果我这个代码仓库对原作者团队造成了伤害,请联系我删除。
# 请尊重原创游戏!!!