我在一些基于订阅模式的游戏门户目录(一种 PlayStore)中工作。我与一些可以为我提供一些游戏 apk 的编辑器建立了合作关系。但不是他们的源代码。所以我有权修改关于它们的东西,但我没有代码。
这是我想做的事情,如果你认为需要你告诉我:
- 可以这样
- 这是做这件事的好方法
- 如果有更好的方法,它是什么
所以,我的目标是制作一个包装器,让我能够:
- 弹出一个网页视图到我的游戏门户
- 获取用户的UID并发送到游戏门户
- 能够从门户网站获得回调(使用 javascript)
- 在本地注册有关用户权限的信息(例如状态和“结束订阅日期”)并在启动时检查它们
再加上各种逻辑,比如“如果我从游戏门户回调中得到这个响应,那么我就关闭 webview”。
这就是我认为这样做的方式:
- 以我有源代码的游戏为例
- 用 Java 编写上面请求的所有代码,将所有内容放在一个类中
- 在每个 APK 中始终存在的方法中设置所有调用(例如 mainactivity - onCreate())
- 编译我的apk
- 使用 APK Studio 之类的工具反编译我的 apk,它会生成一些可读的 SMALI 代码
- 找出与我的包装器相对应的代码部分(通过将经典的编译/反编译 apk 与我添加包装器的 apk 进行区分)
- 将此代码部分复制到其他经典编译/反编译的 APK
- 重新编译APK
所以我知道我可以在 Java 部分做所有事情,但我想确保可以制作我想要使用的“SMALI 技巧”。
提前致谢 :)
编辑:我一直在想,创建一个新的 Activity 来替换 smali 文件中的 MainActivity 并通过 Intent 调用启动真正的 MainActivity 不是更好吗?