创建 apk 包装器 Android(无源代码)

Creating an apk wrapper Android (no source code)

我在一些基于订阅模式的游戏门户目录(类似于 PlayStore)中工作。我与一些编辑器建立了合作伙伴关系,可以为我提供一些游戏 apk。但不是他们的源代码。所以我有权修改关于它们的东西,但我没有代码。

  1. 这是我想做的,如果你觉得需要你告诉我:

    • 这样可以
    • 这样做的好方法
    • 如果有更好的方法,是什么
  2. 所以,我的目标是制作一个包装器,让我能够:

    • 将网页视图弹出到我的游戏门户
    • 获取用户的UID并发送到游戏入口
    • 能够从 Web 门户获得回调(使用 javascript)
    • 在本地注册有关用户权限的信息(如状态和 "end subscription date")并在启动时检查它们

添加各种逻辑,例如 "if I get this reponse from the game portal callback, then I close the webview"。

  1. 我是这样想的:

    • 参加我有源代码的游戏
    • 将上面要求的所有代码写在Java中,将所有内容放在一个class
    • 在每个 APK 中始终存在的方法中设置所有调用(mainactivity - 例如 onCreate())
    • 编译我的 apk
    • 使用 APK Studio 等工具反编译我的 apk,这将生成一些可读的 SMALI 代码
    • 找出与我的包装器相对应的代码部分(通过将 classic compiled/decompiled apk 与我添加包装器的那个相区别)
    • 将此代码部分复制到另一个 classic compiled/decomplied APK
    • 重新编译 APK

所以我知道我可以在 Java 部分做任何事情,但我想确保可以制作我想使用的 "SMALI trick"。

提前致谢:)

编辑:我一直在想,创建一个新的 Activity 来替换 smali 文件中的 MainActivity 和通过 Intent 调用开始真正的 MainActivity ?

我已经能自己解决了。所以这可能不是实现这一目标的最佳方式。但这是我唯一知道的。所以对于那些想知道的人。这是一些细节。

所以基本上你只需要按照我公开的流程进行即可。除了在我的第一个想法中,我计划从游戏主要活动中调用东西。

但最后,最好的办法是制作自己的 main activity 来处理所有需要的事情,然后从那里将实际的游戏 mainActivity 传递给 "wrapper".并且您将能够在需要时开始游戏。

您还需要 "steal" 清单中的主要 activity 属性 以便 activity 首先开始。

在您的 mainActivity 中设置清晰的调用,例如 'init(Context,main_act)',以便更新 SMALI。

关于layouts & res,你可以很容易的添加到反编译的apk中。

希望这对某人有所帮助 ;)