Giter Site home page Giter Site logo

dglabunlocker's Introduction

DG-Lab Unlocker

某APP的奇怪xposed模块

暂停更新

官方APP的新功能整挺好
强度上限什么的安全功能都安排上了
波形导入导出. 远程协议之类的也被官方抄走了

目前来看这个模块应该暂时没有继续开发的必要
(主要是...想不出来还有什么脑洞可以整活了x

所以, 暂时停止模块开发

除非咱想到了什么新活, 但是只靠官方又整不出来


说明

当前适配版本: 1.2.6 1.3.1 1.3.2
项目开发将以当前支持的最新版本为目标, 在老版本中不保证所有功能可用

功能

  • 解锁远程控制最大强度到276
    最高100完全不够用好吧
    再也不用担心high到一半自己起来调强度了 (超小声

  • 暴力锁死基础强度
    理论上拦截所有远程加基础强度的BUG, 有效避免突然惨遭弹射起飞
    有坏蛋试了半小时翻倍bug, 咱不说是谁

  • 无视远程最大强度限制
    字面意思, 想拉多高拉多高 (坏.jpg
    不要拿去干坏事qwq

  • 强制确保远程强度不超过限制
    避免魔改客户端搞事情
    上面那个功能的防御

  • 导入/导出波形
    以JSON格式从文件导入波形/导出波形到文件
    用别人的波形算不算也是一种NTR

  • 开放强度调整接口
    对外开放Websocket RPC服务端口, 便于程序员整点花活 #8
    此功能最终解释权归永仪所有
    咱不对小可爱被玩坏承担任何责任

dglabunlocker's People

Contributors

sakurakoi avatar tehcneko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dglabunlocker's Issues

直接输入设置强度

aa就是可以手动输入之类的那种
+-好慢哦(bushi
(以及这边备用机也是a7.0 :/

连接时间计时器

用于统计玩的时间,可以简单通过一个starttime和endtime的时间戳判断,在断开时候显示

屏蔽强制更新

让所有更新都可取消
com.bjsm.dungeonlab.widget.UpdateAppDialog.show(String str, String str2, int isForce, String str3)
isForce=0

易盾有点难搞, 没法像腾讯一键脱, 先确保1.3.2可使用再去折腾那壳子

导入波形crash

01-27 17:01:27.475 25012 25012 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.bjsm.dungeonlab.bean.BaseDataBean.getRate()' on a null object reference
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.ui.fragment.PlayFragment3.m(PlayFragment3.java:1373)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.ui.fragment.PlayFragment3.f(PlayFragment3.java:442)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.base.BaseFragment.e(BaseFragment.java:169)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.ui.fragment.PlayFragment3_.a(PlayFragment3_.java:624)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at org.a.a.b.c.a(OnViewChangedNotifier.java:41)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.ui.fragment.PlayFragment3_.onViewCreated(PlayFragment3_.java:164)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1471)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:620)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.bjsm.dungeonlab.base.BaseActivity.onStart(BaseActivity.java:310)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1455)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.Activity.performStart(Activity.java:8315)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4060)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:226)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:313)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8663)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
01-27 17:01:27.475 25012 25012 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

按完导入直接崩溃 v1.3.2

模块设置替换失败

打开郊狼App可以看到unlocker选项,但点击unlocker设置时提示模块设置替换失败

已尝试重新安装LSposed,重新加载模块,重新安装DGLab软件,均未能解决问题

手机型号:OnePlus 6T A6013
安卓版本:11
DG-Lab版本:V1.3.3
LSPosed版本:1.8.6(6712)-Riru
魔改模块版本:1.9

问题截图:
Screenshot_20230301-082055.jpg

启用模块时的日志(请原谅手机问题无法拷贝日志文件)
Screenshot_20230301-083454.jpg

Screenshot_20230301-083504.jpg

模块设置替换失败

----part 3 start----
[ 2022-05-17T21:02:33.441    10264: 27190: 27190 I/LSPosed-Bridge  ] Loading module sakura.kooi.dglabunlocker from /data/app/~~NXu5diOZ8Mwa5oRukWwDCg==/sakura.kooi.dglabunlocker-ZTL1k6_2f8085EeGGs__eQ==/base.apk
[ 2022-05-17T21:02:33.463    10264: 27190: 27190 I/LSPosed-Bridge  ]   Loading class sakura.kooi.dglabunlocker.XposedModuleInit
[ 2022-05-17T21:02:33.725    10264: 27190: 27190 E/LSPosed-Bridge  ] java.lang.VerifyError: Verifier rejected class sakura.kooi.dglabunlocker.variables.ModuleSettings: void sakura.kooi.dglabunlocker.variables.ModuleSettings.showSettingsDialog(android.content.Context) failed to verify: void sakura.kooi.dglabunlocker.variables.ModuleSettings.showSettingsDialog(android.content.Context): [0x2] void sakura.kooi.dglabunlocker.variables.ModuleSettings.showSettingsDialog(android.content.Context): [0x2] 'this' argument 'Reference: java.lang.invoke.MethodHandle' not instance of 'Precise Reference: java.lang.invoke.MethodHandles$Lookup' (declaration of 'sakura.kooi.dglabunlocker.variables.ModuleSettings' appears in Anonymous-DexFile@1437296361)
	at sakura.kooi.dglabunlocker.variables.ModuleSettings.loadConfiguration(Unknown Source:0)
	at sakura.kooi.dglabunlocker.XposedModuleInit.onAppLoaded(XposedModuleInit.java:109)
	at sakura.kooi.dglabunlocker.XposedModuleInit.access$000(XposedModuleInit.java:37)
	at sakura.kooi.dglabunlocker.XposedModuleInit$1.afterHookedMethod(XposedModuleInit.java:87)
	at KC.Aa.LLWKGBiWaQht.nrd.XposedBridge$AdditionalHookInfo.callback(Unknown Source:147)
	at LSPHooker_.attachBaseContext(Unknown Source:11)
	at android.app.Application.attach(Application.java:338)
	at android.app.Instrumentation.newApplication(Instrumentation.java:1192)
	at android.app.LoadedApk.makeApplication(LoadedApk.java:1356)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6723)
	at android.app.ActivityThread.access$1500(ActivityThread.java:256)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7870)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

应用为 1.2.6,模块为 v6-fix

重构模块框架,准备接入最新版本

  • 360加固注入
  • 抛弃所有跨版本兼容相关代码,直接target单一版本
  • 在beta版app里找俩设置界面注入点,控制中和主菜单的
    dglab这layout写的想优雅地注点东西也太难了(摔
  • 模块版本适配检查
  • 强制更新屏蔽

然后大概就可以开始写模块功能了

  • 波形导入适配模块json
  • 波形导出
  • websocket rpc
  • 跳变上限解锁
  • 一键开火上限解锁
  • 读加速度传感器,运动/静止上强度 (copy mio的功能(((
  • 其他什么想到了再写x

先这么摆这,回头有空了再单独拆成issue

一个大胆的想法:告别摸鱼!

监测手环心率,如果手环心率不达标,就来点惩罚,不知道是否可行(逃~
比如小米手环 https://github.com/wuhan005/mebeats

还可以记录app使用时间,只允许每一小时玩15分钟手机呢(

虽然真的不会太多代码相关,但没有主人,自律又差,又要考试减肥健身抖m 自我感觉想法实在是太赞了,不提个issue有点亏,而且图书馆带郊狼瑟瑟想想就((
这玩意不比keep、番茄学习之类的见效快欸嘿嘿嘿~~~

项目暂时挂起 (不是跑路!x

dglab好像在整大活
似乎被他们借鉴走了一堆功能x (碎碎念

等他们的船新重构的新版本app稳定了之后, 再看看咱来整什么活

可以预期的是母app代码大规模重构后本模块的代码肯定也要做一堆重构
所以重构期间代码变动咱懒得跟, 直接等稳定版再一次艹了搞定(

[大型卫星] 替代远程连接

基础指标

  • 自定义服务器地址
  • websocket连接以便于过cdn保护?

工作流程

  • 主控端 虚拟体验+下hook
  • 被控端 普通非远程方式运行+替换layout
  • 监听强度及波形更新
  • 将当前波形序列化为json发送到远程端
  • 同样的方式发送强度更新
  • hook被控界面替换掉各个按钮的功能
  • 被控收到更新直接写下去

相比于原版的远程....优势大概是网络不佳也能体验良好(而不是断断续续
但是好麻烦好麻烦好麻烦....说不定写个新app都比这容易
(趴

大概是个有生之年(?

希望能显示一下被控方设置的最大强度

控别人的时候总是苦恼不知道对方的最大耐受是多少,有时下手太轻,有时又太重。
可以在模块运行状态里显示一下maxStrengthA,maxStrengthB之类的这几个值,很有用哟。

(你代码写的超好,像是职业选手:)

ps:发现了个定义后就没用过的变量哟:classGlobalVariables

DG-Lab Beta波形导入

看了看结构,应该和老版本差不多
realms数据库换成了sqlite库,操作起来省事多了
先卫星搁着,回头倒腾

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.